-- Stub file for the GTAV Lua API.
-- Generated by "gtav_builder.py".
--- 

SYSTEM = {}

--- Pauses execution of the current script, please note this behavior is only seen when called from one of the game script files(ysc). In order to wait an asi script use "static void WAIT(DWORD time);" found in main.h
--- @param ms number
function SYSTEM.WAIT(ms) end
--- Examples:
--- g_384A = SYSTEM::START_NEW_SCRIPT("cellphone_flashhand", 1424);
--- l_10D = SYSTEM::START_NEW_SCRIPT("taxiService", 1828);
--- SYSTEM::START_NEW_SCRIPT("AM_MP_YACHT", 5000);
--- SYSTEM::START_NEW_SCRIPT("emergencycall", 512);
--- SYSTEM::START_NEW_SCRIPT("emergencycall", 512);
--- SYSTEM::START_NEW_SCRIPT("FM_maintain_cloud_header_data", 1424);
--- SYSTEM::START_NEW_SCRIPT("FM_Mission_Controller", 31000);
--- SYSTEM::START_NEW_SCRIPT("tennis_family", 3650);
--- SYSTEM::START_NEW_SCRIPT("Celebrations", 3650);
--- 
--- Decompiled examples of usage when starting a script:
--- 
--- SCRIPT::REQUEST_SCRIPT(a_0);
--- if (SCRIPT::HAS_SCRIPT_LOADED(a_0)) {
--- SYSTEM::START_NEW_SCRIPT(a_0, v_3);
--- SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED(a_0);
--- return 1;
--- }
--- 
--- or:
--- 
--- v_2 = "MrsPhilips2";
--- SCRIPT::REQUEST_SCRIPT(v_2);
--- while (!SCRIPT::HAS_SCRIPT_LOADED(v_2)) {
--- SCRIPT::REQUEST_SCRIPT(v_2);
--- SYSTEM::WAIT(0);
--- }
--- sub_8792(36);
--- SYSTEM::START_NEW_SCRIPT(v_2, 17000);
--- SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED(v_2);
--- @param scriptName string
--- @param stackSize number
--- @return number
function SYSTEM.START_NEW_SCRIPT(scriptName, stackSize) end
--- return : script thread id, 0 if failed
--- Pass pointer to struct of args in p1, size of struct goes into p2
--- @param scriptName string
--- @param args number
--- @param argCount number
--- @param stackSize number
--- @return number
function SYSTEM.START_NEW_SCRIPT_WITH_ARGS(scriptName, args, argCount, stackSize) end
--- @param scriptHash number
--- @param stackSize number
--- @return number
function SYSTEM.START_NEW_SCRIPT_WITH_NAME_HASH(scriptHash, stackSize) end
--- @param scriptHash number
--- @param args number
--- @param argCount number
--- @param stackSize number
--- @return number
function SYSTEM.START_NEW_SCRIPT_WITH_NAME_HASH_AND_ARGS(scriptHash, args, argCount, stackSize) end
--- Counts up. Every 1000 is 1 real-time second. Use SETTIMERA(int value) to set the timer (e.g.: SETTIMERA(0)).
--- @return number
function SYSTEM.TIMERA() end
--- @return number
function SYSTEM.TIMERB() end
--- @param value number
function SYSTEM.SETTIMERA(value) end
--- @param value number
function SYSTEM.SETTIMERB(value) end
--- Gets the current frame time.
--- @return number
function SYSTEM.TIMESTEP() end
--- @param value number
--- @return number
function SYSTEM.SIN(value) end
--- @param value number
--- @return number
function SYSTEM.COS(value) end
--- @param value number
--- @return number
function SYSTEM.SQRT(value) end
--- @param base number
--- @param exponent number
--- @return number
function SYSTEM.POW(base, exponent) end
--- @param value number
--- @return number
function SYSTEM.LOG10(value) end
--- Calculates the magnitude of a vector.
--- @param x number
--- @param y number
--- @param z number
--- @return number
function SYSTEM.VMAG(x, y, z) end
--- Calculates the magnitude of a vector but does not perform Sqrt operations. (Its way faster)
--- @param x number
--- @param y number
--- @param z number
--- @return number
function SYSTEM.VMAG2(x, y, z) end
--- Calculates distance between vectors.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function SYSTEM.VDIST(x1, y1, z1, x2, y2, z2) end
--- Calculates distance between vectors but does not perform Sqrt operations. (Its way faster)
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function SYSTEM.VDIST2(x1, y1, z1, x2, y2, z2) end
--- @param value number
--- @param bitShift number
--- @return number
function SYSTEM.SHIFT_LEFT(value, bitShift) end
--- @param value number
--- @param bitShift number
--- @return number
function SYSTEM.SHIFT_RIGHT(value, bitShift) end
--- @param value number
--- @return number
function SYSTEM.FLOOR(value) end
--- I'm guessing this rounds a float value up to the next whole number, and FLOOR rounds it down
--- @param value number
--- @return number
function SYSTEM.CEIL(value) end
--- @param value number
--- @return number
function SYSTEM.ROUND(value) end
--- @param value number
--- @return number
function SYSTEM.TO_FLOAT(value) end
--- THREAD_PRIO_HIGHEST = 0
--- THREAD_PRIO_NORMAL = 1
--- THREAD_PRIO_LOWEST = 2
--- THREAD_PRIO_MANUAL_UPDATE = 100
--- @param priority number
function SYSTEM.SET_THIS_THREAD_PRIORITY(priority) end

APP = {}

--- @return boolean
function APP.APP_DATA_VALID() end
--- @param property string
--- @return number
function APP.APP_GET_INT(property) end
--- @param property string
--- @return number
function APP.APP_GET_FLOAT(property) end
--- @param property string
--- @return string
function APP.APP_GET_STRING(property) end
--- @param property string
--- @param value number
function APP.APP_SET_INT(property, value) end
--- @param property string
--- @param value number
function APP.APP_SET_FLOAT(property, value) end
--- @param property string
--- @param value string
function APP.APP_SET_STRING(property, value) end
--- Called in the gamescripts like:
--- APP::APP_SET_APP("car");
--- APP::APP_SET_APP("dog");
--- @param appName string
function APP.APP_SET_APP(appName) end
--- @param blockName string
function APP.APP_SET_BLOCK(blockName) end
function APP.APP_CLEAR_BLOCK() end
function APP.APP_CLOSE_APP() end
function APP.APP_CLOSE_BLOCK() end
--- @return boolean
function APP.APP_HAS_LINKED_SOCIAL_CLUB_ACCOUNT() end
--- @param appName string
--- @return boolean
function APP.APP_HAS_SYNCED_DATA(appName) end
function APP.APP_SAVE_DATA() end
--- @return number
function APP.APP_GET_DELETED_FILE_STATUS() end
--- @param appName string
--- @return boolean
function APP.APP_DELETE_APP_DATA(appName) end

AUDIO = {}

--- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/RFb4GTny
--- 
--- AUDIO::PLAY_PED_RINGTONE("Remote_Ring", PLAYER::PLAYER_PED_ID(), 1);
--- AUDIO::PLAY_PED_RINGTONE("Dial_and_Remote_Ring", PLAYER::PLAYER_PED_ID(), 1);
--- 
--- @param ringtoneName string
--- @param ped number
--- @param p2 boolean
function AUDIO.PLAY_PED_RINGTONE(ringtoneName, ped, p2) end
--- @param ped number
--- @return boolean
function AUDIO.IS_PED_RINGTONE_PLAYING(ped) end
--- @param ped number
function AUDIO.STOP_PED_RINGTONE(ped) end
--- @return boolean
function AUDIO.IS_MOBILE_PHONE_CALL_ONGOING() end
--- @return boolean
function AUDIO.IS_MOBILE_INTERFERENCE_ACTIVE() end
--- @return number
function AUDIO.GET_CURRENT_TV_SHOW_PLAY_TIME() end
function AUDIO.CREATE_NEW_SCRIPTED_CONVERSATION() end
--- NOTE: ones that are -1, 0 - 35 are determined by a function where it gets a TextLabel from a global then runs,
--- GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME and depending on what the result is it goes in check order of 0 - 9 then A - Z then z (lowercase). So it will then return 0 - 35 or -1 if it's 'z'. The func to handle that ^^ is func_67 in dialog_handler.c atleast in TU27 Xbox360 scripts.
--- 
--- p0 is -1, 0 - 35
--- p1 is a char or string (whatever you wanna call it)
--- p2 is Global 10597 + i * 6. 'i' is a while(i < 70) loop
--- p3 is again -1, 0 - 35
--- p4 is again -1, 0 - 35
--- p5 is either 0 or 1 (bool ?)
--- p6 is either 0 or 1 (The func to determine this is bool)
--- p7 is either 0 or 1 (The func to determine this is bool)
--- p8 is either 0 or 1 (The func to determine this is bool)
--- p9 is 0 - 3 (Determined by func_60 in dialogue_handler.c)
--- p10 is either 0 or 1 (The func to determine this is bool)
--- p11 is either 0 or 1 (The func to determine this is bool)
--- p12 is unknown as in TU27 X360 scripts it only goes to p11.
--- @param index number
--- @param p1 string
--- @param p2 string
--- @param p3 number
--- @param p4 number
--- @param p5 boolean
--- @param p6 boolean
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 number
--- @param p10 boolean
--- @param p11 boolean
--- @param p12 boolean
function AUDIO.ADD_LINE_TO_CONVERSATION(index, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) end
--- 4 calls in the b617d scripts. The only one with p0 and p2 in clear text:
--- 
--- AUDIO::ADD_PED_TO_CONVERSATION(5, l_AF, "DINAPOLI");
--- 
--- =================================================
--- One of the 2 calls in dialogue_handler.c p0 is in a while-loop, and so is determined to also possibly be 0 - 15.
--- @param index number
--- @param ped number
--- @param p2 string
function AUDIO.ADD_PED_TO_CONVERSATION(index, ped, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function AUDIO.SET_POSITION_FOR_NULL_CONV_PED(p0, p1, p2, p3) end
--- @param p0 number
--- @param entity number
function AUDIO.SET_ENTITY_FOR_NULL_CONV_PED(p0, entity) end
--- This native controls where the game plays audio from. By default the microphone is positioned on the player.
--- When p0 is true the game will play audio from the 3 positions inputted.
--- It is recommended to set all 3 positions to the same value as mixing different positions doesn't seem to work well.
--- The scripts mostly use it with only one position such as in fbi3.c:
--- AUDIO::SET_MICROPHONE_POSITION(true, ENTITY::GET_ENTITY_COORDS(iLocal_3091, true), ENTITY::GET_ENTITY_COORDS(iLocal_3091, true), ENTITY::GET_ENTITY_COORDS(iLocal_3091, true));
--- @param toggle boolean
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
function AUDIO.SET_MICROPHONE_POSITION(toggle, x1, y1, z1, x2, y2, z2, x3, y3, z3) end
--- @param p0 boolean
function AUDIO.SET_CONVERSATION_AUDIO_CONTROLLED_BY_ANIM(p0) end
--- @param p0 boolean
function AUDIO.SET_CONVERSATION_AUDIO_PLACEHOLDER(p0) end
--- @param p0 boolean
--- @param p1 boolean
function AUDIO.START_SCRIPT_PHONE_CONVERSATION(p0, p1) end
--- @param p0 boolean
--- @param p1 boolean
function AUDIO.PRELOAD_SCRIPT_PHONE_CONVERSATION(p0, p1) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
function AUDIO.START_SCRIPT_CONVERSATION(p0, p1, p2, p3) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
function AUDIO.PRELOAD_SCRIPT_CONVERSATION(p0, p1, p2, p3) end
function AUDIO.START_PRELOADED_CONVERSATION() end
--- @return boolean
function AUDIO.GET_IS_PRELOADED_CONVERSATION_READY() end
--- @return boolean
function AUDIO.IS_SCRIPTED_CONVERSATION_ONGOING() end
--- @return boolean
function AUDIO.IS_SCRIPTED_CONVERSATION_LOADED() end
--- @return number
function AUDIO.GET_CURRENT_SCRIPTED_CONVERSATION_LINE() end
--- @param p0 boolean
function AUDIO.PAUSE_SCRIPTED_CONVERSATION(p0) end
function AUDIO.RESTART_SCRIPTED_CONVERSATION() end
--- @param p0 boolean
--- @return number
function AUDIO.STOP_SCRIPTED_CONVERSATION(p0) end
function AUDIO.SKIP_TO_NEXT_SCRIPTED_CONVERSATION_LINE() end
--- Example from carsteal3.c: AUDIO::INTERRUPT_CONVERSATION(PLAYER::PLAYER_PED_ID(), "CST4_CFAA", "FRANKLIN");
--- Voicelines can be found in GTAV\x64\audio\sfx in files starting with "SS_" which seems to mean scripted speech.
--- @param ped number
--- @param voiceline string
--- @param speaker string
function AUDIO.INTERRUPT_CONVERSATION(ped, voiceline, speaker) end
--- One call found in the b617d scripts:
--- 
--- AUDIO::INTERRUPT_CONVERSATION_AND_PAUSE(NETWORK::NET_TO_PED(l_3989._f26F[0/*1*/]), "CONV_INTERRUPT_QUIT_IT", "LESTER");
--- @param ped number
--- @param p1 string
--- @param speaker string
function AUDIO.INTERRUPT_CONVERSATION_AND_PAUSE(ped, p1, speaker) end
--- @param p0 number
--- @return number
function AUDIO.GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE(p0) end
--- @param p0 boolean
function AUDIO.SET_NO_DUCKING_FOR_CONVERSATION(p0) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
function AUDIO.REGISTER_SCRIPT_WITH_AUDIO(p0) end
--- This native does absolutely nothing, just a nullsub
function AUDIO.UNREGISTER_SCRIPT_WITH_AUDIO() end
--- All occurrences and usages found in b617d: https://pastebin.com/NzZZ2Tmm
--- Full list of mission audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/missionAudioBankNames.json
--- p2 is always -1
--- @param audioBank string
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function AUDIO.REQUEST_MISSION_AUDIO_BANK(audioBank, p1, p2) end
--- All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/XZ1tmGEz
--- Full list of ambient audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientAudioBankNames.json
--- p2 is always -1
--- @param audioBank string
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function AUDIO.REQUEST_AMBIENT_AUDIO_BANK(audioBank, p1, p2) end
--- All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/AkmDAVn6
--- Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json
--- p2 is always -1
--- @param audioBank string
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function AUDIO.REQUEST_SCRIPT_AUDIO_BANK(audioBank, p1, p2) end
--- p2 is always -1
--- @param audioBank string
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function AUDIO.HINT_MISSION_AUDIO_BANK(audioBank, p1, p2) end
--- p2 is always -1
--- @param audioBank string
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function AUDIO.HINT_AMBIENT_AUDIO_BANK(audioBank, p1, p2) end
--- p2 is always -1
--- @param audioBank string
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function AUDIO.HINT_SCRIPT_AUDIO_BANK(audioBank, p1, p2) end
function AUDIO.RELEASE_MISSION_AUDIO_BANK() end
function AUDIO.RELEASE_AMBIENT_AUDIO_BANK() end
--- Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json
--- @param audioBank string
function AUDIO.RELEASE_NAMED_SCRIPT_AUDIO_BANK(audioBank) end
function AUDIO.RELEASE_SCRIPT_AUDIO_BANK() end
function AUDIO.UNHINT_AMBIENT_AUDIO_BANK() end
function AUDIO.UNHINT_SCRIPT_AUDIO_BANK() end
--- @param audioBank string
function AUDIO.UNHINT_NAMED_SCRIPT_AUDIO_BANK(audioBank) end
--- @return number
function AUDIO.GET_SOUND_ID() end
--- @param soundId number
function AUDIO.RELEASE_SOUND_ID(soundId) end
--- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/A8Ny8AHZ
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param soundId number
--- @param audioName string
--- @param audioRef string
--- @param p3 boolean
--- @param p4 number
--- @param p5 boolean
function AUDIO.PLAY_SOUND(soundId, audioName, audioRef, p3, p4, p5) end
--- List: https://pastebin.com/DCeRiaLJ
--- 
--- All occurrences as of Cayo Perico Heist DLC (b2189), sorted alphabetically and identical lines removed: https://git.io/JtLxM
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param soundId number
--- @param audioName string
--- @param audioRef string
--- @param p3 boolean
function AUDIO.PLAY_SOUND_FRONTEND(soundId, audioName, audioRef, p3) end
--- Only call found in the b617d scripts:
--- 
--- AUDIO::PLAY_DEFERRED_SOUND_FRONTEND("BACK", "HUD_FREEMODE_SOUNDSET");
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param soundName string
--- @param soundsetName string
function AUDIO.PLAY_DEFERRED_SOUND_FRONTEND(soundName, soundsetName) end
--- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/f2A7vTj0
--- No changes made in b678d.
--- 
--- gtaforums.com/topic/795622-audio-for-mods
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param soundId number
--- @param audioName string
--- @param entity number
--- @param audioRef string
--- @param isNetwork boolean
--- @param p5 number
function AUDIO.PLAY_SOUND_FROM_ENTITY(soundId, audioName, entity, audioRef, isNetwork, p5) end
--- Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset".
--- p1 is always the model of p2
--- @param soundId number
--- @param model number
--- @param entity number
--- @param soundSetHash number
--- @param p4 number
--- @param p5 number
function AUDIO.PLAY_SOUND_FROM_ENTITY_HASH(soundId, model, entity, soundSetHash, p4, p5) end
--- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/eeFc5DiW
--- 
--- gtaforums.com/topic/795622-audio-for-mods
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param soundId number
--- @param audioName string
--- @param x number
--- @param y number
--- @param z number
--- @param audioRef string
--- @param isNetwork boolean
--- @param range number
--- @param p8 boolean
function AUDIO.PLAY_SOUND_FROM_COORD(soundId, audioName, x, y, z, audioRef, isNetwork, range, p8) end
--- @param soundId number
--- @param x number
--- @param y number
--- @param z number
function AUDIO.UPDATE_SOUND_COORD(soundId, x, y, z) end
--- @param soundId number
function AUDIO.STOP_SOUND(soundId) end
--- Could this be used alongside either,
--- SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES or _SET_NETWORK_ID_SYNC_TO_PLAYER to make it so other players can hear the sound while online? It'd be a bit troll-fun to be able to play the Zancudo UFO creepy sounds globally.
--- @param soundId number
--- @return number
function AUDIO.GET_NETWORK_ID_FROM_SOUND_ID(soundId) end
--- @param netId number
--- @return number
function AUDIO.GET_SOUND_ID_FROM_NETWORK_ID(netId) end
--- @param soundId number
--- @param variable string
--- @param p2 number
function AUDIO.SET_VARIABLE_ON_SOUND(soundId, variable, p2) end
--- From the scripts, p0:
--- 
--- "ArmWrestlingIntensity",
--- "INOUT",
--- "Monkey_Stream",
--- "ZoomLevel"
--- @param variable string
--- @param p1 number
function AUDIO.SET_VARIABLE_ON_STREAM(variable, p1) end
--- @param p0 string
--- @param p1 boolean
function AUDIO.OVERRIDE_UNDERWATER_STREAM(p0, p1) end
--- AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 1.0);
--- AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 0.0);
--- @param variableName string
--- @param value number
function AUDIO.SET_VARIABLE_ON_UNDER_WATER_STREAM(variableName, value) end
--- @param soundId number
--- @return boolean
function AUDIO.HAS_SOUND_FINISHED(soundId) end
--- Plays ambient speech. See also _0x444180DB.
--- 
--- ped: The ped to play the ambient speech.
--- speechName: Name of the speech to play, eg. "GENERIC_HI".
--- speechParam: Can be one of the following:
--- SPEECH_PARAMS_STANDARD
--- SPEECH_PARAMS_ALLOW_REPEAT
--- SPEECH_PARAMS_BEAT
--- SPEECH_PARAMS_FORCE
--- SPEECH_PARAMS_FORCE_FRONTEND
--- SPEECH_PARAMS_FORCE_NO_REPEAT_FRONTEND
--- SPEECH_PARAMS_FORCE_NORMAL
--- SPEECH_PARAMS_FORCE_NORMAL_CLEAR
--- SPEECH_PARAMS_FORCE_NORMAL_CRITICAL
--- SPEECH_PARAMS_FORCE_SHOUTED
--- SPEECH_PARAMS_FORCE_SHOUTED_CLEAR
--- SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL
--- SPEECH_PARAMS_FORCE_PRELOAD_ONLY
--- SPEECH_PARAMS_MEGAPHONE
--- SPEECH_PARAMS_HELI
--- SPEECH_PARAMS_FORCE_MEGAPHONE
--- SPEECH_PARAMS_FORCE_HELI
--- SPEECH_PARAMS_INTERRUPT
--- SPEECH_PARAMS_INTERRUPT_SHOUTED
--- SPEECH_PARAMS_INTERRUPT_SHOUTED_CLEAR
--- SPEECH_PARAMS_INTERRUPT_SHOUTED_CRITICAL
--- SPEECH_PARAMS_INTERRUPT_NO_FORCE
--- SPEECH_PARAMS_INTERRUPT_FRONTEND
--- SPEECH_PARAMS_INTERRUPT_NO_FORCE_FRONTEND
--- SPEECH_PARAMS_ADD_BLIP
--- SPEECH_PARAMS_ADD_BLIP_ALLOW_REPEAT
--- SPEECH_PARAMS_ADD_BLIP_FORCE
--- SPEECH_PARAMS_ADD_BLIP_SHOUTED
--- SPEECH_PARAMS_ADD_BLIP_SHOUTED_FORCE
--- SPEECH_PARAMS_ADD_BLIP_INTERRUPT
--- SPEECH_PARAMS_ADD_BLIP_INTERRUPT_FORCE
--- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED
--- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CLEAR
--- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CRITICAL
--- SPEECH_PARAMS_SHOUTED
--- SPEECH_PARAMS_SHOUTED_CLEAR
--- SPEECH_PARAMS_SHOUTED_CRITICAL
--- 
--- Note: A list of Name and Parameters can be found here https://pastebin.com/1GZS5dCL
--- 
--- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json
--- @param ped number
--- @param speechName string
--- @param speechParam string
--- @param p3 number
function AUDIO.PLAY_PED_AMBIENT_SPEECH_NATIVE(ped, speechName, speechParam, p3) end
--- Plays ambient speech. See also _0x5C57B85D.
--- 
--- See PLAY_PED_AMBIENT_SPEECH_NATIVE for parameter specifications.
--- 
--- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json
--- @param ped number
--- @param speechName string
--- @param speechParam string
--- @param p3 number
function AUDIO.PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE(ped, speechName, speechParam, p3) end
--- This is the same as PLAY_PED_AMBIENT_SPEECH_NATIVE and PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE but it will allow you to play a speech file from a specific voice file. It works on players and all peds, even animals.
--- 
--- EX (C#):
--- GTA.Native.Function.Call(Hash.PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE, Game.Player.Character, "GENERIC_INSULT_HIGH", "s_m_y_sheriff_01_white_full_01", "SPEECH_PARAMS_FORCE_SHOUTED", 0);
--- 
--- The first param is the ped you want to play it on, the second is the speech name, the third is the voice name, the fourth is the speech param, and the last param is usually always 0.
--- 
--- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json
--- @param ped number
--- @param speechName string
--- @param voiceName string
--- @param speechParam string
--- @param p4 boolean
function AUDIO.PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(ped, speechName, voiceName, speechParam, p4) end
--- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json
--- @param speechName string
--- @param voiceName string
--- @param x number
--- @param y number
--- @param z number
--- @param speechParam string
function AUDIO.PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE(speechName, voiceName, x, y, z, speechParam) end
--- This native enables the audio flag "TrevorRageIsOverridden" and sets the voice effect to `voiceEffect`
--- @param voiceEffect string
function AUDIO.OVERRIDE_TREVOR_RAGE(voiceEffect) end
function AUDIO.RESET_TREVOR_RAGE() end
--- @param ped number
--- @param toggle boolean
function AUDIO.SET_PLAYER_ANGRY(ped, toggle) end
--- Needs another parameter [int p2]. The signature is PED::PLAY_PAIN(Ped ped, int painID, int p1, int p2);
--- 
--- Last 2 parameters always seem to be 0.
--- 
--- EX: Function.Call(Hash.PLAY_PAIN, TestPed, 6, 0, 0);
--- 
--- Known Pain IDs
--- ________________________
--- 
--- 1 - Doesn't seem to do anything. Does NOT crash the game like previously said. (Latest patch)
--- 6 - Scream (Short)
--- 7 - Scared Scream (Kinda Long)
--- 8 - On Fire
--- 
--- @param ped number
--- @param painID number
--- @param p1 number
--- @param p3 number
function AUDIO.PLAY_PAIN(ped, painID, p1, p3) end
function AUDIO.RELEASE_WEAPON_AUDIO() end
--- mode can be any of these:
--- SLOWMO_T1_TRAILER_SMASH
--- SLOWMO_T1_RAYFIRE_EXPLOSION
--- SLOWMO_PROLOGUE_VAULT
--- NIGEL_02_SLOWMO_SETTING
--- JSH_EXIT_TUNNEL_SLOWMO
--- SLOWMO_BIG_SCORE_JUMP
--- SLOWMO_FIB4_TRUCK_SMASH
--- SLOWMO_EXTREME_04
--- SLOW_MO_METH_HOUSE_RAYFIRE
--- BARRY_02_SLOWMO
--- BARRY_01_SLOWMO
--- @param mode string
function AUDIO.ACTIVATE_AUDIO_SLOWMO_MODE(mode) end
--- see ACTIVATE_AUDIO_SLOWMO_MODE for modes
--- @param mode string
function AUDIO.DEACTIVATE_AUDIO_SLOWMO_MODE(mode) end
--- Audio List
--- gtaforums.com/topic/795622-audio-for-mods/
--- 
--- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/FTeAj4yZ
--- @param ped number
--- @param name string
function AUDIO.SET_AMBIENT_VOICE_NAME(ped, name) end
--- @param ped number
--- @param hash number
function AUDIO.SET_AMBIENT_VOICE_NAME_HASH(ped, hash) end
--- @param ped number
--- @return number
function AUDIO.GET_AMBIENT_VOICE_NAME_HASH(ped) end
--- Assigns some ambient voice to the ped.
--- @param ped number
function AUDIO.SET_PED_VOICE_FULL(ped) end
--- @param ped number
--- @param p1 number
--- @param voiceGroup number
function AUDIO.SET_PED_RACE_AND_VOICE_GROUP(ped, p1, voiceGroup) end
--- From the scripts:
--- 
--- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("PAIGE_PVG"));
--- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("TALINA_PVG"));
--- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_BLACK_PVG"));
--- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_WHITE_PVG"));
--- @param ped number
--- @param voiceGroupHash number
function AUDIO.SET_PED_VOICE_GROUP(ped, voiceGroupHash) end
--- Dat151RelType == 29
--- @param ped number
--- @param voiceGroupHash number
function AUDIO.SET_PED_VOICE_GROUP_FROM_RACE_TO_PVG(ped, voiceGroupHash) end
--- BOOL p1: 0 = Female; 1 = Male
--- @param ped number
--- @param p1 boolean
function AUDIO.SET_PED_GENDER(ped, p1) end
--- @param ped number
function AUDIO.STOP_CURRENT_PLAYING_SPEECH(ped) end
--- @param ped number
function AUDIO.STOP_CURRENT_PLAYING_AMBIENT_SPEECH(ped) end
--- @param ped number
--- @return boolean
function AUDIO.IS_AMBIENT_SPEECH_PLAYING(ped) end
--- @param p0 number
--- @return boolean
function AUDIO.IS_SCRIPTED_SPEECH_PLAYING(p0) end
--- @param ped number
--- @return boolean
function AUDIO.IS_ANY_SPEECH_PLAYING(ped) end
--- @return boolean
function AUDIO.IS_ANY_POSITIONAL_SPEECH_PLAYING() end
--- Checks if the ped can play the speech or has the speech file, p2 is usually false.
--- @param ped number
--- @param speechName string
--- @param p2 boolean
--- @return boolean
function AUDIO.DOES_CONTEXT_EXIST_FOR_THIS_PED(ped, speechName, p2) end
--- @param ped number
--- @return boolean
function AUDIO.IS_PED_IN_CURRENT_CONVERSATION(ped) end
--- Sets the ped drunk sounds.  Only works with PLAYER_PED_ID
--- 
--- ====================================================
--- 
--- As mentioned above, this only sets the drunk sound to ped/player.
--- 
--- To give the Ped a drunk effect with drunk walking animation try using SET_PED_MOVEMENT_CLIPSET
--- 
--- Below is an example
--- 
--- if (!Function.Call<bool>(Hash.HAS_ANIM_SET_LOADED, "move_m@drunk@verydrunk"))
--- {
--- Function.Call(Hash.REQUEST_ANIM_SET, "move_m@drunk@verydrunk");
--- }
--- Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, Ped.Handle, "move_m@drunk@verydrunk", 0x3E800000);
--- 
--- 
--- 
--- And to stop the effect use
--- RESET_PED_MOVEMENT_CLIPSET
--- @param ped number
--- @param toggle boolean
function AUDIO.SET_PED_IS_DRUNK(ped, toggle) end
--- Plays sounds from a ped with chop model. For example it used to play bark or sniff sounds. p1 is always 3 or 4294967295 in decompiled scripts. By a quick disassembling I can assume that this arg is unused.
--- This native is works only when you call it on the ped with right model (ac_chop only ?)
--- Speech Name can be: CHOP_SNIFF_SEQ CHOP_WHINE CHOP_LICKS_MOUTH CHOP_PANT bark GROWL SNARL BARK_SEQ
--- @param pedHandle number
--- @param p1 number
--- @param speechName string
function AUDIO.PLAY_ANIMAL_VOCALIZATION(pedHandle, p1, speechName) end
--- @param pedHandle number
--- @return boolean
function AUDIO.IS_ANIMAL_VOCALIZATION_PLAYING(pedHandle) end
--- mood can be 0 or 1 (it's not a boolean value!). Effects audio of the animal.
--- @param animal number
--- @param mood number
function AUDIO.SET_ANIMAL_MOOD(animal, mood) end
--- @return boolean
function AUDIO.IS_MOBILE_PHONE_RADIO_ACTIVE() end
--- @param state boolean
function AUDIO.SET_MOBILE_PHONE_RADIO_STATE(state) end
--- Returns 255 (radio off index) if the function fails.
--- @return number
function AUDIO.GET_PLAYER_RADIO_STATION_INDEX() end
--- Returns active radio station name
--- @return string
function AUDIO.GET_PLAYER_RADIO_STATION_NAME() end
--- Converts radio station index to string. Use HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION to get the user-readable text.
--- @param radioStation number
--- @return string
function AUDIO.GET_RADIO_STATION_NAME(radioStation) end
--- @return number
function AUDIO.GET_PLAYER_RADIO_STATION_GENRE() end
--- @return boolean
function AUDIO.IS_RADIO_RETUNING() end
--- @return boolean
function AUDIO.IS_RADIO_FADED_OUT() end
--- Tune Forward...
function AUDIO.SET_RADIO_RETUNE_UP() end
--- Tune Backwards...
function AUDIO.SET_RADIO_RETUNE_DOWN() end
--- List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k
--- An older list including hidden radio stations: https://pastebin.com/Kj9t38KF
--- @param stationName string
function AUDIO.SET_RADIO_TO_STATION_NAME(stationName) end
--- List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k
--- An older list including hidden radio stations: https://pastebin.com/Kj9t38KF
--- @param vehicle number
--- @param radioStation string
function AUDIO.SET_VEH_RADIO_STATION(vehicle, radioStation) end
--- @param vehicle number
function AUDIO.SET_VEH_HAS_NORMAL_RADIO(vehicle) end
--- @param vehicle number
--- @return boolean
function AUDIO.IS_VEHICLE_RADIO_ON(vehicle) end
--- @param vehicle number
function AUDIO.SET_VEH_FORCED_RADIO_THIS_FRAME(vehicle) end
--- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json
--- @param emitterName string
--- @param radioStation string
--- @param p2 number
function AUDIO.SET_EMITTER_RADIO_STATION(emitterName, radioStation, p2) end
--- Example:
--- AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_01_STAGE", false);    AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_02_MAIN_ROOM", false);    AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_03_BACK_ROOM", false);
--- 
--- This turns off surrounding sounds not connected directly to peds.
--- 
--- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json
--- @param emitterName string
--- @param toggle boolean
function AUDIO.SET_STATIC_EMITTER_ENABLED(emitterName, toggle) end
--- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json
--- @param emitterName string
--- @param entity number
function AUDIO.LINK_STATIC_EMITTER_TO_ENTITY(emitterName, entity) end
--- Sets radio station by index.
--- @param radioStation number
function AUDIO.SET_RADIO_TO_STATION_INDEX(radioStation) end
--- @param active boolean
function AUDIO.SET_FRONTEND_RADIO_ACTIVE(active) end
--- "news" that play on the radio after you've done something in story mode(?)
--- @param newsStory number
function AUDIO.UNLOCK_MISSION_NEWS_STORY(newsStory) end
--- @param newsStory number
--- @return boolean
function AUDIO.IS_MISSION_NEWS_STORY_UNLOCKED(newsStory) end
--- @return number
function AUDIO.GET_AUDIBLE_MUSIC_TRACK_TEXT_ID() end
--- @param play boolean
function AUDIO.PLAY_END_CREDITS_MUSIC(play) end
function AUDIO.SKIP_RADIO_FORWARD() end
--- @param radioStation string
function AUDIO.FREEZE_RADIO_STATION(radioStation) end
--- @param radioStation string
function AUDIO.UNFREEZE_RADIO_STATION(radioStation) end
--- @param toggle boolean
function AUDIO.SET_RADIO_AUTO_UNFREEZE(toggle) end
--- @param radioStation string
function AUDIO.SET_INITIAL_PLAYER_STATION(radioStation) end
--- @param toggle boolean
function AUDIO.SET_USER_RADIO_CONTROL_ENABLED(toggle) end
--- Only found this one in the decompiled scripts:
--- 
--- AUDIO::SET_RADIO_TRACK("RADIO_03_HIPHOP_NEW", "ARM1_RADIO_STARTS");
--- 
--- @param radioStation string
--- @param radioTrack string
function AUDIO.SET_RADIO_TRACK(radioStation, radioTrack) end
--- @param radioStationName string
--- @param mixName string
--- @param p2 number
function AUDIO.SET_RADIO_TRACK_WITH_START_OFFSET(radioStationName, mixName, p2) end
--- @param radioName string
--- @param radioTrack string
--- @param p2 string
--- @param p3 string
function AUDIO.SET_NEXT_RADIO_TRACK(radioName, radioTrack, p2, p3) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_VEHICLE_RADIO_LOUD(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function AUDIO.CAN_VEHICLE_RECEIVE_CB_RADIO(vehicle) end
--- @param toggle boolean
function AUDIO.SET_MOBILE_RADIO_ENABLED_DURING_GAMEPLAY(toggle) end
--- @return boolean
function AUDIO.DOES_PLAYER_VEH_HAVE_RADIO() end
--- @return boolean
function AUDIO.IS_PLAYER_VEH_RADIO_ENABLE() end
--- can't seem to enable radio on cop cars etc
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_VEHICLE_RADIO_ENABLED(vehicle, toggle) end
--- @param p0 number
function AUDIO.SET_POSITIONED_PLAYER_VEHICLE_RADIO_EMITTER_ENABLED(p0) end
--- Examples:
--- 
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_TREVOR", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_SAVE_MICHAEL_TREVOR", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_06_COUNTRY", "MAGDEMO2_RADIO_DINGHY", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_16_SILVERLAKE", "SEA_RACE_RADIO_PLAYLIST", 1);
--- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1);
--- @param radioStation string
--- @param trackListName string
--- @param p2 boolean
function AUDIO.SET_CUSTOM_RADIO_TRACK_LIST(radioStation, trackListName, p2) end
--- 3 calls in the b617d scripts, removed duplicate.
--- 
--- AUDIO::CLEAR_CUSTOM_RADIO_TRACK_LIST("RADIO_16_SILVERLAKE");
--- AUDIO::CLEAR_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK");
--- @param radioStation string
function AUDIO.CLEAR_CUSTOM_RADIO_TRACK_LIST(radioStation) end
--- @return number
function AUDIO.GET_NUM_UNLOCKED_RADIO_STATIONS() end
--- @param stationNameHash number
--- @return number
function AUDIO.FIND_RADIO_STATION_INDEX(stationNameHash) end
--- 6 calls in the b617d scripts, removed identical lines:
--- 
--- AUDIO::SET_RADIO_STATION_MUSIC_ONLY("RADIO_01_CLASS_ROCK", 1);
--- AUDIO::SET_RADIO_STATION_MUSIC_ONLY(AUDIO::GET_RADIO_STATION_NAME(10), 0);
--- AUDIO::SET_RADIO_STATION_MUSIC_ONLY(AUDIO::GET_RADIO_STATION_NAME(10), 1);
--- @param radioStation string
--- @param toggle boolean
function AUDIO.SET_RADIO_STATION_MUSIC_ONLY(radioStation, toggle) end
--- @param fadeTime number
function AUDIO.SET_RADIO_FRONTEND_FADE_TIME(fadeTime) end
--- AUDIO::UNLOCK_RADIO_STATION_TRACK_LIST("RADIO_16_SILVERLAKE", "MIRRORPARK_LOCKED");
--- @param radioStation string
--- @param trackListName string
function AUDIO.UNLOCK_RADIO_STATION_TRACK_LIST(radioStation, trackListName) end
--- @param radioStation string
--- @param trackListName string
function AUDIO.LOCK_RADIO_STATION_TRACK_LIST(radioStation, trackListName) end
--- Just a nullsub (i.e. does absolutely nothing) since build 1604.
--- @param enableMixes boolean
function AUDIO.UPDATE_UNLOCKABLE_DJ_RADIO_TRACKS(enableMixes) end
--- Disables the radio station (hides it from the radio wheel).
--- @param radioStationName string
--- @param toggle boolean
function AUDIO.LOCK_RADIO_STATION(radioStationName, toggle) end
--- Doesn't have an effect in Story Mode.
--- @param radioStation string
--- @param toggle boolean
function AUDIO.SET_RADIO_STATION_AS_FAVOURITE(radioStation, toggle) end
--- @param radioStation string
--- @return boolean
function AUDIO.IS_RADIO_STATION_FAVOURITED(radioStation) end
--- @param out1 any
--- @param out2 any
--- @param out3 any
--- @return boolean
function AUDIO.GET_NEXT_AUDIBLE_BEAT(out1, out2, out3) end
--- Changes start time of a tracklist (milliseconds)
--- R* uses a random int: MISC::GET_RANDOM_INT_IN_RANGE(0, 13) * 60000)
--- @param radioStation string
--- @param trackListName string
--- @param milliseconds number
function AUDIO.FORCE_MUSIC_TRACK_LIST(radioStation, trackListName, milliseconds) end
--- @param radioStationName string
--- @return number
function AUDIO.GET_CURRENT_TRACK_PLAY_TIME(radioStationName) end
--- @param radioStationName string
--- @return number
function AUDIO.GET_CURRENT_TRACK_SOUND_NAME(radioStationName) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_VEHICLE_MISSILE_WARNING_ENABLED(vehicle, toggle) end
--- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json
--- @param zoneName string
--- @param p1 boolean
--- @param p2 boolean
function AUDIO.SET_AMBIENT_ZONE_STATE(zoneName, p1, p2) end
--- This function also has a p2, unknown. Signature AUDIO::CLEAR_AMBIENT_ZONE_STATE(const char* zoneName, bool p1, Any p2);
--- 
--- Still needs more research.
--- 
--- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json
--- @param zoneName string
--- @param p1 boolean
function AUDIO.CLEAR_AMBIENT_ZONE_STATE(zoneName, p1) end
--- @param ambientZone string
--- @param p1 boolean
--- @param p2 boolean
function AUDIO.SET_AMBIENT_ZONE_LIST_STATE(ambientZone, p1, p2) end
--- @param ambientZone string
--- @param p1 boolean
function AUDIO.CLEAR_AMBIENT_ZONE_LIST_STATE(ambientZone, p1) end
--- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json
--- @param ambientZone string
--- @param p1 boolean
--- @param p2 boolean
function AUDIO.SET_AMBIENT_ZONE_STATE_PERSISTENT(ambientZone, p1, p2) end
--- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json
--- @param ambientZone string
--- @param p1 boolean
--- @param p2 boolean
function AUDIO.SET_AMBIENT_ZONE_LIST_STATE_PERSISTENT(ambientZone, p1, p2) end
--- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json
--- @param ambientZone string
--- @return boolean
function AUDIO.IS_AMBIENT_ZONE_ENABLED(ambientZone) end
function AUDIO.REFRESH_CLOSEST_OCEAN_SHORELINE() end
--- All occurrences found in b617d, sorted alphabetically and identical lines removed:
--- 
--- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_AK");
--- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_CUSTOM");
--- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_TOOTHLESS");
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param name string
function AUDIO.SET_CUTSCENE_AUDIO_OVERRIDE(name) end
--- @param variableName string
--- @param value number
function AUDIO.SET_VARIABLE_ON_SYNCH_SCENE_AUDIO(variableName, value) end
--- Plays the given police radio message.
--- 
--- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/GBnsQ5hr
--- Full list of police report names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/policeReportNames.json
--- @param name string
--- @param p1 number
--- @return number
function AUDIO.PLAY_POLICE_REPORT(name, p1) end
function AUDIO.CANCEL_ALL_POLICE_REPORTS() end
--- Plays the siren sound of a vehicle which is otherwise activated when fastly double-pressing the horn key.
--- Only works on vehicles with a police siren.
--- @param vehicle number
function AUDIO.BLIP_SIREN(vehicle) end
--- Overrides the vehicle's horn hash.
--- When changing this hash on a vehicle, it will not return the 'overwritten' hash. It will still always return the default horn hash (same as GET_VEHICLE_DEFAULT_HORN)
--- 
--- vehicle - the vehicle whose horn should be overwritten
--- mute - p1 seems to be an option for muting the horn
--- p2 - maybe a horn id, since the function AUDIO::GET_VEHICLE_DEFAULT_HORN(veh) exists?
--- @param vehicle number
--- @param override boolean
--- @param hornHash number
function AUDIO.OVERRIDE_VEH_HORN(vehicle, override, hornHash) end
--- Checks whether the horn of a vehicle is currently played.
--- @param vehicle number
--- @return boolean
function AUDIO.IS_HORN_ACTIVE(vehicle) end
--- Makes pedestrians sound their horn longer, faster and more agressive when they use their horn.
--- @param toggle boolean
function AUDIO.SET_AGGRESSIVE_HORNS(toggle) end
--- Does nothing (it's a nullsub).
--- @param p0 boolean
function AUDIO.SET_RADIO_POSITION_AUDIO_MUTE(p0) end
--- SET_VEHICLE_CONVERSATIONS_PERSIST?
--- @param p0 boolean
--- @param p1 boolean
function AUDIO.SET_VEHICLE_CONVERSATIONS_PERSIST(p0, p1) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 boolean
function AUDIO.SET_VEHICLE_CONVERSATIONS_PERSIST_NEW(p0, p1, p2) end
--- @return boolean
function AUDIO.IS_STREAM_PLAYING() end
--- @return number
function AUDIO.GET_STREAM_PLAY_TIME() end
--- Example:
--- AUDIO::LOAD_STREAM("CAR_STEAL_1_PASSBY", "CAR_STEAL_1_SOUNDSET");
--- 
--- All found occurrences in the b678d decompiled scripts: https://pastebin.com/3rma6w5w
--- 
--- Stream names often ends with "_MASTER", "_SMALL" or "_STREAM". Also "_IN", "_OUT" and numbers.
--- 
--- soundSet is often set to 0 in the scripts. These are common to end the soundSets: "_SOUNDS", "_SOUNDSET" and numbers.
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param streamName string
--- @param soundSet string
--- @return boolean
function AUDIO.LOAD_STREAM(streamName, soundSet) end
--- Example:
--- AUDIO::LOAD_STREAM_WITH_START_OFFSET("STASH_TOXIN_STREAM", 2400, "FBI_05_SOUNDS");
--- 
--- Only called a few times in the scripts.
--- 
--- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json
--- @param streamName string
--- @param startOffset number
--- @param soundSet string
--- @return boolean
function AUDIO.LOAD_STREAM_WITH_START_OFFSET(streamName, startOffset, soundSet) end
--- @param ped number
function AUDIO.PLAY_STREAM_FROM_PED(ped) end
--- @param vehicle number
function AUDIO.PLAY_STREAM_FROM_VEHICLE(vehicle) end
--- Used with AUDIO::LOAD_STREAM
--- 
--- Example from finale_heist2b.c4:
--- TASK::TASK_SYNCHRONIZED_SCENE(l_4C8[2/*14*/], l_4C8[2/*14*/]._f7, l_30A, "push_out_vault_l", 4.0, -1.5, 5, 713, 4.0, 0);
--- PED::SET_SYNCHRONIZED_SCENE_PHASE(l_4C8[2/*14*/]._f7, 0.0);
--- PED::FORCE_PED_AI_AND_ANIMATION_UPDATE(l_4C8[2/*14*/], 0, 0);
--- PED::SET_PED_COMBAT_ATTRIBUTES(l_4C8[2/*14*/], 38, 1);
--- PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_4C8[2/*14*/], 1);
--- if (AUDIO::LOAD_STREAM("Gold_Cart_Push_Anim_01", "BIG_SCORE_3B_SOUNDS")) {
--- AUDIO::PLAY_STREAM_FROM_OBJECT(l_36F[0/*1*/]);
--- }
--- @param object number
function AUDIO.PLAY_STREAM_FROM_OBJECT(object) end
function AUDIO.PLAY_STREAM_FRONTEND() end
--- @param x number
--- @param y number
--- @param z number
function AUDIO.PLAY_STREAM_FROM_POSITION(x, y, z) end
function AUDIO.STOP_STREAM() end
--- @param ped number
--- @param shaking boolean
function AUDIO.STOP_PED_SPEAKING(ped, shaking) end
--- @param ped number
--- @param p1 boolean
--- @param p2 boolean
function AUDIO.BLOCK_ALL_SPEECH_FROM_PED(ped, p1, p2) end
--- @param ped number
--- @param p1 boolean
function AUDIO.STOP_PED_SPEAKING_SYNCED(ped, p1) end
--- @param ped number
--- @param toggle boolean
function AUDIO.DISABLE_PED_PAIN_AUDIO(ped, toggle) end
--- Common in the scripts:
--- AUDIO::IS_AMBIENT_SPEECH_DISABLED(PLAYER::PLAYER_PED_ID());
--- @param ped number
--- @return boolean
function AUDIO.IS_AMBIENT_SPEECH_DISABLED(ped) end
--- @param p0 string
--- @param p1 number
function AUDIO.BLOCK_SPEECH_CONTEXT_GROUP(p0, p1) end
--- @param p0 string
function AUDIO.UNBLOCK_SPEECH_CONTEXT_GROUP(p0) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_SIREN_WITH_NO_DRIVER(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_SIREN_BYPASS_MP_DRIVER_CHECK(vehicle, toggle) end
--- @param vehicle number
function AUDIO.TRIGGER_SIREN_AUDIO(vehicle) end
--- @param vehicle number
function AUDIO.SET_HORN_PERMANENTLY_ON(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_HORN_ENABLED(vehicle, toggle) end
--- @param vehicle number
--- @param p1 number
function AUDIO.SET_AUDIO_VEHICLE_PRIORITY(vehicle, p1) end
--- @param vehicle number
--- @param time number
function AUDIO.SET_HORN_PERMANENTLY_ON_TIME(vehicle, time) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.USE_SIREN_AS_HORN(vehicle, toggle) end
--- This native sets the audio of the specified vehicle to the audioName (p1).
--- 
--- Use the audioNameHash found in vehicles.meta
--- 
--- Example:
--- _SET_VEHICLE_AUDIO(veh, "ADDER");
--- The selected vehicle will now have the audio of the Adder.
--- @param vehicle number
--- @param audioName string
function AUDIO.FORCE_USE_AUDIO_GAME_OBJECT(vehicle, audioName) end
--- @param vehicleModel number
function AUDIO.PRELOAD_VEHICLE_AUDIO_BANK(vehicleModel) end
--- @param vehicle number
--- @param p1 string
--- @param p2 string
function AUDIO.SET_VEHICLE_STARTUP_REV_SOUND(vehicle, p1, p2) end
--- @param vehicle number
function AUDIO.RESET_VEHICLE_STARTUP_REV_SOUND(vehicle) end
--- @param p0 number
--- @param p1 number
function AUDIO.SET_VEHICLE_FORCE_REVERSE_WARNING(p0, p1) end
--- @param vehicle number
--- @return boolean
function AUDIO.IS_VEHICLE_AUDIBLY_DAMAGED(vehicle) end
--- @param vehicle number
--- @param damageFactor number
function AUDIO.SET_VEHICLE_AUDIO_ENGINE_DAMAGE_FACTOR(vehicle, damageFactor) end
--- intensity: 0.0f - 1.0f, only used once with 1.0f in R* Scripts (nigel2)
--- Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values
--- @param vehicle number
--- @param intensity number
function AUDIO.SET_VEHICLE_AUDIO_BODY_DAMAGE_FACTOR(vehicle, intensity) end
--- Called together with SET_VEHICLE_TYRES_CAN_BURST
--- @param vehicle number
--- @param force boolean
function AUDIO._FORCE_VEHICLE_ENGINE_SYNTH(vehicle, force) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.ENABLE_VEHICLE_FANBELT_DAMAGE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.ENABLE_VEHICLE_EXHAUST_POPS(vehicle, toggle) end
--- SET_VEHICLE_BOOST_ACTIVE(vehicle, 1, 0);
--- SET_VEHICLE_BOOST_ACTIVE(vehicle, 0, 0);
--- 
--- Will give a boost-soundeffect.
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_VEHICLE_BOOST_ACTIVE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function AUDIO.SET_PLAYER_VEHICLE_ALARM_AUDIO_ACTIVE(vehicle, toggle) end
--- @param doorHash number
--- @param toggle boolean
function AUDIO.SET_SCRIPT_UPDATE_DOOR_AUDIO(doorHash, toggle) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
function AUDIO.PLAY_VEHICLE_DOOR_OPEN_SOUND(vehicle, doorId) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
function AUDIO.PLAY_VEHICLE_DOOR_CLOSE_SOUND(vehicle, doorId) end
--- Works for planes only.
--- @param vehicle number
--- @param toggle boolean
function AUDIO.ENABLE_STALL_WARNING_SOUNDS(vehicle, toggle) end
--- @param vehicle number
--- @param enable boolean
function AUDIO._ENABLE_DRAG_RACE_STATIONARY_WARNING_SOUNDS(vehicle, enable) end
--- Hardcoded to return 1
--- @return boolean
function AUDIO.IS_GAME_IN_CONTROL_OF_MUSIC() end
--- @param active boolean
function AUDIO.SET_GPS_ACTIVE(active) end
--- Called 38 times in the scripts. There are 5 different audioNames used.
--- One unknown removed below.
--- 
--- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("DEAD");
--- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("FRANKLIN_BIG_01");
--- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("GENERIC_FAILED");
--- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("TREVOR_SMALL_01");
--- @param audioName string
function AUDIO.PLAY_MISSION_COMPLETE_AUDIO(audioName) end
--- @return boolean
function AUDIO.IS_MISSION_COMPLETE_PLAYING() end
--- @return boolean
function AUDIO.IS_MISSION_COMPLETE_READY_FOR_UI() end
--- @param toggle boolean
function AUDIO.BLOCK_DEATH_JINGLE(toggle) end
--- Used to prepare a scene where the surrounding sound is muted or a bit changed. This does not play any sound.
--- 
--- List of all usable scene names found in b617d. Sorted alphabetically and identical names removed: https://pastebin.com/MtM9N9CC
--- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json
--- @param scene string
--- @return boolean
function AUDIO.START_AUDIO_SCENE(scene) end
--- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json
--- @param scene string
function AUDIO.STOP_AUDIO_SCENE(scene) end
--- ??
function AUDIO.STOP_AUDIO_SCENES() end
--- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json
--- @param scene string
--- @return boolean
function AUDIO.IS_AUDIO_SCENE_ACTIVE(scene) end
--- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json
--- @param scene string
--- @param variable string
--- @param value number
function AUDIO.SET_AUDIO_SCENE_VARIABLE(scene, variable, value) end
--- @param time number
function AUDIO.SET_AUDIO_SCRIPT_CLEANUP_TIME(time) end
--- All found occurrences in b678d:
--- https://pastebin.com/ceu67jz8
--- @param entity number
--- @param groupName string
--- @param p2 number
function AUDIO.ADD_ENTITY_TO_AUDIO_MIX_GROUP(entity, groupName, p2) end
--- @param entity number
--- @param p1 number
function AUDIO.REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(entity, p1) end
--- @return boolean
function AUDIO.AUDIO_IS_MUSIC_PLAYING() end
--- This is an alias of AUDIO_IS_MUSIC_PLAYING.
--- @return boolean
function AUDIO.AUDIO_IS_SCRIPTED_MUSIC_PLAYING() end
--- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P
--- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json
--- @param eventName string
--- @return boolean
function AUDIO.PREPARE_MUSIC_EVENT(eventName) end
--- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P
--- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json
--- @param eventName string
--- @return boolean
function AUDIO.CANCEL_MUSIC_EVENT(eventName) end
--- List of all usable event names found in b617d used with this native. Sorted alphabetically and identical names removed: https://pastebin.com/RzDFmB1W
--- 
--- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P
--- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json
--- @param eventName string
--- @return boolean
function AUDIO.TRIGGER_MUSIC_EVENT(eventName) end
--- @return boolean
function AUDIO.IS_MUSIC_ONESHOT_PLAYING() end
--- @return number
function AUDIO.GET_MUSIC_PLAYTIME() end
--- @param p0 number
function AUDIO.SET_GLOBAL_RADIO_SIGNAL_LEVEL(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function AUDIO.RECORD_BROKEN_GLASS(x, y, z, radius) end
function AUDIO.CLEAR_ALL_BROKEN_GLASS() end
--- @param p0 boolean
--- @param p1 number
function AUDIO.SCRIPT_OVERRIDES_WIND_ELEVATION(p0, p1) end
--- @param p0 number
--- @param p1 number
function AUDIO.SET_PED_WALLA_DENSITY(p0, p1) end
--- @param p0 number
--- @param p1 number
function AUDIO.SET_PED_INTERIOR_WALLA_DENSITY(p0, p1) end
function AUDIO.FORCE_PED_PANIC_WALLA() end
--- Example:
--- 
--- bool prepareAlarm = AUDIO::PREPARE_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS");
--- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json
--- @param alarmName string
--- @return boolean
function AUDIO.PREPARE_ALARM(alarmName) end
--- Example:
--- 
--- This will start the alarm at Fort Zancudo.
--- 
--- AUDIO::START_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1);
--- 
--- First parameter (char) is the name of the alarm.
--- Second parameter (bool) is unknown, it does not seem to make a difference if this one is 0 or 1.
--- 
--- ----------
--- 
--- It DOES make a difference but it has to do with the duration or something I dunno yet
--- 
--- ----------
--- 
--- Found in the b617d scripts:
--- 
--- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS", 0);
--- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER", 1);
--- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER_B", 0);
--- AUDIO::START_ALARM("BIG_SCORE_HEIST_VAULT_ALARMS", a_0);
--- AUDIO::START_ALARM("FBI_01_MORGUE_ALARMS", 1);
--- AUDIO::START_ALARM("FIB_05_BIOTECH_LAB_ALARMS", 0);
--- AUDIO::START_ALARM("JEWEL_STORE_HEIST_ALARMS", 0);
--- AUDIO::START_ALARM("PALETO_BAY_SCORE_ALARM", 1);
--- AUDIO::START_ALARM("PALETO_BAY_SCORE_CHICKEN_FACTORY_ALARM", 0);
--- AUDIO::START_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1);
--- AUDIO::START_ALARM("PORT_OF_LS_HEIST_SHIP_ALARMS", 0);
--- AUDIO::START_ALARM("PRISON_ALARMS", 0);
--- AUDIO::START_ALARM("PROLOGUE_VAULT_ALARMS", 0);
--- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json
--- @param alarmName string
--- @param p2 boolean
function AUDIO.START_ALARM(alarmName, p2) end
--- Example:
--- 
--- This will stop the alarm at Fort Zancudo.
--- 
--- AUDIO::STOP_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1);
--- 
--- First parameter (char) is the name of the alarm.
--- Second parameter (bool) has to be true (1) to have any effect.
--- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json
--- @param alarmName string
--- @param toggle boolean
function AUDIO.STOP_ALARM(alarmName, toggle) end
--- @param stop boolean
function AUDIO.STOP_ALL_ALARMS(stop) end
--- Example:
--- 
--- bool playing = AUDIO::IS_ALARM_PLAYING("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS");
--- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json
--- @param alarmName string
--- @return boolean
function AUDIO.IS_ALARM_PLAYING(alarmName) end
--- Returns hash of default vehicle horn
--- 
--- Hash is stored in audVehicleAudioEntity
--- @param vehicle number
--- @return number
function AUDIO.GET_VEHICLE_DEFAULT_HORN(vehicle) end
--- @param vehicle number
--- @return number
function AUDIO.GET_VEHICLE_DEFAULT_HORN_IGNORE_MODS(vehicle) end
--- @param ped number
function AUDIO.RESET_PED_AUDIO_FLAGS(ped) end
--- Enables/disables ped's "loud" footstep sound.
--- @param ped number
--- @param toggle boolean
function AUDIO.SET_PED_FOOTSTEPS_EVENTS_ENABLED(ped, toggle) end
--- Enables/disables ped's "quiet" footstep sound.
--- @param ped number
--- @param toggle boolean
function AUDIO.SET_PED_CLOTH_EVENTS_ENABLED(ped, toggle) end
--- Sets audio flag "OverridePlayerGroundMaterial"
--- @param hash number
--- @param toggle boolean
function AUDIO.OVERRIDE_PLAYER_GROUND_MATERIAL(hash, toggle) end
--- @param ped number
--- @param p1 boolean
--- @param hash number
function AUDIO.USE_FOOTSTEP_SCRIPT_SWEETENERS(ped, p1, hash) end
--- Sets audio flag "OverrideMicrophoneSettings"
--- @param hash number
--- @param toggle boolean
function AUDIO.OVERRIDE_MICROPHONE_SETTINGS(hash, toggle) end
function AUDIO.FREEZE_MICROPHONE() end
--- If value is set to true, and ambient siren sound will be played.
--- Appears to enable/disable an audio flag.
--- @param value boolean
function AUDIO.DISTANT_COP_CAR_SIRENS(value) end
--- @param vehicle number
--- @param p1 boolean
function AUDIO.SET_SIREN_CAN_BE_CONTROLLED_BY_AUDIO(vehicle, p1) end
function AUDIO.ENABLE_STUNT_JUMP_AUDIO() end
--- Possible flag names:
--- "ActivateSwitchWheelAudio"
--- "AllowAmbientSpeechInSlowMo"
--- "AllowCutsceneOverScreenFade"
--- "AllowForceRadioAfterRetune"
--- "AllowPainAndAmbientSpeechToPlayDuringCutscene"
--- "AllowPlayerAIOnMission"
--- "AllowPoliceScannerWhenPlayerHasNoControl"
--- "AllowRadioDuringSwitch"
--- "AllowRadioOverScreenFade"
--- "AllowScoreAndRadio"
--- "AllowScriptedSpeechInSlowMo"
--- "AvoidMissionCompleteDelay"
--- "DisableAbortConversationForDeathAndInjury"
--- "DisableAbortConversationForRagdoll"
--- "DisableBarks"
--- "DisableFlightMusic"
--- "DisableReplayScriptStreamRecording"
--- "EnableHeadsetBeep"
--- "ForceConversationInterrupt"
--- "ForceSeamlessRadioSwitch"
--- "ForceSniperAudio"
--- "FrontendRadioDisabled"
--- "HoldMissionCompleteWhenPrepared"
--- "IsDirectorModeActive"
--- "IsPlayerOnMissionForSpeech"
--- "ListenerReverbDisabled"
--- "LoadMPData"
--- "MobileRadioInGame"
--- "OnlyAllowScriptTriggerPoliceScanner"
--- "PlayMenuMusic"
--- "PoliceScannerDisabled"
--- "ScriptedConvListenerMaySpeak"
--- "SpeechDucksScore"
--- "SuppressPlayerScubaBreathing"
--- "WantedMusicDisabled"
--- "WantedMusicOnMission"
--- 
--- -------------------------------
--- No added flag names between b393d and b573d, including b573d.
--- 
--- #######################################################################
--- 
--- "IsDirectorModeActive" is an audio flag which will allow you to play speech infinitely without any pauses like in Director Mode.
--- 
--- -----------------------------------------------------------------------
--- 
--- All flag IDs and hashes:
--- 
--- ID: 00 | Hash: 0x0FED7A7F
--- ID: 01 | Hash: 0x20A7858F
--- ID: 02 | Hash: 0xA11C2259
--- ID: 03 | Hash: 0x08DE4700
--- ID: 04 | Hash: 0x989F652F
--- ID: 05 | Hash: 0x3C9E76BA
--- ID: 06 | Hash: 0xA805FEB0
--- ID: 07 | Hash: 0x4B94EA26
--- ID: 08 | Hash: 0x803ACD34
--- ID: 09 | Hash: 0x7C741226
--- ID: 10 | Hash: 0x31DB9EBD
--- ID: 11 | Hash: 0xDF386F18
--- ID: 12 | Hash: 0x669CED42
--- ID: 13 | Hash: 0x51F22743
--- ID: 14 | Hash: 0x2052B35C
--- ID: 15 | Hash: 0x071472DC
--- ID: 16 | Hash: 0xF9928BCC
--- ID: 17 | Hash: 0x7ADBDD48
--- ID: 18 | Hash: 0xA959BA1A
--- ID: 19 | Hash: 0xBBE89B60
--- ID: 20 | Hash: 0x87A08871
--- ID: 21 | Hash: 0xED1057CE
--- ID: 22 | Hash: 0x1584AD7A
--- ID: 23 | Hash: 0x8582CFCB
--- ID: 24 | Hash: 0x7E5E2FB0
--- ID: 25 | Hash: 0xAE4F72DB
--- ID: 26 | Hash: 0x5D16D1FA
--- ID: 27 | Hash: 0x06B2F4B8
--- ID: 28 | Hash: 0x5D4CDC96
--- ID: 29 | Hash: 0x8B5A48BA
--- ID: 30 | Hash: 0x98FBD539
--- ID: 31 | Hash: 0xD8CB0473
--- ID: 32 | Hash: 0x5CBB4874
--- ID: 33 | Hash: 0x2E9F93A9
--- ID: 34 | Hash: 0xD93BEA86
--- ID: 35 | Hash: 0x92109B7D
--- ID: 36 | Hash: 0xB7EC9E4D
--- ID: 37 | Hash: 0xCABDBB1D
--- ID: 38 | Hash: 0xB3FD4A52
--- ID: 39 | Hash: 0x370D94E5
--- ID: 40 | Hash: 0xA0F7938F
--- ID: 41 | Hash: 0xCBE1CE81
--- ID: 42 | Hash: 0xC27F1271
--- ID: 43 | Hash: 0x9E3258EB
--- ID: 44 | Hash: 0x551CDA5B
--- ID: 45 | Hash: 0xCB6D663C
--- ID: 46 | Hash: 0x7DACE87F
--- ID: 47 | Hash: 0xF9DE416F
--- ID: 48 | Hash: 0x882E6E9E
--- ID: 49 | Hash: 0x16B447E7
--- ID: 50 | Hash: 0xBD867739
--- ID: 51 | Hash: 0xA3A58604
--- ID: 52 | Hash: 0x7E046BBC
--- ID: 53 | Hash: 0xD95FDB98
--- ID: 54 | Hash: 0x5842C0ED
--- ID: 55 | Hash: 0x285FECC6
--- ID: 56 | Hash: 0x9351AC43
--- ID: 57 | Hash: 0x50032E75
--- ID: 58 | Hash: 0xAE6D0D59
--- ID: 59 | Hash: 0xD6351785
--- ID: 60 | Hash: 0xD25D71BC
--- ID: 61 | Hash: 0x1F7F6423
--- ID: 62 | Hash: 0xE24C3AA6
--- ID: 63 | Hash: 0xBFFDD2B7
--- @param flagName string
--- @param toggle boolean
function AUDIO.SET_AUDIO_FLAG(flagName, toggle) end
--- p1 is always 0 in the scripts
--- @param audioEvent string
--- @param p1 number
--- @return boolean
function AUDIO.PREPARE_SYNCHRONIZED_AUDIO_EVENT(audioEvent, p1) end
--- @param sceneID number
--- @param audioEvent string
--- @return boolean
function AUDIO.PREPARE_SYNCHRONIZED_AUDIO_EVENT_FOR_SCENE(sceneID, audioEvent) end
--- @param sceneID number
--- @return boolean
function AUDIO.PLAY_SYNCHRONIZED_AUDIO_EVENT(sceneID) end
--- @param sceneID number
--- @return boolean
function AUDIO.STOP_SYNCHRONIZED_AUDIO_EVENT(sceneID) end
--- @param audioEvent string
--- @param x number
--- @param y number
--- @param z number
function AUDIO.INIT_SYNCH_SCENE_AUDIO_WITH_POSITION(audioEvent, x, y, z) end
--- @param audioEvent string
--- @param entity number
function AUDIO.INIT_SYNCH_SCENE_AUDIO_WITH_ENTITY(audioEvent, entity) end
--- Needs to be called every frame.
--- Audio mode to apply this frame: https://alloc8or.re/gta5/doc/enums/audSpecialEffectMode.txt
--- @param mode number
function AUDIO.SET_AUDIO_SPECIAL_EFFECT_MODE(mode) end
--- Found in the b617d scripts, duplicates removed:
--- 
--- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN", "V_CARSHOWROOM_PS_WINDOW_BROKEN");
--- 
--- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_CIA_PS_WINDOW_UNBROKEN", "V_CIA_PS_WINDOW_BROKEN");
--- 
--- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_DLC_HEIST_APARTMENT_DOOR_CLOSED", "V_DLC_HEIST_APARTMENT_DOOR_OPEN");
--- 
--- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_FINALEBANK_PS_VAULT_INTACT", "V_FINALEBANK_PS_VAULT_BLOWN");
--- 
--- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_MICHAEL_PS_BATHROOM_WITH_WINDOW", "V_MICHAEL_PS_BATHROOM_WITHOUT_WINDOW");
--- @param p0 string
--- @param p1 string
function AUDIO.SET_PORTAL_SETTINGS_OVERRIDE(p0, p1) end
--- Found in the b617d scripts, duplicates removed:
--- 
--- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN");
--- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CIA_PS_WINDOW_UNBROKEN");
--- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_DLC_HEIST_APARTMENT_DOOR_CLOSED");
--- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_FINALEBANK_PS_VAULT_INTACT");
--- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_MICHAEL_PS_BATHROOM_WITH_WINDOW");
--- @param p0 string
function AUDIO.REMOVE_PORTAL_SETTINGS_OVERRIDE(p0) end
--- STOP_S[MOKE_GRENADE_EXPLOSION_SOUNDS]?
function AUDIO.STOP_SMOKE_GRENADE_EXPLOSION_SOUNDS() end
--- @return number
function AUDIO.GET_MUSIC_VOL_SLIDER() end
--- @param ped number
function AUDIO.REQUEST_TENNIS_BANKS(ped) end
function AUDIO.UNREQUEST_TENNIS_BANKS() end
--- @param p0 boolean
function AUDIO.SET_SKIP_MINIGUN_SPIN_UP_AUDIO(p0) end
function AUDIO.STOP_CUTSCENE_AUDIO() end
--- @return boolean
function AUDIO.HAS_LOADED_MP_DATA_SET() end
--- @return boolean
function AUDIO.HAS_LOADED_SP_DATA_SET() end
--- @param vehicle number
--- @return number
function AUDIO.GET_VEHICLE_HORN_SOUND_INDEX(vehicle) end
--- @param vehicle number
--- @param value number
function AUDIO.SET_VEHICLE_HORN_SOUND_INDEX(vehicle, value) end

BRAIN = {}

--- BRAIN::ADD_SCRIPT_TO_RANDOM_PED("pb_prostitute", ${s_f_y_hooker_01}, 100, 0);
--- 
--- - Nacorpio
--- 
--- -----
--- 
--- Hardcoded to not work in Multiplayer.
--- @param name string
--- @param model number
--- @param p2 number
--- @param p3 number
function BRAIN.ADD_SCRIPT_TO_RANDOM_PED(name, model, p2, p3) end
--- Registers a script for any object with a specific model hash.
--- 
--- BRAIN::REGISTER_OBJECT_SCRIPT_BRAIN("ob_telescope", ${prop_telescope_01}, 100, 4.0, -1, 9);
--- 
--- - Nacorpio
--- @param scriptName string
--- @param modelHash number
--- @param p2 number
--- @param activationRange number
--- @param p4 number
--- @param p5 number
function BRAIN.REGISTER_OBJECT_SCRIPT_BRAIN(scriptName, modelHash, p2, activationRange, p4, p5) end
--- @param object number
--- @return boolean
function BRAIN.IS_OBJECT_WITHIN_BRAIN_ACTIVATION_RANGE(object) end
--- @param scriptName string
--- @param activationRange number
--- @param p2 number
function BRAIN.REGISTER_WORLD_POINT_SCRIPT_BRAIN(scriptName, activationRange, p2) end
--- Gets whether the world point the calling script is registered to is within desired range of the player.
--- @return boolean
function BRAIN.IS_WORLD_POINT_WITHIN_BRAIN_ACTIVATION_RANGE() end
--- @param brainSet number
function BRAIN.ENABLE_SCRIPT_BRAIN_SET(brainSet) end
--- @param brainSet number
function BRAIN.DISABLE_SCRIPT_BRAIN_SET(brainSet) end
function BRAIN.REACTIVATE_ALL_WORLD_BRAINS_THAT_ARE_WAITING_TILL_OUT_OF_RANGE() end
function BRAIN.REACTIVATE_ALL_OBJECT_BRAINS_THAT_ARE_WAITING_TILL_OUT_OF_RANGE() end
--- Possible values:
--- 
--- act_cinema
--- am_mp_carwash_launch
--- am_mp_carwash_control
--- am_mp_property_ext
--- chop
--- fairgroundHub
--- launcher_BasejumpHeli
--- launcher_BasejumpPack
--- launcher_CarWash
--- launcher_golf
--- launcher_Hunting_Ambient
--- launcher_MrsPhilips
--- launcher_OffroadRacing
--- launcher_pilotschool
--- launcher_Racing
--- launcher_rampage
--- launcher_rampage
--- launcher_range
--- launcher_stunts
--- launcher_stunts
--- launcher_tennis
--- launcher_Tonya
--- launcher_Triathlon
--- launcher_Yoga
--- ob_mp_bed_low
--- ob_mp_bed_med
--- @param scriptName string
function BRAIN.REACTIVATE_NAMED_WORLD_BRAINS_WAITING_TILL_OUT_OF_RANGE(scriptName) end
--- Looks like a cousin of above function _6D6840CEE8845831 as it was found among them. Must be similar
--- 
--- Here are possible values of argument -
--- 
--- "ob_tv"
--- "launcher_Darts"
--- @param scriptName string
function BRAIN.REACTIVATE_NAMED_OBJECT_BRAINS_WAITING_TILL_OUT_OF_RANGE(scriptName) end

CAM = {}

--- ease - smooth transition between the camera's positions
--- easeTime - Time in milliseconds for the transition to happen
--- 
--- If you have created a script (rendering) camera, and want to go back to the
--- character (gameplay) camera, call this native with render set to 0.
--- Setting ease to 1 will smooth the transition.
--- @param render boolean
--- @param ease boolean
--- @param easeTime number
--- @param p3 boolean
--- @param p4 boolean
--- @param p5 number
function CAM.RENDER_SCRIPT_CAMS(render, ease, easeTime, p3, p4, p5) end
--- This native makes the gameplay camera zoom into first person/third person with a special effect.
--- @param render boolean
--- @param p1 number
--- @param p2 number
--- @param p3 number
function CAM.STOP_RENDERING_SCRIPT_CAMS_USING_CATCH_UP(render, p1, p2, p3) end
--- "DEFAULT_SCRIPTED_CAMERA"
--- "DEFAULT_ANIMATED_CAMERA"
--- "DEFAULT_SPLINE_CAMERA"
--- "DEFAULT_SCRIPTED_FLY_CAMERA"
--- "TIMED_SPLINE_CAMERA"
--- @param camName string
--- @param p1 boolean
--- @return number
function CAM.CREATE_CAM(camName, p1) end
--- camName is always set to "DEFAULT_SCRIPTED_CAMERA" in Rockstar's scripts.
--- ------------
--- Camera names found in the b617d scripts:
--- "DEFAULT_ANIMATED_CAMERA"
--- "DEFAULT_SCRIPTED_CAMERA"
--- "DEFAULT_SCRIPTED_FLY_CAMERA"
--- "DEFAULT_SPLINE_CAMERA"
--- ------------
--- Side Note: It seems p8 is basically to represent what would be the bool p1 within CREATE_CAM native. As well as the p9 since it's always 2 in scripts seems to represent what would be the last param within SET_CAM_ROT native which normally would be 2.
--- @param camName string
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param fov number
--- @param p8 boolean
--- @param p9 number
--- @return number
function CAM.CREATE_CAM_WITH_PARAMS(camName, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9) end
--- @param camHash number
--- @param p1 boolean
--- @return number
function CAM.CREATE_CAMERA(camHash, p1) end
--- p9 uses 2 by default
--- @param camHash number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param fov number
--- @param p8 boolean
--- @param p9 number
--- @return number
function CAM.CREATE_CAMERA_WITH_PARAMS(camHash, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9) end
--- BOOL param indicates whether the cam should be destroyed if it belongs to the calling script.
--- @param cam number
--- @param bScriptHostCam boolean
function CAM.DESTROY_CAM(cam, bScriptHostCam) end
--- BOOL param indicates whether the cam should be destroyed if it belongs to the calling script.
--- @param bScriptHostCam boolean
function CAM.DESTROY_ALL_CAMS(bScriptHostCam) end
--- Returns whether or not the passed camera handle exists.
--- @param cam number
--- @return boolean
function CAM.DOES_CAM_EXIST(cam) end
--- Set camera as active/inactive.
--- @param cam number
--- @param active boolean
function CAM.SET_CAM_ACTIVE(cam, active) end
--- Returns whether or not the passed camera handle is active.
--- @param cam number
--- @return boolean
function CAM.IS_CAM_ACTIVE(cam) end
--- @param cam number
--- @return boolean
function CAM.IS_CAM_RENDERING(cam) end
--- @return number
function CAM.GET_RENDERING_CAM() end
--- @param cam number
--- @return { x: number, y: number, z: number }
function CAM.GET_CAM_COORD(cam) end
--- The last parameter, as in other "ROT" methods, is usually 2.
--- @param cam number
--- @param rotationOrder number
--- @return { x: number, y: number, z: number }
function CAM.GET_CAM_ROT(cam, rotationOrder) end
--- @param cam number
--- @return number
function CAM.GET_CAM_FOV(cam) end
--- @param cam number
--- @return number
function CAM.GET_CAM_NEAR_CLIP(cam) end
--- @param cam number
--- @return number
function CAM.GET_CAM_FAR_CLIP(cam) end
--- @param cam number
--- @return number
function CAM.GET_CAM_NEAR_DOF(cam) end
--- @param cam number
--- @return number
function CAM.GET_CAM_FAR_DOF(cam) end
--- @param cam number
--- @return number
function CAM.GET_CAM_DOF_STRENGTH(cam) end
--- @param cam number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param fieldOfView number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
function CAM.SET_CAM_PARAMS(cam, posX, posY, posZ, rotX, rotY, rotZ, fieldOfView, p8, p9, p10, p11) end
--- Sets the position of the cam.
--- @param cam number
--- @param posX number
--- @param posY number
--- @param posZ number
function CAM.SET_CAM_COORD(cam, posX, posY, posZ) end
--- Sets the rotation of the cam.
--- Last parameter unknown.
--- 
--- Last parameter seems to always be set to 2.
--- @param cam number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param rotationOrder number
function CAM.SET_CAM_ROT(cam, rotX, rotY, rotZ, rotationOrder) end
--- Sets the field of view of the cam.
--- ---------------------------------------------
--- Min: 1.0f
--- Max: 130.0f
--- @param cam number
--- @param fieldOfView number
function CAM.SET_CAM_FOV(cam, fieldOfView) end
--- @param cam number
--- @param nearClip number
function CAM.SET_CAM_NEAR_CLIP(cam, nearClip) end
--- @param cam number
--- @param farClip number
function CAM.SET_CAM_FAR_CLIP(cam, farClip) end
--- @param cam number
--- @param p1 number
function CAM.FORCE_CAM_FAR_CLIP(cam, p1) end
--- @param cam number
--- @param strength number
function CAM.SET_CAM_MOTION_BLUR_STRENGTH(cam, strength) end
--- @param cam number
--- @param nearDOF number
function CAM.SET_CAM_NEAR_DOF(cam, nearDOF) end
--- @param cam number
--- @param farDOF number
function CAM.SET_CAM_FAR_DOF(cam, farDOF) end
--- @param cam number
--- @param dofStrength number
function CAM.SET_CAM_DOF_STRENGTH(cam, dofStrength) end
--- @param cam number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function CAM.SET_CAM_DOF_PLANES(cam, p1, p2, p3, p4) end
--- @param cam number
--- @param toggle boolean
function CAM.SET_CAM_USE_SHALLOW_DOF_MODE(cam, toggle) end
function CAM.SET_USE_HI_DOF() end
--- Only used in R* Script fm_mission_controller_2020
function CAM.SET_USE_HI_DOF_ON_SYNCED_SCENE_THIS_UPDATE() end
--- @param camera number
--- @param p1 number
function CAM.SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE(camera, p1) end
--- @param p0 number
--- @param p1 number
function CAM.SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE_BLEND_LEVEL(p0, p1) end
--- This native has its name defined inside its codE
--- 
--- @param camera number
--- @param p1 number
function CAM.SET_CAM_DOF_FNUMBER_OF_LENS(camera, p1) end
--- Native name labeled within its code
--- @param camera number
--- @param multiplier number
function CAM.SET_CAM_DOF_FOCAL_LENGTH_MULTIPLIER(camera, multiplier) end
--- This native has a name defined inside its code
--- @param camera number
--- @param p1 number
function CAM.SET_CAM_DOF_FOCUS_DISTANCE_BIAS(camera, p1) end
--- This native has a name defined inside its code
--- @param camera number
--- @param p1 number
function CAM.SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE(camera, p1) end
--- This native has a name defined inside its code
--- @param camera number
--- @param p1 number
function CAM.SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE_BLEND_LEVEL(camera, p1) end
--- This native has a name defined inside its code
--- @param camera number
--- @param state boolean
function CAM.SET_CAM_DOF_SHOULD_KEEP_LOOK_AT_TARGET_IN_FOCUS(camera, state) end
--- Last param determines if its relative to the Entity
--- @param cam number
--- @param entity number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param isRelative boolean
function CAM.ATTACH_CAM_TO_ENTITY(cam, entity, xOffset, yOffset, zOffset, isRelative) end
--- @param cam number
--- @param ped number
--- @param boneIndex number
--- @param x number
--- @param y number
--- @param z number
--- @param heading boolean
function CAM.ATTACH_CAM_TO_PED_BONE(cam, ped, boneIndex, x, y, z, heading) end
--- @param cam number
--- @param ped number
--- @param boneIndex number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 boolean
function CAM.HARD_ATTACH_CAM_TO_PED_BONE(cam, ped, boneIndex, p3, p4, p5, p6, p7, p8, p9) end
--- Example from am_mp_drone script:
--- 
--- CAM::HARD_ATTACH_CAM_TO_ENTITY(Local_190.f_169, NETWORK::NET_TO_OBJ(Local_190.f_159), 0f, 0f, 180f, Var0, 1);
--- @param cam number
--- @param entity number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param isRelative boolean
function CAM.HARD_ATTACH_CAM_TO_ENTITY(cam, entity, xRot, yRot, zRot, xOffset, yOffset, zOffset, isRelative) end
--- This native works with vehicles only. Bone indexes are usually given by this native GET_ENTITY_BONE_INDEX_BY_NAME.
--- @param cam number
--- @param vehicle number
--- @param boneIndex number
--- @param relativeRotation boolean
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param fixedDirection boolean
function CAM.ATTACH_CAM_TO_VEHICLE_BONE(cam, vehicle, boneIndex, relativeRotation, rotX, rotY, rotZ, offsetX, offsetY, offsetZ, fixedDirection) end
--- @param cam number
function CAM.DETACH_CAM(cam) end
--- The native seems to only be called once.
--- 
--- The native is used as so,
--- CAM::SET_CAM_INHERIT_ROLL_VEHICLE(l_544, getElem(2, &l_525, 4));
--- In the exile1 script.
--- @param cam number
--- @param p1 boolean
function CAM.SET_CAM_INHERIT_ROLL_VEHICLE(cam, p1) end
--- @param cam number
--- @param x number
--- @param y number
--- @param z number
function CAM.POINT_CAM_AT_COORD(cam, x, y, z) end
--- p5 always seems to be 1 i.e TRUE
--- @param cam number
--- @param entity number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 boolean
function CAM.POINT_CAM_AT_ENTITY(cam, entity, p2, p3, p4, p5) end
--- Parameters p0-p5 seems correct. The bool p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong.
--- @param cam number
--- @param ped number
--- @param boneIndex number
--- @param x number
--- @param y number
--- @param z number
--- @param p6 boolean
function CAM.POINT_CAM_AT_PED_BONE(cam, ped, boneIndex, x, y, z, p6) end
--- @param cam number
function CAM.STOP_CAM_POINTING(cam) end
--- Allows you to aim and shoot at the direction the camera is facing.
--- @param cam number
--- @param toggle boolean
function CAM.SET_CAM_AFFECTS_AIMING(cam, toggle) end
--- Rotates the radar to match the camera's Z rotation
--- @param cam number
--- @param toggle boolean
function CAM.SET_CAM_CONTROLS_MINI_MAP_HEADING(cam, toggle) end
--- When set to true shadows appear more smooth but less detailed.
--- Set to false by default.
--- @param cam number
--- @param toggle boolean
function CAM.SET_CAM_IS_INSIDE_VEHICLE(cam, toggle) end
--- @param p0 number
--- @param p1 boolean
function CAM.ALLOW_MOTION_BLUR_DECAY(p0, p1) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param camera number
--- @param name string
function CAM.SET_CAM_DEBUG_NAME(camera, name) end
--- @return number
function CAM.GET_DEBUG_CAM() end
--- I filled p1-p6 (the floats) as they are as other natives with 6 floats in a row are similar and I see no other method. So if a test from anyone proves them wrong please correct.
--- 
--- p7 (length) determines the length of the spline, affects camera path and duration of transition between previous node and this one
--- 
--- p8 big values ~100 will slow down the camera movement before reaching this node
--- 
--- p9 != 0 seems to override the rotation/pitch (bool?)
--- @param camera number
--- @param x number
--- @param y number
--- @param z number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param length number
--- @param smoothingStyle number
--- @param rotationOrder number
function CAM.ADD_CAM_SPLINE_NODE(camera, x, y, z, xRot, yRot, zRot, length, smoothingStyle, rotationOrder) end
--- p0 is the spline camera to which the node is being added.
--- p1 is the camera used to create the node.
--- p3 is always 3 in scripts. It might be smoothing style or rotation order.
--- @param cam number
--- @param cam2 number
--- @param length number
--- @param p3 number
function CAM.ADD_CAM_SPLINE_NODE_USING_CAMERA_FRAME(cam, cam2, length, p3) end
--- p0 is the spline camera to which the node is being added.
--- p1 is the camera used to create the node.
--- p3 is always 3 in scripts. It might be smoothing style or rotation order.
--- @param cam number
--- @param cam2 number
--- @param length number
--- @param p3 number
function CAM.ADD_CAM_SPLINE_NODE_USING_CAMERA(cam, cam2, length, p3) end
--- p2 is always 2 in scripts. It might be smoothing style or rotation order.
--- @param cam number
--- @param length number
--- @param p2 number
function CAM.ADD_CAM_SPLINE_NODE_USING_GAMEPLAY_FRAME(cam, length, p2) end
--- @param cam number
--- @param p1 number
function CAM.SET_CAM_SPLINE_PHASE(cam, p1) end
--- Can use this with SET_CAM_SPLINE_PHASE to set the float it this native returns.
--- 
--- (returns 1.0f when no nodes has been added, reached end of non existing spline)
--- @param cam number
--- @return number
function CAM.GET_CAM_SPLINE_PHASE(cam) end
--- I'm pretty sure the parameter is the camera as usual, but I am not certain so I'm going to leave it as is.
--- @param cam number
--- @return number
function CAM.GET_CAM_SPLINE_NODE_PHASE(cam) end
--- I named p1 as timeDuration as it is obvious. I'm assuming tho it is ran in ms(Milliseconds) as usual.
--- @param cam number
--- @param timeDuration number
function CAM.SET_CAM_SPLINE_DURATION(cam, timeDuration) end
--- @param cam number
--- @param smoothingStyle number
function CAM.SET_CAM_SPLINE_SMOOTHING_STYLE(cam, smoothingStyle) end
--- @param cam number
--- @return number
function CAM.GET_CAM_SPLINE_NODE_INDEX(cam) end
--- @param cam number
--- @param easingFunction number
--- @param p2 number
--- @param p3 number
function CAM.SET_CAM_SPLINE_NODE_EASE(cam, easingFunction, p2, p3) end
--- @param cam number
--- @param p1 number
--- @param scale number
function CAM.SET_CAM_SPLINE_NODE_VELOCITY_SCALE(cam, p1, scale) end
--- @param cam number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function CAM.OVERRIDE_CAM_SPLINE_VELOCITY(cam, p1, p2, p3) end
--- Max value for p1 is 15.
--- @param cam number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function CAM.OVERRIDE_CAM_SPLINE_MOTION_BLUR(cam, p1, p2, p3) end
--- @param cam number
--- @param p1 number
--- @param flags number
function CAM.SET_CAM_SPLINE_NODE_EXTRA_FLAGS(cam, p1, flags) end
--- @param cam number
--- @return boolean
function CAM.IS_CAM_SPLINE_PAUSED(cam) end
--- @param camera number
--- @param camPosX number
--- @param camPosY number
--- @param camPosZ number
--- @param camRotX number
--- @param camRotY number
--- @param camRotZ number
--- @param fov number
--- @param duration number
--- @param posCurveType number
--- @param rotCurveType number
--- @param rotOrder number
--- @param fovCurveType number
function CAM._INTERPOLATE_CAM_WITH_PARAMS(camera, camPosX, camPosY, camPosZ, camRotX, camRotY, camRotZ, fov, duration, posCurveType, rotCurveType, rotOrder, fovCurveType) end
--- @param camTo number
--- @param camFrom number
--- @param duration number
--- @param easeLocation number
--- @param easeRotation number
--- @param easeFov number
function CAM._ACTIVATE_CAM_WITH_INTERP_AND_FOV_CURVE(camTo, camFrom, duration, easeLocation, easeRotation, easeFov) end
--- Previous declaration void SET_CAM_ACTIVE_WITH_INTERP(Cam camTo, Cam camFrom, int duration, BOOL easeLocation, BOOL easeRotation) is completely wrong. The last two params are integers not BOOLs...
--- 
--- @param camTo number
--- @param camFrom number
--- @param duration number
--- @param easeLocation number
--- @param easeRotation number
function CAM.SET_CAM_ACTIVE_WITH_INTERP(camTo, camFrom, duration, easeLocation, easeRotation) end
--- @param cam number
--- @return boolean
function CAM.IS_CAM_INTERPOLATING(cam) end
--- Possible shake types (updated b617d):
--- 
--- DEATH_FAIL_IN_EFFECT_SHAKE
--- DRUNK_SHAKE
--- FAMILY5_DRUG_TRIP_SHAKE
--- HAND_SHAKE
--- JOLT_SHAKE
--- LARGE_EXPLOSION_SHAKE
--- MEDIUM_EXPLOSION_SHAKE
--- SMALL_EXPLOSION_SHAKE
--- ROAD_VIBRATION_SHAKE
--- SKY_DIVING_SHAKE
--- VIBRATE_SHAKE
--- 
--- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json
--- @param cam number
--- @param type string
--- @param amplitude number
function CAM.SHAKE_CAM(cam, type, amplitude) end
--- Example from michael2 script.
--- 
--- CAM::ANIMATED_SHAKE_CAM(l_5069, "shake_cam_all@", "light", "", 1f);
--- @param cam number
--- @param p1 string
--- @param p2 string
--- @param p3 string
--- @param amplitude number
function CAM.ANIMATED_SHAKE_CAM(cam, p1, p2, p3, amplitude) end
--- @param cam number
--- @return boolean
function CAM.IS_CAM_SHAKING(cam) end
--- @param cam number
--- @param amplitude number
function CAM.SET_CAM_SHAKE_AMPLITUDE(cam, amplitude) end
--- @param cam number
--- @param p1 boolean
function CAM.STOP_CAM_SHAKING(cam, p1) end
--- CAM::SHAKE_SCRIPT_GLOBAL("HAND_SHAKE", 0.2);
--- 
--- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json
--- @param p0 string
--- @param p1 number
function CAM.SHAKE_SCRIPT_GLOBAL(p0, p1) end
--- CAM::ANIMATED_SHAKE_SCRIPT_GLOBAL("SHAKE_CAM_medium", "medium", "", 0.5f);
--- 
--- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json
--- @param p0 string
--- @param p1 string
--- @param p2 string
--- @param p3 number
function CAM.ANIMATED_SHAKE_SCRIPT_GLOBAL(p0, p1, p2, p3) end
--- In drunk_controller.c4, sub_309
--- if (CAM::IS_SCRIPT_GLOBAL_SHAKING()) {
--- CAM::STOP_SCRIPT_GLOBAL_SHAKING(0);
--- }
--- @return boolean
function CAM.IS_SCRIPT_GLOBAL_SHAKING() end
--- In drunk_controller.c4, sub_309
--- if (CAM::IS_SCRIPT_GLOBAL_SHAKING()) {
--- CAM::STOP_SCRIPT_GLOBAL_SHAKING(0);
--- }
--- @param p0 boolean
function CAM.STOP_SCRIPT_GLOBAL_SHAKING(p0) end
--- p1: 0..16
--- @param vehicle number
--- @param p1 number
--- @param p2 number
function CAM.TRIGGER_VEHICLE_PART_BROKEN_CAMERA_SHAKE(vehicle, p1, p2) end
--- Atleast one time in a script for the zRot Rockstar uses GET_ENTITY_HEADING to help fill the parameter.
--- 
--- p9 is unknown at this time.
--- p10 throughout all the X360 Scripts is always 2.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param cam number
--- @param animName string
--- @param animDictionary string
--- @param x number
--- @param y number
--- @param z number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param p9 boolean
--- @param p10 number
--- @return boolean
function CAM.PLAY_CAM_ANIM(cam, animName, animDictionary, x, y, z, xRot, yRot, zRot, p9, p10) end
--- @param cam number
--- @param animName string
--- @param animDictionary string
--- @return boolean
function CAM.IS_CAM_PLAYING_ANIM(cam, animName, animDictionary) end
--- @param cam number
--- @param phase number
function CAM.SET_CAM_ANIM_CURRENT_PHASE(cam, phase) end
--- @param cam number
--- @return number
function CAM.GET_CAM_ANIM_CURRENT_PHASE(cam) end
--- Examples:
--- 
--- CAM::PLAY_SYNCHRONIZED_CAM_ANIM(l_2734, NETWORK::NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(l_2739), "PLAYER_EXIT_L_CAM", "mp_doorbell");
--- 
--- CAM::PLAY_SYNCHRONIZED_CAM_ANIM(l_F0D[7/*1*/], l_F4D[15/*1*/], "ah3b_attackheli_cam2", "missheistfbi3b_helicrash");
--- @param p0 number
--- @param p1 number
--- @param animName string
--- @param animDictionary string
--- @return boolean
function CAM.PLAY_SYNCHRONIZED_CAM_ANIM(p0, p1, animName, animDictionary) end
--- @param cam number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function CAM.SET_FLY_CAM_HORIZONTAL_RESPONSE(cam, p1, p2, p3) end
--- @param cam number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function CAM.SET_FLY_CAM_VERTICAL_RESPONSE(cam, p1, p2, p3) end
--- @param cam number
--- @param height number
function CAM.SET_FLY_CAM_MAX_HEIGHT(cam, height) end
--- @param cam number
--- @param x number
--- @param y number
--- @param z number
function CAM.SET_FLY_CAM_COORD_AND_CONSTRAIN(cam, x, y, z) end
--- @param cam number
function CAM.SET_FLY_CAM_VERTICAL_CONTROLS_THIS_UPDATE(cam) end
--- @param cam number
--- @return boolean
function CAM.WAS_FLY_CAM_CONSTRAINED_ON_PREVIOUS_UDPATE(cam) end
--- @return boolean
function CAM.IS_SCREEN_FADED_OUT() end
--- @return boolean
function CAM.IS_SCREEN_FADED_IN() end
--- @return boolean
function CAM.IS_SCREEN_FADING_OUT() end
--- @return boolean
function CAM.IS_SCREEN_FADING_IN() end
--- Fades the screen in.
--- 
--- duration: The time the fade should take, in milliseconds.
--- @param duration number
function CAM.DO_SCREEN_FADE_IN(duration) end
--- Fades the screen out.
--- 
--- duration: The time the fade should take, in milliseconds.
--- @param duration number
function CAM.DO_SCREEN_FADE_OUT(duration) end
--- @param p0 boolean
--- @param p1 number
function CAM.SET_WIDESCREEN_BORDERS(p0, p1) end
--- @return boolean
function CAM.ARE_WIDESCREEN_BORDERS_ACTIVE() end
--- @return { x: number, y: number, z: number }
function CAM.GET_GAMEPLAY_CAM_COORD() end
--- p0 dosen't seem to change much, I tried it with 0, 1, 2:
--- 0-Pitch(X): -70.000092
--- 0-Roll(Y): -0.000001
--- 0-Yaw(Z): -43.886459
--- 1-Pitch(X): -70.000092
--- 1-Roll(Y): -0.000001
--- 1-Yaw(Z): -43.886463
--- 2-Pitch(X): -70.000092
--- 2-Roll(Y): -0.000002
--- 2-Yaw(Z): -43.886467
--- @param rotationOrder number
--- @return { x: number, y: number, z: number }
function CAM.GET_GAMEPLAY_CAM_ROT(rotationOrder) end
--- @return number
function CAM.GET_GAMEPLAY_CAM_FOV() end
--- some camera effect that is used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled.
--- @param p0 number
function CAM.SET_GAMEPLAY_CAM_MOTION_BLUR_SCALING_THIS_UPDATE(p0) end
--- some camera effect that is (also) used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled.
--- @param p0 number
function CAM.SET_GAMEPLAY_CAM_MAX_MOTION_BLUR_STRENGTH_THIS_UPDATE(p0) end
--- @return number
function CAM.GET_GAMEPLAY_CAM_RELATIVE_HEADING() end
--- Sets the camera position relative to heading in float from -360 to +360.
--- 
--- Heading is alwyas 0 in aiming camera.
--- @param heading number
function CAM.SET_GAMEPLAY_CAM_RELATIVE_HEADING(heading) end
--- @return number
function CAM.GET_GAMEPLAY_CAM_RELATIVE_PITCH() end
--- This native sets the camera's pitch (rotation on the x-axis).
--- @param angle number
--- @param scalingFactor number
function CAM.SET_GAMEPLAY_CAM_RELATIVE_PITCH(angle, scalingFactor) end
function CAM.RESET_GAMEPLAY_CAM_FULL_ATTACH_PARENT_TRANSFORM_TIMER() end
--- @param roll number
--- @param pitch number
--- @param yaw number
function CAM.FORCE_CAMERA_RELATIVE_HEADING_AND_PITCH(roll, pitch, yaw) end
--- @param p0 number
--- @param p1 number
function CAM.FORCE_BONNET_CAMERA_RELATIVE_HEADING_AND_PITCH(p0, p1) end
--- Does nothing
--- @param yaw number
function CAM.SET_FIRST_PERSON_SHOOTER_CAMERA_HEADING(yaw) end
--- @param pitch number
function CAM.SET_FIRST_PERSON_SHOOTER_CAMERA_PITCH(pitch) end
--- @param p0 boolean
function CAM.SET_SCRIPTED_CAMERA_IS_FIRST_PERSON_THIS_FRAME(p0) end
--- Possible shake types (updated b617d):
--- 
--- DEATH_FAIL_IN_EFFECT_SHAKE
--- DRUNK_SHAKE
--- FAMILY5_DRUG_TRIP_SHAKE
--- HAND_SHAKE
--- JOLT_SHAKE
--- LARGE_EXPLOSION_SHAKE
--- MEDIUM_EXPLOSION_SHAKE
--- SMALL_EXPLOSION_SHAKE
--- ROAD_VIBRATION_SHAKE
--- SKY_DIVING_SHAKE
--- VIBRATE_SHAKE
--- 
--- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json
--- @param shakeName string
--- @param intensity number
function CAM.SHAKE_GAMEPLAY_CAM(shakeName, intensity) end
--- @return boolean
function CAM.IS_GAMEPLAY_CAM_SHAKING() end
--- Sets the amplitude for the gameplay (i.e. 3rd or 1st) camera to shake. Used in script "drunk_controller.ysc.c4" to simulate making the player drunk.
--- @param amplitude number
function CAM.SET_GAMEPLAY_CAM_SHAKE_AMPLITUDE(amplitude) end
--- @param p0 boolean
function CAM.STOP_GAMEPLAY_CAM_SHAKING(p0) end
--- Forces gameplay cam to specified ped as if you were the ped or spectating it
--- @param ped number
function CAM.SET_GAMEPLAY_CAM_FOLLOW_PED_THIS_UPDATE(ped) end
--- Examples when this function will return 0 are:
--- - During busted screen.
--- - When player is coming out from a hospital.
--- - When player is coming out from a police station.
--- - When player is buying gun from AmmuNation.
--- @return boolean
function CAM.IS_GAMEPLAY_CAM_RENDERING() end
--- @return boolean
function CAM.IS_INTERPOLATING_FROM_SCRIPT_CAMS() end
--- @return boolean
function CAM.IS_INTERPOLATING_TO_SCRIPT_CAMS() end
--- @param p0 boolean
function CAM.SET_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_STATE(p0) end
--- Shows the crosshair even if it wouldn't show normally. Only works for one frame, so make sure to call it repeatedly.
function CAM.DISABLE_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_THIS_UPDATE() end
--- @return boolean
function CAM.IS_GAMEPLAY_CAM_LOOKING_BEHIND() end
--- @param entity number
function CAM.SET_GAMEPLAY_CAM_IGNORE_ENTITY_COLLISION_THIS_UPDATE(entity) end
--- @param entity number
function CAM.DISABLE_CAM_COLLISION_FOR_OBJECT(entity) end
function CAM.BYPASS_CAMERA_COLLISION_BUOYANCY_TEST_THIS_UPDATE() end
--- @param entity number
function CAM.SET_GAMEPLAY_CAM_ENTITY_TO_LIMIT_FOCUS_OVER_BOUNDING_SPHERE_THIS_UPDATE(entity) end
--- Sets some flag on cinematic camera
function CAM.DISABLE_FIRST_PERSON_CAMERA_WATER_CLIPPING_TEST_THIS_UPDATE() end
function CAM.SET_FOLLOW_CAM_IGNORE_ATTACH_PARENT_MOVEMENT_THIS_UPDATE() end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function CAM.IS_SPHERE_VISIBLE(x, y, z, radius) end
--- @return boolean
function CAM.IS_FOLLOW_PED_CAM_ACTIVE() end
--- From the scripts:
--- 
--- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_ATTACHED_TO_ROPE_CAMERA", 0);
--- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_ON_EXILE1_LADDER_CAMERA", 1500);
--- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 0);
--- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 3000);
--- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_FAMILY5_CAMERA", 0);
--- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 0);
--- @param camName string
--- @param p1 number
--- @return boolean
function CAM.SET_FOLLOW_PED_CAM_THIS_UPDATE(camName, p1) end
--- @param p0 boolean
--- @param p1 boolean
function CAM.USE_SCRIPT_CAM_FOR_AMBIENT_POPULATION_ORIGIN_THIS_FRAME(p0, p1) end
function CAM.SET_FOLLOW_PED_CAM_LADDER_ALIGN_THIS_UPDATE() end
--- minimum: Degrees between -180f and 180f.
--- maximum: Degrees between -180f and 180f.
--- 
--- Clamps the gameplay camera's current yaw.
--- 
--- Eg. SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(0.0f, 0.0f) will set the horizontal angle directly behind the player.
--- @param minimum number
--- @param maximum number
function CAM.SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(minimum, maximum) end
--- minimum: Degrees between -90f and 90f.
--- maximum: Degrees between -90f and 90f.
--- 
--- Clamps the gameplay camera's current pitch.
--- 
--- Eg. SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(0.0f, 0.0f) will set the vertical angle directly behind the player.
--- @param minimum number
--- @param maximum number
function CAM.SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(minimum, maximum) end
--- Seems to animate the gameplay camera zoom.
--- 
--- Eg. SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1000f);
--- will animate the camera zooming in from 1000 meters away.
--- 
--- Game scripts use it like this:
--- 
--- // Setting this to 1 prevents V key from changing zoom
--- PLAYER::SET_PLAYER_FORCED_ZOOM(PLAYER::PLAYER_ID(), 1);
--- 
--- // These restrict how far you can move cam up/down left/right
--- CAM::SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(-20f, 50f);
--- CAM::SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(-60f, 0f);
--- 
--- CAM::SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1f);
--- @param p0 number
--- @param distance number
function CAM.SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(p0, distance) end
--- @return number
function CAM._GET_THIRD_PERSON_CAM_MIN_ORBIT_DISTANCE_SPRING() end
--- @return number
function CAM._GET_THIRD_PERSON_CAM_MAX_ORBIT_DISTANCE_SPRING() end
--- Forces gameplay cam to specified vehicle as if you were in it
--- @param p0 number
--- @param p1 number
function CAM.SET_IN_VEHICLE_CAM_STATE_THIS_UPDATE(p0, p1) end
--- Disables first person camera for the current frame.
--- 
--- Found in decompiled scripts:
--- GRAPHICS::DRAW_DEBUG_TEXT_2D("Disabling First Person Cam", 0.5, 0.8, 0.0, 0, 0, 255, 255);
--- CAM::DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE();
function CAM.DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE() end
function CAM.DISABLE_FIRST_PERSON_FLASH_EFFECT_THIS_UPDATE() end
function CAM.BLOCK_FIRST_PERSON_ORIENTATION_RESET_THIS_UPDATE() end
--- @return number
function CAM.GET_FOLLOW_PED_CAM_ZOOM_LEVEL() end
--- See viewmode enum in CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE for return value
--- @return number
function CAM.GET_FOLLOW_PED_CAM_VIEW_MODE() end
--- Sets the type of Player camera:
--- 
--- 0 - Third Person Close
--- 1 - Third Person Mid
--- 2 - Third Person Far
--- 4 - First Person
--- @param viewMode number
function CAM.SET_FOLLOW_PED_CAM_VIEW_MODE(viewMode) end
--- @return boolean
function CAM.IS_FOLLOW_VEHICLE_CAM_ACTIVE() end
--- @param p0 boolean
function CAM.SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_THIS_UPDATE(p0) end
--- @param p0 boolean
--- @param p1 boolean
function CAM.SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_EVERY_UPDATE(p0, p1) end
--- @param hash number
--- @return boolean
function CAM.SET_TABLE_GAMES_CAMERA_THIS_UPDATE(hash) end
--- @return number
function CAM.GET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL() end
--- @param zoomLevel number
function CAM.SET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL(zoomLevel) end
--- Returns the type of camera:
--- 
--- enum _viewmode //0xA11D7CA8
--- {
--- THIRD_PERSON_NEAR = 0,
--- THIRD_PERSON_MEDIUM = 1,
--- THIRD_PERSON_FAR = 2,
--- CINEMATIC = 3,
--- FIRST_PERSON = 4
--- };
--- @return number
function CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE() end
--- Sets the type of Player camera in vehicles:
--- viewmode: see CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE
--- @param viewMode number
function CAM.SET_FOLLOW_VEHICLE_CAM_VIEW_MODE(viewMode) end
--- context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT
--- @param context number
--- @return number
function CAM.GET_CAM_VIEW_MODE_FOR_CONTEXT(context) end
--- context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT, viewmode: see CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE
--- @param context number
--- @param viewMode number
function CAM.SET_CAM_VIEW_MODE_FOR_CONTEXT(context, viewMode) end
--- enum Context
--- {
--- ON_FOOT,
--- IN_VEHICLE,
--- ON_BIKE,
--- IN_BOAT,
--- IN_AIRCRAFT,
--- IN_SUBMARINE,
--- IN_HELI,
--- IN_TURRET
--- };
--- @return number
function CAM.GET_CAM_ACTIVE_VIEW_MODE_CONTEXT() end
function CAM.USE_VEHICLE_CAM_STUNT_SETTINGS_THIS_UPDATE() end
--- Sets gameplay camera to hash
--- @param camName string
function CAM.USE_DEDICATED_STUNT_CAMERA_THIS_UPDATE(camName) end
function CAM.FORCE_VEHICLE_CAM_STUNT_SETTINGS_THIS_UPDATE() end
--- @param seatIndex number
function CAM.SET_FOLLOW_VEHICLE_CAM_SEAT_THIS_UPDATE(seatIndex) end
--- @return boolean
function CAM.IS_AIM_CAM_ACTIVE() end
--- @return boolean
function CAM.IS_AIM_CAM_ACTIVE_IN_ACCURATE_MODE() end
--- @return boolean
function CAM.IS_FIRST_PERSON_AIM_CAM_ACTIVE() end
function CAM.DISABLE_AIM_CAM_THIS_UPDATE() end
--- @return number
function CAM.GET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR() end
--- @param zoomFactor number
function CAM.SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR(zoomFactor) end
--- @param p0 number
--- @param p1 number
function CAM.SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR_LIMITS_THIS_UPDATE(p0, p1) end
--- @param p0 number
--- @param p1 number
function CAM.SET_FIRST_PERSON_AIM_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(p0, p1) end
--- @param p0 number
--- @param p1 number
function CAM.SET_FIRST_PERSON_AIM_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(p0, p1) end
--- @param p0 number
function CAM.SET_FIRST_PERSON_AIM_CAM_NEAR_CLIP_THIS_UPDATE(p0) end
--- @param p0 number
function CAM.SET_THIRD_PERSON_AIM_CAM_NEAR_CLIP_THIS_UPDATE(p0) end
--- @param p0 boolean
function CAM.SET_ALLOW_CUSTOM_VEHICLE_DRIVE_BY_CAM_THIS_UPDATE(p0) end
function CAM.FORCE_TIGHTSPACE_CUSTOM_FRAMING_THIS_UPDATE() end
--- @return { x: number, y: number, z: number }
function CAM.GET_FINAL_RENDERED_CAM_COORD() end
--- p0 seems to consistently be 2 across scripts
--- 
--- Function is called faily often by CAM::CREATE_CAM_WITH_PARAMS
--- @param rotationOrder number
--- @return { x: number, y: number, z: number }
function CAM.GET_FINAL_RENDERED_CAM_ROT(rotationOrder) end
--- @param player number
--- @param rotationOrder number
--- @return { x: number, y: number, z: number }
function CAM.GET_FINAL_RENDERED_REMOTE_PLAYER_CAM_ROT(player, rotationOrder) end
--- Gets some camera fov
--- @return number
function CAM.GET_FINAL_RENDERED_CAM_FOV() end
--- @param player number
--- @return number
function CAM.GET_FINAL_RENDERED_REMOTE_PLAYER_CAM_FOV(player) end
--- @return number
function CAM.GET_FINAL_RENDERED_CAM_NEAR_CLIP() end
--- @return number
function CAM.GET_FINAL_RENDERED_CAM_FAR_CLIP() end
--- @return number
function CAM.GET_FINAL_RENDERED_CAM_NEAR_DOF() end
--- @return number
function CAM.GET_FINAL_RENDERED_CAM_FAR_DOF() end
--- @return number
function CAM.GET_FINAL_RENDERED_CAM_MOTION_BLUR_STRENGTH() end
--- @param x number
--- @param y number
--- @param z number
--- @param duration number
--- @param blendOutDuration number
--- @param blendInDuration number
--- @param p6 number
function CAM.SET_GAMEPLAY_COORD_HINT(x, y, z, duration, blendOutDuration, blendInDuration, p6) end
--- @param ped number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param p4 boolean
--- @param duration number
--- @param blendOutDuration number
--- @param blendInDuration number
function CAM.SET_GAMEPLAY_PED_HINT(ped, x1, y1, z1, p4, duration, blendOutDuration, blendInDuration) end
--- Focuses the camera on the specified vehicle.
--- @param vehicle number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param p4 boolean
--- @param time number
--- @param easeInTime number
--- @param easeOutTime number
function CAM.SET_GAMEPLAY_VEHICLE_HINT(vehicle, offsetX, offsetY, offsetZ, p4, time, easeInTime, easeOutTime) end
--- @param object number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param p4 boolean
--- @param time number
--- @param easeInTime number
--- @param easeOutTime number
function CAM.SET_GAMEPLAY_OBJECT_HINT(object, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime) end
--- p8 could be some sort of flag. Scripts use:
--- -244429742
--- 0
--- 1726668277
--- 1844968929
--- @param entity number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param p4 boolean
--- @param time number
--- @param easeInTime number
--- @param easeOutTime number
--- @param p8 number
function CAM.SET_GAMEPLAY_ENTITY_HINT(entity, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, p8) end
--- @return boolean
function CAM.IS_GAMEPLAY_HINT_ACTIVE() end
--- @param p0 boolean
function CAM.STOP_GAMEPLAY_HINT(p0) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 boolean
function CAM.STOP_GAMEPLAY_HINT_BEING_CANCELLED_THIS_UPDATE(p0) end
--- @param p0 boolean
function CAM.STOP_CODE_GAMEPLAY_HINT(p0) end
--- @return boolean
function CAM.IS_CODE_GAMEPLAY_HINT_ACTIVE() end
--- @param FOV number
function CAM.SET_GAMEPLAY_HINT_FOV(FOV) end
--- @param value number
function CAM.SET_GAMEPLAY_HINT_FOLLOW_DISTANCE_SCALAR(value) end
--- @param value number
function CAM.SET_GAMEPLAY_HINT_BASE_ORBIT_PITCH_OFFSET(value) end
--- @param xOffset number
function CAM.SET_GAMEPLAY_HINT_CAMERA_RELATIVE_SIDE_OFFSET(xOffset) end
--- @param yOffset number
function CAM.SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET(yOffset) end
--- @param toggle boolean
function CAM.SET_GAMEPLAY_HINT_CAMERA_BLEND_TO_FOLLOW_PED_MEDIUM_VIEW_MODE(toggle) end
--- @param p0 boolean
function CAM.SET_CINEMATIC_BUTTON_ACTIVE(p0) end
--- @return boolean
function CAM.IS_CINEMATIC_CAM_RENDERING() end
--- p0 argument found in the b617d scripts: "DRUNK_SHAKE"
--- 
--- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json
--- @param shakeType string
--- @param amount number
function CAM.SHAKE_CINEMATIC_CAM(shakeType, amount) end
--- @return boolean
function CAM.IS_CINEMATIC_CAM_SHAKING() end
--- @param p0 number
function CAM.SET_CINEMATIC_CAM_SHAKE_AMPLITUDE(p0) end
--- @param p0 boolean
function CAM.STOP_CINEMATIC_CAM_SHAKING(p0) end
function CAM.DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE() end
function CAM.DISABLE_CINEMATIC_VEHICLE_IDLE_MODE_THIS_UPDATE() end
--- Resets the vehicle idle camera timer. Calling this in a loop will disable the idle camera.
function CAM.INVALIDATE_CINEMATIC_VEHICLE_IDLE_MODE() end
--- Resets the idle camera timer. Calling that in a loop once every few seconds is enough to disable the idle cinematic camera.
function CAM.INVALIDATE_IDLE_CAM() end
--- @return boolean
function CAM.IS_CINEMATIC_IDLE_CAM_RENDERING() end
--- @return boolean
function CAM.IS_CINEMATIC_FIRST_PERSON_VEHICLE_INTERIOR_CAM_RENDERING() end
--- hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts
--- @param p0 number
--- @param time number
--- @param p2 boolean
--- @param entity number
function CAM.CREATE_CINEMATIC_SHOT(p0, time, p2, entity) end
--- Hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts
--- @param p0 number
--- @return boolean
function CAM.IS_CINEMATIC_SHOT_ACTIVE(p0) end
--- Only used once in carsteal3 with p0 set to -1096069633 (CAMERA_MAN_SHOT)
--- @param p0 number
function CAM.STOP_CINEMATIC_SHOT(p0) end
--- @param toggle boolean
function CAM.FORCE_CINEMATIC_RENDERING_THIS_UPDATE(toggle) end
function CAM.SET_CINEMATIC_NEWS_CHANNEL_ACTIVE_THIS_UPDATE() end
--- Toggles the vehicle cinematic cam; requires the player ped to be in a vehicle to work.
--- @param toggle boolean
function CAM.SET_CINEMATIC_MODE_ACTIVE(toggle) end
--- @return boolean
function CAM.IS_IN_VEHICLE_MOBILE_PHONE_CAMERA_RENDERING() end
--- @return boolean
function CAM.DISABLE_CINEMATIC_SLOW_MO_THIS_UPDATE() end
--- @return boolean
function CAM.IS_BONNET_CINEMATIC_CAM_RENDERING() end
--- Tests some cinematic camera flags
--- @return boolean
function CAM.IS_CINEMATIC_CAM_INPUT_ACTIVE() end
function CAM.IGNORE_MENU_PREFERENCE_FOR_BONNET_CAMERA_THIS_UPDATE() end
function CAM.BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE() end
--- @param p0 number
function CAM.STOP_CUTSCENE_CAM_SHAKING(p0) end
--- Hardcoded to only work in multiplayer.
--- @param p0 number
function CAM.SET_CUTSCENE_CAM_FAR_CLIP_THIS_UPDATE(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @return number
function CAM.GET_FOCUS_PED_ON_SCREEN(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
function CAM.DISABLE_NEAR_CLIP_SCAN_THIS_UPDATE() end
--- if p0 is 0, effect is cancelled
--- 
--- if p0 is 1, effect zooms in, gradually tilts cam clockwise apx 30 degrees, wobbles slowly. Motion blur is active until cancelled.
--- 
--- if p0 is 2, effect immediately tilts cam clockwise apx 30 degrees, begins to wobble slowly, then gradually tilts cam back to normal. The wobbling will continue until the effect is cancelled.
--- @param p0 number
function CAM.SET_CAM_DEATH_FAIL_EFFECT_STATE(p0) end
--- @param p0 number
function CAM.SET_FIRST_PERSON_FLASH_EFFECT_TYPE(p0) end
--- From b617 scripts:
--- 
--- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("DINGHY");
--- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("ISSI2");
--- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("SPEEDO");
--- @param vehicleName string
function CAM.SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME(vehicleName) end
--- @param vehicleModel number
function CAM.SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_HASH(vehicleModel) end
--- @return boolean
function CAM.IS_ALLOWED_INDEPENDENT_CAMERA_MODES() end
function CAM.CAMERA_PREVENT_COLLISION_SETTINGS_FOR_TRIPLEHEAD_IN_INTERIORS_THIS_UPDATE() end
--- @return number
function CAM.REPLAY_GET_MAX_DISTANCE_ALLOWED_FROM_PLAYER() end

CLOCK = {}

--- SET_CLOCK_TIME(12, 34, 56);
--- @param hour number
--- @param minute number
--- @param second number
function CLOCK.SET_CLOCK_TIME(hour, minute, second) end
--- @param toggle boolean
function CLOCK.PAUSE_CLOCK(toggle) end
--- @param hour number
--- @param minute number
--- @param second number
function CLOCK.ADVANCE_CLOCK_TIME_TO(hour, minute, second) end
--- @param hours number
--- @param minutes number
--- @param seconds number
function CLOCK.ADD_TO_CLOCK_TIME(hours, minutes, seconds) end
--- Gets the current ingame hour, expressed without zeros. (09:34 will be represented as 9)
--- @return number
function CLOCK.GET_CLOCK_HOURS() end
--- Gets the current ingame clock minute.
--- @return number
function CLOCK.GET_CLOCK_MINUTES() end
--- Gets the current ingame clock second. Note that ingame clock seconds change really fast since a day in GTA is only 48 minutes in real life.
--- @return number
function CLOCK.GET_CLOCK_SECONDS() end
--- @param day number
--- @param month number
--- @param year number
function CLOCK.SET_CLOCK_DATE(day, month, year) end
--- Gets the current day of the week.
--- 
--- 0: Sunday
--- 1: Monday
--- 2: Tuesday
--- 3: Wednesday
--- 4: Thursday
--- 5: Friday
--- 6: Saturday
--- @return number
function CLOCK.GET_CLOCK_DAY_OF_WEEK() end
--- @return number
function CLOCK.GET_CLOCK_DAY_OF_MONTH() end
--- @return number
function CLOCK.GET_CLOCK_MONTH() end
--- @return number
function CLOCK.GET_CLOCK_YEAR() end
--- @return number
function CLOCK.GET_MILLISECONDS_PER_GAME_MINUTE() end
--- Gets system time as year, month, day, hour, minute and second.
--- 
--- Example usage:
--- 
--- int year;
--- int month;
--- int day;
--- int hour;
--- int minute;
--- int second;
--- 
--- TIME::GET_POSIX_TIME(&year, &month, &day, &hour, &minute, &second);
--- 
--- @param year any
--- @param month any
--- @param day any
--- @param hour any
--- @param minute any
--- @param second any
function CLOCK.GET_POSIX_TIME(year, month, day, hour, minute, second) end
--- Gets current UTC time
--- @param year any
--- @param month any
--- @param day any
--- @param hour any
--- @param minute any
--- @param second any
function CLOCK.GET_UTC_TIME(year, month, day, hour, minute, second) end
--- Gets local system time as year, month, day, hour, minute and second.
--- 
--- Example usage:
--- 
--- int year;
--- int month;
--- int day;
--- int hour;
--- int minute;
--- int second;
--- or use std::tm struct
--- 
--- TIME::GET_LOCAL_TIME(&year, &month, &day, &hour, &minute, &second);
--- 
--- @param year any
--- @param month any
--- @param day any
--- @param hour any
--- @param minute any
--- @param second any
function CLOCK.GET_LOCAL_TIME(year, month, day, hour, minute, second) end

CUTSCENE = {}

--- flags: Usually 8
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
--- @param flags number
function CUTSCENE.REQUEST_CUTSCENE(cutsceneName, flags) end
--- flags: Usually 8
--- 
--- playbackFlags: Which scenes should be played.
--- Example: 0x105 (bit 0, 2 and 8 set) will enable scene 1, 3 and 9.
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
--- @param playbackFlags number
--- @param flags number
function CUTSCENE.REQUEST_CUTSCENE_WITH_PLAYBACK_LIST(cutsceneName, playbackFlags, flags) end
function CUTSCENE.REMOVE_CUTSCENE() end
--- @return boolean
function CUTSCENE.HAS_CUTSCENE_LOADED() end
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
--- @return boolean
function CUTSCENE.HAS_THIS_CUTSCENE_LOADED(cutsceneName) end
--- Sets the cutscene's owning thread ID.
--- @param threadId number
function CUTSCENE.SET_SCRIPT_CAN_START_CUTSCENE(threadId) end
--- @return boolean
function CUTSCENE.CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY() end
--- @param flag number
--- @return boolean
function CUTSCENE.IS_CUTSCENE_PLAYBACK_FLAG_SET(flag) end
--- @param cutsceneEntName string
--- @param p1 number
--- @param p2 number
function CUTSCENE.SET_CUTSCENE_ENTITY_STREAMING_FLAGS(cutsceneEntName, p1, p2) end
--- Simply loads the cutscene and doesn't do extra stuff that REQUEST_CUTSCENE does.
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
function CUTSCENE.REQUEST_CUT_FILE(cutsceneName) end
--- Simply checks if the cutscene has loaded and doesn't check via CutSceneManager as opposed to HAS_[THIS]_CUTSCENE_LOADED.
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
--- @return boolean
function CUTSCENE.HAS_CUT_FILE_LOADED(cutsceneName) end
--- Simply unloads the cutscene and doesn't do extra stuff that REMOVE_CUTSCENE does.
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
function CUTSCENE.REMOVE_CUT_FILE(cutsceneName) end
--- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json
--- @param cutsceneName string
--- @return number
function CUTSCENE.GET_CUT_FILE_CONCAT_COUNT(cutsceneName) end
--- flags: Usually 0.
--- @param flags number
function CUTSCENE.START_CUTSCENE(flags) end
--- flags: Usually 0.
--- @param x number
--- @param y number
--- @param z number
--- @param flags number
function CUTSCENE.START_CUTSCENE_AT_COORDS(x, y, z, flags) end
--- @param p0 boolean
function CUTSCENE.STOP_CUTSCENE(p0) end
function CUTSCENE.STOP_CUTSCENE_IMMEDIATELY() end
--- p3 could be heading. Needs more research.
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 number
function CUTSCENE.SET_CUTSCENE_ORIGIN(x, y, z, p3, p4) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 number
function CUTSCENE.SET_CUTSCENE_ORIGIN_AND_ORIENTATION(x1, y1, z1, x2, y2, z2, p6) end
--- @return number
function CUTSCENE.GET_CUTSCENE_TIME() end
--- @return number
function CUTSCENE.GET_CUTSCENE_PLAY_TIME() end
--- @return number
function CUTSCENE.GET_CUTSCENE_TOTAL_DURATION() end
--- @return number
function CUTSCENE.GET_CUTSCENE_END_TIME() end
--- @return number
function CUTSCENE.GET_CUTSCENE_PLAY_DURATION() end
--- @return boolean
function CUTSCENE.WAS_CUTSCENE_SKIPPED() end
--- @return boolean
function CUTSCENE.HAS_CUTSCENE_FINISHED() end
--- @return boolean
function CUTSCENE.IS_CUTSCENE_ACTIVE() end
--- @return boolean
function CUTSCENE.IS_CUTSCENE_PLAYING() end
--- @return number
function CUTSCENE.GET_CUTSCENE_SECTION_PLAYING() end
--- @param cutsceneEntName string
--- @param modelHash number
--- @return number
function CUTSCENE.GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY(cutsceneEntName, modelHash) end
--- @return number
function CUTSCENE.GET_CUTSCENE_CONCAT_SECTION_PLAYING() end
--- This function is hard-coded to always return 1.
--- @param cutsceneName string
--- @return boolean
function CUTSCENE.IS_CUTSCENE_AUTHORIZED(cutsceneName) end
--- @param cutsceneHandle number
--- @return number
function CUTSCENE.DOES_CUTSCENE_HANDLE_EXIST(cutsceneHandle) end
--- @param cutscenePed number
--- @param cutsceneEntName string
--- @param p2 number
--- @param modelHash number
--- @param p4 number
function CUTSCENE.REGISTER_ENTITY_FOR_CUTSCENE(cutscenePed, cutsceneEntName, p2, modelHash, p4) end
--- @param cutsceneEntName string
--- @param modelHash number
--- @return number
function CUTSCENE.GET_ENTITY_INDEX_OF_REGISTERED_ENTITY(cutsceneEntName, modelHash) end
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
function CUTSCENE.SET_VEHICLE_MODEL_PLAYER_WILL_EXIT_SCENE(modelHash) end
--- Only used twice in R* scripts
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
function CUTSCENE.SET_CUTSCENE_TRIGGER_AREA(x1, y1, z1, x2, y2, z2) end
--- modelHash (p1) was always 0 in R* scripts
--- @param cutsceneEntName string
--- @param modelHash number
--- @return boolean
function CUTSCENE.CAN_SET_ENTER_STATE_FOR_REGISTERED_ENTITY(cutsceneEntName, modelHash) end
--- @param cutsceneEntName string
--- @param modelHash number
--- @return boolean
function CUTSCENE.CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY(cutsceneEntName, modelHash) end
--- @param p0 boolean
--- @return boolean
function CUTSCENE.CAN_SET_EXIT_STATE_FOR_CAMERA(p0) end
--- Toggles a value (bool) for cutscenes.
--- @param toggle boolean
function CUTSCENE.SET_PAD_CAN_SHAKE_DURING_CUTSCENE(toggle) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
function CUTSCENE.SET_CUTSCENE_FADE_VALUES(p0, p1, p2, p3) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
function CUTSCENE.SET_CUTSCENE_MULTIHEAD_FADE(p0, p1, p2, p3) end
--- @param p0 boolean
function CUTSCENE.SET_CUTSCENE_MULTIHEAD_FADE_MANUAL(p0) end
--- @return boolean
function CUTSCENE.IS_MULTIHEAD_FADE_UP() end
--- Stops current cutscene with a fade transition
--- p0: always true in R* Scripts
--- You will need to manually fade the screen back in
--- SET_CUTSCENE_INPUTS_PARTIALLY_FADE?
--- @param p0 boolean
function CUTSCENE.NETWORK_SET_MOCAP_CUTSCENE_CAN_BE_SKIPPED(p0) end
--- @param p0 boolean
function CUTSCENE.SET_CAR_GENERATORS_CAN_UPDATE_DURING_CUTSCENE(p0) end
--- @return boolean
function CUTSCENE.CAN_USE_MOBILE_PHONE_DURING_CUTSCENE() end
--- @param p0 boolean
function CUTSCENE.SET_CUTSCENE_CAN_BE_SKIPPED(p0) end
function CUTSCENE.SET_CAN_DISPLAY_MINIMAP_DURING_CUTSCENE_THIS_UPDATE() end
--- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json
--- @param cutsceneEntName string
--- @param componentId number
--- @param drawableId number
--- @param textureId number
--- @param modelHash number
function CUTSCENE.SET_CUTSCENE_PED_COMPONENT_VARIATION(cutsceneEntName, componentId, drawableId, textureId, modelHash) end
--- @param cutsceneEntName string
--- @param ped number
--- @param modelHash number
function CUTSCENE.SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED(cutsceneEntName, ped, modelHash) end
--- @param cutsceneEntName string
--- @param modelHash number
--- @return boolean
function CUTSCENE.DOES_CUTSCENE_ENTITY_EXIST(cutsceneEntName, modelHash) end
--- Thanks R*! ;)
--- 
--- if ((l_161 == 0) || (l_161 == 2)) {
--- sub_2ea27("Trying to set Jimmy prop variation");
--- CUTSCENE::SET_CUTSCENE_PED_PROP_VARIATION("Jimmy_Boston", 1, 0, 0, 0);
--- }
--- 
--- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json
--- @param cutsceneEntName string
--- @param componentId number
--- @param drawableId number
--- @param textureId number
--- @param modelHash number
function CUTSCENE.SET_CUTSCENE_PED_PROP_VARIATION(cutsceneEntName, componentId, drawableId, textureId, modelHash) end
--- Possibly HAS_CUTSCENE_CUT_THIS_FRAME, needs more research.
--- @return boolean
function CUTSCENE.HAS_CUTSCENE_CUT_THIS_FRAME() end

DATAFILE = {}

--- Adds the given requestID to the watch list.
--- @param requestId number
function DATAFILE.DATAFILE_WATCH_REQUEST_ID(requestId) end
function DATAFILE.DATAFILE_CLEAR_WATCH_LIST() end
--- @param index number
--- @return boolean
function DATAFILE.DATAFILE_IS_VALID_REQUEST_ID(index) end
--- @param requestId number
--- @return boolean
function DATAFILE.DATAFILE_HAS_LOADED_FILE_DATA(requestId) end
--- @param requestId number
--- @return boolean
function DATAFILE.DATAFILE_HAS_VALID_FILE_DATA(requestId) end
--- @param requestId number
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_SELECT_ACTIVE_FILE(requestId, p1) end
--- @param requestId number
--- @return boolean
function DATAFILE.DATAFILE_DELETE_REQUESTED_FILE(requestId) end
--- @param data number
--- @param dataCount number
--- @param contentName string
--- @param description string
--- @param tagsCsv string
--- @param contentTypeName string
--- @param publish boolean
--- @param p7 number
--- @return boolean
function DATAFILE.UGC_CREATE_CONTENT(data, dataCount, contentName, description, tagsCsv, contentTypeName, publish, p7) end
--- @param contentName string
--- @param description string
--- @param tagsCsv string
--- @param contentTypeName string
--- @param publish boolean
--- @param p5 number
--- @return boolean
function DATAFILE.UGC_CREATE_MISSION(contentName, description, tagsCsv, contentTypeName, publish, p5) end
--- @param contentId string
--- @param data number
--- @param dataCount number
--- @param contentName string
--- @param description string
--- @param tagsCsv string
--- @param contentTypeName string
--- @param p7 number
--- @return boolean
function DATAFILE.UGC_UPDATE_CONTENT(contentId, data, dataCount, contentName, description, tagsCsv, contentTypeName, p7) end
--- @param contentId string
--- @param contentName string
--- @param description string
--- @param tagsCsv string
--- @param contentTypeName string
--- @param p5 number
--- @return boolean
function DATAFILE.UGC_UPDATE_MISSION(contentId, contentName, description, tagsCsv, contentTypeName, p5) end
--- @param contentId string
--- @param rating number
--- @param contentTypeName string
--- @param p3 number
--- @return boolean
function DATAFILE.UGC_SET_PLAYER_DATA(contentId, rating, contentTypeName, p3) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_SELECT_UGC_DATA(p0, p1) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function DATAFILE.DATAFILE_SELECT_UGC_STATS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_SELECT_UGC_PLAYER_DATA(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_SELECT_CREATOR_STATS(p0, p1) end
--- Loads a User-Generated Content (UGC) file. These files can be found in "[GTA5]\data\ugc" and "[GTA5]\common\patch\ugc". They seem to follow a naming convention, most likely of "[name]_[part].ugc". See example below for usage.
--- 
--- Returns whether or not the file was successfully loaded.
--- 
--- Example:
--- DATAFILE::DATAFILE_LOAD_OFFLINE_UGC("RockstarPlaylists") // loads "rockstarplaylists_00.ugc"
--- @param filename string
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_LOAD_OFFLINE_UGC(filename, p1) end
--- @param p0 number
function DATAFILE.DATAFILE_CREATE(p0) end
--- @param p0 number
function DATAFILE.DATAFILE_DELETE(p0) end
--- @param p0 number
function DATAFILE.DATAFILE_STORE_MISSION_HEADER(p0) end
function DATAFILE.DATAFILE_FLUSH_MISSION_HEADER() end
--- @param p0 number
--- @return number
function DATAFILE.DATAFILE_GET_FILE_DICT(p0) end
--- @param filename string
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_START_SAVE_TO_CLOUD(filename, p1) end
--- @param p0 any
--- @return boolean
function DATAFILE.DATAFILE_UPDATE_SAVE_TO_CLOUD(p0) end
--- @return boolean
function DATAFILE.DATAFILE_IS_SAVE_PENDING() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function DATAFILE.DATAFILE_LOAD_OFFLINE_UGC_FOR_ADDITIONAL_DATA_FILE(p0, p1) end
--- @param p0 number
function DATAFILE.DATAFILE_DELETE_FOR_ADDITIONAL_DATA_FILE(p0) end
--- @param p0 number
--- @return number
function DATAFILE.DATAFILE_GET_FILE_DICT_FOR_ADDITIONAL_DATA_FILE(p0) end
--- @param objectData number
--- @param key string
--- @param value boolean
function DATAFILE.DATADICT_SET_BOOL(objectData, key, value) end
--- @param objectData number
--- @param key string
--- @param value number
function DATAFILE.DATADICT_SET_INT(objectData, key, value) end
--- @param objectData number
--- @param key string
--- @param value number
function DATAFILE.DATADICT_SET_FLOAT(objectData, key, value) end
--- @param objectData number
--- @param key string
--- @param value string
function DATAFILE.DATADICT_SET_STRING(objectData, key, value) end
--- @param objectData number
--- @param key string
--- @param valueX number
--- @param valueY number
--- @param valueZ number
function DATAFILE.DATADICT_SET_VECTOR(objectData, key, valueX, valueY, valueZ) end
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_CREATE_DICT(objectData, key) end
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_CREATE_ARRAY(objectData, key) end
--- @param objectData number
--- @param key string
--- @return boolean
function DATAFILE.DATADICT_GET_BOOL(objectData, key) end
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_GET_INT(objectData, key) end
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_GET_FLOAT(objectData, key) end
--- @param objectData number
--- @param key string
--- @return string
function DATAFILE.DATADICT_GET_STRING(objectData, key) end
--- @param objectData number
--- @param key string
--- @return { x: number, y: number, z: number }
function DATAFILE.DATADICT_GET_VECTOR(objectData, key) end
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_GET_DICT(objectData, key) end
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_GET_ARRAY(objectData, key) end
--- Types:
--- 1 = Boolean
--- 2 = Integer
--- 3 = Float
--- 4 = String
--- 5 = Vector3
--- 6 = Object
--- 7 = Array
--- @param objectData number
--- @param key string
--- @return number
function DATAFILE.DATADICT_GET_TYPE(objectData, key) end
--- @param arrayData number
--- @param value boolean
function DATAFILE.DATAARRAY_ADD_BOOL(arrayData, value) end
--- @param arrayData number
--- @param value number
function DATAFILE.DATAARRAY_ADD_INT(arrayData, value) end
--- @param arrayData number
--- @param value number
function DATAFILE.DATAARRAY_ADD_FLOAT(arrayData, value) end
--- @param arrayData number
--- @param value string
function DATAFILE.DATAARRAY_ADD_STRING(arrayData, value) end
--- @param arrayData number
--- @param valueX number
--- @param valueY number
--- @param valueZ number
function DATAFILE.DATAARRAY_ADD_VECTOR(arrayData, valueX, valueY, valueZ) end
--- @param arrayData number
--- @return number
function DATAFILE.DATAARRAY_ADD_DICT(arrayData) end
--- @param arrayData number
--- @param arrayIndex number
--- @return boolean
function DATAFILE.DATAARRAY_GET_BOOL(arrayData, arrayIndex) end
--- @param arrayData number
--- @param arrayIndex number
--- @return number
function DATAFILE.DATAARRAY_GET_INT(arrayData, arrayIndex) end
--- @param arrayData number
--- @param arrayIndex number
--- @return number
function DATAFILE.DATAARRAY_GET_FLOAT(arrayData, arrayIndex) end
--- @param arrayData number
--- @param arrayIndex number
--- @return string
function DATAFILE.DATAARRAY_GET_STRING(arrayData, arrayIndex) end
--- @param arrayData number
--- @param arrayIndex number
--- @return { x: number, y: number, z: number }
function DATAFILE.DATAARRAY_GET_VECTOR(arrayData, arrayIndex) end
--- @param arrayData number
--- @param arrayIndex number
--- @return number
function DATAFILE.DATAARRAY_GET_DICT(arrayData, arrayIndex) end
--- @param arrayData number
--- @return number
function DATAFILE.DATAARRAY_GET_COUNT(arrayData) end
--- Types:
--- 1 = Boolean
--- 2 = Integer
--- 3 = Float
--- 4 = String
--- 5 = Vector3
--- 6 = Object
--- 7 = Array
--- @param arrayData number
--- @param arrayIndex number
--- @return number
function DATAFILE.DATAARRAY_GET_TYPE(arrayData, arrayIndex) end

DECORATOR = {}

--- @param entity number
--- @param propertyName string
--- @param timestamp number
--- @return boolean
function DECORATOR.DECOR_SET_TIME(entity, propertyName, timestamp) end
--- This function sets metadata of type bool to specified entity.
--- 
--- @param entity number
--- @param propertyName string
--- @param value boolean
--- @return boolean
function DECORATOR.DECOR_SET_BOOL(entity, propertyName, value) end
--- @param entity number
--- @param propertyName string
--- @param value number
--- @return boolean
function DECORATOR.DECOR_SET_FLOAT(entity, propertyName, value) end
--- Sets property to int.
--- @param entity number
--- @param propertyName string
--- @param value number
--- @return boolean
function DECORATOR.DECOR_SET_INT(entity, propertyName, value) end
--- @param entity number
--- @param propertyName string
--- @return boolean
function DECORATOR.DECOR_GET_BOOL(entity, propertyName) end
--- @param entity number
--- @param propertyName string
--- @return number
function DECORATOR.DECOR_GET_FLOAT(entity, propertyName) end
--- @param entity number
--- @param propertyName string
--- @return number
function DECORATOR.DECOR_GET_INT(entity, propertyName) end
--- Returns whether or not the specified property is set for the entity.
--- @param entity number
--- @param propertyName string
--- @return boolean
function DECORATOR.DECOR_EXIST_ON(entity, propertyName) end
--- @param entity number
--- @param propertyName string
--- @return boolean
function DECORATOR.DECOR_REMOVE(entity, propertyName) end
--- https://alloc8or.re/gta5/doc/enums/eDecorType.txt
--- @param propertyName string
--- @param type number
function DECORATOR.DECOR_REGISTER(propertyName, type) end
--- type: see DECOR_REGISTER
--- @param propertyName string
--- @param type number
--- @return boolean
function DECORATOR.DECOR_IS_REGISTERED_AS_TYPE(propertyName, type) end
--- Called after all decorator type initializations.
function DECORATOR.DECOR_REGISTER_LOCK() end

DLC = {}

--- @return boolean
function DLC.ARE_ANY_CCS_PENDING() end
--- Returns true if the given DLC pack is present.
--- @param dlcHash number
--- @return boolean
function DLC.IS_DLC_PRESENT(dlcHash) end
--- This function is hard-coded to always return 1.
--- @return boolean
function DLC.DLC_CHECK_CLOUD_DATA_CORRECT() end
--- This function is hard-coded to always return 0.
--- @return number
function DLC.GET_EXTRACONTENT_CLOUD_RESULT() end
--- This function is hard-coded to always return 1.
--- @return boolean
function DLC.DLC_CHECK_COMPAT_PACK_CONFIGURATION() end
--- @return boolean
function DLC.GET_EVER_HAD_BAD_PACK_ORDER() end
--- @return boolean
function DLC.GET_IS_LOADING_SCREEN_ACTIVE() end
--- @return boolean
function DLC.GET_IS_INITIAL_LOADING_SCREEN_ACTIVE() end
--- Sets the value of the specified variable to 0.
--- Always returns true.
--- @param p0 any
--- @param unused number
--- @return boolean
function DLC.HAS_CLOUD_REQUESTS_FINISHED(p0, unused) end
--- Unloads GROUP_MAP (GTAO/MP) DLC data and loads GROUP_MAP_SP DLC. Neither are loaded by default, ON_ENTER_MP is a cognate to this function and loads MP DLC (and unloads SP DLC by extension).
--- Works in singleplayer.
function DLC.ON_ENTER_SP() end
--- This loads the GTA:O dlc map parts (high end garages, apartments).
--- Works in singleplayer.
--- In order to use GTA:O heist IPL's you have to call this native with the following params: SET_INSTANCE_PRIORITY_MODE(1);
function DLC.ON_ENTER_MP() end

ENTITY = {}

--- Checks whether an entity exists in the game world.
--- @param entity number
--- @return boolean
function ENTITY.DOES_ENTITY_EXIST(entity) end
--- @param entity number
--- @param p1 boolean
--- @return boolean
function ENTITY.DOES_ENTITY_BELONG_TO_THIS_SCRIPT(entity, p1) end
--- @param entity number
--- @return boolean
function ENTITY.DOES_ENTITY_HAVE_DRAWABLE(entity) end
--- @param entity number
--- @return boolean
function ENTITY.DOES_ENTITY_HAVE_PHYSICS(entity) end
--- @param entity number
--- @return boolean
function ENTITY.DOES_ENTITY_HAVE_SKELETON(entity) end
--- @param entity number
--- @return boolean
function ENTITY.DOES_ENTITY_HAVE_ANIM_DIRECTOR(entity) end
--- P3 is always 3 as far as i cant tell
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDict string
--- @param animName string
--- @param p3 number
--- @return boolean
function ENTITY.HAS_ENTITY_ANIM_FINISHED(entity, animDict, animName, p3) end
--- @param entity number
--- @return boolean
function ENTITY.HAS_ENTITY_BEEN_DAMAGED_BY_ANY_OBJECT(entity) end
--- @param entity number
--- @return boolean
function ENTITY.HAS_ENTITY_BEEN_DAMAGED_BY_ANY_PED(entity) end
--- @param entity number
--- @return boolean
function ENTITY.HAS_ENTITY_BEEN_DAMAGED_BY_ANY_VEHICLE(entity) end
--- Entity 1 = Victim
--- Entity 2 = Attacker
--- 
--- p2 seems to always be 1
--- @param entity1 number
--- @param entity2 number
--- @param p2 boolean
--- @return boolean
function ENTITY.HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(entity1, entity2, p2) end
--- traceType is always 17 in the scripts.
--- 
--- There is other codes used for traceType:
--- 19 - in jewelry_prep1a
--- 126 - in am_hunt_the_beast
--- 256 & 287 - in fm_mission_controller
--- @param entity1 number
--- @param entity2 number
--- @param traceType number
--- @return boolean
function ENTITY.HAS_ENTITY_CLEAR_LOS_TO_ENTITY(entity1, entity2, traceType) end
--- @param entity1 number
--- @param entity2 number
--- @param traceType number
--- @return boolean
function ENTITY.HAS_ENTITY_CLEAR_LOS_TO_ENTITY_ADJUST_FOR_COVER(entity1, entity2, traceType) end
--- Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing.
--- This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops
--- @param entity1 number
--- @param entity2 number
--- @return boolean
function ENTITY.HAS_ENTITY_CLEAR_LOS_TO_ENTITY_IN_FRONT(entity1, entity2) end
--- Called on tick.
--- Tested with vehicles, returns true whenever the vehicle is touching any entity.
--- 
--- Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true.
--- @param entity number
--- @return boolean
function ENTITY.HAS_ENTITY_COLLIDED_WITH_ANYTHING(entity) end
--- @param entity number
--- @return number
function ENTITY._GET_LAST_ENTITY_HIT_BY_ENTITY(entity) end
--- @param entity number
--- @return number
function ENTITY.GET_LAST_MATERIAL_HIT_BY_ENTITY(entity) end
--- @param entity number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_COLLISION_NORMAL_OF_LAST_HIT_FOR_ENTITY(entity) end
--- Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter.
--- @param entity number
function ENTITY.FORCE_ENTITY_AI_AND_ANIMATION_UPDATE(entity) end
--- Returns a float value representing animation's current playtime with respect to its total playtime. This value increasing in a range from [0 to 1] and wrap back to 0 when it reach 1.
--- 
--- Example:
--- 0.000000 - mark the starting of animation.
--- 0.500000 - mark the midpoint of the animation.
--- 1.000000 - mark the end of animation.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDict string
--- @param animName string
--- @return number
function ENTITY.GET_ENTITY_ANIM_CURRENT_TIME(entity, animDict, animName) end
--- Returns a float value representing animation's total playtime in milliseconds.
--- 
--- Example:
--- GET_ENTITY_ANIM_TOTAL_TIME(PLAYER_ID(),"amb@world_human_yoga@female@base","base_b")
--- return 20800.000000
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDict string
--- @param animName string
--- @return number
function ENTITY.GET_ENTITY_ANIM_TOTAL_TIME(entity, animDict, animName) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
--- @param animName string
--- @return number
function ENTITY.GET_ANIM_DURATION(animDict, animName) end
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_ATTACHED_TO(entity) end
--- Gets the current coordinates for a specified entity.
--- `entity` = The entity to get the coordinates from.
--- `alive` = Unused by the game, potentially used by debug builds of GTA in order to assert whether or not an entity was alive.
--- @param entity number
--- @param alive boolean
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_COORDS(entity, alive) end
--- Gets the entity's forward vector.
--- @param entity number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_FORWARD_VECTOR(entity) end
--- Gets the X-component of the entity's forward vector.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_FORWARD_X(entity) end
--- Gets the Y-component of the entity's forward vector.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_FORWARD_Y(entity) end
--- Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_HEADING(entity) end
--- Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GET_ENTITY_HEADING". This can be clearly seen while, for example, ragdolling a ped/player.
--- 
--- NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_HEADING_FROM_EULERS(entity) end
--- Returns an integer value of entity's current health.
--- 
--- Example of range for ped:
--- - Player [0 to 200]
--- - Ped [100 to 200]
--- - Vehicle [0 to 1000]
--- - Object [0 to 1000]
--- 
--- Health is actually a float value but this native casts it to int.
--- In order to get the actual value, do:
--- float health = *(float *)(entityAddress + 0x280);
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_HEALTH(entity) end
--- Return an integer value of entity's maximum health.
--- 
--- Example:
--- - Player = 200
--- - Ped = 150
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_MAX_HEALTH(entity) end
--- For instance: ENTITY::SET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID(), 200); // director_mode.c4: 67849
--- @param entity number
--- @param value number
function ENTITY.SET_ENTITY_MAX_HEALTH(entity, value) end
--- @param entity number
--- @param X number
--- @param Y number
--- @param Z number
--- @param atTop boolean
--- @param inWorldCoords boolean
--- @return number
function ENTITY.GET_ENTITY_HEIGHT(entity, X, Y, Z, atTop, inWorldCoords) end
--- Return height (z-dimension) above ground.
--- Example: The pilot in a titan plane is 1.844176 above ground.
--- 
--- How can i convert it to meters?
--- Everything seems to be in meters, probably this too.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_HEIGHT_ABOVE_GROUND(entity) end
--- @param entity number
--- @param forwardVector number
--- @param rightVector number
--- @param upVector number
--- @param position number
function ENTITY.GET_ENTITY_MATRIX(entity, forwardVector, rightVector, upVector, position) end
--- Returns the model hash from the entity
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_MODEL(entity) end
--- Converts world coords (posX - Z) to coords relative to the entity
--- 
--- Example:
--- posX is given as 50
--- entity's x coord is 40
--- the returned x coord will then be 10 or -10, not sure haven't used this in a while (think it is 10 though).
--- @param entity number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(entity, posX, posY, posZ) end
--- Offset values are relative to the entity.
--- 
--- x = left/right
--- y = forward/backward
--- z = up/down
--- @param entity number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(entity, offsetX, offsetY, offsetZ) end
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_PITCH(entity) end
--- w is the correct parameter name!
--- @param entity number
--- @param x any
--- @param y any
--- @param z any
--- @param w any
function ENTITY.GET_ENTITY_QUATERNION(entity, x, y, z, w) end
--- Displays the current ROLL axis of the entity [-180.0000/180.0000+]
--- (Sideways Roll) such as a vehicle tipped on its side
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_ROLL(entity) end
--- rotationOrder is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw.
--- 
--- rotationOrder refers to the order yaw pitch roll is applied; value ranges from 0 to 5 and is usually *2* in scripts.
--- What you use for rotationOrder when getting must be the same as rotationOrder when setting the rotation.
--- 
--- What it returns is the yaw on the z part of the vector, which makes sense considering R* considers z as vertical. Here's a picture for those of you who don't understand pitch, yaw, and roll: www.allstar.fiu.edu/aero/images/pic5-1.gif
--- 
--- Rotation Orders:
--- 0: ZYX - Rotate around the z-axis, then the y-axis and finally the x-axis.
--- 1: YZX - Rotate around the y-axis, then the z-axis and finally the x-axis.
--- 2: ZXY - Rotate around the z-axis, then the x-axis and finally the y-axis.
--- 3: XZY - Rotate around the x-axis, then the z-axis and finally the y-axis.
--- 4: YXZ - Rotate around the y-axis, then the x-axis and finally the z-axis.
--- 5: XYZ - Rotate around the x-axis, then the y-axis and finally the z-axis.
--- @param entity number
--- @param rotationOrder number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_ROTATION(entity, rotationOrder) end
--- @param entity number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_ROTATION_VELOCITY(entity) end
--- Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr.
--- @param entity number
--- @param script any
--- @return string
function ENTITY.GET_ENTITY_SCRIPT(entity, script) end
--- result is in meters per second
--- 
--- ------------------------------------------------------------
--- So would the conversion to mph and km/h, be along the lines of this.
--- 
--- float speed = GET_ENTITY_SPEED(veh);
--- float kmh = (speed * 3.6);
--- float mph = (speed * 2.236936);
--- ------------------------------------------------------------
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_SPEED(entity) end
--- Relative can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed).
--- @param entity number
--- @param relative boolean
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_SPEED_VECTOR(entity, relative) end
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_UPRIGHT_VALUE(entity) end
--- @param entity number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_VELOCITY(entity) end
--- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
--- @param entity number
--- @return number
function ENTITY.GET_OBJECT_INDEX_FROM_ENTITY_INDEX(entity) end
--- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
--- @param entity number
--- @return number
function ENTITY.GET_PED_INDEX_FROM_ENTITY_INDEX(entity) end
--- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
--- @param entity number
--- @return number
function ENTITY.GET_VEHICLE_INDEX_FROM_ENTITY_INDEX(entity) end
--- Returns the coordinates of an entity-bone.
--- @param entity number
--- @param boneIndex number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_WORLD_POSITION_OF_ENTITY_BONE(entity, boneIndex) end
--- @param entity number
--- @return number
function ENTITY.GET_NEAREST_PLAYER_TO_ENTITY(entity) end
--- @param entity number
--- @param team number
--- @return number
function ENTITY.GET_NEAREST_PLAYER_TO_ENTITY_ON_TEAM(entity, team) end
--- @param entity number
--- @return number
function ENTITY.GET_NEAREST_PARTICIPANT_TO_ENTITY(entity) end
--- Returns:
--- 0 = no entity
--- 1 = ped
--- 2 = vehicle
--- 3 = object
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_TYPE(entity) end
--- A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_POPULATION_TYPE(entity) end
--- @param handle number
--- @return boolean
function ENTITY.IS_AN_ENTITY(handle) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_A_PED(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_A_MISSION_ENTITY(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_A_VEHICLE(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_AN_OBJECT(entity) end
--- Checks if entity is within x/y/zSize distance of x/y/z.
--- 
--- Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0
--- @param entity number
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param xSize number
--- @param ySize number
--- @param zSize number
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 number
--- @return boolean
function ENTITY.IS_ENTITY_AT_COORD(entity, xPos, yPos, zPos, xSize, ySize, zSize, p7, p8, p9) end
--- Checks if entity1 is within the box defined by x/y/zSize of entity2.
--- 
--- Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0
--- @param entity1 number
--- @param entity2 number
--- @param xSize number
--- @param ySize number
--- @param zSize number
--- @param p5 boolean
--- @param p6 boolean
--- @param p7 number
--- @return boolean
function ENTITY.IS_ENTITY_AT_ENTITY(entity1, entity2, xSize, ySize, zSize, p5, p6, p7) end
--- Whether the entity is attached to any other entity.
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_ATTACHED(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_ATTACHED_TO_ANY_OBJECT(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_ATTACHED_TO_ANY_PED(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_ATTACHED_TO_ANY_VEHICLE(entity) end
--- @param from number
--- @param to number
--- @return boolean
function ENTITY.IS_ENTITY_ATTACHED_TO_ENTITY(from, to) end
--- @param entity number
--- @param p1 boolean
--- @return boolean
function ENTITY.IS_ENTITY_DEAD(entity, p1) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_IN_AIR(entity) end
--- `p8` is a debug flag invoking functions in the same path as ``DRAW_MARKER``
--- `p10` is some entity flag check, also used in `IS_ENTITY_AT_ENTITY`, `IS_ENTITY_IN_AREA`, and `IS_ENTITY_AT_COORD`.
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- @param entity number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param debug boolean
--- @param includeZ boolean
--- @param p10 number
--- @return boolean
function ENTITY.IS_ENTITY_IN_ANGLED_AREA(entity, x1, y1, z1, x2, y2, z2, width, debug, includeZ, p10) end
--- @param entity number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 number
--- @return boolean
function ENTITY.IS_ENTITY_IN_AREA(entity, x1, y1, z1, x2, y2, z2, p7, p8, p9) end
--- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json
--- @param entity number
--- @param zone string
--- @return boolean
function ENTITY.IS_ENTITY_IN_ZONE(entity, zone) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_IN_WATER(entity) end
--- Get how much of the entity is submerged.  1.0f is whole entity.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_SUBMERGED_LEVEL(entity) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_REQUIRES_MORE_EXPENSIVE_RIVER_CHECK(entity, toggle) end
--- Returns true if the entity is in between the minimum and maximum values for the 2d screen coords.
--- This means that it will return true even if the entity is behind a wall for example, as long as you're looking at their location.
--- Chipping
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_ON_SCREEN(entity) end
--- See also PED::IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM 0x6EC47A344923E1ED 0x3C30B447
--- 
--- Taken from ENTITY::IS_ENTITY_PLAYING_ANIM(PLAYER::PLAYER_PED_ID(), "creatures@shark@move", "attack_player", 3)
--- 
--- p4 is always 3 in the scripts.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDict string
--- @param animName string
--- @param taskFlag number
--- @return boolean
function ENTITY.IS_ENTITY_PLAYING_ANIM(entity, animDict, animName, taskFlag) end
--- a static ped will not react to natives like "APPLY_FORCE_TO_ENTITY" or "SET_ENTITY_VELOCITY" and oftentimes will not react to task-natives like "TASK::TASK_COMBAT_PED". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use CLEAR_PED_TASKS_IMMEDIATELY(). Static peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-static without ragdolling them, please edit this with the solution.
--- 
--- how can I make an entity static???
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_STATIC(entity) end
--- @param entity number
--- @param targetEntity number
--- @return boolean
function ENTITY.IS_ENTITY_TOUCHING_ENTITY(entity, targetEntity) end
--- @param entity number
--- @param modelHash number
--- @return boolean
function ENTITY.IS_ENTITY_TOUCHING_MODEL(entity, modelHash) end
--- @param entity number
--- @param angle number
--- @return boolean
function ENTITY.IS_ENTITY_UPRIGHT(entity, angle) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_UPSIDEDOWN(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_VISIBLE(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_VISIBLE_TO_SCRIPT(entity) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_OCCLUDED(entity) end
--- @param entityModelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 boolean
--- @return boolean
function ENTITY.WOULD_ENTITY_BE_OCCLUDED(entityModelHash, x, y, z, p4) end
--- @param entity number
--- @return boolean
function ENTITY.IS_ENTITY_WAITING_FOR_WORLD_COLLISION(entity) end
--- Applies a force to the specified entity.
--- 
--- **List of force types (p1)**:
--- public enum ForceType
--- {
--- MinForce = 0,
--- MaxForceRot = 1,
--- MinForce2 = 2,
--- MaxForceRot2 = 3,
--- ForceNoRot = 4,
--- ForceRotPlusForce = 5
--- }
--- Research/documentation on the gtaforums can be found here https://gtaforums.com/topic/885669-precisely-define-object-physics/) and here https://gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/.
--- 
--- p6/relative - makes the xyz force not relative to world coords, but to something else
--- p7/highForce - setting false will make the force really low
--- @param entity number
--- @param forceType number
--- @param x number
--- @param y number
--- @param z number
--- @param p5 boolean
--- @param isDirectionRel boolean
--- @param isForceRel boolean
--- @param p8 boolean
function ENTITY.APPLY_FORCE_TO_ENTITY_CENTER_OF_MASS(entity, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8) end
--- Documented here:
--- gtaforums.com/topic/885669-precisely-define-object-physics/
--- gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/
--- 
--- forceFlags:
--- First bit (lowest): Strong force flag, factor 100
--- Second bit: Unkown flag
--- Third bit: Momentum flag=1 (vector (x,y,z) is a momentum, more research needed)
--- If higher bits are unequal 0 the function doesn't applay any forces at all.
--- (As integer possible values are 0-7)
--- 
--- 0: weak force
--- 1: strong force
--- 2: same as 0 (2nd bit?)
--- 3: same as 1
--- 4: weak momentum
--- 5: strong momentum
--- 6: same as 4
--- 7: same as 5
--- 
--- isLocal: vector defined in local (body-fixed) coordinate frame
--- isMassRel: if true the force gets multiplied with the objects mass (this is why it was known as highForce) and different objects will have the same acceleration.
--- 
--- p8 !!! Whenever I set this !=0, my script stopped.
--- @param entity number
--- @param forceFlags number
--- @param x number
--- @param y number
--- @param z number
--- @param offX number
--- @param offY number
--- @param offZ number
--- @param boneIndex number
--- @param isDirectionRel boolean
--- @param ignoreUpVec boolean
--- @param isForceRel boolean
--- @param p12 boolean
--- @param p13 boolean
function ENTITY.APPLY_FORCE_TO_ENTITY(entity, forceFlags, x, y, z, offX, offY, offZ, boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13) end
--- Attaches entity1 to bone (boneIndex) of entity2.
--- 
--- boneIndex - this is different to boneID, use GET_PED_BONE_INDEX to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type.
--- 
--- useSoftPinning - if set to false attached entity will not detach when fixed
--- collision - controls collision between the two entities (FALSE disables collision).
--- isPed - pitch doesnt work when false and roll will only work on negative numbers (only peds)
--- vertexIndex - position of vertex
--- fixedRot - if false it ignores entity vector
--- 
--- @param entity1 number
--- @param entity2 number
--- @param boneIndex number
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param p9 boolean
--- @param useSoftPinning boolean
--- @param collision boolean
--- @param isPed boolean
--- @param vertexIndex number
--- @param fixedRot boolean
--- @param p15 number
function ENTITY.ATTACH_ENTITY_TO_ENTITY(entity1, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15) end
--- @param entity1 number
--- @param entity2 number
--- @param boneIndex1 number
--- @param boneIndex2 number
--- @param p4 boolean
--- @param p5 boolean
function ENTITY.ATTACH_ENTITY_BONE_TO_ENTITY_BONE(entity1, entity2, boneIndex1, boneIndex2, p4, p5) end
--- @param entity1 number
--- @param entity2 number
--- @param boneIndex1 number
--- @param boneIndex2 number
--- @param p4 boolean
--- @param p5 boolean
function ENTITY.ATTACH_ENTITY_BONE_TO_ENTITY_BONE_Y_FORWARD(entity1, entity2, boneIndex1, boneIndex2, p4, p5) end
--- breakForce is the amount of force required to break the bond.
--- p14 - is always 1 in scripts
--- p15 - is 1 or 0 in scripts - unknoun what it does
--- p16 - controls collision between the two entities (FALSE disables collision).
--- p17 - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone)
--- p18 - is always 2 in scripts.
--- 
--- 
--- @param entity1 number
--- @param entity2 number
--- @param boneIndex1 number
--- @param boneIndex2 number
--- @param xPos1 number
--- @param yPos1 number
--- @param zPos1 number
--- @param xPos2 number
--- @param yPos2 number
--- @param zPos2 number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param breakForce number
--- @param fixedRot boolean
--- @param p15 boolean
--- @param collision boolean
--- @param p17 boolean
--- @param p18 number
function ENTITY.ATTACH_ENTITY_TO_ENTITY_PHYSICALLY(entity1, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18) end
--- @param firstEntityIndex number
--- @param secondEntityIndex number
--- @param firstEntityBoneIndex number
--- @param secondEntityBoneIndex number
--- @param secondEntityOffsetX number
--- @param secondEntityOffsetY number
--- @param secondEntityOffsetZ number
--- @param firstEntityOffsetX number
--- @param firstEntityOffsetY number
--- @param firstEntityOffsetZ number
--- @param vecRotationX number
--- @param vecRotationY number
--- @param vecRotationZ number
--- @param physicalStrength number
--- @param constrainRotation boolean
--- @param doInitialWarp boolean
--- @param collideWithEntity boolean
--- @param addInitialSeperation boolean
--- @param rotOrder number
--- @param invMassScaleA number
--- @param invMassScaleB number
function ENTITY.ATTACH_ENTITY_TO_ENTITY_PHYSICALLY_OVERRIDE_INVERSE_MASS(firstEntityIndex, secondEntityIndex, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB) end
--- Called to update entity attachments.
--- @param entity number
function ENTITY.PROCESS_ENTITY_ATTACHMENTS(entity) end
--- Returns the index of the bone. If the bone was not found, -1 will be returned.
--- 
--- list:
--- https://pastebin.com/D7JMnX1g
--- 
--- BoneNames:
--- chassis,
--- windscreen,
--- seat_pside_r,
--- seat_dside_r,
--- bodyshell,
--- suspension_lm,
--- suspension_lr,
--- platelight,
--- attach_female,
--- attach_male,
--- bonnet,
--- boot,
--- chassis_dummy,  //Center of the dummy
--- chassis_Control,    //Not found yet
--- door_dside_f,   //Door left, front
--- door_dside_r,   //Door left, back
--- door_pside_f,   //Door right, front
--- door_pside_r,   //Door right, back
--- Gun_GripR,
--- windscreen_f,
--- platelight, //Position where the light above the numberplate is located
--- VFX_Emitter,
--- window_lf,  //Window left, front
--- window_lr,  //Window left, back
--- window_rf,  //Window right, front
--- window_rr,  //Window right, back
--- engine, //Position of the engine
--- gun_ammo,
--- ROPE_ATTATCH,   //Not misspelled. In script "finale_heist2b.c4".
--- wheel_lf,   //Wheel left, front
--- wheel_lr,   //Wheel left, back
--- wheel_rf,   //Wheel right, front
--- wheel_rr,   //Wheel right, back
--- exhaust,    //Exhaust. shows only the position of the stock-exhaust
--- overheat,   //A position on the engine(not exactly sure, how to name it)
--- misc_e, //Not a car-bone.
--- seat_dside_f,   //Driver-seat
--- seat_pside_f,   //Seat next to driver
--- Gun_Nuzzle,
--- seat_r
--- 
--- I doubt that the function is case-sensitive, since I found a "Chassis" and a "chassis". - Just tested: Definitely not case-sensitive.
--- 
--- 
--- @param entity number
--- @param boneName string
--- @return number
function ENTITY.GET_ENTITY_BONE_INDEX_BY_NAME(entity, boneName) end
--- @param entity number
function ENTITY.CLEAR_ENTITY_LAST_DAMAGE_ENTITY(entity) end
--- Deletes the specified entity, then sets the handle pointed to by the pointer to NULL.
--- @param entity number
function ENTITY.DELETE_ENTITY(entity) end
--- If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters.
--- Set `dynamic` to true to keep velocity after dettaching
--- @param entity number
--- @param dynamic boolean
--- @param collision boolean
function ENTITY.DETACH_ENTITY(entity, dynamic, collision) end
--- Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SET_ENTITY_COORDS.
--- @param entity number
--- @param toggle boolean
function ENTITY.FREEZE_ENTITY_POSITION(entity, toggle) end
--- True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up.
--- 
--- "Allow Freeze If No Collision"
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(entity, toggle) end
--- delta and bitset are guessed fields. They are based on the fact that most of the calls have 0 or nil field types passed in.
--- 
--- The only time bitset has a value is 0x4000 and the only time delta has a value is during stealth with usually <1.0f values.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animName string
--- @param animDict string
--- @param p3 number
--- @param loop boolean
--- @param stayInAnim boolean
--- @param p6 boolean
--- @param delta number
--- @param bitset number
--- @return boolean
function ENTITY.PLAY_ENTITY_ANIM(entity, animName, animDict, p3, loop, stayInAnim, p6, delta, bitset) end
--- p4 and p7 are usually 1000.0f.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param syncedScene number
--- @param animation string
--- @param propName string
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @return boolean
function ENTITY.PLAY_SYNCHRONIZED_ENTITY_ANIM(entity, syncedScene, animation, propName, p4, p5, p6, p7) end
--- p6,p7 probably animname and animdict
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 string
--- @param p7 string
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
--- @return boolean
function ENTITY.PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, p11) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function ENTITY.STOP_SYNCHRONIZED_MAP_ENTITY_ANIM(x1, y1, z1, x2, y2, z2) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- RAGEPluginHook list: docs.ragepluginhook.net/html/62951c37-a440-478c-b389-c471230ddfc5.htm
--- @param entity number
--- @param animation string
--- @param animGroup string
--- @param p3 number
--- @return boolean
function ENTITY.STOP_ENTITY_ANIM(entity, animation, animGroup, p3) end
--- p1 sync task id?
--- @param entity number
--- @param p1 number
--- @param p2 boolean
--- @return boolean
function ENTITY.STOP_SYNCHRONIZED_ENTITY_ANIM(entity, p1, p2) end
--- if (ENTITY::HAS_ANIM_EVENT_FIRED(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("CreateObject")))
--- @param entity number
--- @param actionHash number
--- @return boolean
function ENTITY.HAS_ANIM_EVENT_FIRED(entity, actionHash) end
--- In the script "player_scene_t_bbfight.c4":
--- "if (ENTITY::FIND_ANIM_EVENT_PHASE(&l_16E, &l_19F[v_4/*16*/], v_9, &v_A, &v_B))"
--- -- &l_16E (p0) is requested as an anim dictionary earlier in the script.
--- -- &l_19F[v_4/*16*/] (p1) is used in other natives in the script as the "animation" param.
--- -- v_9 (p2) is instantiated as "victim_fall"; I'm guessing that's another anim
--- --v_A and v_B (p3 & p4) are both set as -1.0, but v_A is used immediately after this native for:
--- "if (v_A < ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(...))"
--- Both v_A and v_B are seemingly used to contain both Vector3's and floats, so I can't say what either really is other than that they are both output parameters. p4 looks more like a *Vector3 though
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDictionary string
--- @param animName string
--- @param p2 string
--- @param p3 number
--- @param p4 number
--- @return boolean
function ENTITY.FIND_ANIM_EVENT_PHASE(animDictionary, animName, p2, p3, p4) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDictionary string
--- @param animName string
--- @param time number
function ENTITY.SET_ENTITY_ANIM_CURRENT_TIME(entity, animDictionary, animName, time) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDictionary string
--- @param animName string
--- @param speedMultiplier number
function ENTITY.SET_ENTITY_ANIM_SPEED(entity, animDictionary, animName, speedMultiplier) end
--- Makes the specified entity (ped, vehicle or object) persistent. Persistent entities will not automatically be removed by the engine.
--- 
--- p1 has no effect when either its on or off
--- maybe a quick disassembly will tell us what it does
--- 
--- p2 has no effect when either its on or off
--- maybe a quick disassembly will tell us what it does
--- @param entity number
--- @param p1 boolean
--- @param p2 boolean
function ENTITY.SET_ENTITY_AS_MISSION_ENTITY(entity, p1, p2) end
--- Marks the specified entity (ped, vehicle or object) as no longer needed if its population type is set to the mission type.
--- If the entity is ped, it will also clear their tasks immediately just like when CLEAR_PED_TASKS_IMMEDIATELY is called.
--- Entities marked as no longer needed, will be deleted as the engine sees fit.
--- Use this if you just want to just let the game delete the ped:
--- void MarkPedAsAmbientPed(Ped ped) {
--- auto addr = getScriptHandleBaseAddress(ped);
--- 
--- if (!addr) {
--- return;
--- }
--- 
--- //the game uses only lower 4 bits as entity population type
--- BYTE origValue = *(BYTE *)(addr + 0xDA);
--- *(BYTE *)(addr + 0xDA) = ((origValue & 0xF0) | ePopulationType::POPTYPE_RANDOM_AMBIENT);
--- }
--- @param entity number
function ENTITY.SET_ENTITY_AS_NO_LONGER_NEEDED(entity) end
--- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED.
--- @param ped number
function ENTITY.SET_PED_AS_NO_LONGER_NEEDED(ped) end
--- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED.
--- @param vehicle number
function ENTITY.SET_VEHICLE_AS_NO_LONGER_NEEDED(vehicle) end
--- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED.
--- @param object number
function ENTITY.SET_OBJECT_AS_NO_LONGER_NEEDED(object) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_CAN_BE_DAMAGED(entity, toggle) end
--- @param entity number
--- @return boolean
function ENTITY.GET_ENTITY_CAN_BE_DAMAGED(entity) end
--- @param entity number
--- @param bCanBeDamaged boolean
--- @param relGroup number
function ENTITY.SET_ENTITY_CAN_BE_DAMAGED_BY_RELATIONSHIP_GROUP(entity, bCanBeDamaged, relGroup) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_CAN_ONLY_BE_DAMAGED_BY_SCRIPT_PARTICIPANTS(entity, toggle) end
--- Sets whether the entity can be targeted without being in line-of-sight.
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_CAN_BE_TARGETED_WITHOUT_LOS(entity, toggle) end
--- @param entity number
--- @param toggle boolean
--- @param keepPhysics boolean
function ENTITY.SET_ENTITY_COLLISION(entity, toggle, keepPhysics) end
--- @param entity number
--- @return boolean
function ENTITY.GET_ENTITY_COLLISION_DISABLED(entity) end
--- @param entity number
--- @param toggle boolean
--- @param keepPhysics boolean
function ENTITY.SET_ENTITY_COMPLETELY_DISABLE_COLLISION(entity, toggle, keepPhysics) end
--- p7 is always 1 in the scripts. Set to 1, an area around the destination coords for the moved entity is cleared from other entities.
--- 
--- Often ends with 1, 0, 0, 1); in the scripts. It works.
--- 
--- Axis - Invert Axis Flags
--- @param entity number
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @param clearArea boolean
function ENTITY.SET_ENTITY_COORDS(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea) end
--- @param entity number
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param alive boolean
--- @param deadFlag boolean
--- @param ragdollFlag boolean
--- @param clearArea boolean
function ENTITY.SET_ENTITY_COORDS_WITHOUT_PLANTS_RESET(entity, xPos, yPos, zPos, alive, deadFlag, ragdollFlag, clearArea) end
--- Axis - Invert Axis Flags
--- @param entity number
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
function ENTITY.SET_ENTITY_COORDS_NO_OFFSET(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_DYNAMIC(entity, toggle) end
--- Set the heading of an entity in degrees also known as "Yaw".
--- @param entity number
--- @param heading number
function ENTITY.SET_ENTITY_HEADING(entity, heading) end
--- health >= 0
--- male ped ~= 100 - 200
--- female ped ~= 0 - 100
--- @param entity number
--- @param health number
--- @param instigator number
--- @param weaponType number
function ENTITY.SET_ENTITY_HEALTH(entity, health, instigator, weaponType) end
--- Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either.
--- 
--- If you use this for a ped and you want Ragdoll to stay enabled, then do:
--- *(DWORD *)(pedAddress + 0x188) |= (1 << 9);
--- 
--- Use this if you want to get the invincibility status:
--- bool IsPedInvincible(Ped ped)
--- {
--- auto addr = getScriptHandleBaseAddress(ped);
--- 
--- if (addr)
--- {
--- DWORD flag = *(DWORD *)(addr + 0x188);
--- return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0);
--- }
--- 
--- return false;
--- }
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_INVINCIBLE(entity, toggle) end
--- @param entity number
--- @param p1 boolean
--- @param p2 number
function ENTITY.SET_ENTITY_IS_TARGET_PRIORITY(entity, p1, p2) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_LIGHTS(entity, toggle) end
--- Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid.
--- Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player.
--- @param entity number
--- @param toggle boolean
--- @param p2 number
function ENTITY.SET_ENTITY_LOAD_COLLISION_FLAG(entity, toggle, p2) end
--- @param entity number
--- @return boolean
function ENTITY.HAS_COLLISION_LOADED_AROUND_ENTITY(entity) end
--- @param entity number
--- @param speed number
function ENTITY.SET_ENTITY_MAX_SPEED(entity, speed) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(entity, toggle) end
--- @param entity number
--- @param p1 boolean
--- @param p2 number
function ENTITY.SET_ENTITY_ONLY_DAMAGED_BY_RELATIONSHIP_GROUP(entity, p1, p2) end
--- Enable / disable each type of damage.
--- 
--- waterProof is damage related to water not drowning
--- --------------
--- p7 is to to '1' in am_mp_property_ext/int: ENTITY::SET_ENTITY_PROOFS(uParam0->f_19, true, true, true, true, true, true, 1, true);
--- 
--- @param entity number
--- @param bulletProof boolean
--- @param fireProof boolean
--- @param explosionProof boolean
--- @param collisionProof boolean
--- @param meleeProof boolean
--- @param steamProof boolean
--- @param p7 boolean
--- @param waterProof boolean
function ENTITY.SET_ENTITY_PROOFS(entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, waterProof) end
--- @param entity number
--- @param bulletProof any
--- @param fireProof any
--- @param explosionProof any
--- @param collisionProof any
--- @param meleeProof any
--- @param steamProof any
--- @param p7 any
--- @param drownProof any
--- @return boolean
function ENTITY.GET_ENTITY_PROOFS(entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, drownProof) end
--- w is the correct parameter name!
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
--- @param w number
function ENTITY.SET_ENTITY_QUATERNION(entity, x, y, z, w) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_RECORDS_COLLISIONS(entity, toggle) end
--- rotationOrder refers to the order yaw pitch roll is applied
--- value ranges from 0 to 5. What you use for rotationOrder when setting must be the same as rotationOrder when getting the rotation.
--- Unsure what value corresponds to what rotation order, more testing will be needed for that.
--- For the most part R* uses 1 or 2 as the order.
--- p5 is usually set as true
--- 
--- @param entity number
--- @param pitch number
--- @param roll number
--- @param yaw number
--- @param rotationOrder number
--- @param p5 boolean
function ENTITY.SET_ENTITY_ROTATION(entity, pitch, roll, yaw, rotationOrder, p5) end
--- p2 is always 0.
--- @param entity number
--- @param toggle boolean
--- @param p2 boolean
function ENTITY.SET_ENTITY_VISIBLE(entity, toggle, p2) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_WATER_REFLECTION_FLAG(entity, toggle) end
--- @param entity number
--- @param p1 boolean
function ENTITY.SET_ENTITY_MIRROR_REFLECTION_FLAG(entity, p1) end
--- Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement.
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
function ENTITY.SET_ENTITY_VELOCITY(entity, x, y, z) end
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
function ENTITY.SET_ENTITY_ANGULAR_VELOCITY(entity, x, y, z) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_HAS_GRAVITY(entity, toggle) end
--- LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t).
--- @param entity number
--- @param value number
function ENTITY.SET_ENTITY_LOD_DIST(entity, value) end
--- Returns the LOD distance of an entity.
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_LOD_DIST(entity) end
--- skin - everything alpha except skin
--- Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51).
--- @param entity number
--- @param alphaLevel number
--- @param skin boolean
function ENTITY.SET_ENTITY_ALPHA(entity, alphaLevel, skin) end
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_ALPHA(entity) end
--- @param entity number
function ENTITY.RESET_ENTITY_ALPHA(entity) end
--- Similar to RESET_ENTITY_ALPHA
--- @param entity number
function ENTITY.RESET_PICKUP_ENTITY_GLOW(entity) end
--- @param p0 number
--- @param p1 number
function ENTITY.SET_PICKUP_COLLIDES_WITH_PROJECTILES(p0, p1) end
--- Only called once in the scripts.
--- 
--- Related to weapon objects.
--- 
--- @param entity number
--- @param p1 number
function ENTITY.SET_ENTITY_SORT_BIAS(entity, p1) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_ALWAYS_PRERENDER(entity, toggle) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_RENDER_SCORCHED(entity, toggle) end
--- Example here: www.gtaforums.com/topic/830463-help-with-turning-lights-green-and-causing-peds-to-crash-into-each-other/#entry1068211340
--- 
--- 0 = green
--- 1 = red
--- 2 = yellow
--- 3 = reset changes
--- changing lights may not change the behavior of vehicles
--- @param entity number
--- @param state number
function ENTITY.SET_ENTITY_TRAFFICLIGHT_OVERRIDE(entity, state) end
--- @param entity number
function ENTITY.SET_ENTITY_IS_IN_VEHICLE(entity) end
--- Only works with objects!
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param originalModel number
--- @param newModel number
--- @param p6 boolean
function ENTITY.CREATE_MODEL_SWAP(x, y, z, radius, originalModel, newModel, p6) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param originalModel number
--- @param newModel number
--- @param p6 boolean
function ENTITY.REMOVE_MODEL_SWAP(x, y, z, radius, originalModel, newModel, p6) end
--- p5 = sets as true in scripts
--- Same as the comment for CREATE_MODEL_SWAP unless for some reason p5 affects it this only works with objects as well.
--- 
--- Network players do not see changes done with this.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param p5 boolean
function ENTITY.CREATE_MODEL_HIDE(x, y, z, radius, modelHash, p5) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param p5 boolean
function ENTITY.CREATE_MODEL_HIDE_EXCLUDING_SCRIPT_OBJECTS(x, y, z, radius, modelHash, p5) end
--- This native makes entities visible that are hidden by the native CREATE_MODEL_HIDE.
--- p5 should be false, true does nothing
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param p5 boolean
function ENTITY.REMOVE_MODEL_HIDE(x, y, z, radius, modelHash, p5) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param modelHash number
--- @param p5 boolean
function ENTITY.CREATE_FORCED_OBJECT(x, y, z, p3, modelHash, p5) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param modelHash number
function ENTITY.REMOVE_FORCED_OBJECT(x, y, z, p3, modelHash) end
--- Calling this function disables collision between two entities.
--- The importance of the order for entity1 and entity2 is unclear.
--- The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame.
--- @param entity1 number
--- @param entity2 number
--- @param thisFrameOnly boolean
function ENTITY.SET_ENTITY_NO_COLLISION_ENTITY(entity1, entity2, thisFrameOnly) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_ENTITY_MOTION_BLUR(entity, toggle) end
--- p1 always false.
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_CAN_AUTO_VAULT_ON_ENTITY(entity, toggle) end
--- p1 always false.
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_CAN_CLIMB_ON_ENTITY(entity, toggle) end
--- Only called within 1 script for x360. 'fm_mission_controller' and it used on an object.
--- 
--- Ran after these 2 natives,
--- set_object_targettable(uParam0, 0);
--- set_entity_invincible(uParam0, 1);
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_WAIT_FOR_COLLISIONS_BEFORE_PROBE(entity, toggle) end
--- @param entity number
--- @param p1 boolean
function ENTITY.SET_ENTITY_NOWEAPONDECALS(entity, p1) end
--- @param entity number
--- @param p1 boolean
function ENTITY.SET_ENTITY_USE_MAX_DISTANCE_FOR_WATER_REFLECTION(entity, p1) end
--- Gets the world rotation of the specified bone of the specified entity.
--- @param entity number
--- @param boneIndex number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_BONE_ROTATION(entity, boneIndex) end
--- Gets the world position of the specified bone of the specified entity.
--- @param entity number
--- @param boneIndex number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_BONE_POSTION(entity, boneIndex) end
--- Gets the local rotation of the specified bone of the specified entity.
--- @param entity number
--- @param boneIndex number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_BONE_OBJECT_ROTATION(entity, boneIndex) end
--- @param entity number
--- @param boneIndex number
--- @return { x: number, y: number, z: number }
function ENTITY.GET_ENTITY_BONE_OBJECT_POSTION(entity, boneIndex) end
--- @param entity number
--- @return number
function ENTITY.GET_ENTITY_BONE_COUNT(entity) end
--- @param entity number
function ENTITY.ENABLE_ENTITY_BULLET_COLLISION(entity) end
--- @param entity1 number
--- @param entity2 number
function ENTITY.SET_ENTITY_CAN_ONLY_BE_DAMAGED_BY_ENTITY(entity1, entity2) end
--- @param entity1 number
--- @param entity2 number
function ENTITY.SET_ENTITY_CANT_CAUSE_COLLISION_DAMAGED_ENTITY(entity1, entity2) end
--- p1 is always set to 1
--- @param entity number
--- @param p1 number
function ENTITY.SET_ALLOW_MIGRATE_TO_SPECTATOR(entity, p1) end
--- Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped.
--- This native does not appear to have anything to do with pickups as in scripts it is used with objects.
--- 
--- Example from fm_mission_controller_2020.c:
--- 
--- iVar8 = ENTITY::GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY(bParam0->f_9, joaat("p_cs_clipboard"));
--- @param entity number
--- @param modelHash number
--- @return number
function ENTITY.GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY(entity, modelHash) end
--- @param entity number
--- @param toggle boolean
function ENTITY.SET_PICK_UP_BY_CARGOBOB_DISABLED(entity, toggle) end

EVENT = {}

--- @param ped number
--- @param name number
function EVENT.SET_DECISION_MAKER(ped, name) end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- @param name number
--- @param eventType number
function EVENT.CLEAR_DECISION_MAKER_EVENT_RESPONSE(name, eventType) end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- 
--- This is limited to 4 blocked events at a time.
--- @param name number
--- @param eventType number
function EVENT.BLOCK_DECISION_MAKER_EVENT(name, eventType) end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- @param name number
--- @param eventType number
function EVENT.UNBLOCK_DECISION_MAKER_EVENT(name, eventType) end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- @param eventType number
--- @param x number
--- @param y number
--- @param z number
--- @param duration number
--- @return number
function EVENT.ADD_SHOCKING_EVENT_AT_POSITION(eventType, x, y, z, duration) end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- @param eventType number
--- @param entity number
--- @param duration number
--- @return number
function EVENT.ADD_SHOCKING_EVENT_FOR_ENTITY(eventType, entity, duration) end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- @param eventType number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function EVENT.IS_SHOCKING_EVENT_IN_SPHERE(eventType, x, y, z, radius) end
--- @param event number
--- @return boolean
function EVENT.REMOVE_SHOCKING_EVENT(event) end
--- @param p0 boolean
function EVENT.REMOVE_ALL_SHOCKING_EVENTS(p0) end
function EVENT.REMOVE_SHOCKING_EVENT_SPAWN_BLOCKING_AREAS() end
function EVENT.SUPPRESS_SHOCKING_EVENTS_NEXT_FRAME() end
--- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt
--- @param eventType number
function EVENT.SUPPRESS_SHOCKING_EVENT_TYPE_NEXT_FRAME(eventType) end
function EVENT.SUPPRESS_AGITATION_EVENTS_NEXT_FRAME() end

FILES = {}

--- Character types:
--- 0 = Michael,
--- 1 = Franklin,
--- 2 = Trevor,
--- 3 = MPMale,
--- 4 = MPFemale
--- @param character number
--- @return number
function FILES.GET_NUM_TATTOO_SHOP_DLC_ITEMS(character) end
--- Character types:
--- 0 = Michael,
--- 1 = Franklin,
--- 2 = Trevor,
--- 3 = MPMale,
--- 4 = MPFemale
--- 
--- 
--- enum TattooZoneData
--- {
--- ZONE_TORSO = 0,
--- ZONE_HEAD = 1,
--- ZONE_LEFT_ARM = 2,
--- ZONE_RIGHT_ARM = 3,
--- ZONE_LEFT_LEG = 4,
--- ZONE_RIGHT_LEG = 5,
--- ZONE_UNKNOWN = 6,
--- ZONE_NONE = 7,
--- };
--- struct outComponent
--- {
--- // these vars are suffixed with 4 bytes of padding each.
--- uint unk;
--- int unk2;
--- uint tattooCollectionHash;
--- uint tattooNameHash;
--- int unk3;
--- TattooZoneData zoneId;
--- uint unk4;
--- uint unk5;
--- // maybe more, not sure exactly, decompiled scripts are very vague around this part.
--- }
--- @param characterType number
--- @param decorationIndex number
--- @param outComponent number
--- @return boolean
function FILES.GET_TATTOO_SHOP_DLC_ITEM_DATA(characterType, decorationIndex, outComponent) end
--- Returns some sort of index/offset for overlays/decorations.
--- 
--- Character types:
--- 0 = Michael,
--- 1 = Franklin,
--- 2 = Trevor,
--- 3 = MPMale,
--- 4 = MPFemale
--- @param overlayHash number
--- @param p1 number
--- @param character number
--- @return number
function FILES.GET_TATTOO_SHOP_DLC_ITEM_INDEX(overlayHash, p1, character) end
--- @param outComponent number
function FILES.INIT_SHOP_PED_COMPONENT(outComponent) end
--- @param outProp number
function FILES.INIT_SHOP_PED_PROP(outProp) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return number
function FILES.SETUP_SHOP_PED_APPAREL_QUERY(p0, p1, p2, p3) end
--- character is 0 for Michael, 1 for Franklin, 2 for Trevor, 3 for freemode male, and 4 for freemode female.
--- 
--- componentId is between 0 and 11 and corresponds to the usual component slots.
--- 
--- p1 could be the outfit number; unsure.
--- 
--- p2 is usually -1; unknown function.
--- 
--- p3 appears to be for selecting between clothes and props; false is used with components/clothes, true is used with props.
--- 
--- p4 is usually -1; unknown function.
--- 
--- componentId is -1 when p3 is true in decompiled scripts.
--- @param character number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @param p4 number
--- @param componentId number
--- @return number
function FILES.SETUP_SHOP_PED_APPAREL_QUERY_TU(character, p1, p2, p3, p4, componentId) end
--- See https://git.io/JtcRf for example and structs.
--- @param componentId number
--- @param outComponent number
function FILES.GET_SHOP_PED_QUERY_COMPONENT(componentId, outComponent) end
--- Returns some sort of index/offset for components.
--- Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = false and componentId with the drawable's component slot first, returns -1 otherwise.
--- @param componentHash number
--- @return number
function FILES.GET_SHOP_PED_QUERY_COMPONENT_INDEX(componentHash) end
--- More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86
--- @param componentHash number
--- @param outComponent number
function FILES.GET_SHOP_PED_COMPONENT(componentHash, outComponent) end
--- See https://git.io/JtcRf for example and structs.
--- @param componentId number
--- @param outProp number
function FILES.GET_SHOP_PED_QUERY_PROP(componentId, outProp) end
--- Returns some sort of index/offset for props.
--- Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = true and componentId = -1 first, returns -1 otherwise.
--- @param componentHash number
--- @return number
function FILES.GET_SHOP_PED_QUERY_PROP_INDEX(componentHash) end
--- More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86
--- @param componentHash number
--- @param outProp number
function FILES.GET_SHOP_PED_PROP(componentHash, outProp) end
--- @param entity number
--- @param componentId number
--- @param drawableVariant number
--- @param textureVariant number
--- @return number
function FILES.GET_HASH_NAME_FOR_COMPONENT(entity, componentId, drawableVariant, textureVariant) end
--- @param entity number
--- @param componentId number
--- @param propIndex number
--- @param propTextureIndex number
--- @return number
function FILES.GET_HASH_NAME_FOR_PROP(entity, componentId, propIndex, propTextureIndex) end
--- @param componentHash number
--- @return number
function FILES.GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT(componentHash) end
--- `propHash`: Ped helmet prop hash?
--- This native returns 1 when the player helmet has a visor (there is another prop index for the same helmet with closed/opened visor variant) that can be toggled. 0 if there's no alternative version with a visor for this helmet prop.
--- @param propHash number
--- @return number
function FILES.GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT(propHash) end
--- @param componentHash number
--- @param variantComponentIndex number
--- @param nameHash any
--- @param enumValue any
--- @param componentType any
function FILES.GET_VARIANT_COMPONENT(componentHash, variantComponentIndex, nameHash, enumValue, componentType) end
--- @param componentHash number
--- @param variantPropIndex number
--- @param nameHash any
--- @param enumValue any
--- @param anchorPoint any
function FILES.GET_VARIANT_PROP(componentHash, variantPropIndex, nameHash, enumValue, anchorPoint) end
--- Returns number of possible values of the forcedComponentIndex argument of GET_FORCED_COMPONENT.
--- @param componentHash number
--- @return number
function FILES.GET_SHOP_PED_APPAREL_FORCED_COMPONENT_COUNT(componentHash) end
--- Returns number of possible values of the forcedPropIndex argument of GET_FORCED_PROP.
--- @param componentHash number
--- @return number
function FILES.GET_SHOP_PED_APPAREL_FORCED_PROP_COUNT(componentHash) end
--- @param componentHash number
--- @param forcedComponentIndex number
--- @param nameHash any
--- @param enumValue any
--- @param componentType any
function FILES.GET_FORCED_COMPONENT(componentHash, forcedComponentIndex, nameHash, enumValue, componentType) end
--- @param componentHash number
--- @param forcedPropIndex number
--- @param nameHash any
--- @param enumValue any
--- @param anchorPoint any
function FILES.GET_FORCED_PROP(componentHash, forcedPropIndex, nameHash, enumValue, anchorPoint) end
--- Full list of restriction tags by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedApparelRestrictionTags.json
--- 
--- componentId/last parameter seems to be unused.
--- @param componentHash number
--- @param restrictionTagHash number
--- @param componentId number
--- @return boolean
function FILES.DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG(componentHash, restrictionTagHash, componentId) end
--- @param ped number
--- @param componentId number
--- @param restrictionTagHash number
--- @return boolean
function FILES.DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG(ped, componentId, restrictionTagHash) end
--- @param ped number
--- @param componentId number
--- @param restrictionTagHash number
--- @return boolean
function FILES.DOES_CURRENT_PED_PROP_HAVE_RESTRICTION_TAG(ped, componentId, restrictionTagHash) end
--- characters
--- 
--- 0: Michael
--- 1: Franklin
--- 2: Trevor
--- 3: MPMale
--- 4: MPFemale
--- @param character number
--- @param p1 boolean
--- @return number
function FILES.SETUP_SHOP_PED_OUTFIT_QUERY(character, p1) end
--- outfitIndex: from 0 to SETUP_SHOP_PED_OUTFIT_QUERY(characterIndex, false) - 1.
--- See https://git.io/JtcB8 for example and outfit struct.
--- @param outfitIndex number
--- @param outfit number
function FILES.GET_SHOP_PED_QUERY_OUTFIT(outfitIndex, outfit) end
--- @param p0 number
--- @param p1 number
function FILES.GET_SHOP_PED_OUTFIT(p0, p1) end
--- @param p0 number
--- @return number
function FILES.GET_SHOP_PED_OUTFIT_LOCATE(p0) end
--- See https://git.io/JtcBH for example and structs.
--- @param outfitHash number
--- @param variantIndex number
--- @param outPropVariant number
--- @return boolean
function FILES.GET_SHOP_PED_OUTFIT_PROP_VARIANT(outfitHash, variantIndex, outPropVariant) end
--- See https://git.io/JtcBH for example and structs.
--- @param outfitHash number
--- @param variantIndex number
--- @param outComponentVariant number
--- @return boolean
function FILES.GET_SHOP_PED_OUTFIT_COMPONENT_VARIANT(outfitHash, variantIndex, outComponentVariant) end
--- @return number
function FILES.GET_NUM_DLC_VEHICLES() end
--- dlcVehicleIndex is 0 to GET_NUM_DLC_VEHICLS() - 1
--- @param dlcVehicleIndex number
--- @return number
function FILES.GET_DLC_VEHICLE_MODEL(dlcVehicleIndex) end
--- dlcVehicleIndex takes a number from 0 - GET_NUM_DLC_VEHICLES() - 1.
--- outData is a struct of 3 8-byte items.
--- The Second item in the struct *(Hash *)(outData + 1) is the vehicle hash.
--- @param dlcVehicleIndex number
--- @param outData number
--- @return boolean
function FILES.GET_DLC_VEHICLE_DATA(dlcVehicleIndex, outData) end
--- @param dlcVehicleIndex number
--- @return number
function FILES.GET_DLC_VEHICLE_FLAGS(dlcVehicleIndex) end
--- Returns the total number of DLC weapons.
--- @return number
function FILES.GET_NUM_DLC_WEAPONS() end
--- Returns the total number of DLC weapons that are available in SP (availableInSP field in shop_weapon.meta).
--- @return number
function FILES.GET_NUM_DLC_WEAPONS_SP() end
--- 
--- dlcWeaponIndex takes a number from 0 - GET_NUM_DLC_WEAPONS() - 1.
--- struct DlcWeaponData
--- {
--- int emptyCheck; //use DLC1::IS_CONTENT_ITEM_LOCKED on this
--- int padding1;
--- int weaponHash;
--- int padding2;
--- int unk;
--- int padding3;
--- int weaponCost;
--- int padding4;
--- int ammoCost;
--- int padding5;
--- int ammoType;
--- int padding6;
--- int defaultClipSize;
--- int padding7;
--- char nameLabel[64];
--- char descLabel[64];
--- char desc2Label[64]; // usually "the" + name
--- char upperCaseNameLabel[64];
--- };
--- @param dlcWeaponIndex number
--- @param outData number
--- @return boolean
function FILES.GET_DLC_WEAPON_DATA(dlcWeaponIndex, outData) end
--- Same as GET_DLC_WEAPON_DATA but only works for DLC weapons that are available in SP.
--- @param dlcWeaponIndex number
--- @param outData number
--- @return boolean
function FILES.GET_DLC_WEAPON_DATA_SP(dlcWeaponIndex, outData) end
--- Returns the total number of DLC weapon components.
--- @param dlcWeaponIndex number
--- @return number
function FILES.GET_NUM_DLC_WEAPON_COMPONENTS(dlcWeaponIndex) end
--- Returns the total number of DLC weapon components that are available in SP.
--- @param dlcWeaponIndex number
--- @return number
function FILES.GET_NUM_DLC_WEAPON_COMPONENTS_SP(dlcWeaponIndex) end
--- p0 seems to be the weapon index
--- p1 seems to be the weapon component index
--- struct DlcComponentData{
--- int attachBone;
--- int padding1;
--- int bActiveByDefault;
--- int padding2;
--- int unk;
--- int padding3;
--- int componentHash;
--- int padding4;
--- int unk2;
--- int padding5;
--- int componentCost;
--- int padding6;
--- char nameLabel[64];
--- char descLabel[64];
--- };
--- 
--- @param dlcWeaponIndex number
--- @param dlcWeapCompIndex number
--- @param ComponentDataPtr number
--- @return boolean
function FILES.GET_DLC_WEAPON_COMPONENT_DATA(dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr) end
--- Same as GET_DLC_WEAPON_COMPONENT_DATA but only works for DLC components that are available in SP.
--- @param dlcWeaponIndex number
--- @param dlcWeapCompIndex number
--- @param ComponentDataPtr number
--- @return boolean
function FILES.GET_DLC_WEAPON_COMPONENT_DATA_SP(dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr) end
--- @param itemHash number
--- @return boolean
function FILES.IS_CONTENT_ITEM_LOCKED(itemHash) end
--- @param hash number
--- @return boolean
function FILES.IS_DLC_VEHICLE_MOD(hash) end
--- @param hash number
--- @return number
function FILES.GET_DLC_VEHICLE_MOD_LOCK_HASH(hash) end
--- From fm_deathmatch_creator and fm_race_creator:
--- 
--- FILES::REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP_SP"));
--- FILES::EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP"));
--- @param hash number
function FILES.EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(hash) end
--- From fm_deathmatch_creator and fm_race_creator:
--- 
--- FILES::REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP_SP"));
--- FILES::EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP"));
--- @param hash number
function FILES.REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(hash) end

FIRE = {}

--- Starts a fire:
--- 
--- xyz: Location of fire
--- maxChildren: The max amount of times a fire can spread to other objects. Must be 25 or less, or the function will do nothing.
--- isGasFire: Whether or not the fire is powered by gasoline.
--- @param X number
--- @param Y number
--- @param Z number
--- @param maxChildren number
--- @param isGasFire boolean
--- @return number
function FIRE.START_SCRIPT_FIRE(X, Y, Z, maxChildren, isGasFire) end
--- @param fireHandle number
function FIRE.REMOVE_SCRIPT_FIRE(fireHandle) end
--- @param entity number
--- @return number
function FIRE.START_ENTITY_FIRE(entity) end
--- @param entity number
function FIRE.STOP_ENTITY_FIRE(entity) end
--- @param entity number
--- @return boolean
function FIRE.IS_ENTITY_ON_FIRE(entity) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return number
function FIRE.GET_NUMBER_OF_FIRES_IN_RANGE(x, y, z, radius) end
--- @param p0 number
function FIRE.SET_FLAMMABILITY_MULTIPLIER(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function FIRE.STOP_FIRE_IN_RANGE(x, y, z, radius) end
--- Returns TRUE if it found something. FALSE if not.
--- @param outPosition number
--- @param x number
--- @param y number
--- @param z number
--- @return boolean
function FIRE.GET_CLOSEST_FIRE_POS(outPosition, x, y, z) end
--- BOOL isAudible = If explosion makes a sound.
--- BOOL isInvisible = If the explosion is invisible or not.
--- 
--- explosionType: https://alloc8or.re/gta5/doc/enums/eExplosionTag.txt
--- @param x number
--- @param y number
--- @param z number
--- @param explosionType number
--- @param damageScale number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param cameraShake number
--- @param noDamage boolean
function FIRE.ADD_EXPLOSION(x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, noDamage) end
--- isAudible: If explosion makes a sound.
--- isInvisible: If the explosion is invisible or not.
--- explosionType: See ADD_EXPLOSION.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param explosionType number
--- @param damageScale number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param cameraShake number
function FIRE.ADD_OWNED_EXPLOSION(ped, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake) end
--- isAudible: If explosion makes a sound.
--- isInvisible: If the explosion is invisible or not.
--- explosionType: See ADD_EXPLOSION.
--- @param x number
--- @param y number
--- @param z number
--- @param explosionType number
--- @param explosionFx number
--- @param damageScale number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param cameraShake number
function FIRE.ADD_EXPLOSION_WITH_USER_VFX(x, y, z, explosionType, explosionFx, damageScale, isAudible, isInvisible, cameraShake) end
--- explosionType: See ADD_EXPLOSION.
--- @param explosionType number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function FIRE.IS_EXPLOSION_IN_AREA(explosionType, x1, y1, z1, x2, y2, z2) end
--- explosionType: See ADD_EXPLOSION.
--- @param explosionType number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function FIRE.IS_EXPLOSION_ACTIVE_IN_AREA(explosionType, x1, y1, z1, x2, y2, z2) end
--- explosionType: See ADD_EXPLOSION.
--- @param explosionType number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function FIRE.IS_EXPLOSION_IN_SPHERE(explosionType, x, y, z, radius) end
--- explosionType: See ADD_EXPLOSION.
--- @param explosionType number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return number
function FIRE.GET_OWNER_OF_EXPLOSION_IN_SPHERE(explosionType, x, y, z, radius) end
--- explosionType: See ADD_EXPLOSION, -1 for any explosion type
--- 
--- @param explosionType number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @return boolean
function FIRE.IS_EXPLOSION_IN_ANGLED_AREA(explosionType, x1, y1, z1, x2, y2, z2, width) end
--- Returns a handle to the first entity within the a circle spawned inside the 2 points from a radius.
--- 
--- explosionType: See ADD_EXPLOSION.
--- @param explosionType number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param radius number
--- @return number
function FIRE.GET_OWNER_OF_EXPLOSION_IN_ANGLED_AREA(explosionType, x1, y1, z1, x2, y2, z2, radius) end

GRAPHICS = {}

--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param enabled boolean
function GRAPHICS.SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE(enabled) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param r number
--- @param g number
--- @param b number
--- @param alpha number
function GRAPHICS.DRAW_DEBUG_LINE(x1, y1, z1, x2, y2, z2, r, g, b, alpha) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param r1 number
--- @param g1 number
--- @param b1 number
--- @param r2 number
--- @param g2 number
--- @param b2 number
--- @param alpha1 number
--- @param alpha2 number
function GRAPHICS.DRAW_DEBUG_LINE_WITH_TWO_COLOURS(x1, y1, z1, x2, y2, z2, r1, g1, b1, r2, g2, b2, alpha1, alpha2) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_DEBUG_SPHERE(x, y, z, radius, red, green, blue, alpha) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param r number
--- @param g number
--- @param b number
--- @param alpha number
function GRAPHICS.DRAW_DEBUG_BOX(x1, y1, z1, x2, y2, z2, r, g, b, alpha) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param x number
--- @param y number
--- @param z number
--- @param size number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_DEBUG_CROSS(x, y, z, size, red, green, blue, alpha) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param text string
--- @param x number
--- @param y number
--- @param z number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_DEBUG_TEXT(text, x, y, z, red, green, blue, alpha) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param text string
--- @param x number
--- @param y number
--- @param z number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_DEBUG_TEXT_2D(text, x, y, z, red, green, blue, alpha) end
--- Draws a depth-tested line from one point to another.
--- ----------------
--- x1, y1, z1 : Coordinates for the first point
--- x2, y2, z2 : Coordinates for the second point
--- r, g, b, alpha : Color with RGBA-Values
--- I recommend using a predefined function to call this.
--- [VB.NET]
--- Public Sub DrawLine(from As Vector3, [to] As Vector3, col As Color)
--- [Function].Call(Hash.DRAW_LINE, from.X, from.Y, from.Z, [to].X, [to].Y, [to].Z, col.R, col.G, col.B, col.A)
--- End Sub
--- 
--- [C#]
--- public void DrawLine(Vector3 from, Vector3 to, Color col)
--- {
--- Function.Call(Hash.DRAW_LINE, from.X, from.Y, from.Z, to.X, to.Y, to.Z, col.R, col.G, col.B, col.A);
--- }
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_LINE(x1, y1, z1, x2, y2, z2, red, green, blue, alpha) end
--- x/y/z - Location of a vertex (in world coords), presumably.
--- ----------------
--- x1, y1, z1     : Coordinates for the first point
--- x2, y2, z2     : Coordinates for the second point
--- x3, y3, z3     : Coordinates for the third point
--- r, g, b, alpha : Color with RGBA-Values
--- 
--- Keep in mind that only one side of the drawn triangle is visible: It's the side, in which the vector-product of the vectors heads to: (b-a)x(c-a) Or (b-a)x(c-b).
--- But be aware: The function seems to work somehow differently. I have trouble having them drawn in rotated orientation. Try it yourself and if you somehow succeed, please edit this and post your solution.
--- I recommend using a predefined function to call this.
--- [VB.NET]
--- Public Sub DrawPoly(a As Vector3, b As Vector3, c As Vector3, col As Color)
--- [Function].Call(Hash.DRAW_POLY, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A)
--- End Sub
--- 
--- [C#]
--- public void DrawPoly(Vector3 a, Vector3 b, Vector3 c, Color col)
--- {
--- Function.Call(Hash.DRAW_POLY, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A);
--- }
--- BTW: Intersecting triangles are not supported: They overlap in the order they were called.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_POLY(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha) end
--- Used for drawling Deadline trailing lights, see deadline.ytd
--- 
--- p15 through p23 are values that appear to be related to illiumation, scaling, and rotation; more testing required.
--- For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param textureDict string
--- @param textureName string
--- @param u1 number
--- @param v1 number
--- @param w1 number
--- @param u2 number
--- @param v2 number
--- @param w2 number
--- @param u3 number
--- @param v3 number
--- @param w3 number
function GRAPHICS.DRAW_TEXTURED_POLY(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3) end
--- Used for drawling Deadline trailing lights, see deadline.ytd
--- 
--- Each vertex has its own colour that is blended/illuminated on the texture. Additionally, the R, G, and B components are floats that are int-casted internally.
--- For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param red1 number
--- @param green1 number
--- @param blue1 number
--- @param alpha1 number
--- @param red2 number
--- @param green2 number
--- @param blue2 number
--- @param alpha2 number
--- @param red3 number
--- @param green3 number
--- @param blue3 number
--- @param alpha3 number
--- @param textureDict string
--- @param textureName string
--- @param u1 number
--- @param v1 number
--- @param w1 number
--- @param u2 number
--- @param v2 number
--- @param w2 number
--- @param u3 number
--- @param v3 number
--- @param w3 number
function GRAPHICS.DRAW_TEXTURED_POLY_WITH_THREE_COLOURS(x1, y1, z1, x2, y2, z2, x3, y3, z3, red1, green1, blue1, alpha1, red2, green2, blue2, alpha2, red3, green3, blue3, alpha3, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3) end
--- x,y,z = start pos
--- x2,y2,z2 = end pos
--- 
--- Draw's a 3D Box between the two x,y,z coords.
--- --------------
--- Keep in mind that the edges of the box do only align to the worlds base-vectors. Therefore something like rotation cannot be applied. That means this function is pretty much useless, unless you want a static unicolor box somewhere.
--- I recommend using a predefined function to call this.
--- [VB.NET]
--- Public Sub DrawBox(a As Vector3, b As Vector3, col As Color)
--- [Function].Call(Hash.DRAW_BOX,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A)
--- End Sub
--- 
--- [C#]
--- public void DrawBox(Vector3 a, Vector3 b, Color col)
--- {
--- Function.Call(Hash.DRAW_BOX,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A);
--- }
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_BOX(x1, y1, z1, x2, y2, z2, red, green, blue, alpha) end
--- @param toggle boolean
function GRAPHICS.SET_BACKFACECULLING(toggle) end
--- @param toggle boolean
function GRAPHICS.SET_DEPTHWRITING(toggle) end
--- @return boolean
function GRAPHICS.BEGIN_TAKE_MISSION_CREATOR_PHOTO() end
--- @return number
function GRAPHICS.GET_STATUS_OF_TAKE_MISSION_CREATOR_PHOTO() end
function GRAPHICS.FREE_MEMORY_FOR_MISSION_CREATOR_PHOTO() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function GRAPHICS.LOAD_MISSION_CREATOR_PHOTO(p0, p1, p2, p3) end
--- @param p0 number
--- @return number
function GRAPHICS.GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO(p0) end
--- @return boolean
function GRAPHICS.BEGIN_CREATE_MISSION_CREATOR_PHOTO_PREVIEW() end
--- @return number
function GRAPHICS.GET_STATUS_OF_CREATE_MISSION_CREATOR_PHOTO_PREVIEW() end
function GRAPHICS.FREE_MEMORY_FOR_MISSION_CREATOR_PHOTO_PREVIEW() end
--- @return boolean
function GRAPHICS.BEGIN_TAKE_HIGH_QUALITY_PHOTO() end
--- @return number
function GRAPHICS.GET_STATUS_OF_TAKE_HIGH_QUALITY_PHOTO() end
function GRAPHICS.FREE_MEMORY_FOR_HIGH_QUALITY_PHOTO() end
--- @param toggle boolean
function GRAPHICS.SET_TAKEN_PHOTO_IS_MUGSHOT(toggle) end
--- @param p0 number
--- @param p1 number
function GRAPHICS.SET_ARENA_THEME_AND_VARIATION_FOR_TAKEN_PHOTO(p0, p1) end
--- @param p0 number
function GRAPHICS.SET_ON_ISLAND_X_FOR_TAKEN_PHOTO(p0) end
--- 1 match in 1 script. cellphone_controller.
--- p0 is -1 in scripts.
--- @param unused number
--- @return boolean
function GRAPHICS.SAVE_HIGH_QUALITY_PHOTO(unused) end
--- @return number
function GRAPHICS.GET_STATUS_OF_SAVE_HIGH_QUALITY_PHOTO() end
--- @param p0 number
--- @return boolean
function GRAPHICS.BEGIN_CREATE_LOW_QUALITY_COPY_OF_PHOTO(p0) end
--- @param p0 number
--- @return number
function GRAPHICS.GET_STATUS_OF_CREATE_LOW_QUALITY_COPY_OF_PHOTO(p0) end
function GRAPHICS.FREE_MEMORY_FOR_LOW_QUALITY_PHOTO() end
--- @param p0 boolean
--- @param p1 boolean
function GRAPHICS.DRAW_LOW_QUALITY_PHOTO_TO_PHONE(p0, p1) end
--- This function is hard-coded to always return 0.
--- @return number
function GRAPHICS.GET_MAXIMUM_NUMBER_OF_PHOTOS() end
--- This function is hard-coded to always return 96.
--- @return number
function GRAPHICS.GET_MAXIMUM_NUMBER_OF_CLOUD_PHOTOS() end
--- @return number
function GRAPHICS.GET_CURRENT_NUMBER_OF_CLOUD_PHOTOS() end
--- 2 matches across 2 scripts. Only showed in appcamera & appmedia. Both were 0.
--- @param p0 number
--- @return boolean
function GRAPHICS.QUEUE_OPERATION_TO_CREATE_SORTED_LIST_OF_PHOTOS(p0) end
--- 3 matches across 3 scripts. First 2 were 0, 3rd was 1. Possibly a bool.
--- appcamera, appmedia, and cellphone_controller.
--- @param p0 number
--- @return number
function GRAPHICS.GET_STATUS_OF_SORTED_LIST_OPERATION(p0) end
function GRAPHICS.CLEAR_STATUS_OF_SORTED_LIST_OPERATION() end
--- This function is hard-coded to always return 0.
--- @param p0 number
--- @return boolean
function GRAPHICS.DOES_THIS_PHOTO_SLOT_CONTAIN_A_VALID_PHOTO(p0) end
--- This function is hard-coded to always return 0.
--- @param p0 number
--- @return boolean
function GRAPHICS.LOAD_HIGH_QUALITY_PHOTO(p0) end
--- Hardcoded to always return 2.
--- @param p0 number
--- @return number
function GRAPHICS.GET_LOAD_HIGH_QUALITY_PHOTO_STATUS(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param r number
--- @param g number
--- @param b number
--- @param range number
--- @param intensity number
--- @param shadow number
function GRAPHICS.DRAW_LIGHT_WITH_RANGEEX(x, y, z, r, g, b, range, intensity, shadow) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param colorR number
--- @param colorG number
--- @param colorB number
--- @param range number
--- @param intensity number
function GRAPHICS.DRAW_LIGHT_WITH_RANGE(posX, posY, posZ, colorR, colorG, colorB, range, intensity) end
--- Parameters:
--- * pos - coordinate where the spotlight is located
--- * dir - the direction vector the spotlight should aim at from its current position
--- * r,g,b - color of the spotlight
--- * distance - the maximum distance the light can reach
--- * brightness - the brightness of the light
--- * roundness - "smoothness" of the circle edge
--- * radius - the radius size of the spotlight
--- * falloff - the falloff size of the light's edge (example: www.i.imgur.com/DemAWeO.jpg)
--- 
--- Example in C# (spotlight aims at the closest vehicle):
--- Vector3 myPos = Game.Player.Character.Position;
--- Vehicle nearest = World.GetClosestVehicle(myPos , 1000f);
--- Vector3 destinationCoords = nearest.Position;
--- Vector3 dirVector = destinationCoords - myPos;
--- dirVector.Normalize();
--- Function.Call(Hash.DRAW_SPOT_LIGHT, pos.X, pos.Y, pos.Z, dirVector.X, dirVector.Y, dirVector.Z, 255, 255, 255, 100.0f, 1f, 0.0f, 13.0f, 1f);
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param dirX number
--- @param dirY number
--- @param dirZ number
--- @param colorR number
--- @param colorG number
--- @param colorB number
--- @param distance number
--- @param brightness number
--- @param hardness number
--- @param radius number
--- @param falloff number
function GRAPHICS.DRAW_SPOT_LIGHT(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, hardness, radius, falloff) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param dirX number
--- @param dirY number
--- @param dirZ number
--- @param colorR number
--- @param colorG number
--- @param colorB number
--- @param distance number
--- @param brightness number
--- @param roundness number
--- @param radius number
--- @param falloff number
--- @param shadowId number
function GRAPHICS.DRAW_SHADOWED_SPOT_LIGHT(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, roundness, radius, falloff, shadowId) end
--- @param p0 number
function GRAPHICS.FADE_UP_PED_LIGHT(p0) end
--- @param entity number
function GRAPHICS.UPDATE_LIGHTS_ON_ENTITY(entity) end
--- @param p0 number
function GRAPHICS.SET_LIGHT_OVERRIDE_MAX_INTENSITY_SCALE(p0) end
--- @return number
function GRAPHICS.GET_LIGHT_OVERRIDE_MAX_INTENSITY_SCALE() end
--- enum MarkerTypes
--- {
--- MarkerTypeUpsideDownCone = 0,
--- MarkerTypeVerticalCylinder = 1,
--- MarkerTypeThickChevronUp = 2,
--- MarkerTypeThinChevronUp = 3,
--- MarkerTypeCheckeredFlagRect = 4,
--- MarkerTypeCheckeredFlagCircle = 5,
--- MarkerTypeVerticleCircle = 6,
--- MarkerTypePlaneModel = 7,
--- MarkerTypeLostMCDark = 8,
--- MarkerTypeLostMCLight = 9,
--- MarkerTypeNumber0 = 10,
--- MarkerTypeNumber1 = 11,
--- MarkerTypeNumber2 = 12,
--- MarkerTypeNumber3 = 13,
--- MarkerTypeNumber4 = 14,
--- MarkerTypeNumber5 = 15,
--- MarkerTypeNumber6 = 16,
--- MarkerTypeNumber7 = 17,
--- MarkerTypeNumber8 = 18,
--- MarkerTypeNumber9 = 19,
--- MarkerTypeChevronUpx1 = 20,
--- MarkerTypeChevronUpx2 = 21,
--- MarkerTypeChevronUpx3 = 22,
--- MarkerTypeHorizontalCircleFat = 23,
--- MarkerTypeReplayIcon = 24,
--- MarkerTypeHorizontalCircleSkinny = 25,
--- MarkerTypeHorizontalCircleSkinny_Arrow = 26,
--- MarkerTypeHorizontalSplitArrowCircle = 27,
--- MarkerTypeDebugSphere = 28,
--- MarkerTypeDallorSign = 29,
--- MarkerTypeHorizontalBars = 30,
--- MarkerTypeWolfHead = 31
--- };
--- 
--- dirX/Y/Z represent a heading on each axis in which the marker should face, alternatively you can rotate each axis independently with rotX/Y/Z (and set dirX/Y/Z all to 0).
--- 
--- faceCamera - Rotates only the y-axis (the heading) towards the camera
--- 
--- p19 - no effect, default value in script is 2
--- 
--- rotate - Rotates only on the y-axis (the heading)
--- 
--- textureDict - Name of texture dictionary to load texture from (e.g. "GolfPutting")
--- 
--- textureName - Name of texture inside dictionary to load (e.g. "PuttingMarker")
--- 
--- drawOnEnts - Draws the marker onto any entities that intersect it
--- 
--- basically what he said, except textureDict and textureName are totally not const char*, or if so, then they are always set to 0/NULL/nullptr in every script I checked, eg:
--- 
--- bj.c: graphics::draw_marker(6, vParam0, 0f, 0f, 1f, 0f, 0f, 0f, 4f, 4f, 4f, 240, 200, 80, iVar1, 0, 0, 2, 0, 0, 0, false);
--- 
--- his is what I used to draw an amber downward pointing chevron "V", has to be redrawn every frame.  The 180 is for 180 degrees rotation around the Y axis, the 50 is alpha, assuming max is 100, but it will accept 255.
--- 
--- GRAPHICS::DRAW_MARKER(2, v.x, v.y, v.z + 2, 0, 0, 0, 0, 180, 0, 2, 2, 2, 255, 128, 0, 50, 0, 1, 1, 0, 0, 0, 0);
--- 
--- 
--- @param type number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param dirX number
--- @param dirY number
--- @param dirZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param scaleX number
--- @param scaleY number
--- @param scaleZ number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param bobUpAndDown boolean
--- @param faceCamera boolean
--- @param p19 number
--- @param rotate boolean
--- @param textureDict string
--- @param textureName string
--- @param drawOnEnts boolean
function GRAPHICS.DRAW_MARKER(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts) end
--- @param type number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param dirX number
--- @param dirY number
--- @param dirZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param scaleX number
--- @param scaleY number
--- @param scaleZ number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param bobUpAndDown boolean
--- @param faceCamera boolean
--- @param p19 number
--- @param rotate boolean
--- @param textureDict string
--- @param textureName string
--- @param drawOnEnts boolean
--- @param p24 boolean
--- @param p25 boolean
function GRAPHICS.DRAW_MARKER_EX(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, p24, p25) end
--- Draws a 3D sphere, typically seen in the GTA:O freemode event "Penned In".
--- Example https://imgur.com/nCbtS4H
--- 
--- alpha - The alpha for the sphere. Goes from 0.0 to 1.0.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_MARKER_SPHERE(x, y, z, radius, red, green, blue, alpha) end
--- Creates a checkpoint. Returns the handle of the checkpoint.
--- 
--- 20/03/17 : Attention, checkpoints are already handled by the game itself, so you must not loop it like markers.
--- 
--- Parameters:
--- * type - The type of checkpoint to create. See below for a list of checkpoint types.
--- * pos1 - The position of the checkpoint.
--- * pos2 - The position of the next checkpoint to point to.
--- * radius - The radius of the checkpoint.
--- * color - The color of the checkpoint.
--- * reserved - Special parameter, see below for details. Usually set to 0 in the scripts.
--- 
--- Checkpoint types:
--- 0-4---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 5-9---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 10-14-------Ring: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 15-19-------1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 20-24-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 25-29-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 30-34-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker
--- 35-38-------Ring: Airplane Up, Left, Right, UpsideDown
--- 39----------?
--- 40----------Ring: just a ring
--- 41----------?
--- 42-44-------Cylinder w/ number (uses 'reserved' parameter)
--- 45-47-------Cylinder no arrow or number
--- 
--- If using type 42-44, reserved sets number / number and shape to display
--- 
--- 0-99------------Just numbers (0-99)
--- 100-109-----------------Arrow (0-9)
--- 110-119------------Two arrows (0-9)
--- 120-129----------Three arrows (0-9)
--- 130-139----------------Circle (0-9)
--- 140-149------------CycleArrow (0-9)
--- 150-159----------------Circle (0-9)
--- 160-169----Circle  w/ pointer (0-9)
--- 170-179-------Perforated ring (0-9)
--- 180-189----------------Sphere (0-9)
--- @param type number
--- @param posX1 number
--- @param posY1 number
--- @param posZ1 number
--- @param posX2 number
--- @param posY2 number
--- @param posZ2 number
--- @param diameter number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param reserved number
--- @return number
function GRAPHICS.CREATE_CHECKPOINT(type, posX1, posY1, posZ1, posX2, posY2, posZ2, diameter, red, green, blue, alpha, reserved) end
--- @param checkpoint number
--- @param scale number
function GRAPHICS.SET_CHECKPOINT_INSIDE_CYLINDER_HEIGHT_SCALE(checkpoint, scale) end
--- @param checkpoint number
--- @param scale number
function GRAPHICS.SET_CHECKPOINT_INSIDE_CYLINDER_SCALE(checkpoint, scale) end
--- Sets the cylinder height of the checkpoint.
--- 
--- Parameters:
--- * nearHeight - The height of the checkpoint when inside of the radius.
--- * farHeight - The height of the checkpoint when outside of the radius.
--- * radius - The radius of the checkpoint.
--- @param checkpoint number
--- @param nearHeight number
--- @param farHeight number
--- @param radius number
function GRAPHICS.SET_CHECKPOINT_CYLINDER_HEIGHT(checkpoint, nearHeight, farHeight, radius) end
--- Sets the checkpoint color.
--- @param checkpoint number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.SET_CHECKPOINT_RGBA(checkpoint, red, green, blue, alpha) end
--- Sets the checkpoint icon color.
--- @param checkpoint number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.SET_CHECKPOINT_RGBA2(checkpoint, red, green, blue, alpha) end
--- This does not move an existing checkpoint... so wtf.
--- @param checkpoint number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param unkX number
--- @param unkY number
--- @param unkZ number
function GRAPHICS.SET_CHECKPOINT_CLIPPLANE_WITH_POS_NORM(checkpoint, posX, posY, posZ, unkX, unkY, unkZ) end
--- @param checkpoint number
function GRAPHICS.SET_CHECKPOINT_FORCE_OLD_ARROW_POINTING(checkpoint) end
--- Unknown. Called after creating a checkpoint (type: 51) in the creators.
--- @param checkpoint number
function GRAPHICS.SET_CHECKPOINT_DECAL_ROT_ALIGNED_TO_CAMERA_ROT(checkpoint) end
--- @param checkpoint number
function GRAPHICS.SET_CHECKPOINT_FORCE_DIRECTION(checkpoint) end
--- @param checkpoint number
--- @param posX number
--- @param posY number
--- @param posZ number
function GRAPHICS.SET_CHECKPOINT_DIRECTION(checkpoint, posX, posY, posZ) end
--- @param checkpoint number
function GRAPHICS.DELETE_CHECKPOINT(checkpoint) end
--- @param p0 boolean
function GRAPHICS.DONT_RENDER_IN_GAME_UI(p0) end
--- @param toggle boolean
function GRAPHICS.FORCE_RENDER_IN_GAME_UI(toggle) end
--- This function can requests texture dictonaries from following RPFs:
--- scaleform_generic.rpf
--- scaleform_minigames.rpf
--- scaleform_minimap.rpf
--- scaleform_web.rpf
--- 
--- last param isnt a toggle
--- @param textureDict string
--- @param p1 boolean
function GRAPHICS.REQUEST_STREAMED_TEXTURE_DICT(textureDict, p1) end
--- @param textureDict string
--- @return boolean
function GRAPHICS.HAS_STREAMED_TEXTURE_DICT_LOADED(textureDict) end
--- @param textureDict string
function GRAPHICS.SET_STREAMED_TEXTURE_DICT_AS_NO_LONGER_NEEDED(textureDict) end
--- Draws a rectangle on the screen.
--- 
--- -x: The relative X point of the center of the rectangle. (0.0-1.0, 0.0 is the left edge of the screen, 1.0 is the right edge of the screen)
--- 
--- -y: The relative Y point of the center of the rectangle. (0.0-1.0, 0.0 is the top edge of the screen, 1.0 is the bottom edge of the screen)
--- 
--- -width: The relative width of the rectangle. (0.0-1.0, 1.0 means the whole screen width)
--- 
--- -height: The relative height of the rectangle. (0.0-1.0, 1.0 means the whole screen height)
--- 
--- -R: Red part of the color. (0-255)
--- 
--- -G: Green part of the color. (0-255)
--- 
--- -B: Blue part of the color. (0-255)
--- 
--- -A: Alpha part of the color. (0-255, 0 means totally transparent, 255 means totally opaque)
--- 
--- The total number of rectangles to be drawn in one frame is apparently limited to 399.
--- 
--- @param x number
--- @param y number
--- @param width number
--- @param height number
--- @param r number
--- @param g number
--- @param b number
--- @param a number
--- @param p8 boolean
function GRAPHICS.DRAW_RECT(x, y, width, height, r, g, b, a, p8) end
--- Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for TV channels and other draw commands that are used with a world render target.
--- @param toggle boolean
function GRAPHICS.SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(toggle) end
--- Sets the draw order for script draw commands.
--- 
--- Examples from decompiled scripts:
--- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(7);
--- GRAPHICS::DRAW_RECT(0.5, 0.5, 3.0, 3.0, v_4, v_5, v_6, a_0._f172, 0);
--- 
--- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(1);
--- GRAPHICS::DRAW_RECT(0.5, 0.5, 1.5, 1.5, 0, 0, 0, 255, 0);
--- @param drawOrder number
function GRAPHICS.SET_SCRIPT_GFX_DRAW_ORDER(drawOrder) end
--- horizontalAlign: The horizontal alignment. This can be 67 ('C'), 76 ('L'), or 82 ('R').
--- verticalAlign: The vertical alignment. This can be 67 ('C'), 66 ('B'), or 84 ('T').
--- 
--- This function anchors script draws to a side of the safe zone. This needs to be called to make the interface independent of the player's safe zone configuration.
--- 
--- These values are equivalent to alignX and alignY in common:/data/ui/frontend.xml, which can be used as a baseline for default alignment.
--- 
--- Using any other value (including 0) will result in the safe zone not being taken into account for this draw. The canonical value for this is 'I' (73).
--- 
--- For example, you can use SET_SCRIPT_GFX_ALIGN(0, 84) to only scale on the Y axis (to the top), but not change the X axis.
--- 
--- To reset the value, use RESET_SCRIPT_GFX_ALIGN.
--- @param horizontalAlign number
--- @param verticalAlign number
function GRAPHICS.SET_SCRIPT_GFX_ALIGN(horizontalAlign, verticalAlign) end
--- This function resets the alignment set using SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS to the default values ('I', 'I'; 0, 0, 0, 0).
--- This should be used after having used the aforementioned functions in order to not affect any other scripts attempting to draw.
function GRAPHICS.RESET_SCRIPT_GFX_ALIGN() end
--- Sets the draw offset/calculated size for SET_SCRIPT_GFX_ALIGN. If using any alignment other than left/top, the game expects the width/height to be configured using this native in order to get a proper starting position for the draw command.
--- @param x number
--- @param y number
--- @param w number
--- @param h number
function GRAPHICS.SET_SCRIPT_GFX_ALIGN_PARAMS(x, y, w, h) end
--- Calculates the effective X/Y fractions when applying the values set by SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS
--- @param x number
--- @param y number
--- @param calculatedX any
--- @param calculatedY any
function GRAPHICS.GET_SCRIPT_GFX_ALIGN_POSITION(x, y, calculatedX, calculatedY) end
--- Gets the scale of safe zone. if the safe zone size scale is max, it will return 1.0.
--- @return number
function GRAPHICS.GET_SAFE_ZONE_SIZE() end
--- Draws a 2D sprite on the screen.
--- 
--- Parameters:
--- textureDict - Name of texture dictionary to load texture from (e.g. "CommonMenu", "MPWeaponsCommon", etc.)
--- 
--- textureName - Name of texture to load from texture dictionary (e.g. "last_team_standing_icon", "tennis_icon", etc.)
--- 
--- screenX/Y - Screen offset (0.5 = center)
--- scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half)
--- 
--- heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees
--- 
--- red,green,blue - Sprite color (default = 255/255/255)
--- 
--- alpha - opacity level
--- @param textureDict string
--- @param textureName string
--- @param screenX number
--- @param screenY number
--- @param width number
--- @param height number
--- @param heading number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param p11 boolean
--- @param p12 number
function GRAPHICS.DRAW_SPRITE(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, p12) end
--- Used in arcade games and Beam hack minigame in Doomsday Heist. I will most certainly dive into this to try replicate arcade games.
--- x position must be between 0.0 and 1.0 (1.0 being the most right side of the screen)
--- y position must be between 0.0 and 1.0 (1.0 being the most bottom side of the screen)
--- width 0.0 - 1.0 is the reasonable amount generally
--- height 0.0 - 1.0 is the reasonable amount generally
--- p6 almost always 0.0
--- p11 seems to be unknown but almost always 0 int
--- @param textureDict string
--- @param textureName string
--- @param x number
--- @param y number
--- @param width number
--- @param height number
--- @param p6 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param p11 number
--- @param p12 number
function GRAPHICS.DRAW_SPRITE_ARX(textureDict, textureName, x, y, width, height, p6, red, green, blue, alpha, p11, p12) end
--- Similar to _DRAW_SPRITE, but seems to be some kind of "interactive" sprite, at least used by render targets.
--- These seem to be the only dicts ever requested by this native:
--- 
--- prop_screen_biker_laptop
--- Prop_Screen_GR_Disruption
--- Prop_Screen_TaleOfUs
--- prop_screen_nightclub
--- Prop_Screen_IE_Adhawk
--- prop_screen_sm_free_trade_shipping
--- prop_screen_hacker_truck
--- MPDesktop
--- Prop_Screen_Nightclub
--- And a few others
--- 
--- @param textureDict string
--- @param textureName string
--- @param screenX number
--- @param screenY number
--- @param width number
--- @param height number
--- @param heading number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param p11 number
function GRAPHICS.DRAW_SPRITE_NAMED_RENDERTARGET(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11) end
--- Similar to DRAW_SPRITE, but allows to specify the texture coordinates used to draw the sprite.
--- 
--- u1, v1 - texture coordinates for the top-left corner
--- u2, v2 - texture coordinates for the bottom-right corner
--- @param textureDict string
--- @param textureName string
--- @param x number
--- @param y number
--- @param width number
--- @param height number
--- @param u1 number
--- @param v1 number
--- @param u2 number
--- @param v2 number
--- @param heading number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param p15 number
function GRAPHICS.DRAW_SPRITE_ARX_WITH_UV(textureDict, textureName, x, y, width, height, u1, v1, u2, v2, heading, red, green, blue, alpha, p15) end
--- Example:
--- GRAPHICS::ADD_ENTITY_ICON(a_0, "MP_Arrow");
--- 
--- I tried this and nothing happened...
--- @param entity number
--- @param icon string
--- @return number
function GRAPHICS.ADD_ENTITY_ICON(entity, icon) end
--- @param entity number
--- @param toggle boolean
function GRAPHICS.SET_ENTITY_ICON_VISIBILITY(entity, toggle) end
--- @param entity number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.SET_ENTITY_ICON_COLOR(entity, red, green, blue, alpha) end
--- Sets the on-screen drawing origin for draw-functions (which is normally x=0,y=0 in the upper left corner of the screen) to a world coordinate.
--- From now on, the screen coordinate which displays the given world coordinate on the screen is seen as x=0,y=0.
--- 
--- Example in C#:
--- Vector3 boneCoord = somePed.GetBoneCoord(Bone.SKEL_Head);
--- Function.Call(Hash.SET_DRAW_ORIGIN, boneCoord.X, boneCoord.Y, boneCoord.Z, 0);
--- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", -0.01, -0.015, 0.013, 0.013, 0.0, 255, 0, 0, 200);
--- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", 0.01, -0.015, 0.013, 0.013, 90.0, 255, 0, 0, 200);
--- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", -0.01, 0.015, 0.013, 0.013, 270.0, 255, 0, 0, 200);
--- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", 0.01, 0.015, 0.013, 0.013, 180.0, 255, 0, 0, 200);
--- Function.Call(Hash.CLEAR_DRAW_ORIGIN);
--- 
--- Result: www11.pic-upload.de/19.06.15/bkqohvil2uao.jpg
--- If the pedestrian starts walking around now, the sprites are always around her head, no matter where the head is displayed on the screen.
--- 
--- This function also effects the drawing of texts and other UI-elements.
--- The effect can be reset by calling GRAPHICS::CLEAR_DRAW_ORIGIN().
--- @param x number
--- @param y number
--- @param z number
--- @param p3 boolean
function GRAPHICS.SET_DRAW_ORIGIN(x, y, z, p3) end
--- Resets the screen's draw-origin which was changed by the function GRAPHICS::SET_DRAW_ORIGIN(...) back to x=0,y=0.
--- 
--- See GRAPHICS::SET_DRAW_ORIGIN(...) for further information.
function GRAPHICS.CLEAR_DRAW_ORIGIN() end
--- @param name string
--- @return number
function GRAPHICS.SET_BINK_MOVIE(name) end
--- @param binkMovie number
function GRAPHICS.PLAY_BINK_MOVIE(binkMovie) end
--- @param binkMovie number
function GRAPHICS.STOP_BINK_MOVIE(binkMovie) end
--- @param binkMovie number
function GRAPHICS.RELEASE_BINK_MOVIE(binkMovie) end
--- @param binkMovie number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param r number
--- @param g number
--- @param b number
--- @param a number
function GRAPHICS.DRAW_BINK_MOVIE(binkMovie, p1, p2, p3, p4, p5, r, g, b, a) end
--- In percentage: 0.0 - 100.0
--- @param binkMovie number
--- @param progress number
function GRAPHICS.SET_BINK_MOVIE_TIME(binkMovie, progress) end
--- In percentage: 0.0 - 100.0
--- @param binkMovie number
--- @return number
function GRAPHICS.GET_BINK_MOVIE_TIME(binkMovie) end
--- binkMovie: Is return value from _SET_BINK_MOVIE. Has something to do with bink volume? (audRequestedSettings::SetVolumeCurveScale)
--- @param binkMovie number
--- @param value number
function GRAPHICS.SET_BINK_MOVIE_VOLUME(binkMovie, value) end
--- Might be more appropriate in AUDIO?
--- @param entity number
function GRAPHICS.ATTACH_TV_AUDIO_TO_ENTITY(entity) end
--- @param binkMovie number
--- @param p1 boolean
function GRAPHICS.SET_BINK_MOVIE_AUDIO_FRONTEND(binkMovie, p1) end
--- Probably changes tvs from being a 3d audio to being "global" audio
--- @param toggle boolean
function GRAPHICS.SET_TV_AUDIO_FRONTEND(toggle) end
--- @param binkMovie number
--- @param bShouldSkip boolean
function GRAPHICS.SET_BINK_SHOULD_SKIP(binkMovie, bShouldSkip) end
--- @param movieMeshSetName string
--- @return number
function GRAPHICS.LOAD_MOVIE_MESH_SET(movieMeshSetName) end
--- @param movieMeshSet number
function GRAPHICS.RELEASE_MOVIE_MESH_SET(movieMeshSet) end
--- @param p0 number
--- @return number
function GRAPHICS.QUERY_MOVIE_MESH_SET_STATE(p0) end
--- int screenresx,screenresy;
--- GET_SCREEN_RESOLUTION(&screenresx,&screenresy);
--- @param x any
--- @param y any
function GRAPHICS.GET_SCREEN_RESOLUTION(x, y) end
--- Returns current screen resolution.
--- @param x any
--- @param y any
function GRAPHICS.GET_ACTUAL_SCREEN_RESOLUTION(x, y) end
--- @param b boolean
--- @return number
function GRAPHICS.GET_ASPECT_RATIO(b) end
--- @return number
function GRAPHICS.GET_SCREEN_ASPECT_RATIO() end
--- Setting Aspect Ratio Manually in game will return:
--- 
--- false - for Narrow format Aspect Ratios (3:2, 4:3, 5:4, etc. )
--- true - for Wide format Aspect Ratios (5:3, 16:9, 16:10, etc. )
--- 
--- Setting Aspect Ratio to "Auto" in game will return "false" or "true" based on the actual set Resolution Ratio.
--- @return boolean
function GRAPHICS.GET_IS_WIDESCREEN() end
--- false = Any resolution < 1280x720
--- true = Any resolution >= 1280x720
--- @return boolean
function GRAPHICS.GET_IS_HIDEF() end
function GRAPHICS.ADJUST_NEXT_POS_SIZE_AS_NORMALIZED_16_9() end
--- Enables Night Vision.
--- 
--- Example:
--- C#: Function.Call(Hash.SET_NIGHTVISION, true);
--- C++: GRAPHICS::SET_NIGHTVISION(true);
--- 
--- BOOL toggle:
--- true = turns night vision on for your player.
--- false = turns night vision off for your player.
--- @param toggle boolean
function GRAPHICS.SET_NIGHTVISION(toggle) end
--- @return boolean
function GRAPHICS.GET_REQUESTINGNIGHTVISION() end
--- @return boolean
function GRAPHICS.GET_USINGNIGHTVISION() end
--- @param toggle boolean
function GRAPHICS.SET_EXPOSURETWEAK(toggle) end
--- @param toggle boolean
function GRAPHICS.FORCE_EXPOSURE_READBACK(toggle) end
--- @param p0 number
function GRAPHICS.OVERRIDE_NIGHTVISION_LIGHT_RANGE(p0) end
--- @param toggle boolean
function GRAPHICS.SET_NOISEOVERIDE(toggle) end
--- @param value number
function GRAPHICS.SET_NOISINESSOVERIDE(value) end
--- Convert a world coordinate into its relative screen coordinate.  (WorldToScreen)
--- 
--- Returns a boolean; whether or not the operation was successful. It will return false if the coordinates given are not visible to the rendering camera.
--- 
--- 
--- For .NET users...
--- 
--- VB:
--- Public Shared Function World3DToScreen2d(pos as vector3) As Vector2
--- 
--- Dim x2dp, y2dp As New Native.OutputArgument
--- 
--- Native.Function.Call(Of Boolean)(Native.Hash.GET_SCREEN_COORD_FROM_WORLD_COORD , pos.x, pos.y, pos.z, x2dp, y2dp)
--- Return New Vector2(x2dp.GetResult(Of Single), y2dp.GetResult(Of Single))
--- 
--- End Function
--- 
--- C#:
--- Vector2 World3DToScreen2d(Vector3 pos)
--- {
--- var x2dp = new OutputArgument();
--- var y2dp = new OutputArgument();
--- 
--- Function.Call<bool>(Hash.GET_SCREEN_COORD_FROM_WORLD_COORD , pos.X, pos.Y, pos.Z, x2dp, y2dp);
--- return new Vector2(x2dp.GetResult<float>(), y2dp.GetResult<float>());
--- }
--- //USE VERY SMALL VALUES FOR THE SCALE OF RECTS/TEXT because it is dramatically larger on screen than in 3D, e.g '0.05' small.
--- 
--- Used to be called _WORLD3D_TO_SCREEN2D
--- 
--- I thought we lost you from the scene forever. It does seem however that calling SET_DRAW_ORIGIN then your natives, then ending it. Seems to work better for certain things such as keeping boxes around people for a predator missile e.g.
--- @param worldX number
--- @param worldY number
--- @param worldZ number
--- @param screenX any
--- @param screenY any
--- @return boolean
function GRAPHICS.GET_SCREEN_COORD_FROM_WORLD_COORD(worldX, worldY, worldZ, screenX, screenY) end
--- Returns the texture resolution of the passed texture dict+name.
--- 
--- Note: Most texture resolutions are doubled compared to the console version of the game.
--- @param textureDict string
--- @param textureName string
--- @return { x: number, y: number, z: number }
function GRAPHICS.GET_TEXTURE_RESOLUTION(textureDict, textureName) end
--- Overriding ped badge texture to a passed texture. It's synced between players (even custom textures!), don't forget to request used dict on *all* clients to make it sync properly. Can be removed by passing empty strings.
--- @param ped number
--- @param txd string
--- @param txn string
--- @return boolean
function GRAPHICS.OVERRIDE_PED_CREW_LOGO_TEXTURE(ped, txd, txn) end
--- @param p0 number
function GRAPHICS.SET_DISTANCE_BLUR_STRENGTH_OVERRIDE(p0) end
--- Purpose of p0 and p1 unknown.
--- @param p0 number
--- @param p1 number
--- @param fadeIn number
--- @param duration number
--- @param fadeOut number
function GRAPHICS.SET_FLASH(p0, p1, fadeIn, duration, fadeOut) end
function GRAPHICS.DISABLE_OCCLUSION_THIS_FRAME() end
--- Does not affect weapons, particles, fire/explosions, flashlights or the sun.
--- When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off.
--- 
--- Used in Humane Labs Heist for EMP.
--- 
--- state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on.
--- @param state boolean
function GRAPHICS.SET_ARTIFICIAL_LIGHTS_STATE(state) end
--- If "blackout" is enabled, this native allows you to ignore "blackout" for vehicles.
--- @param toggle boolean
function GRAPHICS.SET_ARTIFICIAL_VEHICLE_LIGHTS_STATE(toggle) end
function GRAPHICS.DISABLE_HDTEX_THIS_FRAME() end
--- Creates a tracked point, useful for checking the visibility of a 3D point on screen.
--- @return number
function GRAPHICS.CREATE_TRACKED_POINT() end
--- @param point number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function GRAPHICS.SET_TRACKED_POINT_INFO(point, x, y, z, radius) end
--- @param point number
--- @return boolean
function GRAPHICS.IS_TRACKED_POINT_VISIBLE(point) end
--- @param point number
function GRAPHICS.DESTROY_TRACKED_POINT(point) end
--- This function is hard-coded to always return 0.
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return number
function GRAPHICS.SET_GRASS_CULL_SPHERE(p0, p1, p2, p3) end
--- This native does absolutely nothing, just a nullsub
--- @param handle number
function GRAPHICS.REMOVE_GRASS_CULL_SPHERE(handle) end
--- @param handle number
--- @param x number
--- @param y number
--- @param z number
--- @param scale number
function GRAPHICS.PROCGRASS_ENABLE_CULLSPHERE(handle, x, y, z, scale) end
--- @param handle number
function GRAPHICS.PROCGRASS_DISABLE_CULLSPHERE(handle) end
--- @param handle number
--- @return boolean
function GRAPHICS.PROCGRASS_IS_CULLSPHERE_ENABLED(handle) end
function GRAPHICS.PROCGRASS_ENABLE_AMBSCALESCAN() end
function GRAPHICS.PROCGRASS_DISABLE_AMBSCALESCAN() end
function GRAPHICS.DISABLE_PROCOBJ_CREATION() end
function GRAPHICS.ENABLE_PROCOBJ_CREATION() end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param scale number
function GRAPHICS.GRASSBATCH_ENABLE_FLATTENING_EXT_IN_SPHERE(x, y, z, p3, p4, p5, p6, scale) end
--- Wraps 0xAAE9BE70EC7C69AB with FLT_MAX as p7, Jenkins: 0x73E96210?
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function GRAPHICS.GRASSBATCH_ENABLE_FLATTENING_IN_SPHERE(x, y, z, radius, p4, p5, p6) end
function GRAPHICS.GRASSBATCH_DISABLE_FLATTENING() end
function GRAPHICS.CASCADE_SHADOWS_INIT_SESSION() end
--- @param p0 number
--- @param p1 boolean
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 boolean
--- @param p7 number
function GRAPHICS.CASCADE_SHADOWS_SET_CASCADE_BOUNDS(p0, p1, p2, p3, p4, p5, p6, p7) end
--- @param p0 number
function GRAPHICS.CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SCALE(p0) end
--- @param p0 number
function GRAPHICS.CASCADE_SHADOWS_SET_ENTITY_TRACKER_SCALE(p0) end
--- @param p0 number
function GRAPHICS.CASCADE_SHADOWS_SET_SPLIT_Z_EXP_WEIGHT(p0) end
--- @param p0 number
function GRAPHICS.CASCADE_SHADOWS_SET_BOUND_POSITION(p0) end
--- When this is set to ON, shadows only draw as you get nearer.
--- 
--- When OFF, they draw from a further distance.
--- @param toggle boolean
function GRAPHICS.CASCADE_SHADOWS_ENABLE_ENTITY_TRACKER(toggle) end
--- @param p0 boolean
function GRAPHICS.CASCADE_SHADOWS_SET_SCREEN_SIZE_CHECK_ENABLED(p0) end
--- Possible values:
--- "CSM_ST_POINT"
--- "CSM_ST_LINEAR"
--- "CSM_ST_TWOTAP"
--- "CSM_ST_BOX3x3"
--- "CSM_ST_BOX4x4"
--- "CSM_ST_DITHER2_LINEAR"
--- "CSM_ST_CUBIC"
--- "CSM_ST_DITHER4"
--- "CSM_ST_DITHER16"
--- "CSM_ST_SOFT16"
--- "CSM_ST_DITHER16_RPDB"
--- "CSM_ST_POISSON16_RPDB_GNORM"
--- "CSM_ST_HIGHRES_BOX4x4"
--- "CSM_ST_CLOUDS_SIMPLE"
--- "CSM_ST_CLOUDS_LINEAR"
--- "CSM_ST_CLOUDS_TWOTAP"
--- "CSM_ST_CLOUDS_BOX3x3"
--- "CSM_ST_CLOUDS_BOX4x4"
--- "CSM_ST_CLOUDS_DITHER2_LINEAR"
--- "CSM_ST_CLOUDS_SOFT16"
--- "CSM_ST_CLOUDS_DITHER16_RPDB"
--- "CSM_ST_CLOUDS_POISSON16_RPDB_GNORM"
--- @param type string
function GRAPHICS.CASCADE_SHADOWS_SET_SHADOW_SAMPLE_TYPE(type) end
function GRAPHICS.CASCADE_SHADOWS_CLEAR_SHADOW_SAMPLE_TYPE() end
--- @param p0 boolean
function GRAPHICS.CASCADE_SHADOWS_SET_AIRCRAFT_MODE(p0) end
--- @param p0 boolean
function GRAPHICS.CASCADE_SHADOWS_SET_DYNAMIC_DEPTH_MODE(p0) end
--- @param p0 number
function GRAPHICS.CASCADE_SHADOWS_SET_DYNAMIC_DEPTH_VALUE(p0) end
--- @param p0 boolean
function GRAPHICS.CASCADE_SHADOWS_ENABLE_FREEZER(p0) end
--- @param p0 number
function GRAPHICS.WATER_REFLECTION_SET_SCRIPT_OBJECT_VISIBILITY(p0) end
--- @param toggle boolean
function GRAPHICS.GOLF_TRAIL_SET_ENABLED(toggle) end
--- p8 seems to always be false.
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 boolean
function GRAPHICS.GOLF_TRAIL_SET_PATH(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function GRAPHICS.GOLF_TRAIL_SET_RADIUS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
function GRAPHICS.GOLF_TRAIL_SET_COLOUR(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) end
--- @param p0 number
--- @param p1 number
function GRAPHICS.GOLF_TRAIL_SET_TESSELLATION(p0, p1) end
--- @param p0 boolean
function GRAPHICS.GOLF_TRAIL_SET_FIXED_CONTROL_POINT_ENABLE(p0) end
--- 12 matches across 4 scripts. All 4 scripts were job creators.
--- 
--- type ranged from 0 - 2.
--- p4 was always 0.2f. Likely scale.
--- assuming p5 - p8 is RGBA, the graphic is always yellow (255, 255, 0, 255).
--- 
--- Tested but noticed nothing.
--- @param type number
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param p4 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.GOLF_TRAIL_SET_FIXED_CONTROL_POINT(type, xPos, yPos, zPos, p4, red, green, blue, alpha) end
--- Only appeared in Golf & Golf_mp. Parameters were all ptrs
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function GRAPHICS.GOLF_TRAIL_SET_SHADER_PARAMS(p0, p1, p2, p3, p4) end
--- @param p0 boolean
function GRAPHICS.GOLF_TRAIL_SET_FACING(p0) end
--- @return number
function GRAPHICS.GOLF_TRAIL_GET_MAX_HEIGHT() end
--- @param p0 number
--- @return { x: number, y: number, z: number }
function GRAPHICS.GOLF_TRAIL_GET_VISUAL_CONTROL_POINT(p0) end
--- Toggles Heatvision on/off.
--- @param toggle boolean
function GRAPHICS.SET_SEETHROUGH(toggle) end
--- @return boolean
function GRAPHICS.GET_USINGSEETHROUGH() end
function GRAPHICS.SEETHROUGH_RESET() end
--- @param distance number
function GRAPHICS.SEETHROUGH_SET_FADE_STARTDISTANCE(distance) end
--- @param distance number
function GRAPHICS.SEETHROUGH_SET_FADE_ENDDISTANCE(distance) end
--- @return number
function GRAPHICS.SEETHROUGH_GET_MAX_THICKNESS() end
--- 0.0 = you will not be able to see people behind the walls. 50.0 and more = you will see everyone through the walls. More value is "better" view. See https://gfycat.com/FirmFlippantGourami
--- min: 1.0
--- max: 10000.0
--- @param thickness number
function GRAPHICS.SEETHROUGH_SET_MAX_THICKNESS(thickness) end
--- @param amount number
function GRAPHICS.SEETHROUGH_SET_NOISE_MIN(amount) end
--- @param amount number
function GRAPHICS.SEETHROUGH_SET_NOISE_MAX(amount) end
--- @param intensity number
function GRAPHICS.SEETHROUGH_SET_HILIGHT_INTENSITY(intensity) end
--- @param noise number
function GRAPHICS.SEETHROUGH_SET_HIGHLIGHT_NOISE(noise) end
--- min: 0.0
--- max: 0.75
--- @param index number
--- @param heatScale number
function GRAPHICS.SEETHROUGH_SET_HEATSCALE(index, heatScale) end
--- @param red number
--- @param green number
--- @param blue number
function GRAPHICS.SEETHROUGH_SET_COLOR_NEAR(red, green, blue) end
--- Setter for GET_MOTIONBLUR_MAX_VEL_SCALER
--- @param p0 number
function GRAPHICS.SET_MOTIONBLUR_MAX_VEL_SCALER(p0) end
--- Getter for SET_MOTIONBLUR_MAX_VEL_SCALER
--- @return number
function GRAPHICS.GET_MOTIONBLUR_MAX_VEL_SCALER() end
--- @param toggle boolean
function GRAPHICS.SET_FORCE_MOTIONBLUR(toggle) end
--- @param toggle boolean
function GRAPHICS.TOGGLE_PLAYER_DAMAGE_OVERLAY(toggle) end
--- Sets an value related to timecycles.
--- @param p0 number
function GRAPHICS.RESET_ADAPTATION(p0) end
--- time in ms to transition to fully blurred screen
--- @param transitionTime number
--- @return boolean
function GRAPHICS.TRIGGER_SCREENBLUR_FADE_IN(transitionTime) end
--- time in ms to transition from fully blurred to normal
--- @param transitionTime number
--- @return boolean
function GRAPHICS.TRIGGER_SCREENBLUR_FADE_OUT(transitionTime) end
function GRAPHICS.DISABLE_SCREENBLUR_FADE() end
--- @return number
function GRAPHICS.GET_SCREENBLUR_FADE_CURRENT_TIME() end
--- Returns whether screen transition to blur/from blur is running.
--- @return boolean
function GRAPHICS.IS_SCREENBLUR_FADE_RUNNING() end
--- @param toggle boolean
function GRAPHICS.TOGGLE_PAUSED_RENDERPHASES(toggle) end
--- @return boolean
function GRAPHICS.GET_TOGGLE_PAUSED_RENDERPHASES_STATUS() end
function GRAPHICS.RESET_PAUSED_RENDERPHASES() end
function GRAPHICS.GRAB_PAUSEMENU_OWNERSHIP() end
--- @param p0 boolean
--- @param p1 boolean
--- @param nearplaneOut number
--- @param nearplaneIn number
--- @param farplaneOut number
--- @param farplaneIn number
function GRAPHICS.SET_HIDOF_OVERRIDE(p0, p1, nearplaneOut, nearplaneIn, farplaneOut, farplaneIn) end
--- @param p0 boolean
function GRAPHICS.SET_LOCK_ADAPTIVE_DOF_DISTANCE(p0) end
--- @param p0 boolean
--- @return boolean
function GRAPHICS.PHONEPHOTOEDITOR_TOGGLE(p0) end
--- @return boolean
function GRAPHICS.PHONEPHOTOEDITOR_IS_ACTIVE() end
--- @param textureDict string
--- @param p1 boolean
--- @return boolean
function GRAPHICS.PHONEPHOTOEDITOR_SET_FRAME_TXD(textureDict, p1) end
--- GRAPHICS::START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_paleto_roof_impact", -140.8576f, 6420.789f, 41.1391f, 0f, 0f, 267.3957f, 0x3F800000, 0, 0, 0);
--- 
--- Axis - Invert Axis Flags
--- 
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- 
--- 
--- -------------------------------------------------------------------
--- C#
--- 
--- Function.Call<int>(Hash.START_PARTICLE_FX_NON_LOOPED_AT_COORD, = you are calling this function.
--- 
--- char *effectname = This is an in-game effect name, for e.g. "scr_fbi4_trucks_crash" is used to give the effects when truck crashes etc
--- 
--- float x, y, z pos = this one is Simple, you just have to declare, where do you want this effect to take place at, so declare the ordinates
--- 
--- float xrot, yrot, zrot = Again simple? just mention the value in case if you want the effect to rotate.
--- 
--- float scale = is declare the scale of the effect, this may vary as per the effects for e.g 1.0f
--- 
--- bool xaxis, yaxis, zaxis = To bool the axis values.
--- 
--- example:
--- Function.Call<int>(Hash.START_PARTICLE_FX_NON_LOOPED_AT_COORD, "scr_fbi4_trucks_crash", GTA.Game.Player.Character.Position.X, GTA.Game.Player.Character.Position.Y, GTA.Game.Player.Character.Position.Z + 4f, 0, 0, 0, 5.5f, 0, 0, 0);
--- @param effectName string
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @return boolean
function GRAPHICS.START_PARTICLE_FX_NON_LOOPED_AT_COORD(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @param p11 boolean
--- @return boolean
function GRAPHICS.START_NETWORKED_PARTICLE_FX_NON_LOOPED_AT_COORD(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11) end
--- GRAPHICS::START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE("scr_sh_bong_smoke", PLAYER::PLAYER_PED_ID(), -0.025f, 0.13f, 0f, 0f, 0f, 0f, 31086, 0x3F800000, 0, 0, 0);
--- 
--- Axis - Invert Axis Flags
--- 
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param ped number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param boneIndex number
--- @param scale number
--- @param axisX boolean
--- @param axisY boolean
--- @param axisZ boolean
--- @return boolean
function GRAPHICS.START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE(effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param ped number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param boneIndex number
--- @param scale number
--- @param axisX boolean
--- @param axisY boolean
--- @param axisZ boolean
--- @return boolean
function GRAPHICS.START_NETWORKED_PARTICLE_FX_NON_LOOPED_ON_PED_BONE(effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ) end
--- Starts a particle effect on an entity for example your player.
--- 
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- 
--- Example:
--- C#:
--- Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "scr_rcbarry2");                     Function.Call(Hash.USE_PARTICLE_FX_ASSET, "scr_rcbarry2");                             Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "scr_clown_appears", Game.Player.Character, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false);
--- 
--- Internally this calls the same function as GRAPHICS::START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE
--- however it uses -1 for the specified bone index, so it should be possible to start a non looped fx on an entity bone using that native
--- 
--- -can confirm START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE does NOT work on vehicle bones.
--- @param effectName string
--- @param entity number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param scale number
--- @param axisX boolean
--- @param axisY boolean
--- @param axisZ boolean
--- @return boolean
function GRAPHICS.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param entity number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param scale number
--- @param axisX boolean
--- @param axisY boolean
--- @param axisZ boolean
--- @return boolean
function GRAPHICS.START_NETWORKED_PARTICLE_FX_NON_LOOPED_ON_ENTITY(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param entity number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param boneIndex number
--- @param scale number
--- @param axisX boolean
--- @param axisY boolean
--- @param axisZ boolean
--- @return boolean
function GRAPHICS.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY_BONE(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ) end
--- only works on some fx's, not networked
--- @param r number
--- @param g number
--- @param b number
function GRAPHICS.SET_PARTICLE_FX_NON_LOOPED_COLOUR(r, g, b) end
--- Usage example for C#:
--- 
--- Function.Call(Hash.SET_PARTICLE_FX_NON_LOOPED_ALPHA, new InputArgument[] { 0.1f });
--- 
--- Note: the argument alpha ranges from 0.0f-1.0f !
--- @param alpha number
function GRAPHICS.SET_PARTICLE_FX_NON_LOOPED_ALPHA(alpha) end
--- @param scale number
function GRAPHICS.SET_PARTICLE_FX_NON_LOOPED_SCALE(scale) end
--- @param p0 number
--- @param p1 number
--- @param scale number
function GRAPHICS.SET_PARTICLE_FX_NON_LOOPED_EMITTER_SIZE(p0, p1, scale) end
--- Used only once in the scripts (taxi_clowncar)
--- @param toggle boolean
function GRAPHICS.SET_PARTICLE_FX_FORCE_VEHICLE_INTERIOR(toggle) end
--- GRAPHICS::START_PARTICLE_FX_LOOPED_AT_COORD("scr_fbi_falling_debris", 93.7743f, -749.4572f, 70.86904f, 0f, 0f, 0f, 0x3F800000, 0, 0, 0, 0)
--- 
--- 
--- p11 seems to be always 0
--- 
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param x number
--- @param y number
--- @param z number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @param p11 boolean
--- @return number
function GRAPHICS.START_PARTICLE_FX_LOOPED_AT_COORD(effectName, x, y, z, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param ped number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param boneIndex number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @return number
function GRAPHICS.START_PARTICLE_FX_LOOPED_ON_PED_BONE(effectName, ped, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param entity number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @return number
function GRAPHICS.START_PARTICLE_FX_LOOPED_ON_ENTITY(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param entity number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param boneIndex number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @return number
function GRAPHICS.START_PARTICLE_FX_LOOPED_ON_ENTITY_BONE(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param entity number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @param r number
--- @param g number
--- @param b number
--- @param a number
--- @return number
function GRAPHICS.START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, r, g, b, a) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param effectName string
--- @param entity number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param boneIndex number
--- @param scale number
--- @param xAxis boolean
--- @param yAxis boolean
--- @param zAxis boolean
--- @param r number
--- @param g number
--- @param b number
--- @param a number
--- @return number
function GRAPHICS.START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY_BONE(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, r, g, b, a) end
--- p1 is always 0 in the native scripts
--- @param ptfxHandle number
--- @param p1 boolean
function GRAPHICS.STOP_PARTICLE_FX_LOOPED(ptfxHandle, p1) end
--- @param ptfxHandle number
--- @param p1 boolean
function GRAPHICS.REMOVE_PARTICLE_FX(ptfxHandle, p1) end
--- @param entity number
function GRAPHICS.REMOVE_PARTICLE_FX_FROM_ENTITY(entity) end
--- @param X number
--- @param Y number
--- @param Z number
--- @param radius number
function GRAPHICS.REMOVE_PARTICLE_FX_IN_RANGE(X, Y, Z, radius) end
--- @param p0 number
--- @param p1 number
function GRAPHICS.FORCE_PARTICLE_FX_IN_VEHICLE_INTERIOR(p0, p1) end
--- @param ptfxHandle number
--- @return boolean
function GRAPHICS.DOES_PARTICLE_FX_LOOPED_EXIST(ptfxHandle) end
--- @param ptfxHandle number
--- @param x number
--- @param y number
--- @param z number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
function GRAPHICS.SET_PARTICLE_FX_LOOPED_OFFSETS(ptfxHandle, x, y, z, rotX, rotY, rotZ) end
--- @param ptfxHandle number
--- @param propertyName string
--- @param amount number
--- @param noNetwork boolean
function GRAPHICS.SET_PARTICLE_FX_LOOPED_EVOLUTION(ptfxHandle, propertyName, amount, noNetwork) end
--- only works on some fx's
--- 
--- p4 = 0
--- @param ptfxHandle number
--- @param r number
--- @param g number
--- @param b number
--- @param p4 boolean
function GRAPHICS.SET_PARTICLE_FX_LOOPED_COLOUR(ptfxHandle, r, g, b, p4) end
--- @param ptfxHandle number
--- @param alpha number
function GRAPHICS.SET_PARTICLE_FX_LOOPED_ALPHA(ptfxHandle, alpha) end
--- @param ptfxHandle number
--- @param scale number
function GRAPHICS.SET_PARTICLE_FX_LOOPED_SCALE(ptfxHandle, scale) end
--- @param ptfxHandle number
--- @param range number
function GRAPHICS.SET_PARTICLE_FX_LOOPED_FAR_CLIP_DIST(ptfxHandle, range) end
--- @param ptfxHandle number
--- @param p1 number
function GRAPHICS._SET_PARTICLE_FX_LOOPED_CAMERA_BIAS(ptfxHandle, p1) end
--- @param p0 boolean
function GRAPHICS.SET_PARTICLE_FX_CAM_INSIDE_VEHICLE(p0) end
--- @param vehicle number
--- @param p1 boolean
function GRAPHICS.SET_PARTICLE_FX_CAM_INSIDE_NONPLAYER_VEHICLE(vehicle, p1) end
--- @param p0 number
function GRAPHICS.SET_PARTICLE_FX_SHOOTOUT_BOAT(p0) end
function GRAPHICS.CLEAR_PARTICLE_FX_SHOOTOUT_BOAT() end
--- @param p0 number
function GRAPHICS.SET_PARTICLE_FX_BLOOD_SCALE(p0) end
--- @param toggle boolean
function GRAPHICS.DISABLE_IN_WATER_PTFX(toggle) end
--- @param toggle boolean
function GRAPHICS.DISABLE_DOWNWASH_PTFX(toggle) end
--- @param scale number
function GRAPHICS.SET_PARTICLE_FX_SLIPSTREAM_LODRANGE_SCALE(scale) end
--- Creates cartoon effect when Michel smokes the weed
--- @param toggle boolean
function GRAPHICS.ENABLE_CLOWN_BLOOD_VFX(toggle) end
--- Creates a motion-blur sort of effect, this native does not seem to work, however by using the `START_SCREEN_EFFECT` native with `DrugsMichaelAliensFight` as the effect parameter, you should be able to get the effect.
--- @param toggle boolean
function GRAPHICS.ENABLE_ALIEN_BLOOD_VFX(toggle) end
--- @param scale number
function GRAPHICS.SET_PARTICLE_FX_BULLET_IMPACT_SCALE(scale) end
--- @param p0 number
function GRAPHICS.SET_PARTICLE_FX_BULLET_IMPACT_LODRANGE_SCALE(p0) end
--- @param p0 boolean
function GRAPHICS.SET_PARTICLE_FX_BULLET_TRACE_NO_ANGLE_REJECT(p0) end
--- @param p0 number
function GRAPHICS.SET_PARTICLE_FX_BANG_SCRAPE_LODRANGE_SCALE(p0) end
--- @param p0 number
function GRAPHICS.SET_PARTICLE_FX_FOOT_LODRANGE_SCALE(p0) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param p0 string
function GRAPHICS.SET_PARTICLE_FX_FOOT_OVERRIDE_NAME(p0) end
--- @param scale number
function GRAPHICS.SET_SKIDMARK_RANGE_SCALE(scale) end
--- @param p0 number
function GRAPHICS.SET_PTFX_FORCE_VEHICLE_INTERIOR_FLAG(p0) end
--- @param weaponWorldPosX number
--- @param weaponWorldPosY number
--- @param weaponWorldPosZ number
--- @param intensity number
function GRAPHICS.REGISTER_POSTFX_BULLET_IMPACT(weaponWorldPosX, weaponWorldPosY, weaponWorldPosZ, intensity) end
--- @param p0 boolean
function GRAPHICS.FORCE_POSTFX_BULLET_IMPACTS_AFTER_HUD(p0) end
--- From the b678d decompiled scripts:
--- 
--- GRAPHICS::USE_PARTICLE_FX_ASSET("FM_Mission_Controler");
--- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_apartment_mp");
--- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_indep_fireworks");
--- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_mp_cig_plane");
--- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_mp_creator");
--- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_ornate_heist");
--- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_prison_break_heist_station");
--- 
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param name string
function GRAPHICS.USE_PARTICLE_FX_ASSET(name) end
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param oldAsset string
--- @param newAsset string
function GRAPHICS.SET_PARTICLE_FX_OVERRIDE(oldAsset, newAsset) end
--- Resets the effect of SET_PARTICLE_FX_OVERRIDE
--- 
--- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json
--- @param name string
function GRAPHICS.RESET_PARTICLE_FX_OVERRIDE(name) end
--- Returns ptfxHandle
--- effectName: scr_sv_drag_burnout
--- @param vehicle number
--- @param effectName string
--- @param frontBack boolean
--- @param leftRight boolean
--- @param localOnly boolean
--- @return number
function GRAPHICS._START_VEHICLE_PARTICLE_FX_LOOPED(vehicle, effectName, frontBack, leftRight, localOnly) end
--- @param p0 boolean
function GRAPHICS.SET_WEATHER_PTFX_USE_OVERRIDE_SETTINGS(p0) end
--- @param p0 number
function GRAPHICS.SET_WEATHER_PTFX_OVERRIDE_CURR_LEVEL(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param range number
--- @param p4 number
function GRAPHICS.WASH_DECALS_IN_RANGE(x, y, z, range, p4) end
--- @param vehicle number
--- @param p1 number
function GRAPHICS.WASH_DECALS_FROM_VEHICLE(vehicle, p1) end
--- Fades nearby decals within the range specified
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 number
function GRAPHICS.FADE_DECALS_IN_RANGE(x, y, z, p3, p4) end
--- Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol...
--- @param x number
--- @param y number
--- @param z number
--- @param range number
function GRAPHICS.REMOVE_DECALS_IN_RANGE(x, y, z, range) end
--- @param obj number
function GRAPHICS.REMOVE_DECALS_FROM_OBJECT(obj) end
--- @param obj number
--- @param x number
--- @param y number
--- @param z number
function GRAPHICS.REMOVE_DECALS_FROM_OBJECT_FACING(obj, x, y, z) end
--- @param vehicle number
function GRAPHICS.REMOVE_DECALS_FROM_VEHICLE(vehicle) end
--- decal types:
--- 
--- public enum DecalTypes
--- {
--- splatters_blood = 1010,
--- splatters_blood_dir = 1015,
--- splatters_blood_mist = 1017,
--- splatters_mud = 1020,
--- splatters_paint = 1030,
--- splatters_water = 1040,
--- splatters_water_hydrant = 1050,
--- splatters_blood2 = 1110,
--- weapImpact_metal = 4010,
--- weapImpact_concrete = 4020,
--- weapImpact_mattress = 4030,
--- weapImpact_mud = 4032,
--- weapImpact_wood = 4050,
--- weapImpact_sand = 4053,
--- weapImpact_cardboard = 4040,
--- weapImpact_melee_glass = 4100,
--- weapImpact_glass_blood = 4102,
--- weapImpact_glass_blood2 = 4104,
--- weapImpact_shotgun_paper = 4200,
--- weapImpact_shotgun_mattress,
--- weapImpact_shotgun_metal,
--- weapImpact_shotgun_wood,
--- weapImpact_shotgun_dirt,
--- weapImpact_shotgun_tvscreen,
--- weapImpact_shotgun_tvscreen2,
--- weapImpact_shotgun_tvscreen3,
--- weapImpact_melee_concrete = 4310,
--- weapImpact_melee_wood = 4312,
--- weapImpact_melee_metal = 4314,
--- burn1 = 4421,
--- burn2,
--- burn3,
--- burn4,
--- burn5,
--- bang_concrete_bang = 5000,
--- bang_concrete_bang2,
--- bang_bullet_bang,
--- bang_bullet_bang2 = 5004,
--- bang_glass = 5031,
--- bang_glass2,
--- solidPool_water = 9000,
--- solidPool_blood,
--- solidPool_oil,
--- solidPool_petrol,
--- solidPool_mud,
--- porousPool_water,
--- porousPool_blood,
--- porousPool_oil,
--- porousPool_petrol,
--- porousPool_mud,
--- porousPool_water_ped_drip,
--- liquidTrail_water = 9050
--- }
--- @param decalType number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param width number
--- @param height number
--- @param rCoef number
--- @param gCoef number
--- @param bCoef number
--- @param opacity number
--- @param timeout number
--- @param p17 boolean
--- @param p18 boolean
--- @param p19 boolean
--- @return number
function GRAPHICS.ADD_DECAL(decalType, posX, posY, posZ, p4, p5, p6, p7, p8, p9, width, height, rCoef, gCoef, bCoef, opacity, timeout, p17, p18, p19) end
--- @param x number
--- @param y number
--- @param z number
--- @param groundLvl number
--- @param width number
--- @param transparency number
--- @return number
function GRAPHICS.ADD_PETROL_DECAL(x, y, z, groundLvl, width, transparency) end
--- @param x number
--- @param y number
--- @param z number
--- @param groundLvl number
--- @param width number
--- @param transparency number
--- @return number
function GRAPHICS.ADD_OIL_DECAL(x, y, z, groundLvl, width, transparency) end
--- @param p0 number
function GRAPHICS.START_PETROL_TRAIL_DECALS(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
function GRAPHICS.ADD_PETROL_TRAIL_DECAL_INFO(x, y, z, p3) end
function GRAPHICS.END_PETROL_TRAIL_DECALS() end
--- @param decal number
function GRAPHICS.REMOVE_DECAL(decal) end
--- @param decal number
--- @return boolean
function GRAPHICS.IS_DECAL_ALIVE(decal) end
--- @param decal number
--- @return number
function GRAPHICS.GET_DECAL_WASH_LEVEL(decal) end
function GRAPHICS.SET_DISABLE_PETROL_DECALS_IGNITING_THIS_FRAME() end
function GRAPHICS.SET_DISABLE_PETROL_DECALS_RECYCLING_THIS_FRAME() end
function GRAPHICS.SET_DISABLE_DECAL_RENDERING_THIS_FRAME() end
--- @param xCoord number
--- @param yCoord number
--- @param zCoord number
--- @param radius number
--- @return boolean
function GRAPHICS.GET_IS_PETROL_DECAL_IN_RANGE(xCoord, yCoord, zCoord, radius) end
--- @param decalType number
--- @param textureDict string
--- @param textureName string
function GRAPHICS.PATCH_DECAL_DIFFUSE_MAP(decalType, textureDict, textureName) end
--- @param decalType number
function GRAPHICS.UNPATCH_DECAL_DIFFUSE_MAP(decalType) end
--- @param p0 number
--- @param p1 number
function GRAPHICS.MOVE_VEHICLE_DECALS(p0, p1) end
--- boneIndex is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone.
--- @param vehicle number
--- @param ped number
--- @param boneIndex number
--- @param x1 number
--- @param x2 number
--- @param x3 number
--- @param y1 number
--- @param y2 number
--- @param y3 number
--- @param z1 number
--- @param z2 number
--- @param z3 number
--- @param scale number
--- @param p13 number
--- @param alpha number
--- @return boolean
function GRAPHICS.ADD_VEHICLE_CREW_EMBLEM(vehicle, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha) end
--- @param p0 any
--- @return boolean
function GRAPHICS.ABORT_VEHICLE_CREW_EMBLEM_REQUEST(p0) end
--- @param vehicle number
--- @param p1 number
function GRAPHICS.REMOVE_VEHICLE_CREW_EMBLEM(vehicle, p1) end
--- @param vehicle number
--- @param p1 number
--- @return number
function GRAPHICS.GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE(vehicle, p1) end
--- @param vehicle number
--- @param p1 number
--- @return boolean
function GRAPHICS.DOES_VEHICLE_HAVE_CREW_EMBLEM(vehicle, p1) end
--- @param toggle boolean
function GRAPHICS.DISABLE_COMPOSITE_SHOTGUN_DECALS(toggle) end
--- @param toggle boolean
function GRAPHICS.DISABLE_SCUFF_DECALS(toggle) end
--- @param p0 number
function GRAPHICS.SET_DECAL_BULLET_IMPACT_RANGE_SCALE(p0) end
--- @param name string
function GRAPHICS.OVERRIDE_INTERIOR_SMOKE_NAME(name) end
--- @param level number
function GRAPHICS.OVERRIDE_INTERIOR_SMOKE_LEVEL(level) end
function GRAPHICS.OVERRIDE_INTERIOR_SMOKE_END() end
--- Used with 'NG_filmnoir_BW{01,02}' timecycles and the "NOIR_FILTER_SOUNDS" audioref.
function GRAPHICS.REGISTER_NOIR_LENS_EFFECT() end
--- @param toggle boolean
function GRAPHICS.DISABLE_VEHICLE_DISTANTLIGHTS(toggle) end
--- @param p0 boolean
function GRAPHICS.RENDER_SHADOWED_LIGHTS_WITH_NO_SHADOWS(p0) end
function GRAPHICS.REQUEST_EARLY_LIGHT_CHECK() end
--- Forces footstep tracks on all surfaces.
--- @param toggle boolean
function GRAPHICS.USE_SNOW_FOOT_VFX_WHEN_UNSHELTERED(toggle) end
--- @param toggle boolean
function GRAPHICS._FORCE_ALLOW_SNOW_FOOT_VFX_ON_ICE(toggle) end
--- Forces vehicle trails on all surfaces.
--- @param toggle boolean
function GRAPHICS.USE_SNOW_WHEEL_VFX_WHEN_UNSHELTERED(toggle) end
--- @param p0 number
function GRAPHICS.DISABLE_REGION_VFX(p0) end
--- @param toggle boolean
function GRAPHICS._FORCE_GROUND_SNOW_PASS(toggle) end
--- Only one match in the scripts:
--- 
--- GRAPHICS::PRESET_INTERIOR_AMBIENT_CACHE("int_carrier_hanger");
--- @param timecycleModifierName string
function GRAPHICS.PRESET_INTERIOR_AMBIENT_CACHE(timecycleModifierName) end
--- Loads the specified timecycle modifier. Modifiers are defined separately in another file (e.g. "timecycle_mods_1.xml")
--- 
--- Parameters:
--- modifierName - The modifier to load (e.g. "V_FIB_IT3", "scanline_cam", etc.)
--- 
--- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json
--- @param modifierName string
function GRAPHICS.SET_TIMECYCLE_MODIFIER(modifierName) end
--- @param strength number
function GRAPHICS.SET_TIMECYCLE_MODIFIER_STRENGTH(strength) end
--- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json
--- @param modifierName string
--- @param transition number
function GRAPHICS.SET_TRANSITION_TIMECYCLE_MODIFIER(modifierName, transition) end
--- @param strength number
function GRAPHICS.SET_TRANSITION_OUT_OF_TIMECYCLE_MODIFIER(strength) end
function GRAPHICS.CLEAR_TIMECYCLE_MODIFIER() end
--- Only use for this in the PC scripts is:
--- 
--- if (GRAPHICS::GET_TIMECYCLE_MODIFIER_INDEX() != -1)
--- @return number
function GRAPHICS.GET_TIMECYCLE_MODIFIER_INDEX() end
--- @return number
function GRAPHICS.GET_TIMECYCLE_TRANSITION_MODIFIER_INDEX() end
--- @return boolean
function GRAPHICS.GET_IS_TIMECYCLE_TRANSITIONING_OUT() end
function GRAPHICS.PUSH_TIMECYCLE_MODIFIER() end
function GRAPHICS.POP_TIMECYCLE_MODIFIER() end
--- @param modifierName string
function GRAPHICS.SET_CURRENT_PLAYER_TCMODIFIER(modifierName) end
--- @param value number
function GRAPHICS.SET_PLAYER_TCMODIFIER_TRANSITION(value) end
--- @param modifierName string
function GRAPHICS.SET_NEXT_PLAYER_TCMODIFIER(modifierName) end
--- @param modifierName1 string
--- @param modifierName2 string
function GRAPHICS.ADD_TCMODIFIER_OVERRIDE(modifierName1, modifierName2) end
--- @param p0 string
function GRAPHICS.CLEAR_ALL_TCMODIFIER_OVERRIDES(p0) end
--- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json
--- @param modifierName string
function GRAPHICS.SET_EXTRA_TCMODIFIER(modifierName) end
--- Clears the secondary timecycle modifier usually set with _SET_EXTRA_TIMECYCLE_MODIFIER
function GRAPHICS.CLEAR_EXTRA_TCMODIFIER() end
--- See GET_TIMECYCLE_MODIFIER_INDEX for use, works the same just for the secondary timecycle modifier.
--- Returns an integer representing the Timecycle modifier
--- @return number
function GRAPHICS.GET_EXTRA_TCMODIFIER() end
--- The same as SET_TIMECYCLE_MODIFIER_STRENGTH but for the secondary timecycle modifier.
--- @param strength number
function GRAPHICS.ENABLE_MOON_CYCLE_OVERRIDE(strength) end
--- Resets the extra timecycle modifier strength normally set with 0x2C328AF17210F009
function GRAPHICS.DISABLE_MOON_CYCLE_OVERRIDE() end
--- @param scaleformName string
--- @return number
function GRAPHICS.REQUEST_SCALEFORM_MOVIE(scaleformName) end
--- Another REQUEST_SCALEFORM_MOVIE equivalent.
--- @param scaleformName string
--- @return number
function GRAPHICS.REQUEST_SCALEFORM_MOVIE_WITH_IGNORE_SUPER_WIDESCREEN(scaleformName) end
--- @param scaleformName string
--- @return number
function GRAPHICS.REQUEST_SCALEFORM_MOVIE_INSTANCE(scaleformName) end
--- Similar to REQUEST_SCALEFORM_MOVIE, but seems to be some kind of "interactive" scaleform movie?
--- 
--- These seem to be the only scaleforms ever requested by this native:
--- "breaking_news"
--- "desktop_pc"
--- "ECG_MONITOR"
--- "Hacking_PC"
--- "TEETH_PULLING"
--- 
--- Note: Unless this hash is out-of-order, this native is next-gen only.
--- 
--- @param scaleformName string
--- @return number
function GRAPHICS.REQUEST_SCALEFORM_MOVIE_SKIP_RENDER_WHILE_PAUSED(scaleformName) end
--- @param scaleformHandle number
--- @return boolean
function GRAPHICS.HAS_SCALEFORM_MOVIE_LOADED(scaleformHandle) end
--- val is 1-20 (0 will return false)
--- @param val number
--- @return boolean
function GRAPHICS.IS_ACTIVE_SCALEFORM_MOVIE_DELETING(val) end
--- val is 1-20. Return is related to INSTRUCTIONAL_BUTTONS, COLOUR_SWITCHER_02, etc?
--- @param val number
--- @return boolean
function GRAPHICS.IS_SCALEFORM_MOVIE_DELETING(val) end
--- Only values used in the scripts are:
--- 
--- "heist_mp"
--- "heistmap_mp"
--- "instructional_buttons"
--- "heist_pre"
--- @param scaleformName string
--- @return boolean
function GRAPHICS.HAS_SCALEFORM_MOVIE_FILENAME_LOADED(scaleformName) end
--- @param scaleformHandle number
--- @return boolean
function GRAPHICS.HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT(scaleformHandle) end
--- @param scaleformHandle any
function GRAPHICS.SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(scaleformHandle) end
--- @param scaleform number
--- @param toggle boolean
function GRAPHICS.SET_SCALEFORM_MOVIE_TO_USE_SYSTEM_TIME(scaleform, toggle) end
--- @param scaleformHandle number
--- @param toggle boolean
function GRAPHICS.SET_SCALEFORM_MOVIE_TO_USE_LARGE_RT(scaleformHandle, toggle) end
--- This native is used in some casino scripts to fit the scaleform in the rendertarget.
--- @param scaleformHandle number
--- @param toggle boolean
function GRAPHICS.SET_SCALEFORM_MOVIE_TO_USE_SUPER_LARGE_RT(scaleformHandle, toggle) end
--- @param scaleformHandle number
--- @param x number
--- @param y number
--- @param width number
--- @param height number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param p9 number
function GRAPHICS.DRAW_SCALEFORM_MOVIE(scaleformHandle, x, y, width, height, red, green, blue, alpha, p9) end
--- unk is not used so no need
--- @param scaleform number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
--- @param p5 number
function GRAPHICS.DRAW_SCALEFORM_MOVIE_FULLSCREEN(scaleform, red, green, blue, alpha, p5) end
--- @param scaleform1 number
--- @param scaleform2 number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_SCALEFORM_MOVIE_FULLSCREEN_MASKED(scaleform1, scaleform2, red, green, blue, alpha) end
--- @param scaleform number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param scaleX number
--- @param scaleY number
--- @param scaleZ number
--- @param rotationOrder number
function GRAPHICS.DRAW_SCALEFORM_MOVIE_3D(scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder) end
--- @param scaleform number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param scaleX number
--- @param scaleY number
--- @param scaleZ number
--- @param rotationOrder number
function GRAPHICS.DRAW_SCALEFORM_MOVIE_3D_SOLID(scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder) end
--- Calls the Scaleform function.
--- @param scaleform number
--- @param method string
function GRAPHICS.CALL_SCALEFORM_MOVIE_METHOD(scaleform, method) end
--- Calls the Scaleform function and passes the parameters as floats.
--- 
--- The number of parameters passed to the function varies, so the end of the parameter list is represented by -1.0.
--- @param scaleform number
--- @param methodName string
--- @param param1 number
--- @param param2 number
--- @param param3 number
--- @param param4 number
--- @param param5 number
function GRAPHICS.CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(scaleform, methodName, param1, param2, param3, param4, param5) end
--- Calls the Scaleform function and passes the parameters as strings.
--- 
--- The number of parameters passed to the function varies, so the end of the parameter list is represented by 0 (NULL).
--- @param scaleform number
--- @param methodName string
--- @param param1 string
--- @param param2 string
--- @param param3 string
--- @param param4 string
--- @param param5 string
function GRAPHICS.CALL_SCALEFORM_MOVIE_METHOD_WITH_STRING(scaleform, methodName, param1, param2, param3, param4, param5) end
--- Calls the Scaleform function and passes both float and string parameters (in their respective order).
--- 
--- The number of parameters passed to the function varies, so the end of the float parameters is represented by -1.0, and the end of the string parameters is represented by 0 (NULL).
--- 
--- NOTE: The order of parameters in the function prototype is important! All float parameters must come first, followed by the string parameters.
--- 
--- Examples:
--- // function MY_FUNCTION(floatParam1, floatParam2, stringParam)
--- GRAPHICS::CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, "MY_FUNCTION", 10.0, 20.0, -1.0, -1.0, -1.0, "String param", 0, 0, 0, 0);
--- 
--- // function MY_FUNCTION_2(floatParam, stringParam1, stringParam2)
--- GRAPHICS::CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, "MY_FUNCTION_2", 10.0, -1.0, -1.0, -1.0, -1.0, "String param #1", "String param #2", 0, 0, 0);
--- @param scaleform number
--- @param methodName string
--- @param floatParam1 number
--- @param floatParam2 number
--- @param floatParam3 number
--- @param floatParam4 number
--- @param floatParam5 number
--- @param stringParam1 string
--- @param stringParam2 string
--- @param stringParam3 string
--- @param stringParam4 string
--- @param stringParam5 string
function GRAPHICS.CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, methodName, floatParam1, floatParam2, floatParam3, floatParam4, floatParam5, stringParam1, stringParam2, stringParam3, stringParam4, stringParam5) end
--- Pushes a function from the Hud component Scaleform onto the stack. Same behavior as GRAPHICS::BEGIN_SCALEFORM_MOVIE_METHOD, just a hud component id instead of a Scaleform.
--- 
--- Known components:
--- 19 - MP_RANK_BAR
--- 20 - HUD_DIRECTOR_MODE
--- 
--- This native requires more research - all information can be found inside of 'hud.gfx'. Using a decompiler, the different components are located under "scripts\__Packages\com\rockstargames\gtav\hud\hudComponents" and "scripts\__Packages\com\rockstargames\gtav\Multiplayer".
--- @param hudComponent number
--- @param methodName string
--- @return boolean
function GRAPHICS.BEGIN_SCALEFORM_SCRIPT_HUD_MOVIE_METHOD(hudComponent, methodName) end
--- Push a function from the Scaleform onto the stack
--- 
--- @param scaleform number
--- @param methodName string
--- @return boolean
function GRAPHICS.BEGIN_SCALEFORM_MOVIE_METHOD(scaleform, methodName) end
--- Starts frontend (pause menu) scaleform movie methods.
--- This can be used when you want to make custom frontend menus, and customize things like images or text in the menus etc.
--- Use `BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND_HEADER` for header scaleform functions.
--- @param methodName string
--- @return boolean
function GRAPHICS.BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND(methodName) end
--- Starts frontend (pause menu) scaleform movie methods for header options.
--- Use `BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND` to customize the content inside the frontend menus.
--- @param methodName string
--- @return boolean
function GRAPHICS.BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND_HEADER(methodName) end
--- Pops and calls the Scaleform function on the stack
function GRAPHICS.END_SCALEFORM_MOVIE_METHOD() end
--- @return number
function GRAPHICS.END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE() end
--- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE
--- Returns true if the return value of a scaleform function is ready to be collected (using GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING or GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT).
--- @param methodReturn number
--- @return boolean
function GRAPHICS.IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY(methodReturn) end
--- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE
--- Used to get a return value from a scaleform function. Returns an int in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING returns a string.
--- @param methodReturn number
--- @return number
function GRAPHICS.GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(methodReturn) end
--- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE
--- @param methodReturn number
--- @return boolean
function GRAPHICS.GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_BOOL(methodReturn) end
--- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE
--- Used to get a return value from a scaleform function. Returns a string in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT returns an int.
--- @param methodReturn number
--- @return string
function GRAPHICS.GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING(methodReturn) end
--- Pushes an integer for the Scaleform function onto the stack.
--- @param value number
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(value) end
--- Pushes a float for the Scaleform function onto the stack.
--- @param value number
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(value) end
--- Pushes a boolean for the Scaleform function onto the stack.
--- @param value boolean
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(value) end
--- Called prior to adding a text component to the UI. After doing so, GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING is called.
--- 
--- Examples:
--- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER");
--- HUD::ADD_TEXT_COMPONENT_INTEGER(MISC::ABSI(a_1));
--- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING();
--- 
--- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING");
--- HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(a_2);
--- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING();
--- 
--- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM2");
--- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_3);
--- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_4);
--- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING();
--- 
--- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM1");
--- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_3);
--- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING();
--- @param componentType string
function GRAPHICS.BEGIN_TEXT_COMMAND_SCALEFORM_STRING(componentType) end
function GRAPHICS.END_TEXT_COMMAND_SCALEFORM_STRING() end
--- Same as END_TEXT_COMMAND_SCALEFORM_STRING but does not perform HTML conversion for text tokens.
--- 
--- END_TEXT_COMMAND_VIA_SPECIAL_MODIFIABLE_STRING?
function GRAPHICS.END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING() end
--- Same as SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING
--- Both SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING / _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 works, but _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 is usually used for "name" (organisation, players..).
--- @param string string
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_LITERAL_STRING(string) end
--- @param string string
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING(string) end
--- @param string string
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME_STRING(string) end
--- @param p0 number
--- @return boolean
function GRAPHICS.DOES_LATEST_BRIEF_STRING_EXIST(p0) end
--- @param value number
function GRAPHICS.SCALEFORM_MOVIE_METHOD_ADD_PARAM_LATEST_BRIEF_STRING(value) end
--- @param hudComponent number
function GRAPHICS.REQUEST_SCALEFORM_SCRIPT_HUD_MOVIE(hudComponent) end
--- @param hudComponent number
--- @return boolean
function GRAPHICS.HAS_SCALEFORM_SCRIPT_HUD_MOVIE_LOADED(hudComponent) end
--- @param hudComponent number
function GRAPHICS.REMOVE_SCALEFORM_SCRIPT_HUD_MOVIE(hudComponent) end
--- @param scaleformHandle number
--- @return boolean
function GRAPHICS.PASS_KEYBOARD_INPUT_TO_SCALEFORM(scaleformHandle) end
--- @param channel number
function GRAPHICS.SET_TV_CHANNEL(channel) end
--- @return number
function GRAPHICS.GET_TV_CHANNEL() end
--- @param volume number
function GRAPHICS.SET_TV_VOLUME(volume) end
--- @return number
function GRAPHICS.GET_TV_VOLUME() end
--- All calls to this native are preceded by calls to GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER and GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU, respectively.
--- 
--- "act_cinema.ysc", line 1483:
--- HUD::SET_HUD_COMPONENT_POSITION(15, 0.0, -0.0375);
--- HUD::SET_TEXT_RENDER_ID(l_AE);
--- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(4);
--- GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(1);
--- if (GRAPHICS::IS_TVSHOW_CURRENTLY_PLAYING(${movie_arthouse})) {
--- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 0.7375, 1.0, 0.0, 255, 255, 255, 255);
--- } else {
--- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255);
--- }
--- 
--- "am_mp_property_int.ysc", line 102545:
--- if (ENTITY::DOES_ENTITY_EXIST(a_2._f3)) {
--- if (HUD::IS_NAMED_RENDERTARGET_LINKED(ENTITY::GET_ENTITY_MODEL(a_2._f3))) {
--- HUD::SET_TEXT_RENDER_ID(a_2._f1);
--- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(4);
--- GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(1);
--- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255);
--- if (GRAPHICS::GET_TV_CHANNEL() == -1) {
--- sub_a8fa5(a_2, 1);
--- } else {
--- sub_a8fa5(a_2, 1);
--- GRAPHICS::ATTACH_TV_AUDIO_TO_ENTITY(a_2._f3);
--- }
--- HUD::SET_TEXT_RENDER_ID(HUD::GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID());
--- }
--- }
--- 
--- @param xPos number
--- @param yPos number
--- @param xScale number
--- @param yScale number
--- @param rotation number
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function GRAPHICS.DRAW_TV_CHANNEL(xPos, yPos, xScale, yScale, rotation, red, green, blue, alpha) end
--- Loads specified video sequence into the TV Channel
--- TV_Channel ranges from 0-2
--- VideoSequence can be any of the following:
--- "PL_STD_CNT" CNT Standard Channel
--- "PL_STD_WZL" Weazel Standard Channel
--- "PL_LO_CNT"
--- "PL_LO_WZL"
--- "PL_SP_WORKOUT"
--- "PL_SP_INV" - Jay Norris Assassination Mission Fail
--- "PL_SP_INV_EXP" - Jay Norris Assassination Mission Success
--- "PL_LO_RS" - Righteous Slaughter Ad
--- "PL_LO_RS_CUTSCENE" - Righteous Slaughter Cut-scene
--- "PL_SP_PLSH1_INTRO"
--- "PL_LES1_FAME_OR_SHAME"
--- "PL_STD_WZL_FOS_EP2"
--- "PL_MP_WEAZEL" - Weazel Logo on loop
--- "PL_MP_CCTV" - Generic CCTV loop
--- 
--- Restart:
--- 0=video sequence continues as normal
--- 1=sequence restarts from beginning every time that channel is selected
--- 
--- 
--- The above playlists work as intended, and are commonly used, but there are many more playlists, as seen in `tvplaylists.xml`. A pastebin below outlines all playlists, they will be surronded by the name tag I.E. (<Name>PL_STD_CNT</Name> = PL_STD_CNT).
--- https://pastebin.com/zUzGB6h7
--- @param tvChannel number
--- @param playlistName string
--- @param restart boolean
function GRAPHICS.SET_TV_CHANNEL_PLAYLIST(tvChannel, playlistName, restart) end
--- @param tvChannel number
--- @param playlistName string
--- @param hour number
function GRAPHICS.SET_TV_CHANNEL_PLAYLIST_AT_HOUR(tvChannel, playlistName, hour) end
--- @param tvChannel number
--- @param p1 boolean
function GRAPHICS._SET_TV_CHANNEL_PLAYLIST_DIRTY(tvChannel, p1) end
--- @param tvChannel number
function GRAPHICS.CLEAR_TV_CHANNEL_PLAYLIST(tvChannel) end
--- @param tvChannel number
--- @param p1 number
--- @return boolean
function GRAPHICS.IS_PLAYLIST_ON_CHANNEL(tvChannel, p1) end
--- @param videoCliphash number
--- @return boolean
function GRAPHICS.IS_TVSHOW_CURRENTLY_PLAYING(videoCliphash) end
--- @param toggle boolean
function GRAPHICS.ENABLE_MOVIE_KEYFRAME_WAIT(toggle) end
--- @param p0 number
function GRAPHICS.SET_TV_PLAYER_WATCHING_THIS_FRAME(p0) end
--- @return number
function GRAPHICS.GET_CURRENT_TV_CLIP_NAMEHASH() end
--- @param toggle boolean
function GRAPHICS.ENABLE_MOVIE_SUBTITLES(toggle) end
--- @return boolean
function GRAPHICS.UI3DSCENE_IS_AVAILABLE() end
--- All presets can be found in common\data\ui\uiscenes.meta
--- @param presetName string
--- @return boolean
function GRAPHICS.UI3DSCENE_PUSH_PRESET(presetName) end
--- It's called after UI3DSCENE_IS_AVAILABLE and UI3DSCENE_PUSH_PRESET
--- 
--- presetName was always "CELEBRATION_WINNER"
--- All presets can be found in common\data\ui\uiscenes.meta
--- @param presetName string
--- @param ped number
--- @param slot number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @return boolean
function GRAPHICS.UI3DSCENE_ASSIGN_PED_TO_SLOT(presetName, ped, slot, posX, posY, posZ) end
function GRAPHICS.UI3DSCENE_CLEAR_PATCHED_DATA() end
--- @param toggle boolean
function GRAPHICS.UI3DSCENE_MAKE_PUSHED_PRESET_PERSISTENT(toggle) end
--- This native enables/disables the gold putting grid display (https://i.imgur.com/TC6cku6.png).
--- This requires these two natives to be called as well to configure the grid: `TERRAINGRID_SET_PARAMS` and `TERRAINGRID_SET_COLOURS`.
--- @param toggle boolean
function GRAPHICS.TERRAINGRID_ACTIVATE(toggle) end
--- This native is used along with these two natives: `TERRAINGRID_ACTIVATE` and `TERRAINGRID_SET_COLOURS`.
--- This native configures the location, size, rotation, normal height, and the difference ratio between min, normal and max.
--- 
--- All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png
--- 
--- This native renders a box at the given position, with a special shader that renders a grid on world geometry behind it. This box does not have backface culling.
--- The forward args here are a direction vector, something similar to what's returned by GET_ENTITY_FORWARD_VECTOR.
--- normalHeight and heightDiff are used for positioning the color gradient of the grid, colors specified via TERRAINGRID_SET_COLOURS.
--- 
--- Example with box superimposed on the image to demonstrate: https://i.imgur.com/wdqskxd.jpg
--- @param x number
--- @param y number
--- @param z number
--- @param forwardX number
--- @param forwardY number
--- @param forwardZ number
--- @param sizeX number
--- @param sizeY number
--- @param sizeZ number
--- @param gridScale number
--- @param glowIntensity number
--- @param normalHeight number
--- @param heightDiff number
function GRAPHICS.TERRAINGRID_SET_PARAMS(x, y, z, forwardX, forwardY, forwardZ, sizeX, sizeY, sizeZ, gridScale, glowIntensity, normalHeight, heightDiff) end
--- This native is used along with these two natives: `TERRAINGRID_ACTIVATE` and `TERRAINGRID_SET_PARAMS`.
--- This native sets the colors for the golf putting grid. the 'min...' values are for the lower areas that the grid covers, the 'max...' values are for the higher areas that the grid covers, all remaining values are for the 'normal' ground height.
--- All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png
--- @param lowR number
--- @param lowG number
--- @param lowB number
--- @param lowAlpha number
--- @param r number
--- @param g number
--- @param b number
--- @param alpha number
--- @param highR number
--- @param highG number
--- @param highB number
--- @param highAlpha number
function GRAPHICS.TERRAINGRID_SET_COLOURS(lowR, lowG, lowB, lowAlpha, r, g, b, alpha, highR, highG, highB, highAlpha) end
--- duration - is how long to play the effect for in milliseconds. If 0, it plays the default length
--- if loop is true, the effect won't stop until you call ANIMPOSTFX_STOP on it. (only loopable effects)
--- 
--- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json
--- @param effectName string
--- @param duration number
--- @param looped boolean
function GRAPHICS.ANIMPOSTFX_PLAY(effectName, duration, looped) end
--- See ANIMPOSTFX_PLAY
--- 
--- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json
--- @param effectName string
function GRAPHICS.ANIMPOSTFX_STOP(effectName) end
--- See ANIMPOSTFX_PLAY
--- 
--- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json
--- @param effectName string
--- @return number
function GRAPHICS.ANIMPOSTFX_GET_CURRENT_TIME(effectName) end
--- Returns whether the specified effect is active.
--- See ANIMPOSTFX_PLAY
--- 
--- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json
--- @param effectName string
--- @return boolean
function GRAPHICS.ANIMPOSTFX_IS_RUNNING(effectName) end
--- Stops ALL currently playing effects.
function GRAPHICS.ANIMPOSTFX_STOP_ALL() end
--- Stops the effect and sets a value (bool) in its data (+0x199) to false.
--- See ANIMPOSTFX_PLAY
--- 
--- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json
--- @param effectName string
function GRAPHICS.ANIMPOSTFX_STOP_AND_FLUSH_REQUESTS(effectName) end

HUD = {}

--- Initializes the text entry for the the text next to a loading prompt. All natives for building UI texts can be used here
--- 
--- 
--- e.g
--- void StartLoadingMessage(char *text, int spinnerType = 3)
--- {
--- BEGIN_TEXT_COMMAND_BUSYSPINNER_ON("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- END_TEXT_COMMAND_BUSYSPINNER_ON(spinnerType);
--- }
--- /*OR*/
--- void ShowLoadingMessage(char *text, int spinnerType = 3, int timeMs = 10000)
--- {
--- BEGIN_TEXT_COMMAND_BUSYSPINNER_ON("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- END_TEXT_COMMAND_BUSYSPINNER_ON(spinnerType);
--- WAIT(timeMs);
--- BUSYSPINNER_OFF();
--- }
--- 
--- 
--- These are some localized strings used in the loading spinner.
--- "PM_WAIT"                   = Please Wait
--- "CELEB_WPLYRS"              = Waiting For Players.
--- "CELL_SPINNER2"             = Scanning storage.
--- "ERROR_CHECKYACHTNAME" = Registering your yacht's name. Please wait.
--- "ERROR_CHECKPROFANITY"   = Checking your text for profanity. Please wait.
--- "FM_COR_AUTOD"                        = Just spinner no text
--- "FM_IHELP_WAT2"                        = Waiting for other players
--- "FM_JIP_WAITO"                            = Game options are being set
--- "FMMC_DOWNLOAD"                    = Downloading
--- "FMMC_PLYLOAD"                         = Loading
--- "FMMC_STARTTRAN"                    = Launching session
--- "HUD_QUITTING"                           =  Quiting session
--- "KILL_STRIP_IDM"                         = Waiting for to accept
--- "MP_SPINLOADING"                      = Loading
--- @param string string
function HUD.BEGIN_TEXT_COMMAND_BUSYSPINNER_ON(string) end
--- enum eBusySpinnerType
--- {
--- BUSY_SPINNER_LEFT,
--- BUSY_SPINNER_LEFT_2,
--- BUSY_SPINNER_LEFT_3,
--- BUSY_SPINNER_SAVE,
--- BUSY_SPINNER_RIGHT,
--- };
--- @param busySpinnerType number
function HUD.END_TEXT_COMMAND_BUSYSPINNER_ON(busySpinnerType) end
--- Removes the loading prompt at the bottom right of the screen.
function HUD.BUSYSPINNER_OFF() end
function HUD.PRELOAD_BUSYSPINNER() end
--- @return boolean
function HUD.BUSYSPINNER_IS_ON() end
--- @return boolean
function HUD.BUSYSPINNER_IS_DISPLAYING() end
--- @param p0 boolean
function HUD.DISABLE_PAUSEMENU_SPINNER(p0) end
--- Shows the cursor on screen for one frame.
function HUD.SET_MOUSE_CURSOR_THIS_FRAME() end
--- Changes the mouse cursor's sprite.
--- 1 = Normal
--- 6 = Left Arrow
--- 7 = Right Arrow
--- @param spriteId number
function HUD.SET_MOUSE_CURSOR_STYLE(spriteId) end
--- Shows/hides the frontend cursor on the pause menu or similar menus.
--- Clicking off and then on the game window will show it again.
--- @param toggle boolean
function HUD.SET_MOUSE_CURSOR_VISIBLE(toggle) end
--- Returns TRUE if mouse is hovering above instructional buttons. Works with all buttons gfx, such as popup_warning, pause_menu_instructional_buttons, instructional_buttons, etc. Note: You have to call TOGGLE_MOUSE_BUTTONS on the scaleform if you want this native to work.
--- @return boolean
function HUD.IS_MOUSE_ROLLED_OVER_INSTRUCTIONAL_BUTTONS() end
--- @param scaleformHandle number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function HUD.GET_MOUSE_EVENT(scaleformHandle, p1, p2, p3) end
--- @param toggle boolean
function HUD.THEFEED_ONLY_SHOW_TOOLTIPS(toggle) end
--- @param pos number
function HUD.THEFEED_SET_SCRIPTED_MENU_HEIGHT(pos) end
--- Stops loading screen tips shown by invoking `THEFEED_SHOW`
function HUD.THEFEED_HIDE() end
--- Once called each frame hides all above radar notifications.
function HUD.THEFEED_HIDE_THIS_FRAME() end
--- Displays loading screen tips, requires `THEFEED_AUTO_POST_GAMETIPS_ON` to be called beforehand.
function HUD.THEFEED_SHOW() end
function HUD.THEFEED_FLUSH_QUEUE() end
--- Removes a notification instantly instead of waiting for it to disappear
--- @param notificationId number
function HUD.THEFEED_REMOVE_ITEM(notificationId) end
function HUD.THEFEED_FORCE_RENDER_ON() end
--- Enables loading screen tips to be be shown (`THEFEED_SHOW`), blocks other kinds of notifications from being displayed (at least from current script). Call `0xADED7F5748ACAFE6` to display those again.
function HUD.THEFEED_FORCE_RENDER_OFF() end
function HUD.THEFEED_PAUSE() end
function HUD.THEFEED_RESUME() end
--- @return boolean
function HUD.THEFEED_IS_PAUSED() end
function HUD.THEFEED_REPORT_LOGO_ON() end
function HUD.THEFEED_REPORT_LOGO_OFF() end
--- Returns the handle for the notification currently displayed on the screen. Name may be a hash collision, but describes the function accurately.
--- @return number
function HUD.THEFEED_GET_LAST_SHOWN_PHONE_ACTIVATABLE_FEED_ID() end
--- Enables loading screen tips to be be shown (`THEFEED_SHOW`), blocks other kinds of notifications from being displayed (at least from current script). Call `THEFEED_AUTO_POST_GAMETIPS_OFF` to display those again.
function HUD.THEFEED_AUTO_POST_GAMETIPS_ON() end
--- Displays "normal" notifications again after calling `THEFEED_AUTO_POST_GAMETIPS_ON` (those that were drawn before calling this native too), though those will have a weird offset and stay on screen forever (tested with notifications created from same script).
function HUD.THEFEED_AUTO_POST_GAMETIPS_OFF() end
--- From the decompiled scripts:
--- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(6);
--- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(184);
--- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(190);
--- 
--- sets background color for the next notification
--- 6 = red
--- 184 = green
--- 190 = yellow
--- 
--- Here is a list of some colors that can be used: https://gyazo.com/68bd384455fceb0a85a8729e48216e15
--- @param hudColorIndex number
function HUD.THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(hudColorIndex) end
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function HUD.THEFEED_SET_RGBA_PARAMETER_FOR_NEXT_MESSAGE(red, green, blue, alpha) end
--- Related to notification color flashing, setting count to 0 invalidates a `THEFEED_SET_RGBA_PARAMETER_FOR_NEXT_MESSAGE` call for the target notification.
--- @param count number
function HUD.THEFEED_SET_FLASH_DURATION_PARAMETER_FOR_NEXT_MESSAGE(count) end
--- @param toggle boolean
function HUD.THEFEED_SET_VIBRATE_PARAMETER_FOR_NEXT_MESSAGE(toggle) end
function HUD.THEFEED_RESET_ALL_PARAMETERS() end
--- Requires manual management of game stream handles (i.e., 0xBE4390CB40B3E627).
function HUD.THEFEED_FREEZE_NEXT_POST() end
function HUD.THEFEED_CLEAR_FROZEN_POST() end
--- @param p0 boolean
function HUD.THEFEED_SET_SNAP_FEED_ITEM_POSITIONS(p0) end
--- Used in the native scripts to reference "GET_PEDHEADSHOT_TXD_STRING" and "CHAR_DEFAULT".
--- @param txdString1 string
--- @param txnString1 string
--- @param txdString2 string
--- @param txnString2 string
function HUD.THEFEED_UPDATE_ITEM_TEXTURE(txdString1, txnString1, txdString2, txnString2) end
--- Declares the entry type of a notification, for example "STRING".
--- 
--- int ShowNotification(char *text)
--- {
--- BEGIN_TEXT_COMMAND_THEFEED_POST("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- return END_TEXT_COMMAND_THEFEED_POST_TICKER(1, 1);
--- }
--- @param text string
function HUD.BEGIN_TEXT_COMMAND_THEFEED_POST(text) end
--- List of picture names: https://pastebin.com/XdpJVbHz
--- Example result: https://i.imgur.com/SdEZ22m.png
--- @param statTitle string
--- @param iconEnum number
--- @param stepVal boolean
--- @param barValue number
--- @param isImportant boolean
--- @param pictureTextureDict string
--- @param pictureTextureName string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_STATS(statTitle, iconEnum, stepVal, barValue, isImportant, pictureTextureDict, pictureTextureName) end
--- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT.
--- 
--- List of picNames: https://pastebin.com/XdpJVbHz
--- 
--- 
--- flash is a bool for fading in.
--- iconTypes:
--- 1 : Chat Box
--- 2 : Email
--- 3 : Add Friend Request
--- 4 : Nothing
--- 5 : Nothing
--- 6 : Nothing
--- 7 : Right Jumping Arrow
--- 8 : RP Icon
--- 9 : $ Icon
--- 
--- "sender" is the very top header. This can be any old string.
--- "subject" is the header under the sender.
--- @param txdName string
--- @param textureName string
--- @param flash boolean
--- @param iconType number
--- @param sender string
--- @param subject string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT(txdName, textureName, flash, iconType, sender, subject) end
--- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT.
--- 
--- Needs more research.
--- 
--- Only one type of usage in the scripts:
--- 
--- HUD::END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_SUBTITLE_LABEL("CHAR_ACTING_UP", "CHAR_ACTING_UP", 0, 0, "DI_FEED_CHAR", a_0);
--- @param txdName string
--- @param textureName string
--- @param flash boolean
--- @param iconType number
--- @param sender string
--- @param subject string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_SUBTITLE_LABEL(txdName, textureName, flash, iconType, sender, subject) end
--- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT.
--- 
--- NOTE: 'duration' is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long.
--- 
--- Example, only occurrence in the scripts:
--- v_8 = HUD::END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_TU("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 0, 0, &v_9, "", a_5);
--- @param txdName string
--- @param textureName string
--- @param flash boolean
--- @param iconType number
--- @param sender string
--- @param subject string
--- @param duration number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_TU(txdName, textureName, flash, iconType, sender, subject, duration) end
--- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT.
--- 
--- List of picNames https://pastebin.com/XdpJVbHz
--- 
--- flash is a bool for fading in.
--- iconTypes:
--- 1 : Chat Box
--- 2 : Email
--- 3 : Add Friend Request
--- 4 : Nothing
--- 5 : Nothing
--- 6 : Nothing
--- 7 : Right Jumping Arrow
--- 8 : RP Icon
--- 9 : $ Icon
--- 
--- "sender" is the very top header. This can be any old string.
--- "subject" is the header under the sender.
--- "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long.
--- "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.)
--- @param txdName string
--- @param textureName string
--- @param flash boolean
--- @param iconType number
--- @param sender string
--- @param subject string
--- @param duration number
--- @param clanTag string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_WITH_CREW_TAG(txdName, textureName, flash, iconType, sender, subject, duration, clanTag) end
--- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT.
--- 
--- List of picNames:  https://pastebin.com/XdpJVbHz
--- 
--- flash is a bool for fading in.
--- iconTypes:
--- 1 : Chat Box
--- 2 : Email
--- 3 : Add Friend Request
--- 4 : Nothing
--- 5 : Nothing
--- 6 : Nothing
--- 7 : Right Jumping Arrow
--- 8 : RP Icon
--- 9 : $ Icon
--- 
--- "sender" is the very top header. This can be any old string.
--- "subject" is the header under the sender.
--- "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long.
--- "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.)
--- iconType2 is a mirror of iconType. It shows in the "subject" line, right under the original iconType.
--- 
--- 
--- int IconNotification(char *text, char *text2, char *Subject)
--- {
--- BEGIN_TEXT_COMMAND_THEFEED_POST("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- _SET_NOTIFICATION_MESSAGE_CLAN_TAG_2("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 1, 7, text2, Subject, 1.0f, "__EXAMPLE", 7);
--- return END_TEXT_COMMAND_THEFEED_POST_TICKER(1, 1);
--- }
--- @param txdName string
--- @param textureName string
--- @param flash boolean
--- @param iconType1 number
--- @param sender string
--- @param subject string
--- @param duration number
--- @param clanTag string
--- @param iconType2 number
--- @param p9 number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_WITH_CREW_TAG_AND_ADDITIONAL_ICON(txdName, textureName, flash, iconType1, sender, subject, duration, clanTag, iconType2, p9) end
--- @param blink boolean
--- @param p1 boolean
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_TICKER(blink, p1) end
--- @param blink boolean
--- @param p1 boolean
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_TICKER_FORCED(blink, p1) end
--- @param blink boolean
--- @param p1 boolean
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_TICKER_WITH_TOKENS(blink, p1) end
--- Shows an "award" notification above the minimap, example: https://i.imgur.com/e2DNaKX.png
--- Example:
--- 
--- HUD::BEGIN_TEXT_COMMAND_THEFEED_POST("HUNT");
--- HUD::END_TEXT_COMMAND_THEFEED_POST_AWARD("Hunting", "Hunting_Gold_128", 0, 109, "HUD_MED_UNLKED");
--- @param textureDict string
--- @param textureName string
--- @param rpBonus number
--- @param colorOverlay number
--- @param titleLabel string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_AWARD(textureDict, textureName, rpBonus, colorOverlay, titleLabel) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 any
--- @param p3 number
--- @param isLeader boolean
--- @param unk0 boolean
--- @param clanDesc number
--- @param R number
--- @param G number
--- @param B number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_CREWTAG(p0, p1, p2, p3, isLeader, unk0, clanDesc, R, G, B) end
--- @param p0 boolean
--- @param p1 boolean
--- @param p2 any
--- @param p3 number
--- @param isLeader boolean
--- @param unk0 boolean
--- @param clanDesc number
--- @param playerName string
--- @param R number
--- @param G number
--- @param B number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_CREWTAG_WITH_GAME_NAME(p0, p1, p2, p3, isLeader, unk0, clanDesc, playerName, R, G, B) end
--- @param gxtLabel1 string
--- @param p1 number
--- @param gxtLabel2 string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_UNLOCK(gxtLabel1, p1, gxtLabel2) end
--- @param gxtLabel1 string
--- @param p1 number
--- @param gxtLabel2 string
--- @param p3 number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_UNLOCK_TU(gxtLabel1, p1, gxtLabel2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_UNLOCK_TU_WITH_COLOR(p0, p1, p2, p3, p4, p5) end
--- @param blink boolean
--- @param p1 boolean
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_MPTICKER(blink, p1) end
--- @param p0 string
--- @param p1 string
--- @param p2 string
--- @param p3 boolean
--- @param p4 boolean
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_CREW_RANKUP_WITH_LITERAL_FLAG(p0, p1, p2, p3, p4) end
--- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT.
--- 
--- List of picNames: https://pastebin.com/XdpJVbHz
--- HUD colors and their values: https://pastebin.com/d9aHPbXN
--- 
--- Shows a deathmatch score above the minimap, example: https://i.imgur.com/YmoMklG.png
--- @param txdName1 string
--- @param textureName1 string
--- @param count1 number
--- @param txdName2 string
--- @param textureName2 string
--- @param count2 number
--- @param hudColor1 number
--- @param hudColor2 number
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_VERSUS_TU(txdName1, textureName1, count1, txdName2, textureName2, count2, hudColor1, hudColor2) end
--- returns a notification handle, prints out a notification like below:
--- type range: 0 - 2
--- if you set type to 1, image goes from 0 - 39 - Xbox you can add text to
--- 
--- example:
--- HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1, 20, "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!");
--- - https://imgur.com/lGBPCz3
--- @param type number
--- @param image number
--- @param text string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_REPLAY(type, image, text) end
--- returns a notification handle, prints out a notification like below:
--- type range: 0 - 2
--- if you set type to 1, button accepts "~INPUT_SOMETHING~"
--- 
--- example:
--- HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1, "~INPUT_TALK~", "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!");
--- - https://imgur.com/UPy0Ial
--- 
--- 
--- Examples from the scripts:
--- l_D1[1/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING~","");
--- l_D1[2/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_SAVE_REPLAY_CLIP~","");
--- l_D1[1/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING~","");
--- l_D1[2/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING_SECONDARY~","");
--- 
--- @param type number
--- @param button string
--- @param text string
--- @return number
function HUD.END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(type, button, text) end
--- void ShowSubtitle(const char *text)
--- {
--- BEGIN_TEXT_COMMAND_PRINT("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- END_TEXT_COMMAND_PRINT(2000, true);
--- }
--- @param GxtEntry string
function HUD.BEGIN_TEXT_COMMAND_PRINT(GxtEntry) end
--- Draws the subtitle at middle center of the screen.
--- 
--- int duration = time in milliseconds to show text on screen before disappearing
--- 
--- drawImmediately = If true, the text will be drawn immediately, if false, the text will be drawn after the previous subtitle has finished
--- 
--- Used to be known as _DRAW_SUBTITLE_TIMED
--- @param duration number
--- @param drawImmediately boolean
function HUD.END_TEXT_COMMAND_PRINT(duration, drawImmediately) end
--- nothin doin.
--- 
--- BOOL Message(const char* text)
--- {
--- BEGIN_TEXT_COMMAND_IS_MESSAGE_DISPLAYED("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- return END_TEXT_COMMAND_IS_MESSAGE_DISPLAYED();
--- }
--- @param text string
function HUD.BEGIN_TEXT_COMMAND_IS_MESSAGE_DISPLAYED(text) end
--- @return boolean
function HUD.END_TEXT_COMMAND_IS_MESSAGE_DISPLAYED() end
--- The following were found in the decompiled script files:
--- STRING, TWOSTRINGS, NUMBER, PERCENTAGE, FO_TWO_NUM, ESMINDOLLA, ESDOLLA, MTPHPER_XPNO, AHD_DIST, CMOD_STAT_0, CMOD_STAT_1, CMOD_STAT_2, CMOD_STAT_3, DFLT_MNU_OPT, F3A_TRAFDEST, ES_HELP_SOC3
--- 
--- ESDOLLA - cash
--- ESMINDOLLA - cash (negative)
--- 
--- Used to be known as _SET_TEXT_ENTRY
--- @param text string
function HUD.BEGIN_TEXT_COMMAND_DISPLAY_TEXT(text) end
--- After applying the properties to the text (See HUD::SET_TEXT_), this will draw the text in the applied position. Also 0.0f < x, y < 1.0f, percentage of the axis.
--- 
--- Used to be known as _DRAW_TEXT
--- @param x number
--- @param y number
--- @param p2 number
function HUD.END_TEXT_COMMAND_DISPLAY_TEXT(x, y, p2) end
--- @param text string
function HUD.BEGIN_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT(text) end
--- @param p0 boolean
--- @return number
function HUD.END_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT(p0) end
--- int GetLineCount(char *text, float x, float y)
--- {
--- BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- return BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING(x, y);
--- }
--- @param entry string
function HUD.BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING(entry) end
--- Determines how many lines the text string will use when drawn on screen.
--- Must use 0x521FB041D93DD0E4 for setting up
--- @param x number
--- @param y number
--- @return number
function HUD.END_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING(x, y) end
--- Used to be known as _SET_TEXT_COMPONENT_FORMAT
--- @param inputType string
function HUD.BEGIN_TEXT_COMMAND_DISPLAY_HELP(inputType) end
--- shape goes from -1 to 50 (may be more).
--- p0 is always 0.
--- 
--- Example:
--- void FloatingHelpText(const char* text)
--- {
--- BEGIN_TEXT_COMMAND_DISPLAY_HELP("STRING");
--- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text);
--- END_TEXT_COMMAND_DISPLAY_HELP (0, 0, 1, -1);
--- }
--- 
--- Image:
--- - imgbin.org/images/26209.jpg
--- 
--- more inputs/icons:
--- - https://pastebin.com/nqNYWMSB
--- 
--- Used to be known as _DISPLAY_HELP_TEXT_FROM_STRING_LABEL
--- @param p0 number
--- @param loop boolean
--- @param beep boolean
--- @param shape number
function HUD.END_TEXT_COMMAND_DISPLAY_HELP(p0, loop, beep, shape) end
--- BOOL IsContextActive(char *ctx)
--- {
--- BEGIN_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(ctx);
--- return END_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(0);
--- }
--- @param labelName string
function HUD.BEGIN_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(labelName) end
--- @param p0 number
--- @return boolean
function HUD.END_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(p0) end
--- Starts a text command to change the name of a blip displayed in the pause menu.
--- This should be paired with `END_TEXT_COMMAND_SET_BLIP_NAME`, once adding all required text components.
--- Example:
--- 
--- HUD::BEGIN_TEXT_COMMAND_SET_BLIP_NAME("STRING");
--- HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("Name");
--- HUD::END_TEXT_COMMAND_SET_BLIP_NAME(blip);
--- @param textLabel string
function HUD.BEGIN_TEXT_COMMAND_SET_BLIP_NAME(textLabel) end
--- Finalizes a text command started with BEGIN_TEXT_COMMAND_SET_BLIP_NAME, setting the name of the specified blip.
--- @param blip number
function HUD.END_TEXT_COMMAND_SET_BLIP_NAME(blip) end
--- @param p0 string
function HUD.BEGIN_TEXT_COMMAND_ADD_DIRECTLY_TO_PREVIOUS_BRIEFS(p0) end
--- @param p0 boolean
function HUD.END_TEXT_COMMAND_ADD_DIRECTLY_TO_PREVIOUS_BRIEFS(p0) end
--- clears a print text command with this text
--- @param text string
function HUD.BEGIN_TEXT_COMMAND_CLEAR_PRINT(text) end
function HUD.END_TEXT_COMMAND_CLEAR_PRINT() end
--- @param gxtEntry string
function HUD.BEGIN_TEXT_COMMAND_OVERRIDE_BUTTON_TEXT(gxtEntry) end
--- @param p0 number
function HUD.END_TEXT_COMMAND_OVERRIDE_BUTTON_TEXT(p0) end
--- @param value number
function HUD.ADD_TEXT_COMPONENT_INTEGER(value) end
--- @param value number
--- @param decimalPlaces number
function HUD.ADD_TEXT_COMPONENT_FLOAT(value, decimalPlaces) end
--- @param labelName string
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labelName) end
--- It adds the localized text of the specified GXT entry name. Eg. if the argument is GET_HASH_KEY("ES_HELP"), adds "Continue". Just uses a text labels hash key
--- @param gxtEntryHash number
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(gxtEntryHash) end
--- @param blip number
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_BLIP_NAME(blip) end
--- @param text string
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text) end
--- Adds a timer (e.g. "00:00:00:000"). The appearance of the timer depends on the flags, which needs more research.
--- @param timestamp number
--- @param flags number
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_TIME(timestamp, flags) end
--- @param value number
--- @param commaSeparated boolean
function HUD.ADD_TEXT_COMPONENT_FORMATTED_INTEGER(value, commaSeparated) end
--- p1 was always -1
--- @param p0 string
--- @param p1 number
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_PHONE_NUMBER(p0, p1) end
--- This native (along with ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY and ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME) do not actually filter anything. They simply add the provided text (as of 944)
--- @param website string
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE(website) end
--- @param string string
function HUD.ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(string) end
--- @param hudColor number
function HUD.SET_COLOUR_OF_NEXT_TEXT_COMPONENT(hudColor) end
--- Returns a substring of a specified length starting at a specified position.
--- 
--- Example:
--- // Get "STRING" text from "MY_STRING"
--- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME("MY_STRING", 3, 6);
--- @param text string
--- @param position number
--- @param length number
--- @return string
function HUD.GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME(text, position, length) end
--- Returns a substring of a specified length starting at a specified position. The result is guaranteed not to exceed the specified max length.
--- 
--- NOTE: The 'maxLength' parameter might actually be the size of the buffer that is returned. More research is needed. -CL69
--- 
--- Example:
--- // Condensed example of how Rockstar uses this function
--- strLen = HUD::GET_LENGTH_OF_LITERAL_STRING(MISC::GET_ONSCREEN_KEYBOARD_RESULT());
--- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(MISC::GET_ONSCREEN_KEYBOARD_RESULT(), 0, strLen, 63);
--- 
--- --
--- 
--- "fm_race_creator.ysc", line 85115:
--- // parameters modified for clarity
--- BOOL sub_8e5aa(char *text, int length) {
--- for (i = 0; i <= (length - 2); i += 1) {
--- if (!MISC::ARE_STRINGS_EQUAL(HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(text, i, i + 1, 1), " ")) {
--- return FALSE;
--- }
--- }
--- return TRUE;
--- }
--- @param text string
--- @param position number
--- @param length number
--- @param maxLength number
--- @return string
function HUD.GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(text, position, length, maxLength) end
--- Returns a substring that is between two specified positions. The length of the string will be calculated using (endPosition - startPosition).
--- 
--- Example:
--- // Get "STRING" text from "MY_STRING"
--- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES("MY_STRING", 3, 9);
--- // Overflows are possibly replaced with underscores (needs verification)
--- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES("MY_STRING", 3, 10); // "STRING_"?
--- @param text string
--- @param startPosition number
--- @param endPosition number
--- @return string
function HUD.GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES(text, startPosition, endPosition) end
--- Gets a localized string literal from a label name. Can be used for output of e.g. VEHICLE::GET_LIVERY_NAME. To check if a GXT label can be localized with this, HUD::DOES_TEXT_LABEL_EXIST can be used.
--- @param labelName string
--- @return string
function HUD.GET_FILENAME_FOR_AUDIO_CONVERSATION(labelName) end
function HUD.CLEAR_PRINTS() end
function HUD.CLEAR_BRIEF() end
function HUD.CLEAR_ALL_HELP_MESSAGES() end
--- p0: found arguments in the b617d scripts: https://pastebin.com/X5akCN7z
--- @param p0 string
function HUD.CLEAR_THIS_PRINT(p0) end
function HUD.CLEAR_SMALL_PRINTS() end
--- @param gxt string
--- @return boolean
function HUD.DOES_TEXT_BLOCK_EXIST(gxt) end
--- Request a gxt into the passed slot.
--- @param gxt string
--- @param slot number
function HUD.REQUEST_ADDITIONAL_TEXT(gxt, slot) end
--- @param gxt string
--- @param slot number
function HUD.REQUEST_ADDITIONAL_TEXT_FOR_DLC(gxt, slot) end
--- @param slot number
--- @return boolean
function HUD.HAS_ADDITIONAL_TEXT_LOADED(slot) end
--- @param p0 number
--- @param p1 boolean
function HUD.CLEAR_ADDITIONAL_TEXT(p0, p1) end
--- @param p0 number
--- @return boolean
function HUD.IS_STREAMING_ADDITIONAL_TEXT(p0) end
--- Checks if the specified gxt has loaded into the passed slot.
--- @param gxt string
--- @param slot number
--- @return boolean
function HUD.HAS_THIS_ADDITIONAL_TEXT_LOADED(gxt, slot) end
--- @return boolean
function HUD.IS_MESSAGE_BEING_DISPLAYED() end
--- Checks if the passed gxt name exists in the game files.
--- @param gxt string
--- @return boolean
function HUD.DOES_TEXT_LABEL_EXIST(gxt) end
--- @param string string
--- @param length number
--- @return string
function HUD.GET_FIRST_N_CHARACTERS_OF_LITERAL_STRING(string, length) end
--- Returns the string length of the string from the gxt string .
--- @param gxt string
--- @return number
function HUD.GET_LENGTH_OF_STRING_WITH_THIS_TEXT_LABEL(gxt) end
--- Returns the length of the string passed (much like strlen).
--- @param string string
--- @return number
function HUD.GET_LENGTH_OF_LITERAL_STRING(string) end
--- @param string string
--- @return number
function HUD.GET_LENGTH_OF_LITERAL_STRING_IN_BYTES(string) end
--- This functions converts the hash of a street name into a readable string.
--- 
--- For how to get the hashes, see PATHFIND::GET_STREET_NAME_AT_COORD.
--- @param hash number
--- @return string
function HUD.GET_STREET_NAME_FROM_HASH_KEY(hash) end
--- @return boolean
function HUD.IS_HUD_PREFERENCE_SWITCHED_ON() end
--- @return boolean
function HUD.IS_RADAR_PREFERENCE_SWITCHED_ON() end
--- @return boolean
function HUD.IS_SUBTITLE_PREFERENCE_SWITCHED_ON() end
--- If Hud should be displayed
--- @param toggle boolean
function HUD.DISPLAY_HUD(toggle) end
--- Enables drawing some hud components, such as help labels, this frame, when the player is dead.
function HUD.DISPLAY_HUD_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME() end
function HUD.DISPLAY_HUD_WHEN_PAUSED_THIS_FRAME() end
--- If Minimap / Radar should be displayed.
--- @param toggle boolean
function HUD.DISPLAY_RADAR(toggle) end
--- Setter for GET_FAKE_SPECTATOR_MODE
--- @param toggle boolean
function HUD.SET_FAKE_SPECTATOR_MODE(toggle) end
--- Getter for SET_FAKE_SPECTATOR_MODE
--- @return boolean
function HUD.GET_FAKE_SPECTATOR_MODE() end
--- @return boolean
function HUD.IS_HUD_HIDDEN() end
--- @return boolean
function HUD.IS_RADAR_HIDDEN() end
--- @return boolean
function HUD.IS_MINIMAP_RENDERING() end
--- @param p0 number
function HUD.USE_VEHICLE_TARGETING_RETICULE(p0) end
--- @param enable boolean
function HUD._USE_VEHICLE_TARGETING_RETICULE_ON_VEHICLES(enable) end
--- @param p0 number
function HUD.ADD_VALID_VEHICLE_HIT_HASH(p0) end
function HUD.CLEAR_VALID_VEHICLE_HIT_HASHES() end
--- Enable / disable showing route for the Blip-object.
--- @param blip number
--- @param enabled boolean
function HUD.SET_BLIP_ROUTE(blip, enabled) end
function HUD.CLEAR_ALL_BLIP_ROUTES() end
--- @param blip number
--- @param colour number
function HUD.SET_BLIP_ROUTE_COLOUR(blip, colour) end
--- @param toggle boolean
function HUD.SET_FORCE_SHOW_GPS(toggle) end
--- @param toggle boolean
function HUD.SET_USE_SET_DESTINATION_IN_PAUSE_MAP(toggle) end
--- @param disabled boolean
function HUD.SET_BLOCK_WANTED_FLASH(disabled) end
--- @param p0 boolean
function HUD.ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(p0) end
--- @param p0 number
function HUD.FORCE_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS_LIST(p0) end
--- zoom ranges from 0 to 90f in R* Scripts
--- @param zoom number
function HUD.SET_RADAR_ZOOM_PRECISE(zoom) end
--- zoomLevel ranges from 0 to 1400 in R* Scripts
--- @param zoomLevel number
function HUD.SET_RADAR_ZOOM(zoomLevel) end
--- @param blip number
--- @param zoom number
function HUD.SET_RADAR_ZOOM_TO_BLIP(blip, zoom) end
--- @param zoom number
function HUD.SET_RADAR_ZOOM_TO_DISTANCE(zoom) end
--- Does nothing (it's a nullsub).
function HUD.UPDATE_RADAR_ZOOM_TO_BLIP() end
--- @param hudColorIndex number
--- @param r any
--- @param g any
--- @param b any
--- @param a any
function HUD.GET_HUD_COLOUR(hudColorIndex, r, g, b, a) end
--- Sets the color of HUD_COLOUR_SCRIPT_VARIABLE
--- @param r number
--- @param g number
--- @param b number
--- @param a number
function HUD.SET_SCRIPT_VARIABLE_HUD_COLOUR(r, g, b, a) end
--- Sets the color of HUD_COLOUR_SCRIPT_VARIABLE_2
--- @param r number
--- @param g number
--- @param b number
--- @param a number
function HUD.SET_SECOND_SCRIPT_VARIABLE_HUD_COLOUR(r, g, b, a) end
--- makes hudColorIndex2 color into hudColorIndex color
--- @param hudColorIndex number
--- @param hudColorIndex2 number
function HUD.REPLACE_HUD_COLOUR(hudColorIndex, hudColorIndex2) end
--- @param hudColorIndex number
--- @param r number
--- @param g number
--- @param b number
--- @param a number
function HUD.REPLACE_HUD_COLOUR_WITH_RGBA(hudColorIndex, r, g, b, a) end
--- @param visible boolean
function HUD.SET_ABILITY_BAR_VISIBILITY(visible) end
--- @param toggle boolean
function HUD.SET_ALLOW_ABILITY_BAR(toggle) end
--- @param millisecondsToFlash number
function HUD.FLASH_ABILITY_BAR(millisecondsToFlash) end
--- @param p0 number
--- @param p1 number
function HUD.SET_ABILITY_BAR_VALUE(p0, p1) end
--- @param p0 boolean
function HUD.FLASH_WANTED_DISPLAY(p0) end
--- @param toggle boolean
function HUD.FORCE_OFF_WANTED_STAR_FLASH(toggle) end
--- @param hudColorId number
function HUD.SET_CUSTOM_MP_HUD_COLOR(hudColorId) end
--- This gets the height of the FONT and not the total text. You need to get the number of lines your text uses, and get the height of a newline (I'm using a smaller value) to get the total text height.
--- @param size number
--- @param font number
--- @return number
function HUD.GET_RENDERED_CHARACTER_HEIGHT(size, font) end
--- Size range : 0F to 1.0F
--- p0 is unknown and doesn't seem to have an effect, yet in the game scripts it changes to 1.0F sometimes.
--- @param scale number
--- @param size number
function HUD.SET_TEXT_SCALE(scale, size) end
--- colors you input not same as you think?
--- A: for some reason its R B G A
--- @param red number
--- @param green number
--- @param blue number
--- @param alpha number
function HUD.SET_TEXT_COLOUR(red, green, blue, alpha) end
--- @param align boolean
function HUD.SET_TEXT_CENTRE(align) end
--- @param toggle boolean
function HUD.SET_TEXT_RIGHT_JUSTIFY(toggle) end
--- Types -
--- 0: Center-Justify
--- 1: Left-Justify
--- 2: Right-Justify
--- 
--- Right-Justify requires SET_TEXT_WRAP, otherwise it will draw to the far right of the screen
--- @param justifyType number
function HUD.SET_TEXT_JUSTIFICATION(justifyType) end
--- @param lineHeightMult number
function HUD.SET_TEXT_LINE_HEIGHT_MULT(lineHeightMult) end
--- It sets the text in a specified box and wraps the text if it exceeds the boundries. Both values are for X axis. Useful when positioning text set to center or aligned to the right.
--- 
--- start - left boundry on screen position (0.0 - 1.0)
--- end - right boundry on screen position (0.0 - 1.0)
--- @param start number
--- @param end_ number
function HUD.SET_TEXT_WRAP(start, end_) end
--- @param p0 number
function HUD.SET_TEXT_LEADING(p0) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 boolean
function HUD.SET_TEXT_PROPORTIONAL(p0) end
--- fonts that mess up your text where made for number values/misc stuff
--- @param fontType number
function HUD.SET_TEXT_FONT(fontType) end
function HUD.SET_TEXT_DROP_SHADOW() end
--- distance - shadow distance in pixels, both horizontal and vertical
--- r, g, b, a - color
--- @param distance number
--- @param r number
--- @param g number
--- @param b number
--- @param a number
function HUD.SET_TEXT_DROPSHADOW(distance, r, g, b, a) end
function HUD.SET_TEXT_OUTLINE() end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
--- @param r number
--- @param g number
--- @param b number
--- @param a number
function HUD.SET_TEXT_EDGE(p0, r, g, b, a) end
--- @param renderId number
function HUD.SET_TEXT_RENDER_ID(renderId) end
--- This function is hard-coded to always return 1.
--- @return number
function HUD.GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID() end
--- @param name string
--- @param p1 boolean
--- @return boolean
function HUD.REGISTER_NAMED_RENDERTARGET(name, p1) end
--- @param name string
--- @return boolean
function HUD.IS_NAMED_RENDERTARGET_REGISTERED(name) end
--- @param name string
--- @return boolean
function HUD.RELEASE_NAMED_RENDERTARGET(name) end
--- @param modelHash number
function HUD.LINK_NAMED_RENDERTARGET(modelHash) end
--- @param name string
--- @return number
function HUD.GET_NAMED_RENDERTARGET_RENDER_ID(name) end
--- @param modelHash number
--- @return boolean
function HUD.IS_NAMED_RENDERTARGET_LINKED(modelHash) end
--- @param toggle boolean
function HUD.CLEAR_HELP(toggle) end
--- @return boolean
function HUD.IS_HELP_MESSAGE_ON_SCREEN() end
--- @return boolean
function HUD.HAS_SCRIPT_HIDDEN_HELP_THIS_FRAME() end
--- @return boolean
function HUD.IS_HELP_MESSAGE_BEING_DISPLAYED() end
--- @return boolean
function HUD.IS_HELP_MESSAGE_FADING_OUT() end
--- @param style number
--- @param hudColor number
--- @param alpha number
--- @param p3 number
--- @param p4 number
function HUD.SET_HELP_MESSAGE_STYLE(style, hudColor, alpha, p3, p4) end
--- @return number
function HUD.GET_STANDARD_BLIP_ENUM_ID() end
--- @return number
function HUD.GET_WAYPOINT_BLIP_ENUM_ID() end
--- @return number
function HUD.GET_NUMBER_OF_ACTIVE_BLIPS() end
--- @param blipSprite number
--- @return number
function HUD.GET_NEXT_BLIP_INFO_ID(blipSprite) end
--- @param blipSprite number
--- @return number
function HUD.GET_FIRST_BLIP_INFO_ID(blipSprite) end
--- @param blipSprite number
--- @return number
function HUD.GET_CLOSEST_BLIP_INFO_ID(blipSprite) end
--- @param blip number
--- @return { x: number, y: number, z: number }
function HUD.GET_BLIP_INFO_ID_COORD(blip) end
--- @param blip number
--- @return number
function HUD.GET_BLIP_INFO_ID_DISPLAY(blip) end
--- Returns a value based on what the blip is attached to
--- 1 - Vehicle
--- 2 - Ped
--- 3 - Object
--- 4 - Coord
--- 5 - unk
--- 6 - Pickup
--- 7 - Radius
--- @param blip number
--- @return number
function HUD.GET_BLIP_INFO_ID_TYPE(blip) end
--- @param blip number
--- @return number
function HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) end
--- This function is hard-coded to always return 0.
--- @param blip number
--- @return number
function HUD.GET_BLIP_INFO_ID_PICKUP_INDEX(blip) end
--- Returns the Blip handle of given Entity.
--- @param entity number
--- @return number
function HUD.GET_BLIP_FROM_ENTITY(entity) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param radius number
--- @return number
function HUD.ADD_BLIP_FOR_RADIUS(posX, posY, posZ, radius) end
--- Adds a rectangular blip for the specified coordinates/area.
--- 
--- It is recommended to use SET_BLIP_ROTATION and SET_BLIP_COLOUR to make the blip not rotate along with the camera.
--- 
--- By default, the blip will show as a _regular_ blip with the specified color/sprite if it is outside of the minimap view.
--- 
--- Example image:
--- minimap https://w.wew.wtf/pdcjig.png
--- big map https://w.wew.wtf/zgcjcm.png
--- 
--- (Native name is _likely_ to actually be ADD_BLIP_FOR_AREA, but due to the usual reasons this can't be confirmed)
--- @param x number
--- @param y number
--- @param z number
--- @param width number
--- @param height number
--- @return number
function HUD.ADD_BLIP_FOR_AREA(x, y, z, width, height) end
--- Returns red ( default ) blip attached to entity.
--- 
--- Example:
--- Blip blip; //Put this outside your case or option
--- blip = HUD::ADD_BLIP_FOR_ENTITY(YourPedOrBodyguardName);
--- HUD::SET_BLIP_AS_FRIENDLY(blip, true);
--- @param entity number
--- @return number
function HUD.ADD_BLIP_FOR_ENTITY(entity) end
--- @param pickup number
--- @return number
function HUD.ADD_BLIP_FOR_PICKUP(pickup) end
--- Creates an orange ( default ) Blip-object. Returns a Blip-object which can then be modified.
--- @param x number
--- @param y number
--- @param z number
--- @return number
function HUD.ADD_BLIP_FOR_COORD(x, y, z) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param radius number
--- @param p4 number
function HUD.TRIGGER_SONAR_BLIP(posX, posY, posZ, radius, p4) end
--- @param toggle boolean
function HUD.ALLOW_SONAR_BLIPS(toggle) end
--- @param blip number
--- @param posX number
--- @param posY number
--- @param posZ number
function HUD.SET_BLIP_COORDS(blip, posX, posY, posZ) end
--- @param blip number
--- @return { x: number, y: number, z: number }
function HUD.GET_BLIP_COORDS(blip) end
--- Sets the displayed sprite for a specific blip..
--- 
--- You may have your own list, but since dev-c didn't show it I was bored and started looking through scripts and functions to get a presumable almost positive list of a majority of blip IDs
--- https://pastebin.com/Bpj9Sfft
--- 
--- Blips Images + IDs:
--- https://gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html
--- @param blip number
--- @param spriteId number
function HUD.SET_BLIP_SPRITE(blip, spriteId) end
--- Blips Images + IDs:
--- gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html
--- @param blip number
--- @return number
function HUD.GET_BLIP_SPRITE(blip) end
--- @param p0 number
--- @param p1 number
function HUD.SET_COP_BLIP_SPRITE(p0, p1) end
function HUD.SET_COP_BLIP_SPRITE_AS_STANDARD() end
--- Doesn't work if the label text of gxtEntry is >= 80.
--- @param blip number
--- @param gxtEntry string
function HUD.SET_BLIP_NAME_FROM_TEXT_FILE(blip, gxtEntry) end
--- @param blip number
--- @param player number
function HUD.SET_BLIP_NAME_TO_PLAYER_NAME(blip, player) end
--- Sets alpha-channel for blip color.
--- 
--- Example:
--- 
--- Blip blip = HUD::ADD_BLIP_FOR_ENTITY(entity);
--- HUD::SET_BLIP_COLOUR(blip , 3);
--- HUD::SET_BLIP_ALPHA(blip , 64);
--- 
--- @param blip number
--- @param alpha number
function HUD.SET_BLIP_ALPHA(blip, alpha) end
--- @param blip number
--- @return number
function HUD.GET_BLIP_ALPHA(blip) end
--- @param blip number
--- @param opacity number
--- @param duration number
function HUD.SET_BLIP_FADE(blip, opacity, duration) end
--- Returns -1, 0, +1, depending on if the blip is fading out, doing nothing, or fading in respectively.
--- @param blip number
--- @return number
function HUD.GET_BLIP_FADE_DIRECTION(blip) end
--- After some testing, looks like you need to use CEIL() on the rotation (vehicle/ped heading) before using it there.
--- @param blip number
--- @param rotation number
function HUD.SET_BLIP_ROTATION(blip, rotation) end
--- Does not require whole number/integer rotations.
--- @param blip number
--- @param heading number
function HUD.SET_BLIP_ROTATION_WITH_FLOAT(blip, heading) end
--- @param blip number
--- @return number
function HUD.GET_BLIP_ROTATION(blip) end
--- Adds up after viewing multiple R* scripts. I believe that the duration is in miliseconds.
--- @param blip number
--- @param duration number
function HUD.SET_BLIP_FLASH_TIMER(blip, duration) end
--- @param blip number
--- @param p1 number
function HUD.SET_BLIP_FLASH_INTERVAL(blip, p1) end
--- https://gtaforums.com/topic/864881-all-blip-color-ids-pictured/
--- @param blip number
--- @param color number
function HUD.SET_BLIP_COLOUR(blip, color) end
--- Can be used to give blips any RGB colour with SET_BLIP_COLOUR(blip, 84).
--- @param blip number
--- @param r number
--- @param g number
--- @param b number
function HUD.SET_BLIP_SECONDARY_COLOUR(blip, r, g, b) end
--- @param blip number
--- @return number
function HUD.GET_BLIP_COLOUR(blip) end
--- @param blip number
--- @return number
function HUD.GET_BLIP_HUD_COLOUR(blip) end
--- @param blip number
--- @return boolean
function HUD.IS_BLIP_SHORT_RANGE(blip) end
--- @param blip number
--- @return boolean
function HUD.IS_BLIP_ON_MINIMAP(blip) end
--- @param blip number
--- @return boolean
function HUD.DOES_BLIP_HAVE_GPS_ROUTE(blip) end
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_HIDDEN_ON_LEGEND(blip, toggle) end
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_HIGH_DETAIL(blip, toggle) end
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_AS_MISSION_CREATOR_BLIP(blip, toggle) end
--- @param blip number
--- @return boolean
function HUD.IS_MISSION_CREATOR_BLIP(blip) end
--- @return number
function HUD.GET_NEW_SELECTED_MISSION_CREATOR_BLIP() end
--- @return boolean
function HUD.IS_HOVERING_OVER_MISSION_CREATOR_BLIP() end
--- @param toggle boolean
function HUD.SHOW_START_MISSION_INSTRUCTIONAL_BUTTON(toggle) end
--- @param toggle boolean
function HUD.SHOW_CONTACT_INSTRUCTIONAL_BUTTON(toggle) end
function HUD.RELOAD_MAP_MENU() end
--- @param p0 number
--- @param p1 number
function HUD.SET_BLIP_MARKER_LONG_DISTANCE(p0, p1) end
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_FLASHES(blip, toggle) end
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_FLASHES_ALTERNATE(blip, toggle) end
--- @param blip number
--- @return boolean
function HUD.IS_BLIP_FLASHING(blip) end
--- Sets whether or not the specified blip should only be displayed when nearby, or on the minimap.
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_AS_SHORT_RANGE(blip, toggle) end
--- @param blip number
--- @param scale number
function HUD.SET_BLIP_SCALE(blip, scale) end
--- See https://imgur.com/a/lLkEsMN
--- @param blip number
--- @param xScale number
--- @param yScale number
function HUD.SET_BLIP_SCALE_2D(blip, xScale, yScale) end
--- See this topic for more details : gtaforums.com/topic/717612-v-scriptnative-documentation-and-research/page-35?p=1069477935
--- @param blip number
--- @param priority number
function HUD.SET_BLIP_PRIORITY(blip, priority) end
--- Display Id behaviours:
--- 0 = Doesn't show up, ever, anywhere.
--- 1 = Doesn't show up, ever, anywhere.
--- 2 = Shows on both main map and minimap. (Selectable on map)
--- 3 = Shows on main map only. (Selectable on map)
--- 4 = Shows on main map only. (Selectable on map)
--- 5 = Shows on minimap only.
--- 6 = Shows on both main map and minimap. (Selectable on map)
--- 7 = Doesn't show up, ever, anywhere.
--- 8 = Shows on both main map and minimap. (Not selectable on map)
--- 9 = Shows on minimap only.
--- 10 = Shows on both main map and minimap. (Not selectable on map)
--- 
--- Anything higher than 10 seems to be exactly the same as 10.
--- @param blip number
--- @param displayId number
function HUD.SET_BLIP_DISPLAY(blip, displayId) end
--- Example: https://i.imgur.com/skY6vAJ.png
--- 
--- Index:
--- 1 = No distance shown in legend
--- 2 = Distance shown in legend
--- 7 = "Other Players" category, also shows distance in legend
--- 10 = "Property" category
--- 11 = "Owned Property" category
--- 
--- Any other value behaves like index = 1, index wraps around after 255
--- Blips with categories 7, 10 or 11 will all show under the specific categories listing in the map legend, regardless of sprite or name.
--- Legend entries:
--- 7 = Other Players (BLIP_OTHPLYR)
--- 10 = Property (BLIP_PROPCAT)
--- 11 = Owned Property (BLIP_APARTCAT)
--- 
--- Category needs to be `7` in order for blip names to show on the expanded minimap when using DISPLAY_PLAYER_NAME_TAGS_ON_BLIPS.
--- @param blip number
--- @param index number
function HUD.SET_BLIP_CATEGORY(blip, index) end
--- In the C++ SDK, this seems not to work-- the blip isn't removed immediately. I use it for saving cars.
--- 
--- E.g.:
--- 
--- Ped pped = PLAYER::PLAYER_PED_ID();
--- Vehicle v = PED::GET_VEHICLE_PED_IS_USING(pped);
--- Blip b = HUD::ADD_BLIP_FOR_ENTITY(v);
--- 
--- works fine.
--- But later attempting to delete it with:
--- 
--- Blip b = HUD::GET_BLIP_FROM_ENTITY(v);
--- if (HUD::DOES_BLIP_EXIST(b)) HUD::REMOVE_BLIP(&b);
--- 
--- doesn't work. And yes, doesn't work without the DOES_BLIP_EXIST check either. Also, if you attach multiple blips to the same thing (say, a vehicle), and that thing disappears, the blips randomly attach to other things (in my case, a vehicle).
--- 
--- Thus for me, HUD::REMOVE_BLIP(&b) only works if there's one blip, (in my case) the vehicle is marked as no longer needed, you drive away from it and it eventually despawns, AND there is only one blip attached to it. I never intentionally attach multiple blips but if the user saves the car, this adds a blip. Then if they delete it, it is supposed to remove the blip, but it doesn't. Then they can immediately save it again, causing another blip to re-appear.
--- -------------
--- 
--- Passing the address of the variable instead of the value works for me.
--- e.g.
--- int blip = HUD::ADD_BLIP_FOR_ENTITY(ped);
--- HUD::REMOVE_BLIP(&blip);
--- 
--- 
--- Remove blip will currently crash your game, just artificially remove the blip by setting the sprite to a id that is 'invisible'.
--- @param blip any
function HUD.REMOVE_BLIP(blip) end
--- false for enemy
--- true for friendly
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_AS_FRIENDLY(blip, toggle) end
--- @param blip number
function HUD.PULSE_BLIP(blip) end
--- @param blip number
--- @param number number
function HUD.SHOW_NUMBER_ON_BLIP(blip, number) end
--- @param blip number
function HUD.HIDE_NUMBER_ON_BLIP(blip) end
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_HEIGHT_ON_BLIP(blip, toggle) end
--- Adds a green checkmark on top of a blip.
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_TICK_ON_BLIP(blip, toggle) end
--- Adds a orange checkmark on top of a given blip handle: https://imgur.com/a/aw5OTMF
--- _SHOW_FRIEND_INDICATOR_ON_BLIP* - _SHOW_HEADING_INDICATOR_ON_BLIP*
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_GOLD_TICK_ON_BLIP(blip, toggle) end
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_FOR_SALE_ICON_ON_BLIP(blip, toggle) end
--- Adds the GTA: Online player heading indicator to a blip.
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_HEADING_INDICATOR_ON_BLIP(blip, toggle) end
--- Highlights a blip by a cyan color circle.
--- 
--- Color can be changed with SET_BLIP_SECONDARY_COLOUR
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_OUTLINE_INDICATOR_ON_BLIP(blip, toggle) end
--- Highlights a blip by a half cyan circle on the right side of the blip. https://i.imgur.com/FrV9M4e.png
--- .Indicating that that player is a friend (in GTA:O). This color can not be changed.
--- To toggle the left side (crew member indicator) of the half circle around the blip, use: `SHOW_CREW_INDICATOR_ON_BLIP`
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_FRIEND_INDICATOR_ON_BLIP(blip, toggle) end
--- Enables or disables the blue half circle https://i.imgur.com/iZes9Ec.png around the specified blip on the left side of the blip. This is used to indicate that the player is in your crew in GTA:O. Color is changeable by using `SET_BLIP_SECONDARY_COLOUR`.
--- @param blip number
--- @param toggle boolean
function HUD.SHOW_CREW_INDICATOR_ON_BLIP(blip, toggle) end
--- Must be toggled before being queued for animation
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_EXTENDED_HEIGHT_THRESHOLD(blip, toggle) end
--- @param p0 number
--- @param p1 number
function HUD.SET_BLIP_SHORT_HEIGHT_THRESHOLD(p0, p1) end
--- @param blip number
--- @param p1 number
function HUD.SET_BLIP_USE_HEIGHT_INDICATOR_ON_EDGE(blip, p1) end
--- Makes a blip go small when off the minimap.
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_AS_MINIMAL_ON_EDGE(blip, toggle) end
--- Enabling this on a radius blip will make it outline only. See https://cdn.discordapp.com/attachments/553235301632573459/575132227935928330/unknown.png
--- @param blip number
--- @param toggle boolean
function HUD.SET_RADIUS_BLIP_EDGE(blip, toggle) end
--- @param blip number
--- @return boolean
function HUD.DOES_BLIP_EXIST(blip) end
--- This native removes the current waypoint from the map.
--- 
--- Example:
--- C#:
--- Function.Call(Hash.SET_WAYPOINT_OFF);
--- 
--- C++:
--- HUD::SET_WAYPOINT_OFF();
function HUD.SET_WAYPOINT_OFF() end
function HUD.DELETE_WAYPOINTS_FROM_THIS_PLAYER() end
function HUD.REFRESH_WAYPOINT() end
--- @return boolean
function HUD.IS_WAYPOINT_ACTIVE() end
--- @param x number
--- @param y number
function HUD.SET_NEW_WAYPOINT(x, y) end
--- @param blip number
--- @param toggle boolean
function HUD.SET_BLIP_BRIGHT(blip, toggle) end
--- As of b2189, the third parameter sets the color of the cone (before b2189 it was ignored). Note that it uses HUD colors, not blip colors.
--- @param blip number
--- @param toggle boolean
--- @param hudColorIndex number
function HUD.SET_BLIP_SHOW_CONE(blip, toggle, hudColorIndex) end
--- Interesting fact: A hash collision for this is RESET_JETPACK_MODEL_SETTINGS
--- @param ped number
function HUD.REMOVE_COP_BLIP_FROM_PED(ped) end
--- @param blip number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
function HUD.SETUP_FAKE_CONE_DATA(blip, p1, p2, p3, p4, p5, p6, p7, p8) end
--- @param blip number
function HUD.REMOVE_FAKE_CONE_DATA(blip) end
function HUD.CLEAR_FAKE_CONE_ARRAY() end
--- Applies to new eBlipParams _BLIP_CHANGE_46* and _BLIP_CHANGE_47*
--- @param blip number
--- @param blipChangeParam46 number
--- @param blipChangeParam47 boolean
function HUD._SET_BLIP_GPS_ROUTE_DISPLAY_DISTANCE(blip, blipChangeParam46, blipChangeParam47) end
--- This native is used to colorize certain map components like the army base at the top of the map.
--- p2 appears to be always -1. If p2 is -1 then native wouldn't change the color. See https://gfycat.com/SkinnyPinkChupacabra
--- @param componentId number
--- @param toggle boolean
--- @param overrideColor number
--- @return boolean
function HUD.SET_MINIMAP_COMPONENT(componentId, toggle, overrideColor) end
--- @param toggle boolean
function HUD.SET_MINIMAP_SONAR_SWEEP(toggle) end
function HUD.SHOW_ACCOUNT_PICKER() end
--- @return number
function HUD.GET_MAIN_PLAYER_BLIP_ID() end
--- @param p0 boolean
function HUD.SET_PM_WARNINGSCREEN_ACTIVE(p0) end
function HUD.HIDE_LOADING_ON_FADE_THIS_FRAME() end
--- List of interior hashes: https://pastebin.com/1FUyXNqY
--- Not for every interior zoom > 0 available.
--- @param interior number
--- @param x number
--- @param y number
--- @param z number
--- @param zoom number
function HUD.SET_RADAR_AS_INTERIOR_THIS_FRAME(interior, x, y, z, zoom) end
--- @param toggle boolean
function HUD.SET_INSIDE_VERY_SMALL_INTERIOR(toggle) end
--- @param toggle boolean
function HUD.SET_INSIDE_VERY_LARGE_INTERIOR(toggle) end
function HUD.SET_RADAR_AS_EXTERIOR_THIS_FRAME() end
--- Sets the position of the arrow icon representing the player on both the minimap and world map.
--- 
--- Too bad this wouldn't work over the network (obviously not). Could spoof where we would be.
--- @param x number
--- @param y number
function HUD.SET_FAKE_PAUSEMAP_PLAYER_POSITION_THIS_FRAME(x, y) end
--- p2 maybe z float?
--- @param x number
--- @param y number
--- @param p2 number
function HUD.SET_FAKE_GPS_PLAYER_POSITION_THIS_FRAME(x, y, p2) end
--- @return boolean
function HUD.IS_PAUSEMAP_IN_INTERIOR_MODE() end
function HUD.HIDE_MINIMAP_EXTERIOR_MAP_THIS_FRAME() end
function HUD.HIDE_MINIMAP_INTERIOR_MAP_THIS_FRAME() end
--- Toggles the Cayo Perico map.
--- @param toggle boolean
function HUD.SET_USE_ISLAND_MAP(toggle) end
function HUD._SET_PAUSE_EXTERIOR_RENDERING_WHILE_IN_INTERIOR() end
--- When calling this, the current frame will have the players "arrow icon" be focused on the dead center of the radar.
function HUD.DONT_TILT_MINIMAP_THIS_FRAME() end
function HUD.DONT_ZOOM_MINIMAP_WHEN_RUNNING_THIS_FRAME() end
function HUD.DONT_ZOOM_MINIMAP_WHEN_SNIPING_THIS_FRAME() end
--- @param p0 number
function HUD.SET_WIDESCREEN_FORMAT(p0) end
--- @param toggle boolean
function HUD.DISPLAY_AREA_NAME(toggle) end
--- "DISPLAY_CASH(false);" makes the cash amount render on the screen when appropriate
--- "DISPLAY_CASH(true);" disables cash amount rendering
--- @param toggle boolean
function HUD.DISPLAY_CASH(toggle) end
--- Related to displaying cash on the HUD
--- Always called before HUD::CHANGE_FAKE_MP_CASH in decompiled scripts
--- @param toggle boolean
function HUD.USE_FAKE_MP_CASH(toggle) end
--- Displays cash change notifications on HUD.
--- @param cash number
--- @param bank number
function HUD.CHANGE_FAKE_MP_CASH(cash, bank) end
--- @param display boolean
function HUD.DISPLAY_AMMO_THIS_FRAME(display) end
--- Displays the crosshair for this frame.
function HUD.DISPLAY_SNIPER_SCOPE_THIS_FRAME() end
--- Hides HUD and radar this frame and prohibits switching to other weapons (or accessing the weapon wheel)
function HUD.HIDE_HUD_AND_RADAR_THIS_FRAME() end
--- Controls whether to display 'Cash'/'Bank' next to the money balance HUD in Multiplayer (https://i.imgur.com/MiYUtNl.png)
--- @param allow boolean
function HUD.ALLOW_DISPLAY_OF_MULTIPLAYER_CASH_TEXT(allow) end
function HUD.SET_MULTIPLAYER_WALLET_CASH() end
function HUD.REMOVE_MULTIPLAYER_WALLET_CASH() end
function HUD.SET_MULTIPLAYER_BANK_CASH() end
function HUD.REMOVE_MULTIPLAYER_BANK_CASH() end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
--- @param p1 boolean
function HUD.SET_MULTIPLAYER_HUD_CASH(p0, p1) end
--- Removes multiplayer cash hud each frame
function HUD.REMOVE_MULTIPLAYER_HUD_CASH() end
function HUD.HIDE_HELP_TEXT_THIS_FRAME() end
--- @return boolean
function HUD.IS_IME_IN_PROGRESS() end
--- The messages are localized strings.
--- Examples:
--- "No_bus_money"
--- "Enter_bus"
--- "Tour_help"
--- "LETTERS_HELP2"
--- "Dummy"
--- 
--- **The bool appears to always be false (if it even is a bool, as it's represented by a zero)**
--- --------
--- p1 doesn't seem to make a difference, regardless of the state it's in.
--- 
--- 
--- picture of where on the screen this is displayed?
--- @param message string
--- @param p1 boolean
function HUD.DISPLAY_HELP_TEXT_THIS_FRAME(message, p1) end
--- Forces the weapon wheel to show/hide.
--- @param show boolean
function HUD.HUD_FORCE_WEAPON_WHEEL(show) end
--- Displays "blazer_wheels_up" and "blazer_wheels_down" "weapon" icons when switching between jetski and quadbike modes. Works only on vehicles using "VEHICLE_TYPE_AMPHIBIOUS_QUADBIKE" vehicle type. Needs to be called every time prior to switching modes, otherwise the icon will only appear when switching modes once.
function HUD.HUD_FORCE_SPECIAL_VEHICLE_WEAPON_WHEEL() end
--- Calling this each frame, stops the player from receiving a weapon via the weapon wheel.
function HUD.HUD_SUPPRESS_WEAPON_WHEEL_RESULTS_THIS_FRAME() end
--- Returns the weapon hash to the selected/highlighted weapon in the wheel
--- @return number
function HUD.HUD_GET_WEAPON_WHEEL_CURRENTLY_HIGHLIGHTED() end
--- Set the active slotIndex in the wheel weapon to the slot associated with the provided Weapon hash
--- @param weaponHash number
function HUD.HUD_SET_WEAPON_WHEEL_TOP_SLOT(weaponHash) end
--- Returns the weapon hash active in a specific weapon wheel slotList
--- @param weaponTypeIndex number
--- @return number
function HUD.HUD_GET_WEAPON_WHEEL_TOP_SLOT(weaponTypeIndex) end
--- Sets a global that disables many weapon input tasks (shooting, aiming, etc.). Does not work with vehicle weapons, only used in selector.ysc
--- @param toggle boolean
function HUD.HUD_SHOWING_CHARACTER_SWITCH_SELECTION(toggle) end
--- Only the script that originally called SET_GPS_FLAGS can set them again. Another script cannot set the flags, until the first script that called it has called CLEAR_GPS_FLAGS.
--- 
--- Doesn't seem like the flags are actually read by the game at all.
--- @param p0 number
--- @param p1 number
function HUD.SET_GPS_FLAGS(p0, p1) end
--- Clears the GPS flags. Only the script that originally called SET_GPS_FLAGS can clear them.
--- 
--- Doesn't seem like the flags are actually read by the game at all.
function HUD.CLEAR_GPS_FLAGS() end
--- @param toggle boolean
function HUD.SET_RACE_TRACK_RENDER(toggle) end
--- Does the same as SET_RACE_TRACK_RENDER(false);
function HUD.CLEAR_GPS_RACE_TRACK() end
--- Starts a new GPS custom-route, allowing you to plot lines on the map.
--- Lines are drawn directly between points.
--- The GPS custom route works like the GPS multi route, except it does not follow roads.
--- Example result: https://i.imgur.com/BDm5pzt.png
--- hudColor: The HUD color of the GPS path.
--- displayOnFoot: Draws the path regardless if the player is in a vehicle or not.
--- followPlayer: Draw the path partially between the previous and next point based on the players position between them. When false, the GPS appears to not disappear after the last leg is completed.
--- @param hudColor number
--- @param displayOnFoot boolean
--- @param followPlayer boolean
function HUD.START_GPS_CUSTOM_ROUTE(hudColor, displayOnFoot, followPlayer) end
--- @param x number
--- @param y number
--- @param z number
function HUD.ADD_POINT_TO_GPS_CUSTOM_ROUTE(x, y, z) end
--- radarThickness: The width of the GPS route on the radar
--- mapThickness: The width of the GPS route on the map
--- @param toggle boolean
--- @param radarThickness number
--- @param mapThickness number
function HUD.SET_GPS_CUSTOM_ROUTE_RENDER(toggle, radarThickness, mapThickness) end
function HUD.CLEAR_GPS_CUSTOM_ROUTE() end
--- Starts a new GPS multi-route, allowing you to create custom GPS paths.
--- GPS functions like the waypoint, except it can contain multiple points it's forced to go through.
--- Once the player has passed a point, the GPS will no longer force its path through it.
--- 
--- Works independently from the player-placed waypoint and blip routes.
--- Example result: https://i.imgur.com/ZZHQatX.png
--- hudColor: The HUD color of the GPS path.
--- routeFromPlayer: Makes the GPS draw a path from the player to the next point, rather than the original path from the previous point.
--- displayOnFoot: Draws the GPS path regardless if the player is in a vehicle or not.
--- @param hudColor number
--- @param routeFromPlayer boolean
--- @param displayOnFoot boolean
function HUD.START_GPS_MULTI_ROUTE(hudColor, routeFromPlayer, displayOnFoot) end
--- @param x number
--- @param y number
--- @param z number
function HUD.ADD_POINT_TO_GPS_MULTI_ROUTE(x, y, z) end
--- @param toggle boolean
function HUD.SET_GPS_MULTI_ROUTE_RENDER(toggle) end
--- Does the same as SET_GPS_MULTI_ROUTE_RENDER(false);
function HUD.CLEAR_GPS_MULTI_ROUTE() end
function HUD.CLEAR_GPS_PLAYER_WAYPOINT() end
--- @param toggle boolean
function HUD.SET_GPS_FLASHES(toggle) end
--- @param color number
function HUD.SET_PLAYER_ICON_COLOUR(color) end
--- adds a short flash to the Radar/Minimap
--- Usage: UI.FLASH_MINIMAP_DISPLAY
function HUD.FLASH_MINIMAP_DISPLAY() end
--- @param hudColorIndex number
function HUD.FLASH_MINIMAP_DISPLAY_WITH_COLOR(hudColorIndex) end
--- @param toggle boolean
function HUD.TOGGLE_STEALTH_RADAR(toggle) end
--- @param toggle boolean
--- @param ped number
function HUD.SET_MINIMAP_IN_SPECTATOR_MODE(toggle, ped) end
--- @param p0 boolean
--- @param name string
function HUD.SET_MISSION_NAME(p0, name) end
--- @param p0 boolean
--- @param name string
function HUD.SET_MISSION_NAME_FOR_UGC_MISSION(p0, name) end
--- @param p0 boolean
--- @param p1 string
--- @param p2 string
--- @param p3 string
--- @param p4 string
--- @param p5 string
--- @param p6 string
--- @param p7 string
--- @param p8 string
function HUD.SET_DESCRIPTION_FOR_UGC_MISSION_EIGHT_STRINGS(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
--- @param toggle boolean
function HUD.SET_MINIMAP_BLOCK_WAYPOINT(toggle) end
--- Toggles the North Yankton map
--- @param toggle boolean
function HUD.SET_MINIMAP_IN_PROLOGUE(toggle) end
--- This native does absolutely nothing on PC master builds, just a nullsub.
--- @param toggle boolean
function HUD.SET_MINIMAP_BACKGROUND_HIDDEN(toggle) end
--- If true, the entire map will be revealed.
--- 
--- FOW = Fog of War
--- @param toggle boolean
function HUD.SET_MINIMAP_HIDE_FOW(toggle) end
--- @return number
function HUD.GET_MINIMAP_FOW_DISCOVERY_RATIO() end
--- @param x number
--- @param y number
--- @param z number
--- @return boolean
function HUD.GET_MINIMAP_FOW_COORDINATE_IS_REVEALED(x, y, z) end
--- @param p0 boolean
function HUD.SET_MINIMAP_FOW_DO_NOT_UPDATE(p0) end
--- Up to eight coordinates may be revealed per frame
--- @param x number
--- @param y number
--- @param z number
function HUD.SET_MINIMAP_FOW_REVEAL_COORDINATE(x, y, z) end
--- Not much is known so far on what it does _exactly_.
--- All I know for sure is that it draws the specified hole ID on the pause menu map as well as on the mini-map/radar. This native also seems to change some other things related to the pause menu map's behaviour, for example: you can no longer set waypoints, the pause menu map starts up in a 'zoomed in' state. This native does not need to be executed every tick.
--- You need to center the minimap manually as well as change/lock it's zoom and angle in order for it to appear correctly on the minimap.
--- You'll also need to use the `GOLF` scaleform in order to get the correct minmap border to show up.
--- Use `0x35edd5b2e3ff01c0` to reset the map when you no longer want to display any golf holes (you still need to unlock zoom, position and angle of the radar manually after calling this).
--- @param hole number
function HUD.SET_MINIMAP_GOLF_COURSE(hole) end
function HUD.SET_MINIMAP_GOLF_COURSE_OFF() end
--- Locks the minimap to the specified angle in integer degrees.
--- 
--- angle: The angle in whole degrees. If less than 0 or greater than 360, unlocks the angle.
--- @param angle number
function HUD.LOCK_MINIMAP_ANGLE(angle) end
function HUD.UNLOCK_MINIMAP_ANGLE() end
--- Locks the minimap to the specified world position.
--- @param x number
--- @param y number
function HUD.LOCK_MINIMAP_POSITION(x, y) end
function HUD.UNLOCK_MINIMAP_POSITION() end
--- Argument must be 0.0f or above 38.0f, or it will be ignored.
--- @param altitude number
--- @param p1 boolean
--- @param p2 number
function HUD.SET_FAKE_MINIMAP_MAX_ALTIMETER_HEIGHT(altitude, p1, p2) end
--- @param health number
--- @param capacity number
--- @param wasAdded boolean
function HUD.SET_HEALTH_HUD_DISPLAY_VALUES(health, capacity, wasAdded) end
--- @param maximumValue number
function HUD.SET_MAX_HEALTH_HUD_DISPLAY(maximumValue) end
--- @param maximumValue number
function HUD.SET_MAX_ARMOUR_HUD_DISPLAY(maximumValue) end
--- Toggles the big minimap state like in GTA:Online.
--- @param toggleBigMap boolean
--- @param showFullMap boolean
function HUD.SET_BIGMAP_ACTIVE(toggleBigMap, showFullMap) end
--- Full list of components below
--- 
--- HUD = 0;
--- HUD_WANTED_STARS = 1;
--- HUD_WEAPON_ICON = 2;
--- HUD_CASH = 3;
--- HUD_MP_CASH = 4;
--- HUD_MP_MESSAGE = 5;
--- HUD_VEHICLE_NAME = 6;
--- HUD_AREA_NAME = 7;
--- HUD_VEHICLE_CLASS = 8;
--- HUD_STREET_NAME = 9;
--- HUD_HELP_TEXT = 10;
--- HUD_FLOATING_HELP_TEXT_1 = 11;
--- HUD_FLOATING_HELP_TEXT_2 = 12;
--- HUD_CASH_CHANGE = 13;
--- HUD_RETICLE = 14;
--- HUD_SUBTITLE_TEXT = 15;
--- HUD_RADIO_STATIONS = 16;
--- HUD_SAVING_GAME = 17;
--- HUD_GAME_STREAM = 18;
--- HUD_WEAPON_WHEEL = 19;
--- HUD_WEAPON_WHEEL_STATS = 20;
--- MAX_HUD_COMPONENTS = 21;
--- MAX_HUD_WEAPONS = 22;
--- MAX_SCRIPTED_HUD_COMPONENTS = 141;
--- @param id number
--- @return boolean
function HUD.IS_HUD_COMPONENT_ACTIVE(id) end
--- @param id number
--- @return boolean
function HUD.IS_SCRIPTED_HUD_COMPONENT_ACTIVE(id) end
--- @param id number
function HUD.HIDE_SCRIPTED_HUD_COMPONENT_THIS_FRAME(id) end
--- @param id number
function HUD.SHOW_SCRIPTED_HUD_COMPONENT_THIS_FRAME(id) end
--- @param id number
--- @return boolean
function HUD.IS_SCRIPTED_HUD_COMPONENT_HIDDEN_THIS_FRAME(id) end
--- This function hides various HUD (Heads-up Display) components.
--- Listed below are the integers and the corresponding HUD component.
--- - 1 : WANTED_STARS
--- - 2 : WEAPON_ICON
--- - 3 : CASH
--- - 4 : MP_CASH
--- - 5 : MP_MESSAGE
--- - 6 : VEHICLE_NAME
--- - 7 : AREA_NAME
--- - 8 : VEHICLE_CLASS
--- - 9 : STREET_NAME
--- - 10 : HELP_TEXT
--- - 11 : FLOATING_HELP_TEXT_1
--- - 12 : FLOATING_HELP_TEXT_2
--- - 13 : CASH_CHANGE
--- - 14 : RETICLE
--- - 15 : SUBTITLE_TEXT
--- - 16 : RADIO_STATIONS
--- - 17 : SAVING_GAME
--- - 18 : GAME_STREAM
--- - 19 : WEAPON_WHEEL
--- - 20 : WEAPON_WHEEL_STATS
--- - 21 : HUD_COMPONENTS
--- - 22 : HUD_WEAPONS
--- 
--- These integers also work for the `SHOW_HUD_COMPONENT_THIS_FRAME` native, but instead shows the HUD Component.
--- @param id number
function HUD.HIDE_HUD_COMPONENT_THIS_FRAME(id) end
--- This function hides various HUD (Heads-up Display) components.
--- Listed below are the integers and the corresponding HUD component.
--- - 1 : WANTED_STARS
--- - 2 : WEAPON_ICON
--- - 3 : CASH
--- - 4 : MP_CASH
--- - 5 : MP_MESSAGE
--- - 6 : VEHICLE_NAME
--- - 7 : AREA_NAME
--- - 8 : VEHICLE_CLASS
--- - 9 : STREET_NAME
--- - 10 : HELP_TEXT
--- - 11 : FLOATING_HELP_TEXT_1
--- - 12 : FLOATING_HELP_TEXT_2
--- - 13 : CASH_CHANGE
--- - 14 : RETICLE
--- - 15 : SUBTITLE_TEXT
--- - 16 : RADIO_STATIONS
--- - 17 : SAVING_GAME
--- - 18 : GAME_STREAM
--- - 19 : WEAPON_WHEEL
--- - 20 : WEAPON_WHEEL_STATS
--- - 21 : HUD_COMPONENTS
--- - 22 : HUD_WEAPONS
--- 
--- These integers also work for the `HIDE_HUD_COMPONENT_THIS_FRAME` native, but instead hides the HUD Component.
--- @param id number
function HUD.SHOW_HUD_COMPONENT_THIS_FRAME(id) end
--- Hides area and vehicle name HUD components for one frame.
function HUD.HIDE_STREET_AND_CAR_NAMES_THIS_FRAME() end
function HUD.RESET_RETICULE_VALUES() end
--- @param id number
function HUD.RESET_HUD_COMPONENT_VALUES(id) end
--- @param id number
--- @param x number
--- @param y number
function HUD.SET_HUD_COMPONENT_POSITION(id, x, y) end
--- @param id number
--- @return { x: number, y: number, z: number }
function HUD.GET_HUD_COMPONENT_POSITION(id) end
--- This native does absolutely nothing, just a nullsub
function HUD.CLEAR_REMINDER_MESSAGE() end
--- World to relative screen coords, this world to screen will keep the text on screen. Was named _GET_SCREEN_COORD_FROM_WORLD_COORD, but this conflicts with 0x34E82F05DF2974F5. As that hash actually matches GET_SCREEN_COORD_FROM_WORLD_COORD that one supercedes and this one was renamed to _GET_2D_COORD_FROM_3D_COORD
--- @param worldX number
--- @param worldY number
--- @param worldZ number
--- @param screenX any
--- @param screenY any
--- @return number
function HUD.GET_HUD_SCREEN_POSITION_FROM_WORLD_POSITION(worldX, worldY, worldZ, screenX, screenY) end
--- Shows a menu for reporting UGC content.
function HUD.OPEN_REPORTUGC_MENU() end
function HUD.FORCE_CLOSE_REPORTUGC_MENU() end
--- @return boolean
function HUD.IS_REPORTUGC_MENU_OPEN() end
--- @param hudIndex number
--- @return boolean
function HUD.IS_FLOATING_HELP_TEXT_ON_SCREEN(hudIndex) end
--- @param hudIndex number
--- @param x number
--- @param y number
function HUD.SET_FLOATING_HELP_TEXT_SCREEN_POSITION(hudIndex, x, y) end
--- @param hudIndex number
--- @param x number
--- @param y number
--- @param z number
function HUD.SET_FLOATING_HELP_TEXT_WORLD_POSITION(hudIndex, x, y, z) end
--- @param hudIndex number
--- @param entity number
--- @param offsetX number
--- @param offsetY number
function HUD.SET_FLOATING_HELP_TEXT_TO_ENTITY(hudIndex, entity, offsetX, offsetY) end
--- @param hudIndex number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function HUD.SET_FLOATING_HELP_TEXT_STYLE(hudIndex, p1, p2, p3, p4, p5) end
--- @param hudIndex number
--- @param p1 boolean
function HUD.CLEAR_FLOATING_HELP(hudIndex, p1) end
--- clanFlag: takes a number 0-5
--- @param player number
--- @param username string
--- @param pointedClanTag boolean
--- @param isRockstarClan boolean
--- @param clanTag string
--- @param clanFlag number
--- @param r number
--- @param g number
--- @param b number
function HUD.CREATE_MP_GAMER_TAG_WITH_CREW_COLOR(player, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, r, g, b) end
--- @return boolean
function HUD.IS_MP_GAMER_TAG_MOVIE_ACTIVE() end
--- clanFlag: takes a number 0-5
--- @param ped number
--- @param username string
--- @param pointedClanTag boolean
--- @param isRockstarClan boolean
--- @param clanTag string
--- @param clanFlag number
--- @return number
function HUD.CREATE_FAKE_MP_GAMER_TAG(ped, username, pointedClanTag, isRockstarClan, clanTag, clanFlag) end
--- @param gamerTagId number
function HUD.REMOVE_MP_GAMER_TAG(gamerTagId) end
--- @param gamerTagId number
--- @return boolean
function HUD.IS_MP_GAMER_TAG_ACTIVE(gamerTagId) end
--- @param gamerTagId number
--- @return boolean
function HUD.IS_MP_GAMER_TAG_FREE(gamerTagId) end
--- enum eMpGamerTagComponent
--- {
--- MP_TAG_GAMER_NAME,
--- MP_TAG_CREW_TAG,
--- MP_TAG_HEALTH_ARMOUR,
--- MP_TAG_BIG_TEXT,
--- MP_TAG_AUDIO_ICON,
--- MP_TAG_USING_MENU,
--- MP_TAG_PASSIVE_MODE,
--- MP_TAG_WANTED_STARS,
--- MP_TAG_DRIVER,
--- MP_TAG_CO_DRIVER,
--- MP_TAG_TAGGED,
--- MP_TAG_GAMER_NAME_NEARBY,
--- MP_TAG_ARROW,
--- MP_TAG_PACKAGES,
--- MP_TAG_INV_IF_PED_FOLLOWING,
--- MP_TAG_RANK_TEXT,
--- MP_TAG_TYPING,
--- MP_TAG_BAG_LARGE,
--- MP_TAG_ARROW,
--- MP_TAG_GANG_CEO,
--- MP_TAG_GANG_BIKER,
--- MP_TAG_BIKER_ARROW,
--- MP_TAG_MC_ROLE_PRESIDENT,
--- MP_TAG_MC_ROLE_VICE_PRESIDENT,
--- MP_TAG_MC_ROLE_ROAD_CAPTAIN,
--- MP_TAG_MC_ROLE_SARGEANT,
--- MP_TAG_MC_ROLE_ENFORCER,
--- MP_TAG_MC_ROLE_PROSPECT,
--- MP_TAG_TRANSMITTER,
--- MP_TAG_BOMB
--- };
--- @param gamerTagId number
--- @param component number
--- @param toggle boolean
--- @param p3 number
function HUD.SET_MP_GAMER_TAG_VISIBILITY(gamerTagId, component, toggle, p3) end
--- @param gamerTagId number
--- @param toggle boolean
function HUD.SET_ALL_MP_GAMER_TAGS_VISIBILITY(gamerTagId, toggle) end
--- Displays a bunch of icons above the players name, and level, and their name twice
--- @param gamerTagId number
--- @param toggle boolean
function HUD.SET_MP_GAMER_TAGS_SHOULD_USE_VEHICLE_HEALTH(gamerTagId, toggle) end
--- @param gamerTagId number
--- @param toggle boolean
function HUD.SET_MP_GAMER_TAGS_SHOULD_USE_POINTS_HEALTH(gamerTagId, toggle) end
--- @param gamerTagId number
--- @param value number
--- @param maximumValue number
function HUD.SET_MP_GAMER_TAGS_POINT_HEALTH(gamerTagId, value, maximumValue) end
--- Sets a gamer tag's component colour
--- 
--- gamerTagId is obtained using for example CREATE_FAKE_MP_GAMER_TAG
--- Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple.
--- @param gamerTagId number
--- @param component number
--- @param hudColorIndex number
function HUD.SET_MP_GAMER_TAG_COLOUR(gamerTagId, component, hudColorIndex) end
--- Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple.
--- Should be enabled as flag (2). Has 0 opacity by default.
--- 
--- - This was _SET_MP_GAMER_TAG_HEALTH_BAR_COLOR,
--- -> Rockstar use the EU spelling of 'color' so I hashed the same name with COLOUR and it came back as the correct hash, so it has been corrected above.
--- @param gamerTagId number
--- @param hudColorIndex number
function HUD.SET_MP_GAMER_TAG_HEALTH_BAR_COLOUR(gamerTagId, hudColorIndex) end
--- Sets flag's sprite transparency. 0-255.
--- @param gamerTagId number
--- @param component number
--- @param alpha number
function HUD.SET_MP_GAMER_TAG_ALPHA(gamerTagId, component, alpha) end
--- displays wanted star above head
--- @param gamerTagId number
--- @param wantedlvl number
function HUD.SET_MP_GAMER_TAG_WANTED_LEVEL(gamerTagId, wantedlvl) end
--- @param gamerTagId number
--- @param p1 number
function HUD.SET_MP_GAMER_TAG_NUM_PACKAGES(gamerTagId, p1) end
--- @param gamerTagId number
--- @param string string
function HUD.SET_MP_GAMER_TAG_NAME(gamerTagId, string) end
--- @param gamerTagId number
--- @return boolean
function HUD.IS_UPDATING_MP_GAMER_TAG_NAME_AND_CREW_DETAILS(gamerTagId) end
--- @param gamerTagId number
--- @param string string
function HUD.SET_MP_GAMER_TAG_BIG_TEXT(gamerTagId, string) end
--- @return number
function HUD.GET_CURRENT_WEBPAGE_ID() end
--- @return number
function HUD.GET_CURRENT_WEBSITE_ID() end
--- Returns the ActionScript flagValue.
--- ActionScript flags are global flags that scaleforms use
--- Flags found during testing
--- 0: Returns 1 if the web_browser keyboard is open, otherwise 0
--- 1: Returns 1 if the player has clicked back twice on the opening page, otherwise 0 (web_browser)
--- 2: Returns how many links the player has clicked in the web_browser scaleform, returns 0 when the browser gets closed
--- 9: Returns the current selection on the mobile phone scaleform
--- 
--- There are 20 flags in total.
--- @param flagIndex number
--- @return number
function HUD.GET_GLOBAL_ACTIONSCRIPT_FLAG(flagIndex) end
--- @param flagIndex number
function HUD.RESET_GLOBAL_ACTIONSCRIPT_FLAG(flagIndex) end
--- @return boolean
function HUD.IS_WARNING_MESSAGE_READY_FOR_CONTROL() end
--- You can only use text entries. No custom text.
--- 
--- Example: SET_WARNING_MESSAGE("t20", 3, "adder", false, -1, 0, 0, true);
--- errorCode: shows an error code at the bottom left if nonzero
--- @param titleMsg string
--- @param flags number
--- @param promptMsg string
--- @param p3 boolean
--- @param p4 number
--- @param p5 string
--- @param p6 string
--- @param showBackground boolean
--- @param errorCode number
function HUD.SET_WARNING_MESSAGE(titleMsg, flags, promptMsg, p3, p4, p5, p6, showBackground, errorCode) end
--- Shows a warning message on screen with a header.
--- Note: You can only use text entries. No custom text. You can recreate this easily with scaleforms.
--- Example: https://i.imgur.com/ITJt8bJ.png
--- @param entryHeader string
--- @param entryLine1 string
--- @param instructionalKey number
--- @param entryLine2 string
--- @param p4 boolean
--- @param p5 number
--- @param showBackground number
--- @param p7 number
--- @param p8 boolean
--- @param p9 number
function HUD.SET_WARNING_MESSAGE_WITH_HEADER(entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, showBackground, p7, p8, p9) end
--- You can use this native for custom input, without having to use any scaleform-related natives.
--- The native must be called on tick.
--- The entryHeader must be a valid label.
--- For Single lines use JL_INVITE_N as entryLine1, JL_INVITE_ND for multiple.
--- Notes:
--- - additionalIntInfo: replaces first occurrence of ~1~ in provided label with an integer
--- - additionalTextInfoLine1: replaces first occurrence of ~a~ in provided label, with your custom text
--- - additionalTextInfoLine2: replaces second occurrence of ~a~ in provided label, with your custom text
--- - showBackground: shows black background of the warning screen
--- - errorCode: shows an error code at the bottom left if nonzero
--- Example of usage:
--- SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS("ALERT", "JL_INVITE_ND", 66, "", true, -1, -1, "Testing line 1", "Testing line 2", true, 0);
--- Screenshot:
--- https://imgur.com/a/IYA7vJ8
--- @param entryHeader string
--- @param entryLine1 string
--- @param instructionalKey number
--- @param entryLine2 string
--- @param p4 boolean
--- @param p5 number
--- @param additionalIntInfo number
--- @param additionalTextInfoLine1 string
--- @param additionalTextInfoLine2 string
--- @param showBackground boolean
--- @param errorCode number
function HUD.SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS(entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, additionalIntInfo, additionalTextInfoLine1, additionalTextInfoLine2, showBackground, errorCode) end
--- @param entryHeader string
--- @param entryLine1 string
--- @param flags number
--- @param entryLine2 string
--- @param p4 boolean
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param showBg boolean
--- @param p9 number
--- @param p10 number
function HUD.SET_WARNING_MESSAGE_WITH_HEADER_EXTENDED(entryHeader, entryLine1, flags, entryLine2, p4, p5, p6, p7, showBg, p9, p10) end
--- labelTitle: Label of the alert's title.
--- labelMsg: Label of the alert's message.
--- p2: This is an enum, check the description for a list.
--- p3: This is an enum, check the description for a list.
--- labelMsg2: Label of another message line
--- p5: usually 0
--- p6: usually -1
--- p7: usually 0
--- p8: unknown label
--- p9: unknown label
--- background: Set to anything other than 0 or false (even any string) and it will draw a background. Setting it to 0 or false will draw no background.
--- errorCode: Error code, shown at the bottom left if set to value other than 0.
--- 
--- instructionalKey enum list:
--- Buttons = {
--- Empty = 0,
--- Select = 1, -- (RETURN)
--- Ok = 2, -- (RETURN)
--- Yes = 4, -- (RETURN)
--- Back = 8, -- (ESC)
--- Cancel = 16, -- (ESC)
--- No = 32, -- (ESC)
--- RetrySpace = 64, -- (SPACE)
--- Restart = 128, -- (SPACE)
--- Skip = 256, -- (SPACE)
--- Quit = 512, -- (ESC)
--- Adjust = 1024, -- (ARROWS)
--- SpaceKey = 2048, -- (SPACE)
--- Share = 4096, -- (SPACE)
--- SignIn = 8192, -- (SPACE)
--- Continue = 16384, -- (RETURN)
--- AdjustLeftRight = 32768, -- (SCROLL L/R)
--- AdjustUpDown = 65536, -- (SCROLL U/D)
--- Overwrite = 131072, -- (SPACE)
--- SocialClubSignup = 262144, -- (RETURN)
--- Confirm = 524288, -- (RETURN)
--- Queue = 1048576, -- (RETURN)
--- RetryReturn = 2097152, -- (RETURN)
--- BackEsc = 4194304, -- (ESC)
--- SocialClub = 8388608, -- (RETURN)
--- Spectate = 16777216, -- (SPACE)
--- OkEsc = 33554432, -- (ESC)
--- CancelTransfer = 67108864, -- (ESC)
--- LoadingSpinner = 134217728,
--- NoReturnToGTA = 268435456, -- (ESC)
--- CancelEsc = 536870912, -- (ESC)
--- }
--- 
--- Alt = {
--- Empty = 0,
--- No = 1, -- (SPACE)
--- Host = 2, -- (ESC)
--- SearchForJob = 4, -- (RETURN)
--- ReturnKey = 8, -- (TURN)
--- Freemode = 16, -- (ESC)
--- }
--- 
--- Example: https://i.imgur.com/TvmNF4k.png
--- @param labelTitle string
--- @param labelMessage string
--- @param p2 number
--- @param p3 number
--- @param labelMessage2 string
--- @param p5 boolean
--- @param p6 number
--- @param p7 number
--- @param p8 string
--- @param p9 string
--- @param background boolean
--- @param errorCode number
function HUD.SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS_EXTENDED(labelTitle, labelMessage, p2, p3, labelMessage2, p5, p6, p7, p8, p9, background, errorCode) end
--- Has to do with the confirmation overlay (E.g. confirm exit)
--- @return number
function HUD.GET_WARNING_SCREEN_MESSAGE_HASH() end
--- Some sort of list displayed in a warning message. Yet unknown how to prevent repeating.
--- Param names copied from the corresponding scaleform function "SET_LIST_ROW".
--- Example: https://i.imgur.com/arKvOYx.png
--- @param index number
--- @param name string
--- @param cash number
--- @param rp number
--- @param lvl number
--- @param colour number
--- @return boolean
function HUD.SET_WARNING_MESSAGE_OPTION_ITEMS(index, name, cash, rp, lvl, colour) end
--- @param p0 number
--- @return boolean
function HUD.SET_WARNING_MESSAGE_OPTION_HIGHLIGHT(p0) end
function HUD.REMOVE_WARNING_MESSAGE_OPTION_ITEMS() end
--- @return boolean
function HUD.IS_WARNING_MESSAGE_ACTIVE() end
function HUD.CLEAR_DYNAMIC_PAUSE_MENU_ERROR_MESSAGE() end
--- If toggle is true, the map is shown in full screen
--- If toggle is false, the map is shown in normal mode
--- @param toggle boolean
function HUD.CUSTOM_MINIMAP_SET_ACTIVE(toggle) end
--- Sets the sprite of the next BLIP_GALLERY blip, values used in the native scripts: 143 (ObjectiveBlue), 144 (ObjectiveGreen), 145 (ObjectiveRed), 146 (ObjectiveYellow).
--- @param spriteId number
function HUD.CUSTOM_MINIMAP_SET_BLIP_OBJECT(spriteId) end
--- Add a BLIP_GALLERY at the specific coordinate. Used in fm_maintain_transition_players to display race track points.
--- @param x number
--- @param y number
--- @param z number
--- @return number
function HUD.CUSTOM_MINIMAP_CREATE_BLIP(x, y, z) end
function HUD.CUSTOM_MINIMAP_CLEAR_BLIPS() end
--- Doesn't actually return anything.
--- @return boolean
function HUD.FORCE_SONAR_BLIPS_THIS_FRAME() end
--- @return number
function HUD.GET_NORTH_BLID_INDEX() end
--- Toggles whether or not name labels are shown on the expanded minimap next to player blips, like in GTA:O.
--- Doesn't need to be called every frame.
--- Preview: https://i.imgur.com/DfqKWfJ.png
--- 
--- Make sure to call SET_BLIP_CATEGORY with index 7 for this to work on the desired blip.
--- @param toggle boolean
function HUD.DISPLAY_PLAYER_NAME_TAGS_ON_BLIPS(toggle) end
--- This native does absolutely nothing, just a nullsub
function HUD.DRAW_FRONTEND_BACKGROUND_THIS_FRAME() end
function HUD.DRAW_HUD_OVER_FADE_THIS_FRAME() end
--- Does stuff like this:
--- gyazo.com/7fcb78ea3520e3dbc5b2c0c0f3712617
--- 
--- Example:
--- int GetHash = GET_HASH_KEY("fe_menu_version_corona_lobby");
--- ACTIVATE_FRONTEND_MENU(GetHash, 0, -1);
--- 
--- BOOL p1 is a toggle to define the game in pause.
--- int p2 is unknown but -1 always works, not sure why though.
--- 
--- [30/03/2017] ins1de :
--- 
--- the int p2 is actually a component variable. When the pause menu is visible, it opens the tab related to it.
--- 
--- Example : Function.Call(Hash.ACTIVATE_FRONTEND_MENU,-1171018317, 0, 42);
--- Result : Opens the "Online" tab without pausing the menu, with -1 it opens the map.Below is a list of all known Frontend Menu Hashes.
--- - FE_MENU_VERSION_SP_PAUSE
--- - FE_MENU_VERSION_MP_PAUSE
--- - FE_MENU_VERSION_CREATOR_PAUSE
--- - FE_MENU_VERSION_CUTSCENE_PAUSE
--- - FE_MENU_VERSION_SAVEGAME
--- - FE_MENU_VERSION_PRE_LOBBY
--- - FE_MENU_VERSION_LOBBY
--- - FE_MENU_VERSION_MP_CHARACTER_SELECT
--- - FE_MENU_VERSION_MP_CHARACTER_CREATION
--- - FE_MENU_VERSION_EMPTY
--- - FE_MENU_VERSION_EMPTY_NO_BACKGROUND
--- - FE_MENU_VERSION_TEXT_SELECTION
--- - FE_MENU_VERSION_CORONA
--- - FE_MENU_VERSION_CORONA_LOBBY
--- - FE_MENU_VERSION_CORONA_JOINED_PLAYERS
--- - FE_MENU_VERSION_CORONA_INVITE_PLAYERS
--- - FE_MENU_VERSION_CORONA_INVITE_FRIENDS
--- - FE_MENU_VERSION_CORONA_INVITE_CREWS
--- - FE_MENU_VERSION_CORONA_INVITE_MATCHED_PLAYERS
--- - FE_MENU_VERSION_CORONA_INVITE_LAST_JOB_PLAYERS
--- - FE_MENU_VERSION_CORONA_RACE
--- - FE_MENU_VERSION_CORONA_BETTING
--- - FE_MENU_VERSION_JOINING_SCREEN
--- - FE_MENU_VERSION_LANDING_MENU
--- - FE_MENU_VERSION_LANDING_KEYMAPPING_MENU
--- @param menuhash number
--- @param togglePause boolean
--- @param component number
function HUD.ACTIVATE_FRONTEND_MENU(menuhash, togglePause, component) end
--- Before using this native click the native above and look at the decription.
--- 
--- Example:
--- int GetHash = Function.Call<int>(Hash.GET_HASH_KEY, "fe_menu_version_corona_lobby");
--- Function.Call(Hash.ACTIVATE_FRONTEND_MENU, GetHash, 0, -1);
--- Function.Call(Hash.RESTART_FRONTEND_MENU(GetHash, -1);
--- 
--- This native refreshes the frontend menu.
--- 
--- p1 = Hash of Menu
--- p2 = Unknown but always works with -1.
--- @param menuHash number
--- @param p1 number
function HUD.RESTART_FRONTEND_MENU(menuHash, p1) end
--- if (HUD::GET_CURRENT_FRONTEND_MENU_VERSION() == joaat("fe_menu_version_empty_no_background"))
--- @return number
function HUD.GET_CURRENT_FRONTEND_MENU_VERSION() end
--- @param toggle boolean
function HUD.SET_PAUSE_MENU_ACTIVE(toggle) end
function HUD.DISABLE_FRONTEND_THIS_FRAME() end
function HUD.SUPPRESS_FRONTEND_RENDERING_THIS_FRAME() end
--- Allows opening the pause menu this frame, when the player is dead.
function HUD.ALLOW_PAUSE_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME() end
--- @param active boolean
function HUD.SET_FRONTEND_ACTIVE(active) end
--- @return boolean
function HUD.IS_PAUSE_MENU_ACTIVE() end
--- @return boolean
function HUD.IS_STORE_PENDING_NETWORK_SHUTDOWN_TO_OPEN() end
--- Returns:
--- 
--- 0
--- 5
--- 10
--- 15
--- 20
--- 25
--- 30
--- 35
--- 
--- @return number
function HUD.GET_PAUSE_MENU_STATE() end
--- @return { x: number, y: number, z: number }
function HUD.GET_PAUSE_MENU_POSITION() end
--- @return boolean
function HUD.IS_PAUSE_MENU_RESTARTING() end
--- Not present in retail version of the game, actual definiton seems to be
--- _LOG_DEBUG_INFO(const char* category, const char* debugText);
--- @param p0 string
function HUD.FORCE_SCRIPTED_GFX_WHEN_FRONTEND_ACTIVE(p0) end
--- @param page number
function HUD.PAUSE_MENUCEPTION_GO_DEEPER(page) end
function HUD.PAUSE_MENUCEPTION_THE_KICK() end
--- @param p0 number
function HUD.PAUSE_TOGGLE_FULLSCREEN_MAP(p0) end
--- Activates the specified frontend menu context.
--- pausemenu.xml defines some specific menu options using 'context'. Context is basically a 'condition'.
--- The `*ALL*` part of the context means that whatever is being defined, will be active when any or all of those conditions after `*ALL*` are met.
--- The `*NONE*` part of the context section means that whatever is being defined, will NOT be active if any or all of the conditions after `*NONE*` are met.
--- This basically allows you to hide certain menu sections, or things like instructional buttons.
--- @param contextHash number
function HUD.PAUSE_MENU_ACTIVATE_CONTEXT(contextHash) end
--- @param contextHash number
function HUD.PAUSE_MENU_DEACTIVATE_CONTEXT(contextHash) end
--- @param contextHash number
--- @return boolean
function HUD.PAUSE_MENU_IS_CONTEXT_ACTIVE(contextHash) end
--- @return boolean
function HUD.PAUSE_MENU_IS_CONTEXT_MENU_ACTIVE() end
--- @return number
function HUD.PAUSE_MENU_GET_HAIR_COLOUR_INDEX() end
--- @return number
function HUD.PAUSE_MENU_GET_MOUSE_HOVER_INDEX() end
--- @return number
function HUD.PAUSE_MENU_GET_MOUSE_HOVER_UNIQUE_ID() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function HUD.PAUSE_MENU_GET_MOUSE_CLICK_EVENT(p0, p1, p2) end
--- @param p0 number
function HUD.PAUSE_MENU_REDRAW_INSTRUCTIONAL_BUTTONS(p0) end
--- @param p0 boolean
--- @param position number
--- @param spinnerIndex number
function HUD.PAUSE_MENU_SET_BUSY_SPINNER(p0, position, spinnerIndex) end
--- @param p0 boolean
function HUD.PAUSE_MENU_SET_WARN_ON_TAB_CHANGE(p0) end
--- @return boolean
function HUD.IS_FRONTEND_READY_FOR_CONTROL() end
--- Disables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard. Not sure about controller. Does not disable mouse controls. No need to call this every tick.
--- 
--- To enable the keys again, use `0x14621BB1DF14E2B2`.
function HUD.TAKE_CONTROL_OF_FRONTEND() end
--- Enables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard if they were disabled using the native below.
--- To disable the keys, use `0xEC9264727EEC0F28`
function HUD.RELEASE_CONTROL_OF_FRONTEND() end
--- @return boolean
function HUD.CODE_WANTS_SCRIPT_TO_TAKE_CONTROL() end
--- @return number
function HUD.GET_SCREEN_CODE_WANTS_SCRIPT_TO_CONTROL() end
--- @return boolean
function HUD.IS_NAVIGATING_MENU_CONTENT() end
--- @return boolean
function HUD.HAS_MENU_TRIGGER_EVENT_OCCURRED() end
--- @return boolean
function HUD.HAS_MENU_LAYOUT_CHANGED_EVENT_OCCURRED() end
--- @param p0 number
function HUD.SET_SAVEGAME_LIST_UNIQUE_ID(p0) end
--- @param lastItemMenuId any
--- @param selectedItemUniqueId any
function HUD.GET_MENU_TRIGGER_EVENT_DETAILS(lastItemMenuId, selectedItemUniqueId) end
--- lastItemMenuId: this is the menuID of the last selected item minus 1000 (lastItem.menuID - 1000)
--- selectedItemMenuId: same as lastItemMenuId except for the currently selected menu item
--- selectedItemUniqueId: this is uniqueID of the currently selected menu item
--- 
--- when the pausemenu is closed:
--- lastItemMenuId = -1
--- selectedItemMenuId = -1
--- selectedItemUniqueId = 0
--- 
--- when the header gains focus:
--- lastItemMenuId updates as normal or 0 if the pausemenu was just opened
--- selectedItemMenuId becomes a unique id for the pausemenu page that focus was taken from (?) or 0 if the pausemenu was just opened
--- selectedItemUniqueId = -1
--- 
--- when focus is moved from the header to a pausemenu page:
--- lastItemMenuId becomes a unique id for the pausemenu page that focus was moved to (?)
--- selectedItemMenuId = -1
--- selectedItemUniqueId updates as normal
--- @param lastItemMenuId any
--- @param selectedItemMenuId any
--- @param selectedItemUniqueId any
function HUD.GET_MENU_LAYOUT_CHANGED_EVENT_DETAILS(lastItemMenuId, selectedItemMenuId, selectedItemUniqueId) end
--- @param r any
--- @param g any
--- @param b any
--- @return boolean
function HUD.GET_PM_PLAYER_CREW_COLOR(r, g, b) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function HUD.GET_MENU_PED_INT_STAT(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function HUD.GET_CHARACTER_MENU_PED_INT_STAT(p0, p1, p2) end
--- @param statHash number
--- @param outValue any
--- @param mask number
--- @param p3 boolean
--- @return boolean
function HUD.GET_MENU_PED_MASKED_INT_STAT(statHash, outValue, mask, p3) end
--- @param statHash number
--- @param outValue number
--- @param p2 number
--- @param mask number
--- @param p4 boolean
--- @return boolean
function HUD.GET_CHARACTER_MENU_PED_MASKED_INT_STAT(statHash, outValue, p2, mask, p4) end
--- @param statHash number
--- @param outValue any
--- @return boolean
function HUD.GET_MENU_PED_FLOAT_STAT(statHash, outValue) end
--- @param statHash number
--- @param outValue any
--- @param p2 boolean
--- @return boolean
function HUD.GET_CHARACTER_MENU_PED_FLOAT_STAT(statHash, outValue, p2) end
--- p0 was always 0xAE2602A3.
--- @param statHash number
--- @param outValue any
--- @return boolean
function HUD.GET_MENU_PED_BOOL_STAT(statHash, outValue) end
function HUD.CLEAR_PED_IN_PAUSE_MENU() end
--- p1 is either 1 or 2 in the PC scripts.
--- @param ped number
--- @param p1 number
function HUD.GIVE_PED_TO_PAUSE_MENU(ped, p1) end
--- Toggles the light state for the pause menu ped in frontend menus.
--- 
--- This is used by R* in combination with `SET_PAUSE_MENU_PED_SLEEP_STATE` to toggle the "offline" or "online" state in the "friends" tab of the pause menu in GTA Online.
--- 
--- 
--- Example:
--- Lights On: https://vespura.com/hi/i/2019-04-01_16-09_540ee_1015.png
--- Lights Off: https://vespura.com/hi/i/2019-04-01_16-10_8b5e7_1016.png
--- @param state boolean
function HUD.SET_PAUSE_MENU_PED_LIGHTING(state) end
--- Toggles the pause menu ped sleep state for frontend menus.
--- 
--- Example: https://vespura.com/hi/i/2019-04-01_15-51_8ed38_1014.gif
--- 
--- `state` 0 will make the ped slowly fall asleep, 1 will slowly wake the ped up.
--- @param state boolean
function HUD.SET_PAUSE_MENU_PED_SLEEP_STATE(state) end
function HUD.OPEN_ONLINE_POLICIES_MENU() end
--- @return boolean
function HUD.ARE_ONLINE_POLICIES_UP_TO_DATE() end
--- Returns the same as IS_SOCIAL_CLUB_ACTIVE
--- @return boolean
function HUD.IS_ONLINE_POLICIES_MENU_ACTIVE() end
--- Uses the `SOCIAL_CLUB2` scaleform.
--- menu: GALLERY, MISSIONS, CREWS, MIGRATE, PLAYLISTS, JOBS
--- @param menu number
function HUD.OPEN_SOCIAL_CLUB_MENU(menu) end
function HUD.CLOSE_SOCIAL_CLUB_MENU() end
--- HUD::SET_SOCIAL_CLUB_TOUR("Gallery");
--- HUD::SET_SOCIAL_CLUB_TOUR("Missions");
--- HUD::SET_SOCIAL_CLUB_TOUR("General");
--- HUD::SET_SOCIAL_CLUB_TOUR("Playlists");
--- @param name string
function HUD.SET_SOCIAL_CLUB_TOUR(name) end
--- @return boolean
function HUD.IS_SOCIAL_CLUB_ACTIVE() end
--- @param p0 boolean
function HUD.SET_TEXT_INPUT_BOX_ENABLED(p0) end
function HUD.FORCE_CLOSE_TEXT_INPUT_BOX() end
--- @param p0 number
function HUD.SET_ALLOW_COMMA_ON_TEXT_INPUT(p0) end
--- @param gxtEntryHash number
function HUD.OVERRIDE_MP_TEXT_CHAT_TEAM_STRING(gxtEntryHash) end
--- Returns whether or not the text chat (MULTIPLAYER_CHAT Scaleform component) is active.
--- @return boolean
function HUD.IS_MP_TEXT_CHAT_TYPING() end
function HUD.CLOSE_MP_TEXT_CHAT() end
--- @param p0 number
function HUD.MP_TEXT_CHAT_IS_TEAM_JOB(p0) end
--- @param p0 number
--- @param hudColor number
function HUD.OVERRIDE_MP_TEXT_CHAT_COLOR(p0, hudColor) end
--- Hides the chat history, closes the input box and makes it unable to be opened unless called again with FALSE.
--- @param toggle boolean
function HUD.MP_TEXT_CHAT_DISABLE(toggle) end
--- @param toggle boolean
function HUD.FLAG_PLAYER_CONTEXT_IN_TOURNAMENT(toggle) end
--- This native turns on the AI blip on the specified ped. It also disappears automatically when the ped is too far or if the ped is dead. You don't need to control it with other natives.
--- 
--- See gtaforums.com/topic/884370-native-research-ai-blips for further information.
--- @param ped number
--- @param hasCone boolean
function HUD.SET_PED_HAS_AI_BLIP(ped, hasCone) end
--- color: see SET_BLIP_COLOUR
--- @param ped number
--- @param hasCone boolean
--- @param color number
function HUD.SET_PED_HAS_AI_BLIP_WITH_COLOUR(ped, hasCone, color) end
--- @param ped number
--- @return boolean
function HUD.DOES_PED_HAVE_AI_BLIP(ped) end
--- @param ped number
--- @param gangId number
function HUD.SET_PED_AI_BLIP_GANG_ID(ped, gangId) end
--- @param ped number
--- @param toggle boolean
function HUD.SET_PED_AI_BLIP_HAS_CONE(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function HUD.SET_PED_AI_BLIP_FORCED_ON(ped, toggle) end
--- @param ped number
--- @param range number
function HUD.SET_PED_AI_BLIP_NOTICE_RANGE(ped, range) end
--- @param ped number
--- @param spriteId number
function HUD.SET_PED_AI_BLIP_SPRITE(ped, spriteId) end
--- @param ped number
--- @return number
function HUD.GET_AI_PED_PED_BLIP_INDEX(ped) end
--- Returns the current AI BLIP for the specified ped
--- @param ped number
--- @return number
function HUD.GET_AI_PED_VEHICLE_BLIP_INDEX(ped) end
--- @return boolean
function HUD.HAS_DIRECTOR_MODE_BEEN_LAUNCHED_BY_CODE() end
function HUD.SET_DIRECTOR_MODE_LAUNCHED_BY_SCRIPT() end
--- If toggle is true, hides special ability bar / character name in the pause menu
--- If toggle is false, shows special ability bar / character name in the pause menu
--- @param toggle boolean
function HUD.SET_PLAYER_IS_IN_DIRECTOR_MODE(toggle) end
--- @param toggle boolean
function HUD.SET_DIRECTOR_MODE_AVAILABLE(toggle) end
function HUD.HIDE_HUDMARKERS_THIS_FRAME() end

INTERIOR = {}

--- @param interior number
--- @return number
function INTERIOR.GET_INTERIOR_HEADING(interior) end
--- @param interior number
--- @param position number
--- @param nameHash any
function INTERIOR.GET_INTERIOR_LOCATION_AND_NAMEHASH(interior, position, nameHash) end
--- Returns the group ID of the specified interior.
--- 0 = default
--- 1 = subway station, subway tracks, sewers
--- 3 = train tunnel under mirror park
--- 5 = tunnel near del perro
--- 6 = train tunnel near chilliad
--- 7 = train tunnel near josiah
--- 8 = train tunnel in sandy shores
--- 9 = braddock tunnel (near chilliad)
--- 12 = tunnel under fort zancudo
--- 14 = train tunnel under cypress flats
--- 18 = rockford plaza parking garage
--- 19 = arcadius parking garage
--- 20 = union depository parking garage
--- 21 = fib parking garage
--- @param interior number
--- @return number
function INTERIOR.GET_INTERIOR_GROUP_ID(interior) end
--- @param interior number
--- @param x number
--- @param y number
--- @param z number
--- @return { x: number, y: number, z: number }
function INTERIOR.GET_OFFSET_FROM_INTERIOR_IN_WORLD_COORDS(interior, x, y, z) end
--- @return boolean
function INTERIOR.IS_INTERIOR_SCENE() end
--- @param interior number
--- @return boolean
function INTERIOR.IS_VALID_INTERIOR(interior) end
--- @param entity number
function INTERIOR.CLEAR_ROOM_FOR_ENTITY(entity) end
--- @param entity number
--- @param interior number
--- @param roomHashKey number
function INTERIOR.FORCE_ROOM_FOR_ENTITY(entity, interior, roomHashKey) end
--- Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside.
--- @param entity number
--- @return number
function INTERIOR.GET_ROOM_KEY_FROM_ENTITY(entity) end
--- Seems to do the exact same as INTERIOR::GET_ROOM_KEY_FROM_ENTITY
--- @param entity number
--- @return number
function INTERIOR.GET_KEY_FOR_ENTITY_IN_ROOM(entity) end
--- Returns the handle of the interior that the entity is in. Returns 0 if outside.
--- @param entity number
--- @return number
function INTERIOR.GET_INTERIOR_FROM_ENTITY(entity) end
--- @param entity number
--- @param interior number
function INTERIOR.RETAIN_ENTITY_IN_INTERIOR(entity, interior) end
--- Immediately removes entity from an interior. Like sets entity to `limbo` room.
--- @param entity number
function INTERIOR.CLEAR_INTERIOR_STATE_OF_ENTITY(entity) end
--- @param p0 number
--- @param p1 number
function INTERIOR.FORCE_ACTIVATING_TRACKING_ON_ENTITY(p0, p1) end
--- @param interiorID number
--- @param roomHashKey number
function INTERIOR.FORCE_ROOM_FOR_GAME_VIEWPORT(interiorID, roomHashKey) end
--- Example of use (carmod_shop)
--- INTERIOR::SET_ROOM_FOR_GAME_VIEWPORT_BY_NAME("V_CarModRoom");
--- @param roomName string
function INTERIOR.SET_ROOM_FOR_GAME_VIEWPORT_BY_NAME(roomName) end
--- Usage: INTERIOR::SET_ROOM_FOR_GAME_VIEWPORT_BY_KEY(INTERIOR::GET_KEY_FOR_ENTITY_IN_ROOM(PLAYER::PLAYER_PED_ID()));
--- @param roomHashKey number
function INTERIOR.SET_ROOM_FOR_GAME_VIEWPORT_BY_KEY(roomHashKey) end
--- @return number
function INTERIOR.GET_ROOM_KEY_FOR_GAME_VIEWPORT() end
function INTERIOR.CLEAR_ROOM_FOR_GAME_VIEWPORT() end
--- Returns the current interior id from gameplay camera
--- @return number
function INTERIOR.GET_INTERIOR_FROM_PRIMARY_VIEW() end
--- Returns interior ID from specified coordinates. If coordinates are outside, then it returns 0.
--- 
--- Example for VB.NET
--- Dim interiorID As Integer = Native.Function.Call(Of Integer)(Hash.GET_INTERIOR_AT_COORDS, X, Y, Z)
--- @param x number
--- @param y number
--- @param z number
--- @return number
function INTERIOR.GET_INTERIOR_AT_COORDS(x, y, z) end
--- @param pickup number
--- @param roomName string
function INTERIOR.ADD_PICKUP_TO_INTERIOR_ROOM_BY_NAME(pickup, roomName) end
--- @param interior number
function INTERIOR.PIN_INTERIOR_IN_MEMORY(interior) end
--- Does something similar to INTERIOR::DISABLE_INTERIOR.
--- 
--- You don't fall through the floor but everything is invisible inside and looks the same as when INTERIOR::DISABLE_INTERIOR is used. Peds behaves normally inside.
--- @param interior number
function INTERIOR.UNPIN_INTERIOR(interior) end
--- @param interior number
--- @return boolean
function INTERIOR.IS_INTERIOR_READY(interior) end
--- Only used once in the entire game scripts.
--- Does not actually return anything.
--- @param interior number
--- @return boolean
function INTERIOR.SET_INTERIOR_IN_USE(interior) end
--- Returns the interior ID representing the requested interior at that location (if found?). The supplied interior string is not the same as the one used to load the interior.
--- 
--- Use: INTERIOR::UNPIN_INTERIOR(INTERIOR::GET_INTERIOR_AT_COORDS_WITH_TYPE(x, y, z, interior))
--- 
--- Interior types include: "V_Michael", "V_Franklins", "V_Franklinshouse", etc.. you can find them in the scripts.
--- 
--- Not a very useful native as you could just use GET_INTERIOR_AT_COORDS instead and get the same result, without even having to specify the interior type.
--- @param x number
--- @param y number
--- @param z number
--- @param interiorType string
--- @return number
function INTERIOR.GET_INTERIOR_AT_COORDS_WITH_TYPE(x, y, z, interiorType) end
--- Hashed version of GET_INTERIOR_AT_COORDS_WITH_TYPE
--- @param x number
--- @param y number
--- @param z number
--- @param typeHash number
--- @return number
function INTERIOR.GET_INTERIOR_AT_COORDS_WITH_TYPEHASH(x, y, z, typeHash) end
function INTERIOR.ACTIVATE_INTERIOR_GROUPS_USING_CAMERA() end
--- Returns true if the collision at the specified coords is marked as being outside (false if there's an interior)
--- @param x number
--- @param y number
--- @param z number
--- @return boolean
function INTERIOR.IS_COLLISION_MARKED_OUTSIDE(x, y, z) end
--- @param x number
--- @param y number
--- @param z number
--- @return number
function INTERIOR.GET_INTERIOR_FROM_COLLISION(x, y, z) end
--- @param toggle boolean
function INTERIOR.ENABLE_STADIUM_PROBES_THIS_FRAME(toggle) end
--- More info: http://gtaforums.com/topic/836367-adding-props-to-interiors/
--- 
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- @param interior number
--- @param entitySetName string
function INTERIOR.ACTIVATE_INTERIOR_ENTITY_SET(interior, entitySetName) end
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- @param interior number
--- @param entitySetName string
function INTERIOR.DEACTIVATE_INTERIOR_ENTITY_SET(interior, entitySetName) end
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- @param interior number
--- @param entitySetName string
--- @return boolean
function INTERIOR.IS_INTERIOR_ENTITY_SET_ACTIVE(interior, entitySetName) end
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- @param interior number
--- @param entitySetName string
--- @param color number
function INTERIOR.SET_INTERIOR_ENTITY_SET_TINT_INDEX(interior, entitySetName, color) end
--- @param interior number
function INTERIOR.REFRESH_INTERIOR(interior) end
--- This is the native that is used to hide the exterior of GTA Online apartment buildings when you are inside an apartment.
--- 
--- More info: http://gtaforums.com/topic/836301-hiding-gta-online-apartment-exteriors/
--- @param mapObjectHash number
function INTERIOR.ENABLE_EXTERIOR_CULL_MODEL_THIS_FRAME(mapObjectHash) end
--- @param mapObjectHash number
function INTERIOR.ENABLE_SHADOW_CULL_MODEL_THIS_FRAME(mapObjectHash) end
--- Example:
--- This removes the interior from the strip club and when trying to walk inside the player just falls:
--- 
--- INTERIOR::DISABLE_INTERIOR(118018, true);
--- @param interior number
--- @param toggle boolean
function INTERIOR.DISABLE_INTERIOR(interior, toggle) end
--- @param interior number
--- @return boolean
function INTERIOR.IS_INTERIOR_DISABLED(interior) end
--- Does something similar to INTERIOR::DISABLE_INTERIOR
--- @param interior number
--- @param toggle boolean
function INTERIOR.CAP_INTERIOR(interior, toggle) end
--- @param interior number
--- @return boolean
function INTERIOR.IS_INTERIOR_CAPPED(interior) end
--- @param toggle boolean
function INTERIOR.DISABLE_METRO_SYSTEM(toggle) end
--- Jenkins hash _might_ be 0xFC227584.
--- @param entity number
--- @param toggle boolean
function INTERIOR.SET_IS_EXTERIOR_ONLY(entity, toggle) end

ITEMSET = {}

--- @param p0 boolean
--- @return number
function ITEMSET.CREATE_ITEMSET(p0) end
--- @param itemset number
function ITEMSET.DESTROY_ITEMSET(itemset) end
--- @param itemset number
--- @return boolean
function ITEMSET.IS_ITEMSET_VALID(itemset) end
--- @param item number
--- @param itemset number
--- @return boolean
function ITEMSET.ADD_TO_ITEMSET(item, itemset) end
--- @param item number
--- @param itemset number
function ITEMSET.REMOVE_FROM_ITEMSET(item, itemset) end
--- @param itemset number
--- @return number
function ITEMSET.GET_ITEMSET_SIZE(itemset) end
--- @param index number
--- @param itemset number
--- @return number
function ITEMSET.GET_INDEXED_ITEM_IN_ITEMSET(index, itemset) end
--- @param item number
--- @param itemset number
--- @return boolean
function ITEMSET.IS_IN_ITEMSET(item, itemset) end
--- @param itemset number
function ITEMSET.CLEAN_ITEMSET(itemset) end

LOADINGSCREEN = {}

--- This function is hard-coded to always return 0.
--- @return boolean
function LOADINGSCREEN.LOBBY_AUTO_MULTIPLAYER_MENU() end
--- @return boolean
function LOADINGSCREEN.LOBBY_AUTO_MULTIPLAYER_FREEMODE() end
--- @param toggle boolean
function LOADINGSCREEN.LOBBY_SET_AUTO_MULTIPLAYER(toggle) end
--- @return boolean
function LOADINGSCREEN.LOBBY_AUTO_MULTIPLAYER_EVENT() end
--- @param toggle boolean
function LOADINGSCREEN.LOBBY_SET_AUTO_MULTIPLAYER_EVENT(toggle) end
--- @return boolean
function LOADINGSCREEN.LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB() end
--- @param toggle boolean
function LOADINGSCREEN.LOBBY_SET_AUTO_MP_RANDOM_JOB(toggle) end
--- @param toggle boolean
function LOADINGSCREEN.SHUTDOWN_SESSION_CLEARS_AUTO_MULTIPLAYER(toggle) end

LOCALIZATION = {}

--- Same return values as GET_CURRENT_LANGUAGE
--- @return number
function LOCALIZATION.LOCALIZATION_GET_SYSTEM_LANGUAGE() end
--- 0 = american (en-US)
--- 1 = french (fr-FR)
--- 2 = german (de-DE)
--- 3 = italian (it-IT)
--- 4 = spanish (es-ES)
--- 5 = brazilian (pt-BR)
--- 6 = polish (pl-PL)
--- 7 = russian (ru-RU)
--- 8 = korean (ko-KR)
--- 9 = chinesetrad (zh-TW)
--- 10 = japanese (ja-JP)
--- 11 = mexican (es-MX)
--- 12 = chinesesimp (zh-CN)
--- @return number
function LOCALIZATION.GET_CURRENT_LANGUAGE() end
--- Possible return values: 0, 1, 2
--- @return number
function LOCALIZATION.LOCALIZATION_GET_SYSTEM_DATE_TYPE() end

MISC = {}

--- @return number
function MISC.GET_ALLOCATED_STACK_SIZE() end
--- @param stackSize number
--- @return number
function MISC.GET_NUMBER_OF_FREE_STACKS_OF_THIS_SIZE(stackSize) end
--- @param seed number
function MISC.SET_RANDOM_SEED(seed) end
--- Maximum value is 1.
--- At a value of 0 the game will still run at a minimum time scale.
--- 
--- Slow Motion 1: 0.6
--- Slow Motion 2: 0.4
--- Slow Motion 3: 0.2
--- @param timeScale number
function MISC.SET_TIME_SCALE(timeScale) end
--- If true, the player can't save the game.
--- 
--- 
--- If the parameter is true, sets the mission flag to true, if the parameter is false, the function does nothing at all.
--- 
--- ^ also, if the mission flag is already set, the function does nothing at all
--- @param toggle boolean
function MISC.SET_MISSION_FLAG(toggle) end
--- @return boolean
function MISC.GET_MISSION_FLAG() end
--- If the parameter is true, sets the random event flag to true, if the parameter is false, the function does nothing at all.
--- Does nothing if the mission flag is set.
--- @param toggle boolean
function MISC.SET_RANDOM_EVENT_FLAG(toggle) end
--- @return boolean
function MISC.GET_RANDOM_EVENT_FLAG() end
--- Returns pointer to an empty string.
--- @return string
function MISC.GET_CONTENT_TO_LOAD() end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 string
--- @param p1 string
function MISC.ACTIVITY_FEED_CREATE(p0, p1) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 string
function MISC.ACTIVITY_FEED_ADD_SUBSTRING_TO_CAPTION(p0) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 string
function MISC.ACTIVITY_FEED_ADD_LITERAL_SUBSTRING_TO_CAPTION(p0) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 number
function MISC.ACTIVITY_FEED_ADD_INT_TO_CAPTION(p0) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 string
function MISC.ACTIVITY_FEED_LARGE_IMAGE_URL(p0) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 string
--- @param p1 string
function MISC.ACTIVITY_FEED_ACTION_START_WITH_COMMAND_LINE(p0, p1) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- @param p0 string
function MISC.ACTIVITY_FEED_ACTION_START_WITH_COMMAND_LINE_ADD(p0) end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
function MISC.ACTIVITY_FEED_POST() end
--- Does nothing (it's a nullsub). Seems to be PS4 specific.
--- 
--- Used only once in the scripts (ingamehud) with p0 = "AF_GAMEMODE"
--- @param p0 string
function MISC.ACTIVITY_FEED_ONLINE_PLAYED_WITH_POST(p0) end
--- Hardcoded to return false.
--- @return boolean
function MISC.HAS_RESUMED_FROM_SUSPEND() end
--- Sets GtaThread+0x14A
--- @param toggle boolean
function MISC.SET_SCRIPT_HIGH_PRIO(toggle) end
--- Sets bit 3 in GtaThread+0x150
--- @param toggle boolean
function MISC.SET_THIS_IS_A_TRIGGER_SCRIPT(toggle) end
--- @param p0 string
function MISC.INFORM_CODE_OF_CONTENT_ID_OF_CURRENT_UGC_MISSION(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @return boolean
function MISC.GET_BASE_ELEMENT_LOCATION_FROM_METADATA_BLOCK(p0, p1, p2, p3) end
--- Returns current weather name hash
--- @return number
function MISC.GET_PREV_WEATHER_TYPE_HASH_NAME() end
--- Returns weather name hash
--- @return number
function MISC.GET_NEXT_WEATHER_TYPE_HASH_NAME() end
--- @param weatherType string
--- @return boolean
function MISC.IS_PREV_WEATHER_TYPE(weatherType) end
--- @param weatherType string
--- @return boolean
function MISC.IS_NEXT_WEATHER_TYPE(weatherType) end
--- The following weatherTypes are used in the scripts:
--- "CLEAR"
--- "EXTRASUNNY"
--- "CLOUDS"
--- "OVERCAST"
--- "RAIN"
--- "CLEARING"
--- "THUNDER"
--- "SMOG"
--- "FOGGY"
--- "XMAS"
--- "SNOW"
--- "SNOWLIGHT"
--- "BLIZZARD"
--- "HALLOWEEN"
--- "NEUTRAL"
--- @param weatherType string
function MISC.SET_WEATHER_TYPE_PERSIST(weatherType) end
--- The following weatherTypes are used in the scripts:
--- "CLEAR"
--- "EXTRASUNNY"
--- "CLOUDS"
--- "OVERCAST"
--- "RAIN"
--- "CLEARING"
--- "THUNDER"
--- "SMOG"
--- "FOGGY"
--- "XMAS"
--- "SNOW"
--- "SNOWLIGHT"
--- "BLIZZARD"
--- "HALLOWEEN"
--- "NEUTRAL"
--- @param weatherType string
function MISC.SET_WEATHER_TYPE_NOW_PERSIST(weatherType) end
--- The following weatherTypes are used in the scripts:
--- "CLEAR"
--- "EXTRASUNNY"
--- "CLOUDS"
--- "OVERCAST"
--- "RAIN"
--- "CLEARING"
--- "THUNDER"
--- "SMOG"
--- "FOGGY"
--- "XMAS"
--- "SNOW"
--- "SNOWLIGHT"
--- "BLIZZARD"
--- "HALLOWEEN"
--- "NEUTRAL"
--- @param weatherType string
function MISC.SET_WEATHER_TYPE_NOW(weatherType) end
--- @param weatherType string
--- @param time number
function MISC.SET_WEATHER_TYPE_OVERTIME_PERSIST(weatherType, time) end
function MISC.SET_RANDOM_WEATHER_TYPE() end
function MISC.CLEAR_WEATHER_TYPE_PERSIST() end
--- @param milliseconds number
function MISC.CLEAR_WEATHER_TYPE_NOW_PERSIST_NETWORK(milliseconds) end
--- @param weatherType1 any
--- @param weatherType2 any
--- @param percentWeather2 any
function MISC.GET_CURR_WEATHER_STATE(weatherType1, weatherType2, percentWeather2) end
--- Mixes two weather types. If percentWeather2 is set to 0.0f, then the weather will be entirely of weatherType1, if it is set to 1.0f it will be entirely of weatherType2. If it's set somewhere in between, there will be a mixture of weather behaviors. To test, try this in the RPH console, and change the float to different values between 0 and 1:
--- 
--- execute "NativeFunction.Natives.x578C752848ECFA0C(Game.GetHashKey(""RAIN""), Game.GetHashKey(""SMOG""), 0.50f);
--- 
--- Note that unlike most of the other weather natives, this native takes the hash of the weather name, not the plain string. These are the weather names and their hashes:
--- 
--- CLEAR  0x36A83D84
--- EXTRASUNNY  0x97AA0A79
--- CLOUDS  0x30FDAF5C
--- OVERCAST    0xBB898D2D
--- RAIN    0x54A69840
--- CLEARING    0x6DB1A50D
--- THUNDER 0xB677829F
--- SMOG    0x10DCF4B5
--- FOGGY   0xAE737644
--- XMAS    0xAAC9C895
--- SNOWLIGHT   0x23FB812B
--- BLIZZARD    0x27EA2814
--- 
--- 
--- 
--- 
--- 
--- /* OLD INVALID INFO BELOW */
--- Not tested. Based purely on disassembly. Instantly sets the weather to sourceWeather, then transitions to targetWeather over the specified transitionTime in seconds.
--- 
--- If an invalid hash is specified for sourceWeather, the current weather type will be used.
--- If an invalid hash is specified for targetWeather, the next weather type will be used.
--- If an invalid hash is specified for both sourceWeather and targetWeather, the function just changes the transition time of the current transition.
--- @param weatherType1 number
--- @param weatherType2 number
--- @param percentWeather2 number
function MISC.SET_CURR_WEATHER_STATE(weatherType1, weatherType2, percentWeather2) end
--- Appears to have an optional bool parameter that is unused in the scripts.
--- 
--- If you pass true, something will be set to zero.
--- @param weatherType string
function MISC.SET_OVERRIDE_WEATHER(weatherType) end
--- Identical to SET_OVERRIDE_WEATHER but has an additional BOOL param that sets some weather var to 0 if true
--- @param weatherType string
--- @param p1 boolean
function MISC.SET_OVERRIDE_WEATHEREX(weatherType, p1) end
function MISC.CLEAR_OVERRIDE_WEATHER() end
--- @param amplitude number
function MISC.WATER_OVERRIDE_SET_SHOREWAVEAMPLITUDE(amplitude) end
--- @param minAmplitude number
function MISC.WATER_OVERRIDE_SET_SHOREWAVEMINAMPLITUDE(minAmplitude) end
--- @param maxAmplitude number
function MISC.WATER_OVERRIDE_SET_SHOREWAVEMAXAMPLITUDE(maxAmplitude) end
--- @param minAmplitude number
function MISC.WATER_OVERRIDE_SET_OCEANNOISEMINAMPLITUDE(minAmplitude) end
--- @param amplitude number
function MISC.WATER_OVERRIDE_SET_OCEANWAVEAMPLITUDE(amplitude) end
--- @param minAmplitude number
function MISC.WATER_OVERRIDE_SET_OCEANWAVEMINAMPLITUDE(minAmplitude) end
--- @param maxAmplitude number
function MISC.WATER_OVERRIDE_SET_OCEANWAVEMAXAMPLITUDE(maxAmplitude) end
--- @param bumpiness number
function MISC.WATER_OVERRIDE_SET_RIPPLEBUMPINESS(bumpiness) end
--- @param minBumpiness number
function MISC.WATER_OVERRIDE_SET_RIPPLEMINBUMPINESS(minBumpiness) end
--- @param maxBumpiness number
function MISC.WATER_OVERRIDE_SET_RIPPLEMAXBUMPINESS(maxBumpiness) end
--- @param disturb number
function MISC.WATER_OVERRIDE_SET_RIPPLEDISTURB(disturb) end
--- This seems to edit the water wave, intensity around your current location.
--- 
--- 0.0f = Normal
--- 1.0f = So Calm and Smooth, a boat will stay still.
--- 3.0f = Really Intense.
--- @param strength number
function MISC.WATER_OVERRIDE_SET_STRENGTH(strength) end
--- @param p0 number
function MISC.WATER_OVERRIDE_FADE_IN(p0) end
--- @param p0 number
function MISC.WATER_OVERRIDE_FADE_OUT(p0) end
--- Sets the the normalized wind speed value. The wind speed clamps always at 12.0, SET_WIND sets the wind in a percentage, 0.0 is 0 and 1.0 is 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game.
--- @param speed number
function MISC.SET_WIND(speed) end
--- Using this native will set the absolute wind speed value. The wind speed clamps to a range of 0.0- 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game.
--- @param speed number
function MISC.SET_WIND_SPEED(speed) end
--- @return number
function MISC.GET_WIND_SPEED() end
--- The wind direction in radians
--- 180 degrees (PI), wind will blow from the south. Setting this value to a negative number resumes the random wind direction changes provided by the game.
--- @param direction number
function MISC.SET_WIND_DIRECTION(direction) end
--- @return { x: number, y: number, z: number }
function MISC.GET_WIND_DIRECTION() end
--- With an `intensity` higher than `0.5f`, only the creation of puddles gets faster, rain and rain sound won't increase after that.
--- With an `intensity` of `0.0f` rain and rain sounds are disabled and there won't be any new puddles.
--- To use the rain intensity of the current weather, call this native with `-1f` as `intensity`.
--- @param intensity number
function MISC.SET_RAIN(intensity) end
--- @return number
function MISC.GET_RAIN_LEVEL() end
--- @param level number
function MISC.SET_SNOW(level) end
--- @return number
function MISC.GET_SNOW_LEVEL() end
--- creates single lightning+thunder at random position
function MISC.FORCE_LIGHTNING_FLASH() end
--- @param p0 string
function MISC.SET_CLOUD_SETTINGS_OVERRIDE(p0) end
--- @param name string
function MISC.PRELOAD_CLOUD_HAT(name) end
--- The following cloudhats are useable:
--- altostratus
--- Cirrus
--- cirrocumulus
--- Clear 01
--- Cloudy 01
--- Contrails
--- Horizon
--- horizonband1
--- horizonband2
--- horizonband3
--- horsey
--- Nimbus
--- Puffs
--- RAIN
--- Snowy 01
--- Stormy 01
--- stratoscumulus
--- Stripey
--- shower
--- Wispy
--- 
--- @param name string
--- @param transitionTime number
function MISC.LOAD_CLOUD_HAT(name, transitionTime) end
--- @param name string
--- @param p1 number
function MISC.UNLOAD_CLOUD_HAT(name, p1) end
function MISC.UNLOAD_ALL_CLOUD_HATS() end
--- @param opacity number
function MISC.SET_CLOUDS_ALPHA(opacity) end
--- @return number
function MISC.GET_CLOUDS_ALPHA() end
--- @return number
function MISC.GET_GAME_TIMER() end
--- @return number
function MISC.GET_FRAME_TIME() end
--- @return number
function MISC.GET_SYSTEM_TIME_STEP() end
--- @return number
function MISC.GET_FRAME_COUNT() end
--- @param startRange number
--- @param endRange number
--- @return number
function MISC.GET_RANDOM_FLOAT_IN_RANGE(startRange, endRange) end
--- @param startRange number
--- @param endRange number
--- @return number
function MISC.GET_RANDOM_INT_IN_RANGE(startRange, endRange) end
--- @param startRange number
--- @param endRange number
--- @return number
function MISC.GET_RANDOM_MWC_INT_IN_RANGE(startRange, endRange) end
--- Gets the ground elevation at the specified position. Note that if the specified position is below ground level, the function will output zero!
--- 
--- x: Position on the X-axis to get ground elevation at.
--- y: Position on the Y-axis to get ground elevation at.
--- z: Position on the Z-axis to get ground elevation at.
--- groundZ: The ground elevation at the specified position.
--- ignoreWater: Nearly always 0, very rarely 1 in the scripts: https://gfycat.com/NiftyTatteredCricket
--- 
--- Bear in mind this native can only calculate the elevation when the coordinates are within the client's render distance.
--- @param x number
--- @param y number
--- @param z number
--- @param groundZ any
--- @param ignoreWater boolean
--- @param p5 boolean
--- @return boolean
function MISC.GET_GROUND_Z_FOR_3D_COORD(x, y, z, groundZ, ignoreWater, p5) end
--- @param x number
--- @param y number
--- @param z number
--- @param groundZ any
--- @param normal number
--- @return boolean
function MISC.GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD(x, y, z, groundZ, normal) end
--- @param x number
--- @param y number
--- @param z number
--- @param groundZ any
--- @param p4 boolean
--- @param p5 boolean
--- @return boolean
function MISC.GET_GROUND_Z_EXCLUDING_OBJECTS_FOR_3D_COORD(x, y, z, groundZ, p4, p5) end
--- @param p0 number
--- @return number
function MISC.ASIN(p0) end
--- @param p0 number
--- @return number
function MISC.ACOS(p0) end
--- @param p0 number
--- @return number
function MISC.TAN(p0) end
--- @param p0 number
--- @return number
function MISC.ATAN(p0) end
--- @param p0 number
--- @param p1 number
--- @return number
function MISC.ATAN2(p0, p1) end
--- Returns the distance between two three-dimensional points, optionally ignoring the Z values.
--- If useZ is false, only the 2D plane (X-Y) will be considered for calculating the distance.
--- 
--- Consider using this faster native instead: SYSTEM::VDIST - DVIST always takes in consideration the 3D coordinates.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param useZ boolean
--- @return number
function MISC.GET_DISTANCE_BETWEEN_COORDS(x1, y1, z1, x2, y2, z2, useZ) end
--- @param x1 number
--- @param y1 number
--- @param x2 number
--- @param y2 number
--- @return number
function MISC.GET_ANGLE_BETWEEN_2D_VECTORS(x1, y1, x2, y2) end
--- dx = x1 - x2
--- dy = y1 - y2
--- @param dx number
--- @param dy number
--- @return number
function MISC.GET_HEADING_FROM_VECTOR_2D(dx, dy) end
--- returns a float between 0.0 and 1.0, clamp: sets whether the product should be clamped between the given coordinates
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param clamp boolean
--- @return number
function MISC.GET_RATIO_OF_CLOSEST_POINT_ON_LINE(x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp) end
--- clamp: sets whether the product should be clamped between the given coordinates
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param clamp boolean
--- @return { x: number, y: number, z: number }
function MISC.GET_CLOSEST_POINT_ON_LINE(x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
--- @param p12 any
--- @return boolean
function MISC.GET_LINE_PLANE_INTERSECTION(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
--- @param p12 number
--- @param p13 number
--- @return boolean
function MISC.GET_POINT_AREA_OVERLAP(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) end
--- This sets bit [offset] of [address] to on.
--- 
--- The offsets used are different bits to be toggled on and off, typically there is only one address used in a script.
--- 
--- Example:
--- MISC::SET_BIT(&bitAddress, 1);
--- 
--- To check if this bit has been enabled:
--- MISC::IS_BIT_SET(bitAddress, 1); // will return 1 afterwards
--- 
--- Please note, this method may assign a value to [address] when used.
--- @param address any
--- @param offset number
function MISC.SET_BIT(address, offset) end
--- This sets bit [offset] of [address] to off.
--- 
--- Example:
--- MISC::CLEAR_BIT(&bitAddress, 1);
--- 
--- To check if this bit has been enabled:
--- MISC::IS_BIT_SET(bitAddress, 1); // will return 0 afterwards
--- @param address any
--- @param offset number
function MISC.CLEAR_BIT(address, offset) end
--- This native converts its past string to hash. It is hashed using jenkins one at a time method.
--- @param string string
--- @return number
function MISC.GET_HASH_KEY(string) end
--- This native always come right before SET_ENTITY_QUATERNION where its final 4 parameters are SLERP_NEAR_QUATERNION p9 to p12
--- @param t number
--- @param x number
--- @param y number
--- @param z number
--- @param w number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param w1 number
--- @param outX any
--- @param outY any
--- @param outZ any
--- @param outW any
function MISC.SLERP_NEAR_QUATERNION(t, x, y, z, w, x1, y1, z1, w1, outX, outY, outZ, outW) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 boolean
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 boolean
--- @param p10 boolean
--- @param p11 number
--- @param p12 boolean
--- @return boolean
function MISC.IS_AREA_OCCUPIED(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
--- @param p12 number
--- @return boolean
function MISC.IS_AREA_OCCUPIED_SLOW(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) end
--- `range`: The range, seems to not be very accurate during testing.
--- `p4`: Unknown, when set to true it seems to always return true no matter what I try.
--- `checkVehicle`: Check for any vehicles in that area.
--- `checkPeds`: Check for any peds in that area.
--- `ignoreEntity`: This entity will be ignored if it's in the area. Set to 0 if you don't want to exclude any entities.
--- The BOOL parameters that are documented have not been confirmed. They are just documented from what I've found during testing. They may not work as expected in all cases.
--- 
--- Returns true if there is anything in that location matching the provided parameters.
--- @param x number
--- @param y number
--- @param z number
--- @param range number
--- @param p4 boolean
--- @param checkVehicles boolean
--- @param checkPeds boolean
--- @param p7 boolean
--- @param p8 boolean
--- @param ignoreEntity number
--- @param p10 boolean
--- @return boolean
function MISC.IS_POSITION_OCCUPIED(x, y, z, range, p4, checkVehicles, checkPeds, p7, p8, ignoreEntity, p10) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return boolean
function MISC.IS_POINT_OBSCURED_BY_A_MISSION_ENTITY(p0, p1, p2, p3, p4, p5, p6) end
--- Example: CLEAR_AREA(0, 0, 0, 30, true, false, false, false);
--- @param X number
--- @param Y number
--- @param Z number
--- @param radius number
--- @param p4 boolean
--- @param ignoreCopCars boolean
--- @param ignoreObjects boolean
--- @param p7 boolean
function MISC.CLEAR_AREA(X, Y, Z, radius, p4, ignoreCopCars, ignoreObjects, p7) end
--- MISC::CLEAR_AREA_LEAVE_VEHICLE_HEALTH(x, y, z, radius, false, false, false, false); seem to make all objects go away, peds, vehicles etc. All booleans set to true doesn't seem to change anything.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 boolean
--- @param p7 boolean
function MISC.CLEAR_AREA_LEAVE_VEHICLE_HEALTH(x, y, z, radius, p4, p5, p6, p7) end
--- Example:
--- CLEAR_AREA_OF_VEHICLES(0.0f, 0.0f, 0.0f, 10000.0f, false, false, false, false, false, false);
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 boolean
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 boolean
--- @param p10 number
function MISC.CLEAR_AREA_OF_VEHICLES(x, y, z, radius, p4, p5, p6, p7, p8, p9, p10) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 boolean
--- @param p10 boolean
--- @param p11 boolean
--- @param p12 number
--- @param p13 number
function MISC.CLEAR_ANGLED_AREA_OF_VEHICLES(x1, y1, z1, x2, y2, z2, width, p7, p8, p9, p10, p11, p12, p13) end
--- I looked through the PC scripts that this site provides you with a link to find. It shows the last param mainly uses, (0, 2, 6, 16, and 17) so I am going to assume it is a type of flag.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param flags number
function MISC.CLEAR_AREA_OF_OBJECTS(x, y, z, radius, flags) end
--- Example:       CLEAR_AREA_OF_PEDS(0, 0, 0, 10000, 1);
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param flags number
function MISC.CLEAR_AREA_OF_PEDS(x, y, z, radius, flags) end
--- flags appears to always be 0
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param flags number
function MISC.CLEAR_AREA_OF_COPS(x, y, z, radius, flags) end
--- flags is usually 0 in the scripts.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param flags number
function MISC.CLEAR_AREA_OF_PROJECTILES(x, y, z, radius, flags) end
--- Possibly used to clear scenario points.
function MISC.CLEAR_SCENARIO_SPAWN_HISTORY() end
--- ignoreVehicle - bypasses vehicle check of the local player (it will not open if you are in a vehicle and this is set to false)
--- @param ignoreVehicle boolean
function MISC.SET_SAVE_MENU_ACTIVE(ignoreVehicle) end
--- @return number
function MISC.GET_STATUS_OF_MANUAL_SAVE() end
--- @param toggle boolean
function MISC.SET_CREDITS_ACTIVE(toggle) end
--- @param toggle boolean
function MISC.SET_CREDITS_FADE_OUT_WITH_SCREEN(toggle) end
--- @return boolean
function MISC.HAVE_CREDITS_REACHED_END() end
--- @return boolean
function MISC.ARE_CREDITS_RUNNING() end
--- @param scriptName string
function MISC.TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(scriptName) end
function MISC.NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME() end
--- Returns the index of the newly created hospital spawn point.
--- 
--- p3 might be radius?
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 number
--- @return number
function MISC.ADD_HOSPITAL_RESTART(x, y, z, p3, p4) end
--- The game by default has 5 hospital respawn points. Disabling them all will cause the player to respawn at the last position they were.
--- @param hospitalIndex number
--- @param toggle boolean
function MISC.DISABLE_HOSPITAL_RESTART(hospitalIndex, toggle) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @return number
function MISC.ADD_POLICE_RESTART(p0, p1, p2, p3, p4) end
--- Disables the spawn point at the police house on the specified index.
--- 
--- policeIndex: The police house index.
--- toggle: true to enable the spawn point, false to disable.
--- 
--- - Nacorpio
--- @param policeIndex number
--- @param toggle boolean
function MISC.DISABLE_POLICE_RESTART(policeIndex, toggle) end
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
function MISC.SET_RESTART_COORD_OVERRIDE(x, y, z, heading) end
function MISC.CLEAR_RESTART_COORD_OVERRIDE() end
--- @param toggle boolean
function MISC.PAUSE_DEATH_ARREST_RESTART(toggle) end
--- @param toggle boolean
function MISC.IGNORE_NEXT_RESTART(toggle) end
--- Sets whether the game should fade out after the player dies.
--- @param toggle boolean
function MISC.SET_FADE_OUT_AFTER_DEATH(toggle) end
--- Sets whether the game should fade out after the player is arrested.
--- @param toggle boolean
function MISC.SET_FADE_OUT_AFTER_ARREST(toggle) end
--- Sets whether the game should fade in after the player dies or is arrested.
--- @param toggle boolean
function MISC.SET_FADE_IN_AFTER_DEATH_ARREST(toggle) end
--- @param toggle boolean
function MISC.SET_FADE_IN_AFTER_LOAD(toggle) end
--- returns savehouseHandle
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 string
--- @param p5 number
--- @param p6 number
--- @return number
function MISC.REGISTER_SAVE_HOUSE(x, y, z, p3, p4, p5, p6) end
--- @param savehouseHandle number
--- @param p1 boolean
--- @param p2 boolean
function MISC.SET_SAVE_HOUSE(savehouseHandle, p1, p2) end
--- @param p0 boolean
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 boolean
--- @param p6 number
--- @param p7 number
--- @return boolean
function MISC.OVERRIDE_SAVE_HOUSE(p0, p1, p2, p3, p4, p5, p6, p7) end
--- @param p0 number
--- @param p1 any
--- @param fadeInAfterLoad any
--- @param p3 any
--- @return boolean
function MISC.GET_SAVE_HOUSE_DETAILS_AFTER_SUCCESSFUL_LOAD(p0, p1, fadeInAfterLoad, p3) end
function MISC.DO_AUTO_SAVE() end
--- Returns true if profile setting 208 is equal to 0.
--- @return boolean
function MISC.GET_IS_AUTO_SAVE_OFF() end
--- @return boolean
function MISC.IS_AUTO_SAVE_IN_PROGRESS() end
--- @return boolean
function MISC.HAS_CODE_REQUESTED_AUTOSAVE() end
function MISC.CLEAR_CODE_REQUESTED_AUTOSAVE() end
--- @param p0 number
--- @param p1 number
function MISC.BEGIN_REPLAY_STATS(p0, p1) end
--- @param value number
function MISC.ADD_REPLAY_STAT_VALUE(value) end
function MISC.END_REPLAY_STATS() end
--- @return boolean
function MISC.HAVE_REPLAY_STATS_BEEN_STORED() end
--- @return number
function MISC.GET_REPLAY_STAT_MISSION_ID() end
--- @return number
function MISC.GET_REPLAY_STAT_MISSION_TYPE() end
--- @return number
function MISC.GET_REPLAY_STAT_COUNT() end
--- @param index number
--- @return number
function MISC.GET_REPLAY_STAT_AT_INDEX(index) end
function MISC.CLEAR_REPLAY_STATS() end
--- @return boolean
function MISC.QUEUE_MISSION_REPEAT_LOAD() end
--- Shows the screen which is visible before you redo a mission? The game will make a restoration point where you will cameback when the mission is over.
--- Returns 1 if the message isn't currently on screen
--- @return boolean
function MISC.QUEUE_MISSION_REPEAT_SAVE() end
--- @return boolean
function MISC.QUEUE_MISSION_REPEAT_SAVE_FOR_BENCHMARK_TEST() end
--- @return number
function MISC.GET_STATUS_OF_MISSION_REPEAT_SAVE() end
--- @return boolean
function MISC.IS_MEMORY_CARD_IN_USE() end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param damage number
--- @param p7 boolean
--- @param weaponHash number
--- @param ownerPed number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param speed number
function MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed) end
--- entity - entity to ignore
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param damage number
--- @param p7 boolean
--- @param weaponHash number
--- @param ownerPed number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param speed number
--- @param entity number
--- @param p14 number
function MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14) end
--- entity - entity to ignore
--- targetEntity - entity to home in on, if the weapon hash provided supports homing
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param damage number
--- @param p7 boolean
--- @param weaponHash number
--- @param ownerPed number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param speed number
--- @param entity number
--- @param p14 boolean
--- @param p15 boolean
--- @param targetEntity number
--- @param p17 boolean
--- @param p18 number
--- @param p19 number
--- @param p20 number
function MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY_NEW(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20) end
--- Gets the dimensions of a model.
--- 
--- Calculate (maximum - minimum) to get the size, in which case, Y will be how long the model is.
--- 
--- Example from the scripts: MISC::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()), &v_1A, &v_17);
--- @param modelHash number
--- @param minimum number
--- @param maximum number
function MISC.GET_MODEL_DIMENSIONS(modelHash, minimum, maximum) end
--- Sets a visually fake wanted level on the user interface. Used by Rockstar's scripts to "override" regular wanted levels and make custom ones while the real wanted level and multipliers are still in effect.
--- 
--- Max is 6, anything above this makes it just 6. Also the mini-map gets the red & blue flashing effect.
--- @param fakeWantedLevel number
function MISC.SET_FAKE_WANTED_LEVEL(fakeWantedLevel) end
--- @return number
function MISC.GET_FAKE_WANTED_LEVEL() end
--- @param toggle boolean
function MISC.USING_MISSION_CREATOR(toggle) end
--- @param toggle boolean
function MISC.ALLOW_MISSION_CREATOR_WARP(toggle) end
--- @param toggle boolean
function MISC.SET_MINIGAME_IN_PROGRESS(toggle) end
--- @return boolean
function MISC.IS_MINIGAME_IN_PROGRESS() end
--- @return boolean
function MISC.IS_THIS_A_MINIGAME_SCRIPT() end
--- This function is hard-coded to always return 0.
--- @return boolean
function MISC.IS_SNIPER_INVERTED() end
--- Returns true if the game is using the metric measurement system (profile setting 227), false if imperial is used.
--- @return boolean
function MISC.SHOULD_USE_METRIC_MEASUREMENTS() end
--- @param profileSetting number
--- @return number
function MISC.GET_PROFILE_SETTING(profileSetting) end
--- @param string1 string
--- @param string2 string
--- @return boolean
function MISC.ARE_STRINGS_EQUAL(string1, string2) end
--- Compares two strings up to a specified number of characters.
--- 
--- Parameters:
--- str1 - String to be compared.
--- str2 - String to be compared.
--- matchCase - Comparison will be case-sensitive.
--- maxLength - Maximum number of characters to compare. A value of -1 indicates an infinite length.
--- 
--- Returns:
--- A value indicating the relationship between the strings:
--- <0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'A' < 'B', so result = -1)
--- 0 - The contents of both strings are equal.
--- >0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'B' > 'A', so result = 1)
--- 
--- Examples:
--- MISC::COMPARE_STRINGS("STRING", "string", false, -1); // 0; equal
--- MISC::COMPARE_STRINGS("TESTING", "test", false, 4); // 0; equal
--- MISC::COMPARE_STRINGS("R2D2", "R2xx", false, 2); // 0; equal
--- MISC::COMPARE_STRINGS("foo", "bar", false, -1); // 4; 'f' > 'b'
--- MISC::COMPARE_STRINGS("A", "A", true, 1); // 0; equal
--- 
--- When comparing case-sensitive strings, lower-case characters are greater than upper-case characters:
--- MISC::COMPARE_STRINGS("A", "a", true, 1); // -1; 'A' < 'a'
--- MISC::COMPARE_STRINGS("a", "A", true, 1); // 1; 'a' > 'A'
--- @param str1 string
--- @param str2 string
--- @param matchCase boolean
--- @param maxLength number
--- @return number
function MISC.COMPARE_STRINGS(str1, str2, matchCase, maxLength) end
--- @param value number
--- @return number
function MISC.ABSI(value) end
--- @param value number
--- @return number
function MISC.ABSF(value) end
--- Determines whether there is a sniper bullet within the specified coordinates. The coordinates form an axis-aligned bounding box.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function MISC.IS_SNIPER_BULLET_IN_AREA(x1, y1, z1, x2, y2, z2) end
--- Determines whether there is a projectile within the specified coordinates. The coordinates form a rectangle.
--- 
--- - Nacorpio
--- 
--- 
--- ownedByPlayer = only projectiles fired by the player will be detected.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_PROJECTILE_IN_AREA(x1, y1, z1, x2, y2, z2, ownedByPlayer) end
--- Determines whether there is a projectile of a specific type within the specified coordinates. The coordinates form a axis-aligned bounding box.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param type number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_PROJECTILE_TYPE_IN_AREA(x1, y1, z1, x2, y2, z2, type, ownedByPlayer) end
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param p7 number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_PROJECTILE_TYPE_IN_ANGLED_AREA(x1, y1, z1, x2, y2, z2, width, p7, ownedByPlayer) end
--- @param x number
--- @param y number
--- @param z number
--- @param projectileHash number
--- @param radius number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_PROJECTILE_TYPE_WITHIN_DISTANCE(x, y, z, projectileHash, radius, ownedByPlayer) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param projectileHash number
--- @param projectilePos number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.GET_COORDS_OF_PROJECTILE_TYPE_IN_AREA(x1, y1, z1, x2, y2, z2, projectileHash, projectilePos, ownedByPlayer) end
--- @param vecAngledAreaPoint1X number
--- @param vecAngledAreaPoint1Y number
--- @param vecAngledAreaPoint1Z number
--- @param vecAngledAreaPoint2X number
--- @param vecAngledAreaPoint2Y number
--- @param vecAngledAreaPoint2Z number
--- @param distanceOfOppositeFace number
--- @param weaponType number
--- @param positionOut number
--- @param bIsPlayer boolean
--- @return boolean
function MISC.GET_COORDS_OF_PROJECTILE_TYPE_IN_ANGLED_AREA(vecAngledAreaPoint1X, vecAngledAreaPoint1Y, vecAngledAreaPoint1Z, vecAngledAreaPoint2X, vecAngledAreaPoint2Y, vecAngledAreaPoint2Z, distanceOfOppositeFace, weaponType, positionOut, bIsPlayer) end
--- @param ped number
--- @param weaponHash number
--- @param distance number
--- @param outCoords number
--- @param p4 boolean
--- @return boolean
function MISC.GET_COORDS_OF_PROJECTILE_TYPE_WITHIN_DISTANCE(ped, weaponHash, distance, outCoords, p4) end
--- @param ped number
--- @param weaponHash number
--- @param distance number
--- @param outCoords number
--- @param outProjectile number
--- @param p5 boolean
--- @return boolean
function MISC.GET_PROJECTILE_OF_PROJECTILE_TYPE_WITHIN_DISTANCE(ped, weaponHash, distance, outCoords, outProjectile, p5) end
--- For projectiles, see: IS_PROJECTILE_TYPE_IN_ANGLED_AREA
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- Returns True if a bullet, as maintained by a pool within CWeaponManager, has been fired into the defined angled area.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_BULLET_IN_ANGLED_AREA(x1, y1, z1, x2, y2, z2, width, ownedByPlayer) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_BULLET_IN_AREA(x, y, z, radius, ownedByPlayer) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param ownedByPlayer boolean
--- @return boolean
function MISC.IS_BULLET_IN_BOX(x1, y1, z1, x2, y2, z2, ownedByPlayer) end
--- p3 - possibly radius?
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 boolean
--- @param p5 boolean
--- @return boolean
function MISC.HAS_BULLET_IMPACTED_IN_AREA(x, y, z, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 boolean
--- @param p7 boolean
--- @return boolean
function MISC.HAS_BULLET_IMPACTED_IN_BOX(p0, p1, p2, p3, p4, p5, p6, p7) end
--- PS4
--- @return boolean
function MISC.IS_ORBIS_VERSION() end
--- XBOX ONE
--- @return boolean
function MISC.IS_DURANGO_VERSION() end
--- @return boolean
function MISC.IS_XBOX360_VERSION() end
--- @return boolean
function MISC.IS_PS3_VERSION() end
--- @return boolean
function MISC.IS_PC_VERSION() end
--- @return boolean
function MISC.IS_STEAM_VERSION() end
--- Used to block some of the prostitute stuff due to laws in Australia.
--- @return boolean
function MISC.IS_AUSSIE_VERSION() end
--- @return boolean
function MISC.IS_JAPANESE_VERSION() end
--- @return boolean
function MISC.IS_XBOX_PLATFORM() end
--- Xbox Series (Scarlett) version...
--- @return boolean
function MISC.IS_SCARLETT_VERSION() end
--- @return boolean
function MISC.IS_SCE_PLATFORM() end
--- PS5 (Prospero) version...
--- @return boolean
function MISC.IS_PROSPERO_VERSION() end
--- @param string string
--- @return boolean
function MISC.IS_STRING_NULL(string) end
--- @param string string
--- @return boolean
function MISC.IS_STRING_NULL_OR_EMPTY(string) end
--- Returns false if it's a null or empty string or if the string is too long. outInteger will be set to -999 in that case.
--- 
--- If all checks have passed successfully, the return value will be set to whatever strtol(string, 0i64, 10); returns.
--- @param string string
--- @param outInteger any
--- @return boolean
function MISC.STRING_TO_INT(string, outInteger) end
--- @param var any
--- @param rangeStart number
--- @param rangeEnd number
--- @param p3 number
function MISC.SET_BITS_IN_RANGE(var, rangeStart, rangeEnd, p3) end
--- @param var number
--- @param rangeStart number
--- @param rangeEnd number
--- @return number
function MISC.GET_BITS_IN_RANGE(var, rangeStart, rangeEnd) end
--- See description of `ADD_STUNT_JUMP_ANGLED` for detailed info. The only difference really is this one does not have the radius (or angle, not sure) floats parameters for entry and landing zones.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param x4 number
--- @param y4 number
--- @param z4 number
--- @param camX number
--- @param camY number
--- @param camZ number
--- @param p15 number
--- @param p16 number
--- @param p17 number
--- @return number
function MISC.ADD_STUNT_JUMP(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, camX, camY, camZ, p15, p16, p17) end
--- Creates a new stunt jump.
--- 
--- The radius1 and radius2 might actually not be a radius at all, but that's what it seems to me testing them in-game. But they may be 'angle' floats instead, considering this native is named ADD_STUNT_JUMP_**ANGLED**.
--- 
--- Info about the specific 'parameter sections':
--- 
--- 
--- **x1, y1, z1, x2, y2, z2 and radius1:**
--- 
--- First coordinates are for the jump entry area, and the radius that will be checked around that area. So if you're not exactly within the coordinates, but you are within the outter radius limit then it will still register as entering the stunt jump. Note as mentioned above, the radius is just a guess, I'm not really sure about it's exact purpose.
--- 
--- 
--- **x3, y3, z3, x4, y4, z4 and radius2:**
--- 
--- Next part is the landing area, again starting with the left bottom (nearest to the stunt jump entry zone) coordinate, and the second one being the top right furthest away part of the landing area. Followed by another (most likely) radius float, this is usually slightly larger than the entry zone 'radius' float value, just because you have quite a lot of places where you can land (I'm guessing).
--- 
--- 
--- **camX, camY and camZ:**
--- 
--- The final coordinate in this native is the Camera position. Rotation and zoom/FOV is managed by the game itself, you just need to provide the camera location.
--- 
--- 
--- **unk1, unk2 and unk3:**
--- 
--- Not sure what these are for, but they're always `150, 0, 0` in decompiled scripts.
--- 
--- Here is a list of almost all of the stunt jumps from GTA V (taken from decompiled scripts): https://pastebin.com/EW1jBPkY
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param radius1 number
--- @param x3 number
--- @param y3 number
--- @param z3 number
--- @param x4 number
--- @param y4 number
--- @param z4 number
--- @param radius2 number
--- @param camX number
--- @param camY number
--- @param camZ number
--- @param p17 number
--- @param p18 number
--- @param p19 number
--- @return number
function MISC.ADD_STUNT_JUMP_ANGLED(x1, y1, z1, x2, y2, z2, radius1, x3, y3, z3, x4, y4, z4, radius2, camX, camY, camZ, p17, p18, p19) end
--- Toggles some stunt jump stuff.
--- @param toggle boolean
function MISC.TOGGLE_SHOW_OPTIONAL_STUNT_JUMP_CAMERA(toggle) end
--- @param p0 number
function MISC.DELETE_STUNT_JUMP(p0) end
--- @param p0 number
function MISC.ENABLE_STUNT_JUMP_SET(p0) end
--- @param p0 number
function MISC.DISABLE_STUNT_JUMP_SET(p0) end
--- @param toggle boolean
function MISC.SET_STUNT_JUMPS_CAN_TRIGGER(toggle) end
--- @return boolean
function MISC.IS_STUNT_JUMP_IN_PROGRESS() end
--- @return boolean
function MISC.IS_STUNT_JUMP_MESSAGE_SHOWING() end
--- @return number
function MISC.GET_NUM_SUCCESSFUL_STUNT_JUMPS() end
--- @return number
function MISC.GET_TOTAL_SUCCESSFUL_STUNT_JUMPS() end
function MISC.CANCEL_STUNT_JUMP() end
--- Make sure to call this from the correct thread if you're using multiple threads because all other threads except the one which is calling SET_GAME_PAUSED will be paused which means you will lose control and the game remains in paused mode until you exit GTA5.exe
--- @param toggle boolean
function MISC.SET_GAME_PAUSED(toggle) end
--- @param toggle boolean
function MISC.SET_THIS_SCRIPT_CAN_BE_PAUSED(toggle) end
--- @param toggle boolean
function MISC.SET_THIS_SCRIPT_CAN_REMOVE_BLIPS_CREATED_BY_ANY_SCRIPT(toggle) end
--- This native appears on the cheat_controller script and tracks a combination of buttons, which may be used to toggle cheats in-game. Credits to ThreeSocks for the info. The hash contains the combination, while the "amount" represents the amount of buttons used in a combination. The following page can be used to make a button combination: gta5offset.com/ts/hash/
--- 
--- INT_SCORES_SCORTED was a hash collision
--- @param hash number
--- @param amount number
--- @return boolean
function MISC.HAS_CHEAT_WITH_HASH_BEEN_ACTIVATED(hash, amount) end
--- Get inputted "Cheat code", for example:
--- 
--- while (TRUE)
--- {
--- if (MISC::HAS_PC_CHEAT_WITH_HASH_BEEN_ACTIVATED(${fugitive}))
--- {
--- // Do something.
--- }
--- SYSTEM::WAIT(0);
--- }
--- 
--- Calling this will also set the last saved string hash to zero.
--- 
--- @param hash number
--- @return boolean
function MISC.HAS_PC_CHEAT_WITH_HASH_BEEN_ACTIVATED(hash) end
--- @param p0 boolean
function MISC.OVERRIDE_FREEZE_FLAGS(p0) end
--- Formerly known as _LOWER_MAP_PROP_DENSITY and wrongly due to idiots as _ENABLE_MP_DLC_MAPS.
--- Sets the maximum prop density and changes a loading screen flag from 'loading story mode' to 'loading GTA Online'. Does not touch DLC map data at all.
--- 
--- In fact, I doubt this changes the flag whatsoever, that's the OTHER native idiots use together with this that does so, this one only causes a loading screen to show as it reloads map data.
--- @param p0 number
function MISC.SET_INSTANCE_PRIORITY_MODE(p0) end
--- Sets an unknown flag used by CScene in determining which entities from CMapData scene nodes to draw, similar to SET_INSTANCE_PRIORITY_MODE.
--- @param flag number
function MISC.SET_INSTANCE_PRIORITY_HINT(flag) end
--- This function is hard-coded to always return 0.
--- @return boolean
function MISC.IS_FRONTEND_FADING() end
--- spawns a few distant/out-of-sight peds, vehicles, animals etc each time it is called
function MISC.POPULATE_NOW() end
--- @return number
function MISC.GET_INDEX_OF_CURRENT_LEVEL() end
--- level can be from 0 to 3
--- 0: 9.8 - normal
--- 1: 2.4 - low
--- 2: 0.1 - very low
--- 3: 0.0 - off
--- @param level number
function MISC.SET_GRAVITY_LEVEL(level) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
function MISC.START_SAVE_DATA(p0, p1, p2) end
function MISC.STOP_SAVE_DATA() end
--- @param p0 boolean
--- @return number
function MISC.GET_SIZE_OF_SAVE_DATA(p0) end
--- @param p0 number
--- @param name string
function MISC.REGISTER_INT_TO_SAVE(p0, name) end
--- @param p0 number
--- @param name string
function MISC.REGISTER_INT64_TO_SAVE(p0, name) end
--- @param p0 number
--- @param name string
function MISC.REGISTER_ENUM_TO_SAVE(p0, name) end
--- @param p0 number
--- @param name string
function MISC.REGISTER_FLOAT_TO_SAVE(p0, name) end
--- @param p0 number
--- @param name string
function MISC.REGISTER_BOOL_TO_SAVE(p0, name) end
--- @param p0 number
--- @param name string
function MISC.REGISTER_TEXT_LABEL_TO_SAVE(p0, name) end
--- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f1, "tlPlateText");
--- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f1C, "tlPlateText_pending");
--- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f10B, "tlCarAppPlateText");
--- @param p0 number
--- @param name string
function MISC.REGISTER_TEXT_LABEL_15_TO_SAVE(p0, name) end
--- Only found 3 times in decompiled scripts.
--- 
--- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(a_0, "Movie_Name_For_This_Player");
--- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(&a_0._fB, "Ringtone_For_This_Player");
--- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(&a_0._f1EC4._f12[v_A/*6*/], &v_13); // where v_13 is "MPATMLOGSCRS0" thru "MPATMLOGSCRS15"
--- @param p0 number
--- @param name string
function MISC.REGISTER_TEXT_LABEL_23_TO_SAVE(p0, name) end
--- Only found 2 times in decompiled scripts.
--- 
--- MISC::REGISTER_TEXT_LABEL_31_TO_SAVE(&a_0._f1F5A._f6[0/*8*/], "TEMPSTAT_LABEL"); // gets saved in a struct called "g_SaveData_STRING_ScriptSaves"
--- MISC::REGISTER_TEXT_LABEL_31_TO_SAVE(&a_0._f4B4[v_1A/*8*/], &v_5); // where v_5 is "Name0" thru "Name9", gets saved in a struct called "OUTFIT_Name"
--- @param p0 number
--- @param name string
function MISC.REGISTER_TEXT_LABEL_31_TO_SAVE(p0, name) end
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(a_0, "Thumb_label");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f10, "Photo_label");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(a_0, "GXTlabel");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f21, "StringComp");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f43, "SecondStringComp");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f53, "ThirdStringComp");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f32, "SenderStringComp");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f726[v_1A/*16*/], &v_20); // where v_20 is "LastJobTL_0_1" thru "LastJobTL_2_1", gets saved in a struct called "LAST_JobGamer_TL"
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f4B, "PAID_PLAYER");
--- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f5B, "RADIO_STATION");
--- @param p0 number
--- @param name string
function MISC.REGISTER_TEXT_LABEL_63_TO_SAVE(p0, name) end
--- @param p0 number
--- @param size number
--- @param structName string
function MISC.START_SAVE_STRUCT_WITH_SIZE(p0, size, structName) end
function MISC.STOP_SAVE_STRUCT() end
--- @param p0 number
--- @param size number
--- @param arrayName string
function MISC.START_SAVE_ARRAY_WITH_SIZE(p0, size, arrayName) end
function MISC.STOP_SAVE_ARRAY() end
--- @param dst number
--- @param src number
--- @param size number
function MISC.COPY_SCRIPT_STRUCT(dst, src, size) end
--- https://alloc8or.re/gta5/doc/enums/DispatchType.txt
--- @param dispatchService number
--- @param toggle boolean
function MISC.ENABLE_DISPATCH_SERVICE(dispatchService, toggle) end
--- @param dispatchService number
--- @param toggle boolean
function MISC.BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(dispatchService, toggle) end
--- @param dispatchService number
--- @return number
function MISC.GET_NUMBER_RESOURCES_ALLOCATED_TO_WANTED_LEVEL(dispatchService) end
--- As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f.
--- 
--- Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV).
--- 
--- Side Note 2: I say it breaks as if you call this proper,
--- if(CREATE_INCIDENT) etc it will return false if you do as I said above.
--- =====================================================
--- @param dispatchService number
--- @param x number
--- @param y number
--- @param z number
--- @param numUnits number
--- @param radius number
--- @param outIncidentID any
--- @param p7 number
--- @param p8 number
--- @return boolean
function MISC.CREATE_INCIDENT(dispatchService, x, y, z, numUnits, radius, outIncidentID, p7, p8) end
--- As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f.
--- 
--- Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV).
--- 
--- Side Note 2: I say it breaks as if you call this proper,
--- if(CREATE_INCIDENT) etc it will return false if you do as I said above.
--- =====================================================
--- @param dispatchService number
--- @param ped number
--- @param numUnits number
--- @param radius number
--- @param outIncidentID any
--- @param p5 number
--- @param p6 number
--- @return boolean
function MISC.CREATE_INCIDENT_WITH_ENTITY(dispatchService, ped, numUnits, radius, outIncidentID, p5, p6) end
--- Delete an incident with a given id.
--- 
--- =======================================================
--- Correction, I have change this to int, instead of int*
--- as it doesn't use a pointer to the createdIncident.
--- If you try it you will crash (or) freeze.
--- =======================================================
--- @param incidentId number
function MISC.DELETE_INCIDENT(incidentId) end
--- =======================================================
--- Correction, I have change this to int, instead of int*
--- as it doesn't use a pointer to the createdIncident.
--- If you try it you will crash (or) freeze.
--- =======================================================
--- @param incidentId number
--- @return boolean
function MISC.IS_INCIDENT_VALID(incidentId) end
--- @param incidentId number
--- @param dispatchService number
--- @param numUnits number
function MISC.SET_INCIDENT_REQUESTED_UNITS(incidentId, dispatchService, numUnits) end
--- @param incidentId number
--- @param p1 number
function MISC.SET_IDEAL_SPAWN_DISTANCE_FOR_INCIDENT(incidentId, p1) end
--- Finds a position ahead of the player by predicting the players next actions.
--- The positions match path finding node positions.
--- When roads diverge, the position may rapidly change between two or more positions. This is due to the engine not being certain of which path the player will take.
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param fwdVecX number
--- @param fwdVecY number
--- @param fwdVecZ number
--- @param distance number
--- @param spawnPoint number
--- @return boolean
function MISC.FIND_SPAWN_POINT_IN_DIRECTION(posX, posY, posZ, fwdVecX, fwdVecY, fwdVecZ, distance, spawnPoint) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 number
--- @param p7 number
--- @param p8 boolean
--- @param p9 boolean
--- @return number
function MISC.ADD_POP_MULTIPLIER_AREA(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9) end
--- @param id number
--- @return boolean
function MISC.DOES_POP_MULTIPLIER_AREA_EXIST(id) end
--- @param id number
--- @param p1 boolean
function MISC.REMOVE_POP_MULTIPLIER_AREA(id, p1) end
--- @param id number
--- @return boolean
function MISC.IS_POP_MULTIPLIER_AREA_NETWORKED(id) end
--- This native is adding a zone, where you can change density settings. For example, you can add a zone on 0.0, 0.0, 0.0 with radius 900.0 and vehicleMultiplier 0.0, and you will not see any new population vehicle spawned in a radius of 900.0 from 0.0, 0.0, 0.0. Returns the id. You can have only 15 zones at the same time. You can remove zone using REMOVE_POP_MULTIPLIER_SPHERE
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param pedMultiplier number
--- @param vehicleMultiplier number
--- @param p6 boolean
--- @param p7 boolean
--- @return number
function MISC.ADD_POP_MULTIPLIER_SPHERE(x, y, z, radius, pedMultiplier, vehicleMultiplier, p6, p7) end
--- @param id number
--- @return boolean
function MISC.DOES_POP_MULTIPLIER_SPHERE_EXIST(id) end
--- Removes population multiplier sphere
--- @param id number
--- @param p1 boolean
function MISC.REMOVE_POP_MULTIPLIER_SPHERE(id, p1) end
--- Makes the ped jump around like they're in a tennis match
--- @param ped number
--- @param toggle boolean
--- @param p2 boolean
function MISC.ENABLE_TENNIS_MODE(ped, toggle, p2) end
--- @param ped number
--- @return boolean
function MISC.IS_TENNIS_MODE(ped) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animDict string
--- @param animName string
--- @param p3 number
--- @param p4 number
--- @param p5 boolean
function MISC.PLAY_TENNIS_SWING_ANIM(ped, animDict, animName, p3, p4, p5) end
--- @param ped number
--- @return boolean
function MISC.GET_TENNIS_SWING_ANIM_COMPLETE(ped) end
--- @param ped number
--- @return boolean
function MISC.GET_TENNIS_SWING_ANIM_CAN_BE_INTERRUPTED(ped) end
--- @param ped number
--- @return boolean
function MISC.GET_TENNIS_SWING_ANIM_SWUNG(ped) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 boolean
function MISC.PLAY_TENNIS_DIVE_ANIM(ped, p1, p2, p3, p4, p5) end
--- From the scripts:
--- 
--- MISC::SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT(sub_aa49(a_0), "ForcedStopDirection", v_E);
--- 
--- Related to tennis mode.
--- @param ped number
--- @param p1 string
--- @param p2 number
function MISC.SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT(ped, p1, p2) end
function MISC.RESET_DISPATCH_SPAWN_LOCATION() end
--- @param x number
--- @param y number
--- @param z number
function MISC.SET_DISPATCH_SPAWN_LOCATION(x, y, z) end
function MISC.RESET_DISPATCH_IDEAL_SPAWN_DISTANCE() end
--- @param distance number
function MISC.SET_DISPATCH_IDEAL_SPAWN_DISTANCE(distance) end
--- @param p0 number
function MISC.RESET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS(p0) end
--- @param p0 number
--- @param p1 number
function MISC.SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS(p0, p1) end
--- @param p0 number
--- @param p1 number
function MISC.SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS_MULTIPLIER(p0, p1) end
--- To remove, see: REMOVE_DISPATCH_SPAWN_BLOCKING_AREA
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @return number
function MISC.ADD_DISPATCH_SPAWN_ANGLED_BLOCKING_AREA(x1, y1, z1, x2, y2, z2, width) end
--- @param x1 number
--- @param y1 number
--- @param x2 number
--- @param y2 number
--- @return number
function MISC.ADD_DISPATCH_SPAWN_SPHERE_BLOCKING_AREA(x1, y1, x2, y2) end
--- @param p0 number
function MISC.REMOVE_DISPATCH_SPAWN_BLOCKING_AREA(p0) end
function MISC.RESET_DISPATCH_SPAWN_BLOCKING_AREAS() end
function MISC.RESET_WANTED_RESPONSE_NUM_PEDS_TO_SPAWN() end
--- @param p0 number
--- @param p1 number
function MISC.SET_WANTED_RESPONSE_NUM_PEDS_TO_SPAWN(p0, p1) end
--- @param x number
--- @param y number
--- @param z number
function MISC.ADD_TACTICAL_NAV_MESH_POINT(x, y, z) end
function MISC.CLEAR_TACTICAL_NAV_MESH_POINTS() end
--- Activates (usused?) riot mode. All NPCs are being hostile to each other (including player). Also the game will give weapons (pistols, smgs) to random NPCs.
--- @param toggle boolean
function MISC.SET_RIOT_MODE_ENABLED(toggle) end
--- @param p0 number
--- @param windowTitle string
--- @param p2 number
--- @param defaultText string
--- @param defaultConcat1 string
--- @param defaultConcat2 string
--- @param defaultConcat3 string
--- @param defaultConcat4 string
--- @param defaultConcat5 string
--- @param defaultConcat6 string
--- @param defaultConcat7 string
--- @param maxInputLength number
function MISC.DISPLAY_ONSCREEN_KEYBOARD_WITH_LONGER_INITIAL_STRING(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, defaultConcat4, defaultConcat5, defaultConcat6, defaultConcat7, maxInputLength) end
--- sfink: note, p0 is set to 6 for PC platform in at least 1 script, or to `unk::_get_ui_language_id() == 0` otherwise.
--- 
--- NOTE: windowTitle uses text labels, and an invalid value will display nothing.
--- 
--- www.gtaforums.com/topic/788343-vrel-script-hook-v/?p=1067380474
--- 
--- windowTitle's
--- -----------------
--- CELL_EMAIL_BOD  =   "Enter your Eyefind message"
--- CELL_EMAIL_BODE =   "Message too long. Try again"
--- CELL_EMAIL_BODF    =   "Forbidden message. Try again"
--- CELL_EMAIL_SOD    =   "Enter your Eyefind subject"
--- CELL_EMAIL_SODE =   "Subject too long. Try again"
--- CELL_EMAIL_SODF    =   "Forbidden text. Try again"
--- CELL_EMASH_BOD   =   "Enter your Eyefind message"
--- CELL_EMASH_BODE =   "Message too long. Try again"
--- CELL_EMASH_BODF    =   "Forbidden message. Try again"
--- CELL_EMASH_SOD    =   "Enter your Eyefind subject"
--- CELL_EMASH_SODE =   "Subject too long. Try again"
--- CELL_EMASH_SODF    =   "Forbidden Text. Try again"
--- FMMC_KEY_TIP10   =   "Enter Synopsis"
--- FMMC_KEY_TIP12  =   "Enter Custom Team Name"
--- FMMC_KEY_TIP12F =   "Forbidden Text. Try again"
--- FMMC_KEY_TIP12N  =   "Custom Team Name"
--- FMMC_KEY_TIP8 =   "Enter Message"
--- FMMC_KEY_TIP8F   =   "Forbidden Text. Try again"
--- FMMC_KEY_TIP8FS  =   "Invalid Message. Try again"
--- FMMC_KEY_TIP8S  =   "Enter Message"
--- FMMC_KEY_TIP9    =   "Enter Outfit Name"
--- FMMC_KEY_TIP9F   =   "Invalid Outfit Name. Try again"
--- FMMC_KEY_TIP9N  =   "Outfit Name"
--- PM_NAME_CHALL  =   "Enter Challenge Name"
--- @param p0 number
--- @param windowTitle string
--- @param p2 string
--- @param defaultText string
--- @param defaultConcat1 string
--- @param defaultConcat2 string
--- @param defaultConcat3 string
--- @param maxInputLength number
function MISC.DISPLAY_ONSCREEN_KEYBOARD(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, maxInputLength) end
--- Returns the current status of the onscreen keyboard, and updates the output.
--- 
--- Status Codes:
--- 
--- -1: Keyboard isn't active
--- 0: User still editing
--- 1: User has finished editing
--- 2: User has canceled editing
--- @return number
function MISC.UPDATE_ONSCREEN_KEYBOARD() end
--- Returns NULL unless UPDATE_ONSCREEN_KEYBOARD() returns 1 in the same tick.
--- @return string
function MISC.GET_ONSCREEN_KEYBOARD_RESULT() end
--- DO NOT use this as it doesn't clean up the text input box properly and your script will get stuck in the UPDATE_ONSCREEN_KEYBOARD() loop.
--- Use FORCE_CLOSE_TEXT_INPUT_BOX instead.
function MISC.CANCEL_ONSCREEN_KEYBOARD() end
--- p0 was always 2 in R* scripts.
--- Called before calling DISPLAY_ONSCREEN_KEYBOARD if the input needs to be saved.
--- @param p0 number
function MISC.NEXT_ONSCREEN_KEYBOARD_RESULT_WILL_DISPLAY_USING_THESE_FONTS(p0) end
--- Appears to remove stealth kill action from memory
--- @param hash number
--- @param enable boolean
function MISC.ACTION_MANAGER_ENABLE_ACTION(hash, enable) end
--- GET_GAME_TIMER() / 1000
--- @return number
function MISC.GET_REAL_WORLD_TIME() end
--- @param eventType number
--- @param suppress boolean
function MISC.SUPRESS_RANDOM_EVENT_THIS_FRAME(eventType, suppress) end
--- @param player number
function MISC.SET_EXPLOSIVE_AMMO_THIS_FRAME(player) end
--- @param player number
function MISC.SET_FIRE_AMMO_THIS_FRAME(player) end
--- @param player number
function MISC.SET_EXPLOSIVE_MELEE_THIS_FRAME(player) end
--- @param player number
function MISC.SET_SUPER_JUMP_THIS_FRAME(player) end
--- @param player number
function MISC.SET_BEAST_JUMP_THIS_FRAME(player) end
--- @param player number
function MISC.SET_FORCED_JUMP_THIS_FRAME(player) end
--- @return boolean
function MISC.HAS_GAME_INSTALLED_THIS_SESSION() end
function MISC.SET_TICKER_JOHNMARSTON_IS_DONE() end
--- @return boolean
function MISC.ARE_PROFILE_SETTINGS_VALID() end
function MISC.PREVENT_ARREST_STATE_THIS_FRAME() end
--- Sets the localplayer playerinfo state back to playing (State 0)
--- 
--- States are:
--- -1: "Invalid"
--- 0: "Playing"
--- 1: "Died"
--- 2: "Arrested"
--- 3: "Failed Mission"
--- 4: "Left Game"
--- 5: "Respawn"
--- 6: "In MP Cutscene"
function MISC.FORCE_GAME_STATE_PLAYING() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MISC.SCRIPT_RACE_INIT(p0, p1, p2, p3) end
function MISC.SCRIPT_RACE_SHUTDOWN() end
--- @param player number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MISC.SCRIPT_RACE_PLAYER_HIT_CHECKPOINT(player, p1, p2, p3) end
--- @param player number
--- @param p1 any
--- @param p2 any
--- @return boolean
function MISC.SCRIPT_RACE_GET_PLAYER_SPLIT_TIME(player, p1, p2) end
function MISC.START_END_USER_BENCHMARK() end
function MISC.STOP_END_USER_BENCHMARK() end
function MISC.RESET_END_USER_BENCHMARK() end
--- Saves the benchmark recording to %USERPROFILE%\Documents\Rockstar Games\GTA V\Benchmarks and submits some metrics.
function MISC.SAVE_END_USER_BENCHMARK() end
--- Returns true if the current frontend menu is FE_MENU_VERSION_SP_PAUSE
--- @return boolean
function MISC.UI_STARTED_END_USER_BENCHMARK() end
--- Returns true if the current frontend menu is FE_MENU_VERSION_LANDING_MENU
--- @return boolean
function MISC.LANDING_SCREEN_STARTED_END_USER_BENCHMARK() end
--- Returns true if command line option '-benchmark' is set.
--- @return boolean
function MISC.IS_COMMANDLINE_END_USER_BENCHMARK() end
--- Returns value of the '-benchmarkIterations' command line option.
--- @return number
function MISC.GET_BENCHMARK_ITERATIONS() end
--- Returns value of the '-benchmarkPass' command line option.
--- @return number
function MISC.GET_BENCHMARK_PASS() end
--- In singleplayer it does exactly what the name implies. In FiveM / GTA:Online it shows `Disconnecting from GTA Online` HUD and then quits the game.
function MISC.RESTART_GAME() end
--- Exits the game and downloads a fresh social club update on next restart.
function MISC.QUIT_GAME() end
--- Hardcoded to always return true.
--- @return boolean
function MISC.HAS_ASYNC_INSTALL_FINISHED() end
function MISC.CLEANUP_ASYNC_INSTALL() end
--- aka "constrained"
--- @return boolean
function MISC.PLM_IS_IN_CONSTRAINED_MODE() end
--- Returns duration of how long the game has been in power-saving mode (aka "constrained") in milliseconds.
--- @return number
function MISC.PLM_GET_CONSTRAINED_DURATION_MS() end
--- If toggle is true, the ped's head is shown in the pause menu
--- If toggle is false, the ped's head is not shown in the pause menu
--- @param toggle boolean
function MISC.SET_PLAYER_IS_IN_ANIMAL_FORM(toggle) end
--- Although we don't have a jenkins hash for this one, the name is 100% confirmed.
--- @return boolean
function MISC.GET_IS_PLAYER_IN_ANIMAL_FORM() end
--- @param toggle boolean
function MISC.SET_PLAYER_IS_REPEATING_A_MISSION(toggle) end
--- Does nothing (it's a nullsub).
function MISC.DISABLE_SCREEN_DIMMING_THIS_FRAME() end
--- @return number
function MISC.GET_CITY_DENSITY() end
function MISC.USE_ACTIVE_CAMERA_FOR_TIMESLICING_CENTRE() end
--- @param contentId number
--- @param index number
function MISC.SET_CONTENT_ID_INDEX(contentId, index) end
--- @param contentId number
--- @return number
function MISC.GET_CONTENT_ID_INDEX(contentId) end
--- @param model number
--- @param type number
function MISC._SET_CONTENT_PROP_TYPE(model, type) end
--- Returns prop type for given model hash
--- @param model number
--- @return number
function MISC._GET_CONTENT_PROP_TYPE(model) end

MOBILE = {}

--- Creates a mobile phone of the specified type.
--- 
--- Possible phone types:
--- 
--- 0 - Default phone / Michael's phone
--- 1 - Trevor's phone
--- 2 - Franklin's phone
--- 3 - Unused police phone
--- 4 - Prologue phone
--- 
--- Higher values may crash your game.
--- @param phoneType number
function MOBILE.CREATE_MOBILE_PHONE(phoneType) end
--- Destroys the currently active mobile phone.
function MOBILE.DESTROY_MOBILE_PHONE() end
--- The minimum/default is 500.0f. If you plan to make it bigger set it's position as well. Also this seems to need to be called in a loop as when you close the phone the scale is reset. If not in a loop you'd need to call it everytime before you re-open the phone.
--- @param scale number
function MOBILE.SET_MOBILE_PHONE_SCALE(scale) end
--- Last parameter is unknown and always zero.
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param p3 number
function MOBILE.SET_MOBILE_PHONE_ROTATION(rotX, rotY, rotZ, p3) end
--- @param rotation number
--- @param p1 number
function MOBILE.GET_MOBILE_PHONE_ROTATION(rotation, p1) end
--- @param posX number
--- @param posY number
--- @param posZ number
function MOBILE.SET_MOBILE_PHONE_POSITION(posX, posY, posZ) end
--- @param position number
function MOBILE.GET_MOBILE_PHONE_POSITION(position) end
--- If bool Toggle = true so the mobile is hide to screen.
--- If bool Toggle = false so the mobile is show to screen.
--- @param toggle boolean
function MOBILE.SCRIPT_IS_MOVING_MOBILE_PHONE_OFFSCREEN(toggle) end
--- This one is weird and seems to return a TRUE state regardless of whether the phone is visible on screen or tucked away.
--- 
--- 
--- I can confirm the above. This function is hard-coded to always return 1.
--- @return boolean
function MOBILE.CAN_PHONE_BE_SEEN_ON_SCREEN() end
--- @param toggle boolean
function MOBILE.SET_MOBILE_PHONE_DOF_STATE(toggle) end
--- For move the finger of player, the value of int goes 1 at 5.
--- @param direction number
function MOBILE.CELL_SET_INPUT(direction) end
--- if the bool "Toggle" is "true" so the phone is lean.
--- if the bool "Toggle" is "false" so the phone is not lean.
--- @param toggle boolean
function MOBILE.CELL_HORIZONTAL_MODE_TOGGLE(toggle) end
--- @param p0 boolean
--- @param p1 boolean
function MOBILE.CELL_CAM_ACTIVATE(p0, p1) end
--- @param toggle boolean
function MOBILE.CELL_CAM_ACTIVATE_SELFIE_MODE(toggle) end
--- @param toggle boolean
function MOBILE.CELL_CAM_ACTIVATE_SHALLOW_DOF_MODE(toggle) end
--- @param p0 number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_SIDE_OFFSET_SCALING(p0) end
--- @param horizontalPan number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_HORZ_PAN_OFFSET(horizontalPan) end
--- @param vertPan number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_VERT_PAN_OFFSET(vertPan) end
--- @param roll number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_ROLL_OFFSET(roll) end
--- @param distanceScaling number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_DISTANCE_SCALING(distanceScaling) end
--- @param yaw number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_HEAD_YAW_OFFSET(yaw) end
--- @param roll number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_HEAD_ROLL_OFFSET(roll) end
--- @param pitch number
function MOBILE.CELL_CAM_SET_SELFIE_MODE_HEAD_PITCH_OFFSET(pitch) end
--- @param entity number
--- @return boolean
function MOBILE.CELL_CAM_IS_CHAR_VISIBLE_NO_FACE_CHECK(entity) end
--- @param renderId any
function MOBILE.GET_MOBILE_PHONE_RENDER_ID(renderId) end

MONEY = {}

--- @param wallet number
--- @param bank number
function MONEY.NETWORK_INITIALIZE_CASH(wallet, bank) end
--- Note the 2nd parameters are always 1, 0. I have a feeling it deals with your money, wallet, bank. So when you delete the character it of course wipes the wallet cash at that time. So if that was the case, it would be eg, NETWORK_DELETE_CHARACTER(characterIndex, deleteWalletCash, deleteBankCash);
--- @param characterSlot number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_DELETE_CHARACTER(characterSlot, p1, p2) end
--- @param characterSlot number
function MONEY.NETWORK_MANUAL_DELETE_CHARACTER(characterSlot) end
--- @return boolean
function MONEY.NETWORK_GET_PLAYER_IS_HIGH_EARNER() end
--- @param characterSlot number
function MONEY.NETWORK_CLEAR_CHARACTER_WALLET(characterSlot) end
--- @param amount number
--- @param gamerHandle number
function MONEY.NETWORK_GIVE_PLAYER_JOBSHARE_CASH(amount, gamerHandle) end
--- @param value number
--- @param gamerHandle number
function MONEY.NETWORK_RECEIVE_PLAYER_JOBSHARE_CASH(value, gamerHandle) end
--- @return boolean
function MONEY.NETWORK_CAN_SHARE_JOB_CASH() end
--- index
--- -------
--- See function sub_1005 in am_boat_taxi.ysc
--- 
--- context
--- ----------
--- "BACKUP_VAGOS"
--- "BACKUP_LOST"
--- "BACKUP_FAMILIES"
--- "HIRE_MUGGER"
--- "HIRE_MERCENARY"
--- "BUY_CARDROPOFF"
--- "HELI_PICKUP"
--- "BOAT_PICKUP"
--- "CLEAR_WANTED"
--- "HEAD_2_HEAD"
--- "CHALLENGE"
--- "SHARE_LAST_JOB"
--- "DEFAULT"
--- 
--- reason
--- ---------
--- "NOTREACHTARGET"
--- "TARGET_ESCAPE"
--- "DELIVERY_FAIL"
--- "NOT_USED"
--- "TEAM_QUIT"
--- "SERVER_ERROR"
--- "RECEIVE_LJ_L"
--- "CHALLENGE_PLAYER_LEFT"
--- "DEFAULT"
--- 
--- unk
--- -----
--- Unknown bool value
--- 
--- 
--- @param index number
--- @param context string
--- @param reason string
--- @param p3 boolean
function MONEY.NETWORK_REFUND_CASH(index, context, reason, p3) end
--- @param amount number
--- @param p1 string
--- @param p2 string
--- @param p3 boolean
--- @param p4 boolean
--- @param p5 boolean
function MONEY.NETWORK_DEDUCT_CASH(amount, p1, p2, p3, p4, p5) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @return boolean
function MONEY.NETWORK_MONEY_CAN_BET(amount, p1, p2) end
--- @param amount number
--- @return boolean
function MONEY.NETWORK_CAN_BET(amount) end
--- GTAO_CASINO_HOUSE
--- GTAO_CASINO_INSIDETRACK
--- GTAO_CASINO_LUCKYWHEEL
--- GTAO_CASINO_BLACKJACK
--- GTAO_CASINO_ROULETTE
--- GTAO_CASINO_SLOTS
--- GTAO_CASINO_PURCHASE_CHIPS
--- 
--- NETWORK_C*
--- @param hash number
--- @return boolean
function MONEY.NETWORK_CASINO_CAN_BET(hash) end
--- @return boolean
function MONEY.NETWORK_CASINO_CAN_BET_PVC() end
--- @param p0 number
--- @return boolean
function MONEY.NETWORK_CASINO_CAN_BET_AMOUNT(p0) end
--- @return boolean
function MONEY.NETWORK_CASINO_CAN_BUY_CHIPS_PVC() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function MONEY.NETWORK_CASINO_BUY_CHIPS(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function MONEY.NETWORK_CASINO_SELL_CHIPS(p0, p1) end
--- Does nothing (it's a nullsub).
function MONEY.NETWORK_DEFER_CASH_TRANSACTIONS_UNTIL_SHOP_SAVE() end
--- @param p0 number
--- @param p1 number
--- @param amount number
--- @param p3 any
--- @return boolean
function MONEY.CAN_PAY_AMOUNT_TO_BOSS(p0, p1, amount, p3) end
--- @param amount number
function MONEY.NETWORK_EARN_FROM_PICKUP(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_FROM_CASHING_OUT(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_FROM_GANGATTACK_PICKUP(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_ASSASSINATE_TARGET_KILLED(amount) end
--- For the money bags that drop a max of $40,000. Often called 40k bags.
--- 
--- Most likely NETWORK_EARN_FROM_ROB***
--- @param amount number
function MONEY.NETWORK_EARN_FROM_ROB_ARMORED_CARS(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_FROM_CRATE_DROP(amount) end
--- @param amount number
--- @param p1 string
function MONEY.NETWORK_EARN_FROM_BETTING(amount, p1) end
--- @param amount number
--- @param p1 string
function MONEY.NETWORK_EARN_FROM_JOB(amount, p1) end
--- @param amount number
--- @param p1 string
function MONEY.NETWORK_EARN_FROM_JOBX2(amount, p1) end
--- @param amount number
--- @param p1 string
function MONEY.NETWORK_EARN_FROM_PREMIUM_JOB(amount, p1) end
--- @param amount number
--- @param heistHash string
function MONEY.NETWORK_EARN_FROM_BEND_JOB(amount, heistHash) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
function MONEY.NETWORK_EARN_FROM_CHALLENGE_WIN(p0, p1, p2) end
--- @param amount number
--- @param gamerHandle number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_FROM_BOUNTY(amount, gamerHandle, p2, p3) end
--- @param amount number
--- @param modelHash number
function MONEY.NETWORK_EARN_FROM_IMPORT_EXPORT(amount, modelHash) end
--- @param amount number
function MONEY.NETWORK_EARN_FROM_HOLDUPS(amount) end
--- @param amount number
--- @param propertyName number
function MONEY.NETWORK_EARN_FROM_PROPERTY(amount, propertyName) end
--- DSPORT
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FROM_AI_TARGET_KILL(p0, p1) end
--- @param amount number
function MONEY.NETWORK_EARN_FROM_NOT_BADSPORT(amount) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
function MONEY.NETWORK_EARN_FROM_VEHICLE(p0, p1, p2, p3, p4, p5, p6, p7) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
function MONEY.NETWORK_EARN_FROM_PERSONAL_VEHICLE(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
--- type either Monthly,Weekly,Daily
--- @param amount number
--- @param type string
--- @param characterSlot number
function MONEY.NETWORK_EARN_FROM_DAILY_OBJECTIVES(amount, type, characterSlot) end
--- Example for p1: "AM_DISTRACT_COPS"
--- @param p0 number
--- @param p1 string
--- @param p2 number
function MONEY.NETWORK_EARN_FROM_AMBIENT_JOB(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_FROM_JOB_BONUS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_FROM_CRIMINAL_MASTERMIND(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_HEIST_AWARD(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_FIRST_TIME_BONUS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_GOON(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_BOSS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_AGENCY(p0, p1, p2, p3) end
--- @param amount number
--- @param id number
function MONEY.NETWORK_EARN_FROM_WAREHOUSE(amount, id) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_FROM_CONTRABAND(amount, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_FROM_DESTROYING_CONTRABAND(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function MONEY.NETWORK_EARN_FROM_SMUGGLER_WORK(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FROM_HANGAR_TRADE(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_PURCHASE_CLUB_HOUSE(p0, p1) end
--- @param amount number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_FROM_BUSINESS_PRODUCT(amount, p1, p2, p3) end
--- @param amount number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_FROM_VEHICLE_EXPORT(amount, p1, p2) end
--- @param amount number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_SMUGGLER_AGENCY(amount, p1, p2, p3) end
--- @param p0 number
function MONEY.NETWORK_EARN_BOUNTY_HUNTER_REWARD(p0) end
--- @param p0 number
function MONEY.NETWORK_EARN_FROM_BUSINESS_BATTLE(p0) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FROM_CLUB_MANAGEMENT_PARTICIPATION(p0, p1) end
--- @param p0 number
function MONEY.NETWORK_EARN_FROM_FMBB_PHONECALL_MISSION(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_FROM_BUSINESS_HUB_SELL(p0, p1, p2) end
--- @param p0 number
function MONEY.NETWORK_EARN_FROM_FMBB_BOSS_WORK(p0) end
--- @param p0 number
function MONEY.NETWORK_EARN_FMBB_WAGE_BONUS(p0) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
--- @param p5 number
--- @return boolean
function MONEY.NETWORK_CAN_SPEND_MONEY(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return boolean
function MONEY.NETWORK_CAN_SPEND_MONEY2(p0, p1, p2, p3, p4, p5, p6) end
--- @param amount number
--- @param item number
--- @param p2 number
--- @param p3 number
--- @param p4 boolean
--- @param item_name string
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 boolean
function MONEY.NETWORK_BUY_ITEM(amount, item, p2, p3, p4, item_name, p6, p7, p8, p9) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPENT_TAXI(amount, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_PAY_EMPLOYEE_WAGE(p0, p1, p2) end
--- @param amount number
--- @param matchId string
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_PAY_MATCH_ENTRY_FEE(amount, matchId, p2, p3) end
--- @param amount number
--- @param p1 number
--- @param matchId string
--- @param p3 boolean
--- @param p4 boolean
function MONEY.NETWORK_SPENT_BETTING(amount, p1, matchId, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param amount number
function MONEY.NETWORK_SPENT_WAGER(p0, p1, amount) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 number
--- @param p3 boolean
function MONEY.NETWORK_SPENT_IN_STRIPCLUB(p0, p1, p2, p3) end
--- @param cost number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_BUY_HEALTHCARE(cost, p1, p2) end
--- p1 = 0 (always)
--- p2 = 1 (always)
--- @param cost number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_BUY_AIRSTRIKE(cost, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
--- @param npcProvider number
function MONEY.NETWORK_BUY_BACKUP_GANG(p0, p1, p2, p3, npcProvider) end
--- p1 = 0 (always)
--- p2 = 1 (always)
--- @param cost number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_BUY_HELI_STRIKE(cost, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_AMMO_DROP(p0, p1, p2, p3) end
--- p1 is just an assumption. p2 was false and p3 was true.
--- @param amount number
--- @param victim number
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
function MONEY.NETWORK_BUY_BOUNTY(amount, victim, p2, p3, p4) end
--- @param cost number
--- @param propertyName number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_BUY_PROPERTY(cost, propertyName, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_BUY_SMOKES(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_HELI_PICKUP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_BOAT_PICKUP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_BULL_SHARK(p0, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_CASH_DROP(amount, p1, p2) end
--- Only used once in a script (am_contact_requests)
--- p1 = 0
--- p2 = 1
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_HIRE_MUGGER(p0, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_ROBBED_BY_MUGGER(amount, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_HIRE_MERCENARY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
function MONEY.NETWORK_SPENT_BUY_WANTEDLEVEL(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_OFFTHERADAR(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_REVEAL_PLAYERS(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @param p4 boolean
function MONEY.NETWORK_SPENT_CARWASH(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_CINEMA(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_TELESCOPE(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_HOLDUPS(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_PASSIVE_MODE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_BANK_INTEREST(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_PROSTITUTES(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_ARREST_BAIL(p0, p1, p2) end
--- According to how I understood this in the freemode script alone,
--- The first parameter is determined by a function named, func_5749 within the freemode script which has a list of all the vehicles and a set price to return which some vehicles deals with globals as well. So the first parameter is basically the set in stone insurance cost it's gonna charge you for that specific vehicle model.
--- 
--- The second parameter whoever put it was right, they call GET_ENTITY_MODEL with the vehicle as the paremeter.
--- 
--- The third parameter is the network handle as they call their little struct<13> func or atleast how the script decompiled it to look which in lamens terms just returns the network handle of the previous owner based on DECOR_GET_INT(vehicle, "Previous_Owner").
--- 
--- The fourth parameter is a bool that returns true/false depending on if your bank balance is greater then 0.
--- 
--- The fifth and last parameter is a bool that returns true/false depending on if you have the money for the car based on the cost returned by func_5749. In the freemode script eg,
--- bool hasTheMoney = MONEY::_GET_BANK_BALANCE() < carCost.
--- @param amount number
--- @param vehicleModel number
--- @param gamerHandle number
--- @param notBankrupt boolean
--- @param hasTheMoney boolean
function MONEY.NETWORK_SPENT_PAY_VEHICLE_INSURANCE_PREMIUM(amount, vehicleModel, gamerHandle, notBankrupt, hasTheMoney) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_CALL_PLAYER(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_BOUNTY(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_FROM_ROCKSTAR(p0, p1, p2) end
--- Hardcoded to return 0.
--- @param amount number
--- @return number
function MONEY.NETWORK_SPEND_EARNED_FROM_BANK_AND_WALLETS(amount) end
--- This isn't a hash collision.
--- @param p0 any
--- @param p1 any
--- @param p2 string
--- @return string
function MONEY.PROCESS_CASH_GIFT(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_SPENT_MOVE_SUBMARINE(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_PLAYER_HEALTHCARE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_NO_COPS(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function MONEY.NETWORK_SPENT_CARGO_SOURCING(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_REQUEST_JOB(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPENT_REQUEST_HEIST(p0, p1, p2, p3) end
--- The first parameter is the amount spent which is store in a global when this native is called. The global returns 10. Which is the price for both rides.
--- 
--- The last 3 parameters are,
--- 2,0,1 in the am_ferriswheel.c
--- 1,0,1 in the am_rollercoaster.c
--- 
--- @param amount number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
function MONEY.NETWORK_BUY_FAIRGROUND_RIDE(amount, p1, p2, p3, p4) end
--- @return boolean
function MONEY.NETWORK_ECONOMY_HAS_FIXED_CRAZY_NUMBERS() end
--- @param amount number
--- @param matchId string
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_JOB_SKIP(amount, matchId, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @return boolean
function MONEY.NETWORK_SPENT_BOSS_GOON(amount, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param amount number
function MONEY.NETWORK_SPEND_GOON(p0, p1, amount) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_SPEND_BOSS(p0, p1, p2) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_MOVE_YACHT(amount, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_RENAME_ORGANIZATION(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @param p4 boolean
function MONEY.NETWORK_BUY_CONTRABAND_MISSION(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PA_SERVICE_HELI(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PA_SERVICE_VEHICLE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PA_SERVICE_SNACK(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PA_SERVICE_DANCER(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_SPENT_PA_SERVICE_IMPOUND(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PA_HELI_PICKUP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPENT_PURCHASE_OFFICE_PROPERTY(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPENT_UPGRADE_OFFICE_PROPERTY(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_WAREHOUSE_PROPERTY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_WAREHOUSE_PROPERTY(p0, p1, p2, p3) end
--- @param amount number
--- @param data number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_PURCHASE_IMPEXP_WAREHOUSE_PROPERTY(amount, data, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_IMPEXP_WAREHOUSE_PROPERTY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_TRADE_IMPEXP_WAREHOUSE_PROPERTY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_ORDER_WAREHOUSE_VEHICLE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_ORDER_BODYGUARD_VEHICLE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_JUKEBOX(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_CLUB_HOUSE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_CLUB_HOUSE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_BUSINESS_PROPERTY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_BUSINESS_PROPERTY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_TRADE_BUSINESS_PROPERTY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPENT_MC_ABILITY(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PAY_BUSINESS_SUPPLIES(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_SPENT_CHANGE_APPEARANCE(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
function MONEY.NETWORK_SPENT_VEHICLE_EXPORT_MODS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_OFFICE_GARAGE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_OFFICE_GARAGE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_SPENT_IMPORT_EXPORT_REPAIR(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_HANGAR(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_HANGAR(p0, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_HANGAR_UTILITY_CHARGES(amount, p1, p2) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_HANGAR_STAFF_CHARGES(amount, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_TRUCK(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_TRUCK(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_BUNKER(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPRADE_BUNKER(p0, p1, p2, p3) end
--- @param amount number
--- @param bunkerHash number
function MONEY.NETWORK_EARN_FROM_SELL_BUNKER(amount, bunkerHash) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_BALLISTIC_EQUIPMENT(amount, p1, p2) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_RDR_BONUS(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_WAGE_PAYMENT(amount, p1) end
--- @param amount number
function MONEY.NETWORK_EARN_WAGE_PAYMENT_BONUS(amount) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_BASE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_BASE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_BUY_TILTROTOR(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_TILTROTOR(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_EMPLOY_ASSASSINS(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_GANGOPS_CANNON(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_GANGOPS_SKIP_MISSION(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_CASINO_HEIST_SKIP_MISSION(p0, p1, p2, p3) end
--- @param amount number
--- @param baseNameHash number
function MONEY.NETWORK_EARN_SELL_BASE(amount, baseNameHash) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_TARGET_REFUND(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_GANGOPS_WAGES(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_GANGOPS_WAGES_BONUS(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_DAR_CHALLENGE(amount, p1) end
--- @param amount number
--- @param vehicleHash number
function MONEY.NETWORK_EARN_DOOMSDAY_FINALE_BONUS(amount, vehicleHash) end
--- @param amount number
--- @param p1 string
--- @param p2 number
function MONEY.NETWORK_EARN_GANGOPS_AWARD(amount, p1, p2) end
--- @param amount number
--- @param p1 string
--- @param actIndex number
function MONEY.NETWORK_EARN_GANGOPS_ELITE(amount, p1, actIndex) end
--- @param earnedMoney number
function MONEY.NETWORK_SERVICE_EARN_GANGOPS_RIVAL_DELIVERY(earnedMoney) end
--- @param type number
--- @param amount number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPEND_GANGOPS_START_STRAND(type, amount, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPEND_GANGOPS_TRIP_SKIP(amount, p1, p2) end
--- @param amount number
function MONEY.NETWORK_EARN_GANGOPS_PREP_PARTICIPATION(amount) end
--- @param amount number
--- @param p1 string
function MONEY.NETWORK_EARN_GANGOPS_SETUP(amount, p1) end
--- @param amount number
--- @param p1 string
function MONEY.NETWORK_EARN_GANGOPS_FINALE(amount, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_SPEND_GANGOPS_REPAIR_COST(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_NIGHTCLUB(p0, p1) end
--- @param p0 number
function MONEY.NETWORK_EARN_NIGHTCLUB_DANCING(p0) end
--- @param amount number
function MONEY.NETWORK_EARN_BB_EVENT_BONUS(amount) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_HACKER_TRUCK(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_HACKER_TRUCK(p0, p1, p2, p3) end
--- @param p0 number
--- @param amount number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_HACKER_TRUCK(p0, amount, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_PURCHASE_NIGHTCLUB_AND_WAREHOUSE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPENT_UPGRADE_NIGHTCLUB_AND_WAREHOUSE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function MONEY.NETWORK_EARN_NIGHTCLUB_AND_WAREHOUSE(p0, p1, p2, p3, p4, p5, p6) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_NIGHTCLUB_AND_WAREHOUSE(p0, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPENT_RDR_HATCHET_BONUS(amount, p1, p2) end
--- @param player number
--- @param amount number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_NIGHTCLUB_ENTRY_FEE(player, amount, p1, p2, p3) end
--- @param amount number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPEND_NIGHTCLUB_BAR_DRINK(amount, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPEND_BOUNTY_HUNTER_MISSION(amount, p1, p2) end
--- @param amount number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_REHIRE_DJ(amount, p1, p2, p3) end
--- @param amount number
--- @param p1 number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPENT_ARENA_JOIN_SPECTATOR(amount, p1, p2, p3) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_ARENA_SKILL_LEVEL_PROGRESSION(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_ARENA_CAREER_PROGRESSION(amount, p1) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPEND_MAKE_IT_RAIN(amount, p1, p2) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 string
function MONEY.NETWORK_SPEND_BUY_ARENA(amount, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 string
function MONEY.NETWORK_SPEND_UPGRADE_ARENA(amount, p1, p2, p3) end
--- type either, 1 for cam spectate, 2 for drone
--- @param amount number
--- @param type number
--- @param p2 boolean
--- @param p3 boolean
function MONEY.NETWORK_SPEND_ARENA_SPECTATOR_BOX(amount, type, p2, p3) end
--- @param amount number
--- @param p1 number
--- @param p2 boolean
function MONEY.NETWORK_SPEND_SPIN_THE_WHEEL_PAYMENT(amount, p1, p2) end
--- @param amount number
function MONEY.NETWORK_EARN_SPIN_THE_WHEEL_CASH(amount) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
function MONEY.NETWORK_SPEND_ARENA_PREMIUM(amount, p1, p2) end
--- @param amount number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_ARENA_WAR(amount, p1, p2, p3) end
--- @param amount number
function MONEY.NETWORK_EARN_ARENA_WAR_ASSASSINATE_TARGET(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_ARENA_WAR_EVENT_CARGO(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_RC_TIME_TRIAL(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_DAILY_OBJECTIVE_EVENT(amount) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPEND_CASINO_MEMBERSHIP(amount, p1, p2, p3) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param data number
function MONEY.NETWORK_SPEND_BUY_CASINO(amount, p1, p2, data) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param data number
function MONEY.NETWORK_SPEND_UPGRADE_CASINO(amount, p1, p2, data) end
--- @param amount number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_CASINO_GENERIC(amount, p1, p2, p3, p4) end
--- @param amount number
function MONEY.NETWORK_EARN_CASINO_TIME_TRIAL_WIN(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_COLLECTABLES_ACTION_FIGURES(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_CASINO_COLLECTABLE_COMPLETED_COLLECTION(amount) end
--- @param amount number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_SELL_PRIZE_VEHICLE(amount, p1, p2) end
--- @param amount number
function MONEY.NETWORK_EARN_CASINO_MISSION_REWARD(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_CASINO_STORY_MISSION_REWARD(amount) end
--- @param amount number
function MONEY.NETWORK_EARN_CASINO_MISSION_PARTICIPATION(amount) end
--- @param amount number
--- @param hash number
function MONEY.NETWORK_EARN_CASINO_AWARD(amount, hash) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_BUY_ARCADE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_UPGRADE_ARCADE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
function MONEY.NETWORK_SPEND_CASINO_HEIST(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_ARCADE_MGMT(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_PLAY_ARCADE(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_ARCADE(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function MONEY.NETWORK_EARN_CASINO_HEIST(p0, p1, p2, p3, p4, p5, p6) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_UPGRADE_ARCADE(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function MONEY.NETWORK_EARN_ARCADE(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_COLLECTABLES(p0, p1, p2) end
--- @param amount number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_CHALLENGE(amount, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_EARN_CASINO_HEIST_AWARDS(p0, p1, p2, p3, p4) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_COLLECTABLE_COMPLETED_COLLECTION(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_YATCH_MISSION(amount, p1) end
--- @param amount number
--- @param p1 number
function MONEY.NETWORK_EARN_DISPATCH_CALL(amount, p1) end
--- @param p0 number
function MONEY.NETWORK_SPEND_BEACH_PARTY(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function MONEY.NETWORK_SPEND_SUBMARINE(p0, p1, p2, p3, p4, p5) end
--- @param amount1 number
--- @param p1 number
--- @param p2 boolean
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param amount2 number
--- @param p8 number
function MONEY.NETWORK_SPEND_CASINO_CLUB(amount1, p1, p2, p3, p4, p5, p6, amount2, p8) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_BUY_SUB(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_UPGRADE_SUB(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_ISLAND_HEIST(p0, p1, p2, p3) end
--- @param amount1 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param amount2 number
--- @param p5 number
function MONEY.NETWORK_EARN_ISLAND_HEIST(amount1, p1, p2, p3, amount2, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_BEACH_PARTY_LOST_FOUND(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FROM_ISLAND_HEIST_DJ_MISSION(p0, p1) end
--- @param amount1 number
--- @param p1 number
--- @param p2 number
--- @param amount2 number
--- @param p4 number
function MONEY.NETWORK_SPEND_CAR_CLUB_MEMBERSHIP(amount1, p1, p2, amount2, p4) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPEND_CAR_CLUB_BAR(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_AUTOSHOP_MODIFY(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_CAR_CLUB_TAKEOVER(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_BUY_AUTOSHOP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_UPGRADE_AUTOSHOP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_AUTOSHOP_BUSINESS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AUTOSHOP_INCOME(p0, p1) end
--- @param p0 number
function MONEY.NETWORK_EARN_CARCLUB_MEMBERSHIP(p0) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_DAILY_VEHICLE(p0, p1) end
--- @param p0 number
function MONEY.NETWORK_EARN_DAILY_VEHICLE_BONUS(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_TUNER_AWARD(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_EARN_TUNER_ROBBERY(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_UPGRADE_AUTOSHOP(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_INTERACTION_MENU_ABILITY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
function MONEY.NETWORK_SPEND_SET_COMMON_FIELDS(p0, p1, p2, p3) end
--- @param p0 boolean
function MONEY.NETWORK_SPEND_SET_DISCOUNT(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_BUY_AGENCY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_UPGRADE_AGENCY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_AGENCY(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_HIDDEN(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_SOURCE_BIKE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_COMP_SUV(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY.NETWORK_SPEND_SUV_FST_TRVL(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_SUPPLY(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_BIKE_SHOP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function MONEY.NETWORK_SPEND_VEHICLE_REQUESTED(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_GUNRUNNING(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AGENCY_SAFE(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AWARD_CONTRACT(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AGENCY_CONTRACT(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AWARD_PHONE(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY.NETWORK_EARN_AGENCY_PHONE(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AWARD_FIXER_MISSION(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FIXER_PREP(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FIXER_FINALE(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FIXER_AGENCY_SHORT_TRIP(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_AWARD_SHORT_TRIP(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_FIXER_RIVAL_DELIVERY(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_UPGRADE_AGENCY(p0, p1) end
--- @param amount number
--- @param p1 boolean
--- @param p2 boolean
--- @param data number
function MONEY.NETWORK_SPEND_APARTMENT_UTILITIES(amount, p1, p2, data) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_SPEND_BUSINESS_PROPERTY_FEES(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_EARN_SIGHTSEEING_REWARD(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
function MONEY.NETWORK_EARN_BIKER_SHOP(p0, p1) end
--- @param p0 number
function MONEY.NETWORK_EARN_BIKER(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY.NETWORK_YOHAN_SOURCE_GOODS(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY._NETWORK_SPEND_BUY_MFGARAGE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY._NETWORK_SPEND_UPGRADE_MFGARAGE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY._NETWORK_SPEND_BUY_SUPPLIES(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY._NETWORK_SPEND_BUY_ACID_LAB(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY._NETWORK_SPEND_UPGRADE_ACID_LAB_EQUIPMENT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY._NETWORK_SPEND_UPGRADE_ACID_LAB_ARMOR(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY._NETWORK_SPEND_UPGRADE_ACID_LAB_SCOOP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function MONEY._NETWORK_SPEND_UPGRADE_ACID_LAB_MINES(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY._NETWORK_SPEND_RENAME_ACID_LAB(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function MONEY._NETWORK_SPEND_RENAME_ACID_PRODUCT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_AWARD_JUGGALO_MISSION(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_AWARD_ACID_LAB(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_AWARD_DAILY_STASH(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_AWARD_DEAD_DROP(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_AWARD_RANDOM_EVENT(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_AWARD_TAXI(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_STREET_DEALER(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_SELL_ACID(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_SETUP_PARTICIPATION_ACID_LAB(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_SOURCE_PARTICIPATION_ACID_LAB(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_SELL_PARTICIPATION_ACID_LAB(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_JUGGALO_STORY_MISSION(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_JUGGALO_STORY_MISSION_PARTICIPATION(p0, p1) end
--- JUGGALO_PHONE_MISSION...
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_FOOLIGAN_JOB(p0, p1) end
--- JUGGALO_PHONE_MISSION_PARTICIPATION...
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_FOOLIGAN_JOB_PARTICIPATION(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_TAXI_JOB(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_DAILY_STASH_HOUSE_COMPLETED(p0, p1) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_DAILY_STASH_HOUSE_PARTICIPATION(p0, p1) end
--- Used for SERVICE_EARN_AVENGER_OPERATIONS & SERVICE_EARN_AVENGER_OPS_BONUS
--- @param amount number
--- @param p1 number
function MONEY._NETWORK_EARN_AVENGER(amount, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function MONEY._NETWORK_EARN_SMUGGLER_OPS(p0, p1, p2) end
--- @param amount number
--- @param p1 number
--- @param p2 number
function MONEY._NETWORK_EARN_BONUS_OBJECTIVE(amount, p1, p2) end
--- @param p0 number
--- @param p1 number
function MONEY._NETWORK_EARN_PROGRESS_HUB(p0, p1) end
--- @param hangarCargoSourcingPrice number
--- @param fromBank boolean
--- @param fromBankAndWallet boolean
--- @param cost number
--- @param warehouseId number
--- @param warehouseSlot number
function MONEY._NETWORK_SPENT_AIR_FREIGHT(hangarCargoSourcingPrice, fromBank, fromBankAndWallet, cost, warehouseId, warehouseSlot) end
--- @param amount number
--- @param fromBank boolean
--- @param fromBankAndWallet boolean
--- @param cost number
function MONEY._NETWORK_SPENT_SKIP_CARGO_SOURCE_SETUP(amount, fromBank, fromBankAndWallet, cost) end
--- Hash p3 = STEALTH_MODULE
--- @param amount number
--- @param fromBank boolean
--- @param fromBankAndWallet boolean
--- @param p3 number
function MONEY._NETWORK_SPENT_STEALTH_MODULE(amount, fromBank, fromBankAndWallet, p3) end
--- Hash p3 = MISSILE_JAMMER
--- @param amount number
--- @param fromBank boolean
--- @param fromBankAndWallet boolean
--- @param p3 number
function MONEY._NETWORK_SPENT_MISSILE_JAMMER(amount, fromBank, fromBankAndWallet, p3) end
--- @param price number
--- @param p1 boolean
--- @param p2 boolean
--- @param stat number
--- @param spent number
--- @param p5 string
--- @param p6 string
--- @param data number
function MONEY._NETWORK_SPENT_GENERIC(price, p1, p2, stat, spent, p5, p6, data) end
--- _NETWORK_EARN_G*
--- @param amount number
--- @param earn number
--- @param p2 string
--- @param p3 string
--- @param data number
function MONEY._NETWORK_EARN_GENERIC(amount, earn, p2, p3, data) end
function MONEY._NETWORK_CLEAR_TRANSACTION_TELEMETRY_NONCE() end
--- @return number
function MONEY.NETWORK_GET_VC_BANK_BALANCE() end
--- @param characterSlot number
--- @return number
function MONEY.NETWORK_GET_VC_WALLET_BALANCE(characterSlot) end
--- @return number
function MONEY.NETWORK_GET_VC_BALANCE() end
--- @return number
function MONEY.NETWORK_GET_EVC_BALANCE() end
--- @return number
function MONEY.NETWORK_GET_PVC_BALANCE() end
--- @param characterSlot number
--- @return string
function MONEY.NETWORK_GET_STRING_WALLET_BALANCE(characterSlot) end
--- @return string
function MONEY.NETWORK_GET_STRING_BANK_BALANCE() end
--- @param character number
--- @return string
function MONEY.NETWORK_GET_STRING_BANK_WALLET_BALANCE(character) end
--- Returns true if wallet balance >= amount.
--- @param amount number
--- @param characterSlot number
--- @return boolean
function MONEY.NETWORK_GET_CAN_SPEND_FROM_WALLET(amount, characterSlot) end
--- Returns true if bank balance >= amount.
--- @param amount number
--- @return boolean
function MONEY.NETWORK_GET_CAN_SPEND_FROM_BANK(amount) end
--- Returns true if bank balance + wallet balance >= amount.
--- @param amount number
--- @param characterSlot number
--- @return boolean
function MONEY.NETWORK_GET_CAN_SPEND_FROM_BANK_AND_WALLET(amount, characterSlot) end
--- Retturns the same value as NETWORK_GET_REMAINING_TRANSFER_BALANCE.
--- @return number
function MONEY.NETWORK_GET_PVC_TRANSFER_BALANCE() end
--- Returns false if amount > wallet balance or daily transfer limit has been hit.
--- @param amount number
--- @return boolean
function MONEY.NETWORK_GET_CAN_TRANSFER_CASH(amount) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function MONEY.NETWORK_CAN_RECEIVE_PLAYER_CASH(p0, p1, p2, p3) end
--- Returns the same value as NETWORK_GET_PVC_TRANSFER_BALANCE.
--- @return number
function MONEY.NETWORK_GET_REMAINING_TRANSFER_BALANCE() end
--- Does nothing and always returns 0.
--- @param amount number
--- @return number
function MONEY.WITHDRAW_VC(amount) end
--- Does nothing and always returns false.
--- @param amount number
--- @return boolean
function MONEY.DEPOSIT_VC(amount) end
--- This function is hard-coded to always return 1.
--- @param p0 number
--- @return boolean
function MONEY.HAS_VC_WITHDRAWAL_COMPLETED(p0) end
--- This function is hard-coded to always return 1.
--- @param p0 number
--- @return boolean
function MONEY.WAS_VC_WITHDRAWAL_SUCCESSFUL(p0) end

NETSHOPPING = {}

--- @return boolean
function NETSHOPPING.NET_GAMESERVER_USE_SERVER_TRANSACTIONS() end
--- @param name string
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_CATALOG_ITEM_IS_VALID(name) end
--- @param hash number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_CATALOG_ITEM_KEY_IS_VALID(hash) end
--- bool is always true in game scripts
--- @param itemHash number
--- @param categoryHash number
--- @param p2 boolean
--- @return number
function NETSHOPPING.NET_GAMESERVER_GET_PRICE(itemHash, categoryHash, p2) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_CATALOG_IS_VALID() end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_IS_CATALOG_CURRENT() end
--- @return number
function NETSHOPPING.NET_GAMESERVER_GET_CATALOG_CLOUD_CRC() end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_REFRESH_SERVER_CATALOG() end
--- @param state any
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_RETRIEVE_CATALOG_REFRESH_STATUS(state) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_INIT_SESSION() end
--- @param p0 any
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_RETRIEVE_INIT_SESSION_STATUS(p0) end
--- @param charSlot number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_START_SESSION(charSlot) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_START_SESSION_PENDING() end
--- @param p0 any
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_RETRIEVE_START_SESSION_STATUS(p0) end
--- @param p0 any
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_RETRIEVE_SESSION_ERROR_CODE(p0) end
--- @param charSlot number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_IS_SESSION_VALID(charSlot) end
--- @param p0 number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_CLEAR_SESSION(p0) end
--- @param charSlot number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_SESSION_APPLY_RECEIVED_DATA(charSlot) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_IS_SESSION_REFRESH_PENDING() end
--- Note: only one of the arguments can be set to true at a time
--- @param inventory boolean
--- @param playerbalance boolean
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_START_SESSION_RESTART(inventory, playerbalance) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_TRANSACTION_IN_PROGRESS() end
--- @param p0 any
--- @param p1 any
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_GET_SESSION_STATE_AND_STATUS(p0, p1) end
--- @param transactionId any
--- @param categoryHash number
--- @param actionHash number
--- @param flags number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BASKET_START(transactionId, categoryHash, actionHash, flags) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BASKET_END() end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BASKET_IS_ACTIVE() end
--- @param itemData number
--- @param quantity number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BASKET_ADD_ITEM(itemData, quantity) end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BASKET_IS_FULL() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BASKET_APPLY_SERVER_DATA(p0, p1) end
--- @param transactionId number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_CHECKOUT_START(transactionId) end
--- @param transactionId any
--- @param categoryHash number
--- @param itemHash number
--- @param actionTypeHash number
--- @param value number
--- @param flags number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_BEGIN_SERVICE(transactionId, categoryHash, itemHash, actionTypeHash, value, flags) end
--- @param transactionId number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_END_SERVICE(transactionId) end
--- @param slot number
--- @param transfer boolean
--- @param reason number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_DELETE_CHARACTER(slot, transfer, reason) end
--- @return number
function NETSHOPPING.NET_GAMESERVER_DELETE_CHARACTER_GET_STATUS() end
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_DELETE_SET_TELEMETRY_NONCE_SEED() end
--- @param charSlot number
--- @param amount number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_TRANSFER_BANK_TO_WALLET(charSlot, amount) end
--- @param charSlot number
--- @param amount number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_TRANSFER_WALLET_TO_BANK(charSlot, amount) end
--- Same as 0x350AA5EBC03D3BD2
--- @return number
function NETSHOPPING.NET_GAMESERVER_TRANSFER_BANK_TO_WALLET_GET_STATUS() end
--- Same as 0x23789E777D14CE44
--- @return number
function NETSHOPPING.NET_GAMESERVER_TRANSFER_WALLET_TO_BANK_GET_STATUS() end
--- Used to be NETWORK_SHOP_CASH_TRANSFER_SET_TELEMETRY_NONCE_SEED
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_TRANSFER_CASH_SET_TELEMETRY_NONCE_SEED() end
--- @param p0 number
--- @return boolean
function NETSHOPPING.NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(p0) end

NETWORK = {}

--- Online version is defined here: update\update.rpf\common\data\version.txt
--- 
--- Example:
--- 
--- [ONLINE_VERSION_NUMBER]
--- 1.33
--- 
--- _GET_ONLINE_VERSION() will return "1.33"
--- @return string
function NETWORK.GET_ONLINE_VERSION() end
--- Returns whether the player is signed into Social Club.
--- @return boolean
function NETWORK.NETWORK_IS_SIGNED_IN() end
--- Returns whether the game is not in offline mode.
--- 
--- seemed not to work for some ppl
--- @return boolean
function NETWORK.NETWORK_IS_SIGNED_ONLINE() end
--- This function is hard-coded to always return 1.
--- @return boolean
function NETWORK.NETWORK_IS_NP_AVAILABLE() end
--- This function is hard-coded to always return 1.
--- @return boolean
function NETWORK.NETWORK_IS_NP_PENDING() end
--- Hardcoded to return zero.
--- 
--- ==== PS4 specific info ====
--- 
--- Returns some sort of unavailable reason:
--- -1 = REASON_INVALID
--- 0 = REASON_OTHER
--- 1 = REASON_SYSTEM_UPDATE
--- 2 = REASON_GAME_UPDATE
--- 3 = REASON_SIGNED_OUT
--- 4 = REASON_AGE
--- 5 = REASON_CONNECTION
--- 
--- =================================
--- @return number
function NETWORK.NETWORK_GET_NP_UNAVAILABLE_REASON() end
--- This function is hard-coded to always return 1.
--- @return boolean
function NETWORK.NETWORK_IS_CONNETED_TO_NP_PRESENCE() end
--- This function is hard-coded to always return 0.
--- @return boolean
function NETWORK.NETWORK_IS_LOGGED_IN_TO_PSN() end
--- Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials.
--- @return boolean
function NETWORK.NETWORK_HAS_VALID_ROS_CREDENTIALS() end
--- @return boolean
function NETWORK.NETWORK_IS_REFRESHING_ROS_CREDENTIALS() end
--- @return boolean
function NETWORK.NETWORK_IS_CLOUD_AVAILABLE() end
--- @return boolean
function NETWORK.NETWORK_HAS_SOCIAL_CLUB_ACCOUNT() end
--- @return boolean
function NETWORK.NETWORK_ARE_SOCIAL_CLUB_POLICIES_CURRENT() end
--- If you are host, returns true else returns false.
--- @return boolean
function NETWORK.NETWORK_IS_HOST() end
--- @return number
function NETWORK.NETWORK_GET_HOST_PLAYER_INDEX() end
--- @return boolean
function NETWORK.NETWORK_WAS_GAME_SUSPENDED() end
--- @return boolean
function NETWORK.NETWORK_HAVE_ONLINE_PRIVILEGES() end
--- @return boolean
function NETWORK.NETWORK_HAS_AGE_RESTRICTIONS() end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_HAVE_USER_CONTENT_PRIVILEGES(p0) end
--- @param p0 number
--- @param player number
--- @return boolean
function NETWORK.NETWORK_HAVE_COMMUNICATION_PRIVILEGES(p0, player) end
--- Appears to be PlayStation-specific. Always returns true on other platforms if signed in with the primary user profile
--- @return boolean
function NETWORK._NETWORK_HAVE_PLATFORM_COMMUNICATION_PRIVILEGES() end
--- @param p0 number
--- @param p1 boolean
--- @return boolean
function NETWORK.NETWORK_CHECK_ONLINE_PRIVILEGES(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @return boolean
function NETWORK.NETWORK_CHECK_USER_CONTENT_PRIVILEGES(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @return boolean
function NETWORK.NETWORK_CHECK_COMMUNICATION_PRIVILEGES(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function NETWORK.NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES(p0, p1, p2) end
--- @return boolean
function NETWORK.NETWORK_IS_USING_ONLINE_PROMOTION() end
--- @return boolean
function NETWORK.NETWORK_SHOULD_SHOW_PROMOTION_ALERT_SCREEN() end
--- @return boolean
function NETWORK.NETWORK_HAS_SOCIAL_NETWORKING_SHARING_PRIV() end
--- @return number
function NETWORK.NETWORK_GET_AGE_GROUP() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function NETWORK.NETWORK_CHECK_PRIVILEGES(p0, p1, p2) end
--- Hardcoded to return false.
--- @return boolean
function NETWORK.NETWORK_IS_PRIVILEGE_CHECK_IN_PROGRESS() end
function NETWORK.NETWORK_SET_PRIVILEGE_CHECK_RESULT_NOT_NEEDED() end
--- Hardcoded to return true.
--- @return boolean
function NETWORK.NETWORK_RESOLVE_PRIVILEGE_USER_CONTENT() end
--- @return boolean
function NETWORK.NETWORK_HAVE_PLATFORM_SUBSCRIPTION() end
--- @return boolean
function NETWORK.NETWORK_IS_PLATFORM_SUBSCRIPTION_CHECK_PENDING() end
function NETWORK.NETWORK_SHOW_ACCOUNT_UPGRADE_UI() end
--- @return boolean
function NETWORK.NETWORK_IS_SHOWING_SYSTEM_UI_OR_RECENTLY_REQUESTED_UPSELL() end
--- @return boolean
function NETWORK.NETWORK_NEED_TO_START_NEW_GAME_BUT_BLOCKED() end
--- @return boolean
function NETWORK.NETWORK_CAN_BAIL() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function NETWORK.NETWORK_BAIL(p0, p1, p2) end
function NETWORK.NETWORK_ON_RETURN_TO_SINGLE_PLAYER() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.NETWORK_TRANSITION_START(p0, p1, p2, p3) end
--- @param hash number
--- @param p1 number
--- @param p2 number
--- @param state number
--- @param p4 number
--- @return boolean
function NETWORK.NETWORK_TRANSITION_ADD_STAGE(hash, p1, p2, state, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function NETWORK.NETWORK_TRANSITION_FINISH(p0, p1, p2) end
--- 11 - Need to download tunables.
--- 12 - Need to download background script.
--- 
--- Returns 1 if the multiplayer is loaded, otherwhise 0.
--- @param loadingState any
--- @return boolean
function NETWORK.NETWORK_CAN_ACCESS_MULTIPLAYER(loadingState) end
--- @return boolean
function NETWORK.NETWORK_IS_MULTIPLAYER_DISABLED() end
--- @return boolean
function NETWORK.NETWORK_CAN_ENTER_MULTIPLAYER() end
--- p4 seems to be unused in 1.60/build 2628
--- Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session.
--- @param p0 number
--- @param maxPlayers number
--- @param p2 boolean
--- @return boolean
function NETWORK.NETWORK_SESSION_HOST(p0, maxPlayers, p2) end
--- @param p0 number
--- @param maxPlayers number
--- @return boolean
function NETWORK.NETWORK_SESSION_HOST_CLOSED(p0, maxPlayers) end
--- Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session.
--- @param p0 number
--- @param maxPlayers number
--- @return boolean
function NETWORK.NETWORK_SESSION_HOST_FRIENDS_ONLY(p0, maxPlayers) end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_CLOSED_FRIENDS() end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_CLOSED_CREW() end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_SOLO() end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_PRIVATE() end
--- @param leaveFlags number
--- @param leaveReason number
--- @return boolean
function NETWORK._NETWORK_SESSION_LEAVE_INCLUDING_REASON(leaveFlags, leaveReason) end
--- p0 is always false and p1 varies.
--- NETWORK_SESSION_END(0, 1)
--- NETWORK_SESSION_END(0, 0)
--- Results in: "Connection to session lost due to an unknown network error. Please return to Grand Theft Auto V and try again later."
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_SESSION_LEAVE(p0) end
--- Only works as host.
--- @param player number
function NETWORK.NETWORK_SESSION_KICK_PLAYER(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_SESSION_GET_KICK_VOTE(player) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function NETWORK.NETWORK_SESSION_RESERVE_SLOTS_TRANSITION(p0, p1, p2) end
--- @return boolean
function NETWORK.NETWORK_JOIN_PREVIOUSLY_FAILED_SESSION() end
--- @return boolean
function NETWORK.NETWORK_JOIN_PREVIOUSLY_FAILED_TRANSITION() end
--- @param matchmakingGroup number
function NETWORK.NETWORK_SESSION_SET_MATCHMAKING_GROUP(matchmakingGroup) end
--- playerType is an unsigned int from 0 to 4
--- 0 = regular joiner
--- 4 = spectator
--- @param playerType number
--- @param playerCount number
function NETWORK.NETWORK_SESSION_SET_MATCHMAKING_GROUP_MAX(playerType, playerCount) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_SESSION_GET_MATCHMAKING_GROUP_FREE(p0) end
--- groupId range: [0, 4]
--- @param groupId number
function NETWORK.NETWORK_SESSION_ADD_ACTIVE_MATCHMAKING_GROUP(groupId) end
--- @param p0 number
function NETWORK.NETWORK_SESSION_SET_UNIQUE_CREW_LIMIT(p0) end
--- @return number
function NETWORK.NETWORK_SESSION_GET_UNIQUE_CREW_LIMIT() end
--- @param p0 number
function NETWORK.NETWORK_SESSION_SET_UNIQUE_CREW_LIMIT_TRANSITION(p0) end
--- @param p0 boolean
function NETWORK.NETWORK_SESSION_SET_UNIQUE_CREW_ONLY_CREWS_TRANSITION(p0) end
--- @param p0 number
function NETWORK.NETWORK_SESSION_SET_CREW_LIMIT_MAX_MEMBERS_TRANSITION(p0) end
--- @param p0 boolean
function NETWORK.NETWORK_SESSION_SET_MATCHMAKING_PROPERTY_ID(p0) end
--- p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int
--- @param p0 number
function NETWORK.NETWORK_SESSION_SET_MATCHMAKING_MENTAL_STATE(p0) end
--- @param num number
function NETWORK.NETWORK_SESSION_SET_NUM_BOSSES(num) end
function NETWORK.NETWORK_SESSION_SET_SCRIPT_VALIDATE_JOIN() end
--- @param p0 boolean
function NETWORK.NETWORK_SESSION_VALIDATE_JOIN(p0) end
--- ..
--- @param p0 any
--- @param p1 number
function NETWORK.NETWORK_ADD_FOLLOWERS(p0, p1) end
function NETWORK.NETWORK_CLEAR_FOLLOWERS() end
--- @param hours any
--- @param minutes any
--- @param seconds any
function NETWORK.NETWORK_GET_GLOBAL_MULTIPLAYER_CLOCK(hours, minutes, seconds) end
--- @param p0 number
function NETWORK.NETWORK_SESSION_SET_GAMEMODE(p0) end
--- @return number
function NETWORK.NETWORK_SESSION_GET_HOST_AIM_PREFERENCE() end
--- @param crewId number
--- @return boolean
function NETWORK.NETWORK_FIND_GAMERS_IN_CREW(crewId) end
--- Uses attributes to find players with similar stats. Upper/Lower limit must be above zero or the fallback limit +/-0.1 is used.
--- There can be up to 15 attributes, they are as follows:
--- 
--- 0 = Races
--- 1 = Parachuting
--- 2 = Horde
--- 3 = Darts
--- 4 = Arm Wrestling
--- 5 = Tennis
--- 6 = Golf
--- 7 = Shooting Range
--- 8 = Deathmatch
--- 9 = MPPLY_MCMWIN/MPPLY_CRMISSION
--- @param attribute number
--- @param fallbackLimit number
--- @param lowerLimit number
--- @param upperLimit number
--- @return boolean
function NETWORK.NETWORK_FIND_MATCHED_GAMERS(attribute, fallbackLimit, lowerLimit, upperLimit) end
--- @return boolean
function NETWORK.NETWORK_IS_FINDING_GAMERS() end
--- @return boolean
function NETWORK.NETWORK_DID_FIND_GAMERS_SUCCEED() end
--- @return number
function NETWORK.NETWORK_GET_NUM_FOUND_GAMERS() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_GET_FOUND_GAMER(p0, p1) end
function NETWORK.NETWORK_CLEAR_FOUND_GAMERS() end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_QUEUE_GAMER_FOR_STATUS(p0) end
--- @return boolean
function NETWORK.NETWORK_GET_GAMER_STATUS_FROM_QUEUE() end
--- @return boolean
function NETWORK.NETWORK_IS_GETTING_GAMER_STATUS() end
--- @return boolean
function NETWORK.NETWORK_DID_GET_GAMER_STATUS_SUCCEED() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_GET_GAMER_STATUS_RESULT(p0, p1) end
function NETWORK.NETWORK_CLEAR_GET_GAMER_STATUS() end
function NETWORK.NETWORK_SESSION_JOIN_INVITE() end
function NETWORK.NETWORK_SESSION_CANCEL_INVITE() end
function NETWORK.NETWORK_SESSION_FORCE_CANCEL_INVITE() end
--- @return boolean
function NETWORK.NETWORK_HAS_PENDING_INVITE() end
--- @return boolean
function NETWORK.NETWORK_HAS_CONFIRMED_INVITE() end
--- Triggers a CEventNetworkInviteConfirmed event
--- @return boolean
function NETWORK.NETWORK_REQUEST_INVITE_CONFIRMED_EVENT() end
--- @return boolean
function NETWORK.NETWORK_SESSION_WAS_INVITED() end
--- @param gamerHandle number
function NETWORK.NETWORK_SESSION_GET_INVITER(gamerHandle) end
--- Seems to be true while "Getting GTA Online session details" shows up.
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_AWAITING_INVITE_RESPONSE() end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_DISPLAYING_INVITE_CONFIRMATION() end
--- @param toggle boolean
function NETWORK.NETWORK_SUPPRESS_INVITE(toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_BLOCK_INVITES(toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_BLOCK_JOIN_QUEUE_INVITES(toggle) end
--- @param p0 boolean
function NETWORK.NETWORK_SET_CAN_RECEIVE_RS_INVITES(p0) end
function NETWORK.NETWORK_STORE_INVITE_THROUGH_RESTART() end
--- @param p0 boolean
function NETWORK.NETWORK_ALLOW_INVITE_PROCESS_IN_PLAYER_SWITCH(p0) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_SCRIPT_READY_FOR_EVENTS(toggle) end
--- @return boolean
function NETWORK.NETWORK_IS_OFFLINE_INVITE_PENDING() end
function NETWORK.NETWORK_CLEAR_OFFLINE_INVITE_PENDING() end
--- Retrieves the failed invite join alert reason
--- @return string
function NETWORK._NETWORK_INVITE_GET_JOIN_FAIL_REASON() end
--- Clears the failed invite join alert reason
function NETWORK._NETWORK_INVITE_CLEAR_JOIN_FAIL_REASON() end
--- Loads up the map that is loaded when beeing in mission creator
--- Player gets placed in a mix between online/offline mode
--- p0 is always 2 in R* scripts.
--- 
--- Appears to be patched in gtav b757 (game gets terminated) alonside with most other network natives to prevent online modding ~ghost30812
--- @param p0 number
function NETWORK.NETWORK_SESSION_HOST_SINGLE_PLAYER(p0) end
function NETWORK.NETWORK_SESSION_LEAVE_SINGLE_PLAYER() end
--- @return boolean
function NETWORK.NETWORK_IS_GAME_IN_PROGRESS() end
--- @return boolean
function NETWORK.NETWORK_IS_SESSION_ACTIVE() end
--- @return boolean
function NETWORK.NETWORK_IS_IN_SESSION() end
--- Hardcoded to return 0.
--- @return boolean
function NETWORK._NETWORK_IS_AMERICAS_VERSION() end
--- This checks if player is playing on gta online or not.
--- Please add an if and block your mod if this is "true".
--- @return boolean
function NETWORK.NETWORK_IS_SESSION_STARTED() end
--- @return boolean
function NETWORK.NETWORK_IS_SESSION_BUSY() end
--- @return boolean
function NETWORK.NETWORK_CAN_SESSION_END() end
--- @return number
function NETWORK.NETWORK_GET_GAME_MODE() end
--- @param toggle boolean
function NETWORK.NETWORK_SESSION_MARK_VISIBLE(toggle) end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_VISIBLE() end
--- @param toggle boolean
function NETWORK.NETWORK_SESSION_BLOCK_JOIN_REQUESTS(toggle) end
--- num player slots allowed in session, seems to work? 32 max
--- @param slots number
--- @param p1 boolean
function NETWORK.NETWORK_SESSION_CHANGE_SLOTS(slots, p1) end
--- @return number
function NETWORK.NETWORK_SESSION_GET_PRIVATE_SLOTS() end
--- @return boolean
function NETWORK.NETWORK_SESSION_VOICE_HOST() end
--- @return boolean
function NETWORK.NETWORK_SESSION_VOICE_LEAVE() end
--- @param gamerHandle number
function NETWORK.NETWORK_SESSION_VOICE_CONNECT_TO_PLAYER(gamerHandle) end
--- @param p0 boolean
--- @param p1 number
function NETWORK.NETWORK_SESSION_VOICE_RESPOND_TO_REQUEST(p0, p1) end
--- @param timeout number
function NETWORK.NETWORK_SESSION_VOICE_SET_TIMEOUT(timeout) end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_IN_VOICE_SESSION() end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_VOICE_SESSION_ACTIVE() end
--- @return boolean
function NETWORK.NETWORK_SESSION_IS_VOICE_SESSION_BUSY() end
--- Message is limited to 64 characters.
--- @param message string
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_SEND_TEXT_MESSAGE(message, gamerHandle) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_ACTIVITY_SPECTATOR(toggle) end
--- @return boolean
function NETWORK.NETWORK_IS_ACTIVITY_SPECTATOR() end
--- @param p0 number
function NETWORK.NETWORK_SET_ACTIVITY_PLAYER_MAX(p0) end
--- @param maxSpectators number
function NETWORK.NETWORK_SET_ACTIVITY_SPECTATOR_MAX(maxSpectators) end
--- @param p0 boolean
--- @return number
function NETWORK.NETWORK_GET_ACTIVITY_PLAYER_NUM(p0) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_ACTIVITY_SPECTATOR_FROM_HANDLE(gamerHandle) end
--- p0: Unknown int
--- p1: Unknown int
--- p2: Unknown int
--- p3: Unknown int
--- p4: Unknown always 0 in decompiled scripts
--- p5: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts.
--- p6: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts.
--- p7: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1.
--- p8: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1.
--- p9: Unknown int, sometimes 0, but also 32768 or 16384 appear in decompiled scripst, maybe a flag of some sort?
--- 
--- From what I can tell it looks like it does the following:
--- Creates/hosts a new transition to another online session, using this in FiveM will result in other players being disconencted from the server/preventing them from joining. This is most likely because I entered the wrong session parameters since they're pretty much all unknown right now.
--- You also need to use `NetworkJoinTransition(Player player)` and `NetworkLaunchTransition()`.
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 boolean
--- @param p6 boolean
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @return boolean
function NETWORK.NETWORK_HOST_TRANSITION(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_QUICKMATCH(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_QUICKMATCH_ASYNC(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_QUICKMATCH_WITH_GROUP(p0, p1, p2, p3, p4, p5, p6, p7) end
--- @return boolean
function NETWORK.NETWORK_JOIN_GROUP_ACTIVITY() end
function NETWORK.NETWORK_CLEAR_GROUP_ACTIVITY() end
function NETWORK.NETWORK_RETAIN_ACTIVITY_GROUP() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_CLOSED_FRIENDS() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_CLOSED_CREW() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_SOLO() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_PRIVATE() end
--- @return number
function NETWORK.NETWORK_GET_NUM_TRANSITION_NON_ASYNC_GAMERS() end
--- @param p0 boolean
function NETWORK.NETWORK_MARK_AS_PREFERRED_ACTIVITY(p0) end
--- @param p0 boolean
function NETWORK.NETWORK_MARK_AS_WAITING_ASYNC(p0) end
--- @param p0 number
function NETWORK.NETWORK_SET_IN_PROGRESS_FINISH_TIME(p0) end
--- @param p0 number
function NETWORK.NETWORK_SET_TRANSITION_CREATOR_HANDLE(p0) end
function NETWORK.NETWORK_CLEAR_TRANSITION_CREATOR_HANDLE() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_INVITE_GAMERS_TO_TRANSITION(p0, p1) end
--- @param gamerHandle number
function NETWORK.NETWORK_SET_GAMER_INVITED_TO_TRANSITION(gamerHandle) end
--- @return boolean
function NETWORK.NETWORK_LEAVE_TRANSITION() end
--- @return boolean
function NETWORK.NETWORK_LAUNCH_TRANSITION() end
--- Appears to set whether a transition should be started when the session is migrating.
--- @param toggle boolean
function NETWORK.NETWORK_SET_DO_NOT_LAUNCH_FROM_JOIN_AS_MIGRATED_HOST(toggle) end
function NETWORK.NETWORK_CANCEL_TRANSITION_MATCHMAKING() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function NETWORK.NETWORK_BAIL_TRANSITION(p0, p1, p2) end
--- @param p0 boolean
--- @param maxPlayers number
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_TO_GAME(p0, maxPlayers) end
--- @param p0 boolean
--- @param maxPlayers number
--- @param p2 boolean
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_TO_NEW_GAME(p0, maxPlayers, p2) end
--- p2 is true 3/4 of the occurrences I found.
--- 'players' is the number of players for a session. On PS3/360 it's always 18. On PC it's 32.
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
--- @param players number
--- @param p4 boolean
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_TO_FREEMODE(p0, p1, p2, players, p4) end
--- @param p0 number
--- @param p1 number
--- @param players number
--- @param p3 boolean
--- @param p4 boolean
--- @param p5 boolean
--- @return boolean
function NETWORK.NETWORK_DO_TRANSITION_TO_NEW_FREEMODE(p0, p1, players, p3, p4, p5) end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_TO_GAME() end
--- Returns count.
--- @param data number
--- @param dataCount number
--- @return number
function NETWORK.NETWORK_GET_TRANSITION_MEMBERS(data, dataCount) end
--- @param p0 number
--- @param p1 number
function NETWORK.NETWORK_APPLY_TRANSITION_PARAMETER(p0, p1) end
--- @param p0 number
--- @param string string
--- @param p2 boolean
function NETWORK.NETWORK_APPLY_TRANSITION_PARAMETER_STRING(p0, string, p2) end
--- @param gamerHandle number
--- @param p1 string
--- @param p2 number
--- @param p3 number
--- @param p4 boolean
--- @return boolean
function NETWORK.NETWORK_SEND_TRANSITION_GAMER_INSTRUCTION(gamerHandle, p1, p2, p3, p4) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_MARK_TRANSITION_GAMER_AS_FULLY_JOINED(p0) end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_HOST() end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_HOST_FROM_HANDLE(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_GET_TRANSITION_HOST(gamerHandle) end
--- @return boolean
function NETWORK.NETWORK_IS_IN_TRANSITION() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_STARTED() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_BUSY() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_MATCHMAKING() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_LEAVE_POSTPONED() end
--- @param p0 number
function NETWORK.NETWORK_TRANSITION_SET_IN_PROGRESS(p0) end
--- @param p0 number
function NETWORK.NETWORK_TRANSITION_SET_CONTENT_CREATOR(p0) end
--- @param p0 number
function NETWORK.NETWORK_TRANSITION_SET_ACTIVITY_ISLAND(p0) end
function NETWORK.NETWORK_OPEN_TRANSITION_MATCHMAKING() end
function NETWORK.NETWORK_CLOSE_TRANSITION_MATCHMAKING() end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_OPEN_TO_MATCHMAKING() end
--- @param p0 boolean
--- @param p1 boolean
function NETWORK.NETWORK_SET_TRANSITION_VISIBILITY_LOCK(p0, p1) end
--- @return boolean
function NETWORK.NETWORK_IS_TRANSITION_VISIBILITY_LOCKED() end
--- @param p0 number
function NETWORK.NETWORK_SET_TRANSITION_ACTIVITY_ID(p0) end
--- @param p0 number
--- @param p1 boolean
function NETWORK.NETWORK_CHANGE_TRANSITION_SLOTS(p0, p1) end
--- @param p0 boolean
function NETWORK.NETWORK_TRANSITION_BLOCK_JOIN_REQUESTS(p0) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_HAS_PLAYER_STARTED_TRANSITION(player) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_ARE_TRANSITION_DETAILS_VALID(p0) end
--- int handle[76];
--- NETWORK_HANDLE_FROM_FRIEND(iSelectedPlayer, &handle[0], 13);
--- Player uVar2 = NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(&handle[0]);
--- NETWORK_JOIN_TRANSITION(uVar2);
--- nothing doin.
--- @param player number
--- @return boolean
function NETWORK.NETWORK_JOIN_TRANSITION(player) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_HAS_INVITED_GAMER_TO_TRANSITION(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_HAS_TRANSITION_INVITE_BEEN_ACKED(p0) end
--- @return boolean
function NETWORK.NETWORK_IS_ACTIVITY_SESSION() end
function NETWORK.NETWORK_DISABLE_REALTIME_MULTIPLAYER() end
--- Does nothing. It's just a nullsub.
--- @param toggle boolean
function NETWORK.NETWORK_SET_PRESENCE_SESSION_INVITES_BLOCKED(toggle) end
--- @param gamerHandle number
--- @param p1 string
--- @param dataCount number
--- @param p3 number
--- @return boolean
function NETWORK.NETWORK_SEND_INVITE_VIA_PRESENCE(gamerHandle, p1, dataCount, p3) end
--- @param gamerHandle number
--- @param p1 string
--- @param dataCount number
--- @param p3 number
--- @return boolean
function NETWORK.NETWORK_SEND_TRANSITION_INVITE_VIA_PRESENCE(gamerHandle, p1, dataCount, p3) end
--- Contains the string "NETWORK_SEND_PRESENCE_TRANSITION_INVITE" but so does 0xC116FF9B4D488291; seems to fit alphabetically here, tho.
--- @param gamerHandle number
--- @param p1 string
--- @param dataCount number
--- @param p3 number
--- @return boolean
function NETWORK.NETWORK_SEND_IMPORTANT_TRANSITION_INVITE_VIA_PRESENCE(gamerHandle, p1, dataCount, p3) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_PRESENCE_INVITE_INDEX_BY_ID(p0) end
--- @return number
function NETWORK.NETWORK_GET_NUM_PRESENCE_INVITES() end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_ACCEPT_PRESENCE_INVITE(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_REMOVE_PRESENCE_INVITE(p0) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_PRESENCE_INVITE_ID(p0) end
--- @param p0 number
--- @return string
function NETWORK.NETWORK_GET_PRESENCE_INVITE_INVITER(p0) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_GET_PRESENCE_INVITE_HANDLE(p0, p1) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_PRESENCE_INVITE_SESSION_ID(p0) end
--- @param p0 number
--- @return string
function NETWORK.NETWORK_GET_PRESENCE_INVITE_CONTENT_ID(p0) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_PRESENCE_INVITE_PLAYLIST_LENGTH(p0) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_PRESENCE_INVITE_PLAYLIST_CURRENT(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_GET_PRESENCE_INVITE_FROM_ADMIN(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_GET_PRESENCE_INVITE_IS_TOURNAMENT(p0) end
--- @return boolean
function NETWORK.NETWORK_HAS_FOLLOW_INVITE() end
--- @return boolean
function NETWORK.NETWORK_ACTION_FOLLOW_INVITE() end
--- @return boolean
function NETWORK.NETWORK_CLEAR_FOLLOW_INVITE() end
function NETWORK.NETWORK_REMOVE_AND_CANCEL_ALL_INVITES() end
--- @param p0 number
function NETWORK.NETWORK_REMOVE_TRANSITION_INVITE(p0) end
function NETWORK.NETWORK_REMOVE_ALL_TRANSITION_INVITE() end
function NETWORK.NETWORK_REMOVE_AND_CANCEL_ALL_TRANSITION_INVITES() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.NETWORK_INVITE_GAMERS(p0, p1, p2, p3) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_HAS_INVITED_GAMER(p0) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_HAS_MADE_INVITE_DECISION(gamerHandle) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_INVITE_REPLY_STATUS(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_SET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU(p0) end
--- @param p0 number
function NETWORK.NETWORK_SET_INVITE_ON_CALL_FOR_INVITE_MENU(p0) end
--- @param p0 number
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CHECK_DATA_MANAGER_SUCCEEDED_FOR_HANDLE(p0, gamerHandle) end
--- @param p0 number
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CHECK_DATA_MANAGER_FOR_HANDLE(p0, gamerHandle) end
--- @param p0 number
--- @param p1 number
function NETWORK.NETWORK_SET_INVITE_FAILED_MESSAGE_FOR_INVITE_MENU(p0, p1) end
--- @param gamerHandle number
--- @param p1 number
--- @param p2 number
--- @return boolean
function NETWORK.FILLOUT_PM_PLAYER_LIST(gamerHandle, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.FILLOUT_PM_PLAYER_LIST_WITH_NAMES(p0, p1, p2, p3) end
--- @param p0 number
--- @return boolean
function NETWORK.REFRESH_PLAYER_LIST_STATS(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_SET_CURRENT_DATA_MANAGER_HANDLE(p0) end
--- Hardcoded to return false.
--- @return boolean
function NETWORK.NETWORK_IS_IN_PLATFORM_PARTY() end
--- @return number
function NETWORK.NETWORK_GET_PLATFORM_PARTY_MEMBER_COUNT() end
--- @param data number
--- @param dataSize number
--- @return number
function NETWORK.NETWORK_GET_PLATFORM_PARTY_MEMBERS(data, dataSize) end
--- Hardcoded to return false.
--- @return boolean
function NETWORK.NETWORK_IS_IN_PLATFORM_PARTY_CHAT() end
--- This would be nice to see if someone is in party chat, but 2 sad notes.
--- 1) It only becomes true if said person is speaking in that party at the time.
--- 2) It will never, become true unless you are in that party with said person.
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_CHATTING_IN_PLATFORM_PARTY(gamerHandle) end
--- @return boolean
function NETWORK.NETWORK_CAN_QUEUE_FOR_PREVIOUS_SESSION_JOIN() end
--- @return boolean
function NETWORK.NETWORK_IS_QUEUING_FOR_SESSION_JOIN() end
function NETWORK.NETWORK_CLEAR_QUEUED_JOIN_REQUEST() end
function NETWORK.NETWORK_SEND_QUEUED_JOIN_REQUEST() end
function NETWORK.NETWORK_REMOVE_ALL_QUEUED_JOIN_REQUESTS() end
--- @param seed number
function NETWORK.NETWORK_SEED_RANDOM_NUMBER_GENERATOR(seed) end
--- @return number
function NETWORK.NETWORK_GET_RANDOM_INT() end
--- Same as GET_RANDOM_INT_IN_RANGE
--- @param rangeStart number
--- @param rangeEnd number
--- @return number
function NETWORK.NETWORK_GET_RANDOM_INT_RANGED(rangeStart, rangeEnd) end
--- @param rangeStart number
--- @param rangeEnd number
--- @return number
function NETWORK._NETWORK_GET_RANDOM_FLOAT_RANGED(rangeStart, rangeEnd) end
--- @return boolean
function NETWORK.NETWORK_PLAYER_IS_CHEATER() end
--- @return number
function NETWORK.NETWORK_PLAYER_GET_CHEATER_REASON() end
--- @return boolean
function NETWORK.NETWORK_PLAYER_IS_BADSPORT() end
--- @param player number
--- @param a number
--- @param b number
--- @return boolean
function NETWORK.REMOTE_CHEATER_PLAYER_DETECTED(player, a, b) end
--- @param gamerHandle number
--- @param event number
--- @param amountReceived number
--- @return boolean
function NETWORK.BAD_SPORT_PLAYER_LEFT_DETECTED(gamerHandle, event, amountReceived) end
--- @param modelHash number
--- @param p1 number
function NETWORK.NETWORK_ADD_INVALID_OBJECT_MODEL(modelHash, p1) end
--- @param modelHash number
function NETWORK.NETWORK_REMOVE_INVALID_OBJECT_MODEL(modelHash) end
function NETWORK.NETWORK_CLEAR_INVALID_OBJECT_MODELS() end
--- @param ped number
--- @param p1 number
function NETWORK.NETWORK_APPLY_PED_SCAR_DATA(ped, p1) end
--- @param maxNumMissionParticipants number
--- @param p1 boolean
--- @param instanceId number
function NETWORK.NETWORK_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT(maxNumMissionParticipants, p1, instanceId) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function NETWORK.NETWORK_TRY_TO_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT(p0, p1, p2) end
--- @return boolean
function NETWORK.NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT() end
--- @return number
function NETWORK.NETWORK_GET_MAX_NUM_PARTICIPANTS() end
--- @return number
function NETWORK.NETWORK_GET_NUM_PARTICIPANTS() end
--- @return number
function NETWORK.NETWORK_GET_SCRIPT_STATUS() end
--- @param vars any
--- @param numVars number
--- @param debugName string
function NETWORK.NETWORK_REGISTER_HOST_BROADCAST_VARIABLES(vars, numVars, debugName) end
--- @param vars any
--- @param numVars number
--- @param debugName string
function NETWORK.NETWORK_REGISTER_PLAYER_BROADCAST_VARIABLES(vars, numVars, debugName) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function NETWORK.NETWORK_REGISTER_HIGH_FREQUENCY_HOST_BROADCAST_VARIABLES(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function NETWORK.NETWORK_REGISTER_HIGH_FREQUENCY_PLAYER_BROADCAST_VARIABLES(p0, p1, p2) end
function NETWORK.NETWORK_FINISH_BROADCASTING_DATA() end
--- @return boolean
function NETWORK.NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA() end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_PLAYER_INDEX(player) end
--- @param index number
--- @return number
function NETWORK.NETWORK_GET_PARTICIPANT_INDEX(index) end
--- Returns the Player associated to a given Ped when in an online session.
--- @param ped number
--- @return number
function NETWORK.NETWORK_GET_PLAYER_INDEX_FROM_PED(ped) end
--- Returns the amount of players connected in the current session. Only works when connected to a session/server.
--- @return number
function NETWORK.NETWORK_GET_NUM_CONNECTED_PLAYERS() end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_CONNECTED(player) end
--- @return number
function NETWORK.NETWORK_GET_TOTAL_NUM_PLAYERS() end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_IS_PARTICIPANT_ACTIVE(p0) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_ACTIVE(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_A_PARTICIPANT(player) end
--- @return boolean
function NETWORK.NETWORK_IS_HOST_OF_THIS_SCRIPT() end
--- @return number
function NETWORK.NETWORK_GET_HOST_OF_THIS_SCRIPT() end
--- scriptName examples:
--- "freemode", "AM_CR_SecurityVan", ...
--- 
--- Most of the time, these values are used:
--- instance_id = -1
--- position_hash = 0
--- @param scriptName string
--- @param instance_id number
--- @param position_hash number
--- @return number
function NETWORK.NETWORK_GET_HOST_OF_SCRIPT(scriptName, instance_id, position_hash) end
function NETWORK.NETWORK_SET_MISSION_FINISHED() end
--- @param scriptName string
--- @param instance_id number
--- @param p2 boolean
--- @param position_hash number
--- @return boolean
function NETWORK.NETWORK_IS_SCRIPT_ACTIVE(scriptName, instance_id, p2, position_hash) end
--- @param threadId number
--- @return boolean
function NETWORK.NETWORK_IS_THREAD_A_NETWORK_SCRIPT(threadId) end
--- @param scriptName string
--- @param instance_id number
--- @param position_hash number
--- @return number
function NETWORK.NETWORK_GET_NUM_SCRIPT_PARTICIPANTS(scriptName, instance_id, position_hash) end
--- @return number
function NETWORK.NETWORK_GET_INSTANCE_ID_OF_THIS_SCRIPT() end
--- @return number
function NETWORK.NETWORK_GET_POSITION_HASH_OF_THIS_SCRIPT() end
--- @param player number
--- @param script string
--- @param instance_id number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_A_PARTICIPANT_ON_SCRIPT(player, script, instance_id) end
function NETWORK.NETWORK_PREVENT_SCRIPT_HOST_MIGRATION() end
function NETWORK.NETWORK_REQUEST_TO_BE_HOST_OF_THIS_SCRIPT() end
--- Return the local Participant ID
--- @return number
function NETWORK.PARTICIPANT_ID() end
--- Return the local Participant ID.
--- 
--- This native is exactly the same as 'PARTICIPANT_ID' native.
--- @return number
function NETWORK.PARTICIPANT_ID_TO_INT() end
--- @param player number
--- @param weaponHash any
--- @return number
function NETWORK.NETWORK_GET_KILLER_OF_PLAYER(player, weaponHash) end
--- @param netId number
--- @param weaponHash any
--- @return number
function NETWORK.NETWORK_GET_DESTROYER_OF_NETWORK_ID(netId, weaponHash) end
--- @param entity number
--- @param weaponHash any
--- @return number
function NETWORK.NETWORK_GET_DESTROYER_OF_ENTITY(entity, weaponHash) end
--- NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD)
--- @param player number
--- @param entity number
--- @param p2 any
--- @return boolean
function NETWORK.NETWORK_GET_ASSISTED_KILL_OF_ENTITY(player, entity, p2) end
--- @param player number
--- @param entity number
--- @param p2 any
--- @return boolean
function NETWORK.NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY(player, entity, p2) end
--- @param player number
--- @param weaponHash any
--- @return number
function NETWORK.NETWORK_GET_ENTITY_KILLER_OF_PLAYER(player, weaponHash) end
--- @param missionId string
function NETWORK.NETWORK_SET_CURRENT_PUBLIC_CONTENT_ID(missionId) end
--- @param newChatOption number
function NETWORK.NETWORK_SET_CURRENT_CHAT_OPTION(newChatOption) end
--- mpSettingSpawn:
--- 
--- enum eMpSettingSpawn
--- {
--- MP_SETTING_SPAWN_NULL,
--- MP_SETTING_SPAWN_PROPERTY,
--- MP_SETTING_SPAWN_LAST_POSITION,
--- MP_SETTING_SPAWN_GARAGE,
--- MP_SETTING_SPAWN_RANDOM,
--- MP_SETTING_SPAWN_PRIVATE_YACHT,
--- MP_SETTING_SPAWN_OFFICE,
--- MP_SETTING_SPAWN_CLUBHOUSE,
--- MP_SETTING_SPAWN_IE_WAREHOUSE,
--- MP_SETTING_SPAWN_BUNKER,
--- MP_SETTING_SPAWN_HANGAR,
--- MP_SETTING_SPAWN_DEFUNCT_BASE,
--- MP_SETTING_SPAWN_NIGHTCLUB,
--- MP_SETTING_SPAWN_ARENA_GARAGE,
--- MP_SETTING_SPAWN_CASINO_APARTMENT,
--- MP_SETTING_SPAWN_ARCADE,
--- MP_SETTING_SPAWN_SUBMARINE,
--- MP_SETTING_SPAWN_CAR_MEET,
--- MP_SETTING_SPAWN_AUTO_SHOP,
--- MP_SETTING_SPAWN_FIXER_HQ,
--- MP_SETTING_SPAWN_MAX,
--- };
--- @param mpSettingSpawn number
function NETWORK.NETWORK_SET_CURRENT_SPAWN_LOCATION_OPTION(mpSettingSpawn) end
--- Used by MetricVEHICLE_DIST_DRIVEN
--- @param toggle boolean
function NETWORK.NETWORK_SET_VEHICLE_DRIVEN_IN_TEST_DRIVE(toggle) end
--- Sets 'loc' variable used in MetricVEHICLE_DIST_DRIVEN
--- @param location number
function NETWORK.NETWORK_SET_VEHICLE_DRIVEN_LOCATION(location) end
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param p4 boolean
--- @param changetime boolean
--- @param p6 boolean
--- @param p7 number
--- @param p8 number
function NETWORK.NETWORK_RESURRECT_LOCAL_PLAYER(x, y, z, heading, p4, changetime, p6, p7, p8) end
--- @param time number
function NETWORK.NETWORK_SET_LOCAL_PLAYER_INVINCIBLE_TIME(time) end
--- @return boolean
function NETWORK.NETWORK_IS_LOCAL_PLAYER_INVINCIBLE() end
--- @param player number
--- @param toggle boolean
function NETWORK.NETWORK_DISABLE_INVINCIBLE_FLASHING(player, toggle) end
--- @param ped number
function NETWORK.NETWORK_PATCH_POST_CUTSCENE_HS4F_TUN_ENT(ped) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_LOCAL_PLAYER_SYNC_LOOK_AT(toggle) end
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_HAS_ENTITY_BEEN_REGISTERED_WITH_THIS_THREAD(entity) end
--- @param entity number
--- @return number
function NETWORK.NETWORK_GET_NETWORK_ID_FROM_ENTITY(entity) end
--- @param netId number
--- @return number
function NETWORK.NETWORK_GET_ENTITY_FROM_NETWORK_ID(netId) end
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_GET_ENTITY_IS_NETWORKED(entity) end
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_GET_ENTITY_IS_LOCAL(entity) end
--- @param entity number
function NETWORK.NETWORK_REGISTER_ENTITY_AS_NETWORKED(entity) end
--- @param entity number
function NETWORK.NETWORK_UNREGISTER_NETWORKED_ENTITY(entity) end
--- @param netId number
--- @return boolean
function NETWORK.NETWORK_DOES_NETWORK_ID_EXIST(netId) end
--- @param netId number
--- @return boolean
function NETWORK.NETWORK_DOES_ENTITY_EXIST_WITH_NETWORK_ID(netId) end
--- @param netId number
--- @return boolean
function NETWORK.NETWORK_REQUEST_CONTROL_OF_NETWORK_ID(netId) end
--- @param netId number
--- @return boolean
function NETWORK.NETWORK_HAS_CONTROL_OF_NETWORK_ID(netId) end
--- Returns true if the specified network id is controlled by someone else.
--- @param netId number
--- @return boolean
function NETWORK.NETWORK_IS_NETWORK_ID_REMOTELY_CONTROLLED(netId) end
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_REQUEST_CONTROL_OF_ENTITY(entity) end
--- @param doorID number
--- @return boolean
function NETWORK.NETWORK_REQUEST_CONTROL_OF_DOOR(doorID) end
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_HAS_CONTROL_OF_ENTITY(entity) end
--- @param pickup number
--- @return boolean
function NETWORK.NETWORK_HAS_CONTROL_OF_PICKUP(pickup) end
--- @param doorHash number
--- @return boolean
function NETWORK.NETWORK_HAS_CONTROL_OF_DOOR(doorHash) end
--- @param doorHash number
--- @return boolean
function NETWORK.NETWORK_IS_DOOR_NETWORKED(doorHash) end
--- calls from vehicle to net.
--- 
--- @param vehicle number
--- @return number
function NETWORK.VEH_TO_NET(vehicle) end
--- gets the network id of a ped
--- @param ped number
--- @return number
function NETWORK.PED_TO_NET(ped) end
--- Lets objects spawn online simply do it like this:
--- 
--- int createdObject = OBJ_TO_NET(CREATE_OBJECT_NO_OFFSET(oball, pCoords.x, pCoords.y, pCoords.z, 1, 0, 0));
--- @param object number
--- @return number
function NETWORK.OBJ_TO_NET(object) end
--- @param netHandle number
--- @return number
function NETWORK.NET_TO_VEH(netHandle) end
--- gets the ped id of a network id
--- @param netHandle number
--- @return number
function NETWORK.NET_TO_PED(netHandle) end
--- gets the object id of a network id
--- @param netHandle number
--- @return number
function NETWORK.NET_TO_OBJ(netHandle) end
--- gets the entity id of a network id
--- @param netHandle number
--- @return number
function NETWORK.NET_TO_ENT(netHandle) end
--- @param gamerHandle number
--- @param gamerHandleSize number
function NETWORK.NETWORK_GET_LOCAL_HANDLE(gamerHandle, gamerHandleSize) end
--- @param userId string
--- @param gamerHandle number
--- @param gamerHandleSize number
function NETWORK.NETWORK_HANDLE_FROM_USER_ID(userId, gamerHandle, gamerHandleSize) end
--- @param memberId string
--- @param gamerHandle number
--- @param gamerHandleSize number
function NETWORK.NETWORK_HANDLE_FROM_MEMBER_ID(memberId, gamerHandle, gamerHandleSize) end
--- @param player number
--- @param gamerHandle number
--- @param gamerHandleSize number
function NETWORK.NETWORK_HANDLE_FROM_PLAYER(player, gamerHandle, gamerHandleSize) end
--- @param player number
--- @return number
function NETWORK.NETWORK_HASH_FROM_PLAYER_HANDLE(player) end
--- @param gamerHandle number
--- @return number
function NETWORK.NETWORK_HASH_FROM_GAMER_HANDLE(gamerHandle) end
--- @param friendIndex number
--- @param gamerHandle number
--- @param gamerHandleSize number
function NETWORK.NETWORK_HANDLE_FROM_FRIEND(friendIndex, gamerHandle, gamerHandleSize) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_GAMERTAG_FROM_HANDLE_START(gamerHandle) end
--- @return boolean
function NETWORK.NETWORK_GAMERTAG_FROM_HANDLE_PENDING() end
--- @return boolean
function NETWORK.NETWORK_GAMERTAG_FROM_HANDLE_SUCCEEDED() end
--- @param gamerHandle number
--- @return string
function NETWORK.NETWORK_GET_GAMERTAG_FROM_HANDLE(gamerHandle) end
--- Hardcoded to return -1.
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.NETWORK_DISPLAYNAMES_FROM_HANDLES_START(p0, p1) end
--- This function is hard-coded to always return 0.
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return number
function NETWORK.NETWORK_GET_DISPLAYNAMES_FROM_HANDLES(p0, p1, p2) end
--- @param gamerHandle1 number
--- @param gamerHandle2 number
--- @return boolean
function NETWORK.NETWORK_ARE_HANDLES_THE_SAME(gamerHandle1, gamerHandle2) end
--- @param gamerHandle number
--- @param gamerHandleSize number
--- @return boolean
function NETWORK.NETWORK_IS_HANDLE_VALID(gamerHandle, gamerHandleSize) end
--- @param gamerHandle number
--- @return number
function NETWORK.NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(gamerHandle) end
--- @param gamerHandle number
--- @return string
function NETWORK.NETWORK_MEMBER_ID_FROM_GAMER_HANDLE(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_GAMER_IN_MY_SESSION(gamerHandle) end
--- @param gamerHandle number
function NETWORK.NETWORK_SHOW_PROFILE_UI(gamerHandle) end
--- Returns the name of a given player. Returns "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist.
--- @param player number
--- @return string
function NETWORK.NETWORK_PLAYER_GET_NAME(player) end
--- Returns a string of the player's Rockstar Id.
--- Takes a 24 char buffer. Returns the buffer or "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist.
--- @param player number
--- @param userID any
--- @return string
function NETWORK.NETWORK_PLAYER_GET_USERID(player, userID) end
--- Checks if a specific value (BYTE) in CNetGamePlayer is nonzero.
--- Returns always false in Singleplayer.
--- 
--- No longer used for dev checks since first mods were released on PS3 & 360.
--- R* now checks with the IS_DLC_PRESENT native for the dlc hash 2532323046,
--- if that is present it will unlock dev stuff.
--- @param player number
--- @return boolean
function NETWORK.NETWORK_PLAYER_IS_ROCKSTAR_DEV(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_PLAYER_INDEX_IS_CHEATER(player) end
--- @param entity number
--- @return number
function NETWORK.NETWORK_ENTITY_GET_OBJECT_ID(entity) end
--- I've had this return the player's ped handle sometimes, but also other random entities.
--- Whatever p0 is, it's at least not synced to other players.
--- At least not all the time, some p0 values actually output the same entity, (different handle of course, but same entity).
--- But another p0 value may return an entity for player x, but not for player y (it'll just return -1 even if the entity exists on both clients).
--- 
--- Returns an entity handle or -1, value changes based on p0's value.
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_ENTITY_FROM_OBJECT_ID(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_IS_INACTIVE_PROFILE(p0) end
--- Returns the name from given friend gamer handle.
--- @param gamerHandle number
--- @return string
function NETWORK._NETWORK_LOAD_GAMER_DISPLAY_NAME(gamerHandle) end
--- @return number
function NETWORK.NETWORK_GET_MAX_FRIENDS() end
--- @return number
function NETWORK.NETWORK_GET_FRIEND_COUNT() end
--- @param friendIndex number
--- @return string
function NETWORK.NETWORK_GET_FRIEND_NAME(friendIndex) end
--- @param friendIndex number
--- @return string
function NETWORK.NETWORK_GET_FRIEND_DISPLAY_NAME(friendIndex) end
--- @param name string
--- @return boolean
function NETWORK.NETWORK_IS_FRIEND_ONLINE(name) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_FRIEND_HANDLE_ONLINE(gamerHandle) end
--- In scripts R* calls 'NETWORK_GET_FRIEND_NAME' in this param.
--- @param friendName string
--- @return boolean
function NETWORK.NETWORK_IS_FRIEND_IN_SAME_TITLE(friendName) end
--- @param friendName string
--- @return boolean
function NETWORK.NETWORK_IS_FRIEND_IN_MULTIPLAYER(friendName) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_FRIEND(gamerHandle) end
--- This function is hard-coded to always return 0.
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_IS_PENDING_FRIEND(p0) end
--- @return boolean
function NETWORK.NETWORK_IS_ADDING_FRIEND() end
--- @param gamerHandle number
--- @param message string
--- @return boolean
function NETWORK.NETWORK_ADD_FRIEND(gamerHandle, message) end
--- @param friendIndex number
--- @return boolean
function NETWORK.NETWORK_IS_FRIEND_INDEX_ONLINE(friendIndex) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_PLAYER_IS_PASSIVE(toggle) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_GET_PLAYER_OWNS_WAYPOINT(player) end
--- @return boolean
function NETWORK.NETWORK_CAN_SET_WAYPOINT() end
function NETWORK.NETWORK_IGNORE_REMOTE_WAYPOINTS() end
--- communicationType: 0 = VOICE; 1 = TEXT_CHAT; 2 = TEXT_MESSAGE; 3 = EMAIL; 4 = USER_CONTENT;  5 = USER_TEXT
--- @param communicationType number
--- @return boolean
function NETWORK._NETWORK_DOES_COMMUNICATION_GROUP_EXIST(communicationType) end
--- Returns communicationGroupFlag
--- communicationType: see 0xDBDF80673BBA3D65
--- 
--- enum eCommunicationGroupFlag
--- {
--- COMMUNICATION_GROUP_LOCAL_PLAYER = 1 << 0,
--- COMMUNICATION_GROUP_FRIENDS = 1 << 1,
--- COMMUNICATION_GROUP_SMALL_CREW = 1 << 2,
--- COMMUNICATION_GROUP_LARGE_CREW = 1 << 3,
--- COMMUNICATION_GROUP_RECENT_PLAYER = 1 << 4,
--- COMMUNICATION_GROUP_SAME_SESSION = 1 << 5,
--- COMMUNICATION_GROUP_SAME_TEAM = 1 << 6,
--- COMMUNICATION_GROUP_INVALID = 1 << 7,
--- };
--- @param communicationType number
--- @return number
function NETWORK._NETWORK_GET_COMMUNICATION_GROUP_FLAGS(communicationType) end
--- communicationType: see 0xDBDF80673BBA3D65
--- communicationGroupFlag: see 0x40DF02F371F40883
--- @param communicationType number
--- @param communicationGroupFlag number
function NETWORK._NETWORK_SET_COMMUNICATION_GROUP_FLAGS(communicationType, communicationGroupFlag) end
--- _NETWORK_HAS_P*
--- checkType 3 is similar as using 0x9F633448E4C73207
--- @param checkType number
--- @param gamerHandle number
--- @return boolean
function NETWORK._NETWORK_HAS_PLAYER_PASSED_CHECK_TYPE(checkType, gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_ON_BLOCKLIST(gamerHandle) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_SET_SCRIPT_AUTOMUTED(p0) end
--- @return boolean
function NETWORK.NETWORK_HAS_AUTOMUTE_OVERRIDE() end
--- @return boolean
function NETWORK.NETWORK_HAS_HEADSET() end
--- @param p0 boolean
function NETWORK.NETWORK_SET_LOOK_AT_TALKERS(p0) end
--- @return boolean
function NETWORK.NETWORK_IS_PUSH_TO_TALK_ACTIVE() end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_GAMER_HAS_HEADSET(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_GAMER_TALKING(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_PERMISSIONS_HAS_GAMER_RECORD(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_COMMUNICATE_WITH_GAMER(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_TEXT_CHAT_WITH_GAMER(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_GAMER_MUTED_BY_ME(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_AM_I_MUTED_BY_GAMER(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_IS_GAMER_BLOCKED_BY_ME(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_AM_I_BLOCKED_BY_GAMER(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_VIEW_GAMER_USER_CONTENT(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_HAS_VIEW_GAMER_USER_CONTENT_RESULT(gamerHandle) end
--- NETWORK_CAN_*
--- @param gamerHandle number
--- @return boolean
function NETWORK._NETWORK_CAN_TEXT_FROM_GAMER_BE_VIEWED(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_PLAY_MULTIPLAYER_WITH_GAMER(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_GAMER_PLAY_MULTIPLAYER_WITH_ME(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_SEND_LOCAL_INVITE(gamerHandle) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CAN_RECEIVE_LOCAL_INVITE(gamerHandle) end
--- returns true if someone is screaming or talking in a microphone
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_TALKING(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_PLAYER_HAS_HEADSET(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_MUTED_BY_ME(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_AM_I_MUTED_BY_PLAYER(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_BLOCKED_BY_ME(player) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_AM_I_BLOCKED_BY_PLAYER(player) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_PLAYER_LOUDNESS(player) end
--- @param value number
function NETWORK.NETWORK_SET_TALKER_PROXIMITY(value) end
--- @return number
function NETWORK.NETWORK_GET_TALKER_PROXIMITY() end
--- @param toggle boolean
function NETWORK.NETWORK_SET_VOICE_ACTIVE(toggle) end
--- @param p0 boolean
function NETWORK.NETWORK_REMAIN_IN_GAME_CHAT(p0) end
--- @param p0 boolean
function NETWORK.NETWORK_OVERRIDE_TRANSITION_CHAT(p0) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_TEAM_ONLY_CHAT(toggle) end
--- @param p0 number
function NETWORK.NETWORK_SET_SCRIPT_CONTROLLING_TEAMS(p0) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_SET_SAME_TEAM_AS_LOCAL_PLAYER(p0, p1) end
--- @param team number
--- @param toggle boolean
function NETWORK.NETWORK_OVERRIDE_TEAM_RESTRICTIONS(team, toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_OVERRIDE_SPECTATOR_MODE(toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_OVERRIDE_TUTORIAL_SESSION_CHAT(toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_PROXIMITY_AFFECTS_TEAM(toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_NO_SPECTATOR_CHAT(toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_IGNORE_SPECTATOR_CHAT_LIMITS_SAME_TEAM(toggle) end
--- Could possibly bypass being muted or automatically muted
--- @param player number
--- @param toggle boolean
function NETWORK.NETWORK_OVERRIDE_CHAT_RESTRICTIONS(player, toggle) end
--- This is used alongside the native,
--- 'NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS'. Read its description for more info.
--- @param player number
--- @param toggle boolean
function NETWORK.NETWORK_OVERRIDE_SEND_RESTRICTIONS(player, toggle) end
--- @param toggle boolean
function NETWORK.NETWORK_OVERRIDE_SEND_RESTRICTIONS_ALL(toggle) end
--- R* uses this to hear all player when spectating.
--- It allows you to hear other online players when their chat is on none, crew and or friends
--- @param player number
--- @param toggle boolean
function NETWORK.NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS(player, toggle) end
--- p0 is always false in scripts.
--- @param toggle boolean
function NETWORK.NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS_ALL(toggle) end
--- @param channel number
function NETWORK.NETWORK_SET_VOICE_CHANNEL(channel) end
function NETWORK.NETWORK_CLEAR_VOICE_CHANNEL() end
--- @param x number
--- @param y number
--- @param z number
function NETWORK.NETWORK_APPLY_VOICE_PROXIMITY_OVERRIDE(x, y, z) end
function NETWORK.NETWORK_CLEAR_VOICE_PROXIMITY_OVERRIDE() end
--- @param player number
function NETWORK.NETWORK_ENABLE_VOICE_BANDWIDTH_RESTRICTION(player) end
--- @param player number
function NETWORK.NETWORK_DISABLE_VOICE_BANDWIDTH_RESTRICTION(player) end
--- NETWORK_GET_M[A-U]
--- @param p0 number
--- @param p1 any
--- @param p2 any
function NETWORK.NETWORK_GET_MUTE_COUNT_FOR_PLAYER(p0, p1, p2) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_SPECTATOR_TO_NON_SPECTATOR_TEXT_CHAT(toggle) end
--- Same as _IS_TEXT_CHAT_ACTIVE, except it does not check if the text chat HUD component is initialized, and therefore may crash.
--- @return boolean
function NETWORK.NETWORK_TEXT_CHAT_IS_TYPING() end
--- Starts a new singleplayer game (at the prologue).
function NETWORK.SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME() end
--- In singleplayer this will re-load your game.
--- 
--- In FiveM / GTA:Online this disconnects you from the session, and starts loading single player, however you still remain connected to the server (only if you're the host, if you're not then you also (most likely) get disconnected from the server) and other players will not be able to join until you exit the game.
--- 
--- You might need to DoScreenFadeIn and ShutdownLoadingScreen otherwise you probably won't end up loading into SP at all.
--- 
--- Somewhat related note: opening the pause menu after loading into this 'singleplayer' mode crashes the game.
--- @return boolean
function NETWORK.SHUTDOWN_AND_LOAD_MOST_RECENT_SAVE() end
--- @param toggle boolean
function NETWORK.NETWORK_SET_FRIENDLY_FIRE_OPTION(toggle) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function NETWORK.NETWORK_SET_RICH_PRESENCE(p0, p1, p2, p3) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
--- @param textLabel string
function NETWORK.NETWORK_SET_RICH_PRESENCE_STRING(p0, textLabel) end
--- @return number
function NETWORK.NETWORK_GET_TIMEOUT_TIME() end
--- p4 and p5 are always 0 in scripts
--- @param player number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 boolean
--- @param p5 boolean
function NETWORK.NETWORK_LEAVE_PED_BEHIND_BEFORE_WARP(player, x, y, z, p4, p5) end
--- @param player number
--- @param p1 boolean
function NETWORK.NETWORK_LEAVE_PED_BEHIND_BEFORE_CUTSCENE(player, p1) end
--- entity must be a valid entity; ped can be NULL
--- @param entity number
--- @param ped number
function NETWORK.REMOVE_ALL_STICKY_BOMBS_FROM_ENTITY(entity, ped) end
--- @param p0 number
--- @param p1 number
function NETWORK.NETWORK_KEEP_ENTITY_COLLISION_DISABLED_AFTER_ANIM_SCENE(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return boolean
function NETWORK.NETWORK_IS_ANY_PLAYER_NEAR(p0, p1, p2, p3, p4, p5, p6) end
--- @return boolean
function NETWORK.NETWORK_CLAN_SERVICE_IS_VALID() end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle) end
--- bufferSize is 35 in the scripts.
--- 
--- bufferSize is the elementCount of p0(desc), sizeof(p0) == 280 == p1*8 == 35 * 8, p2(netHandle) is obtained from NETWORK::NETWORK_HANDLE_FROM_PLAYER.  And no, I can't explain why 35 * sizeof(int) == 280 and not 140, but I'll get back to you on that.
--- 
--- the answer is: because p0 an int64_t* / int64_t[35].  and FYI p2 is an int64_t[13]
--- 
--- https://pastebin.com/cSZniHak
--- @param clanDesc number
--- @param bufferSize number
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CLAN_PLAYER_GET_DESC(clanDesc, bufferSize, gamerHandle) end
--- bufferSize is 35 in the scripts.
--- @param clanDesc number
--- @param bufferSize number
--- @return boolean
function NETWORK.NETWORK_CLAN_IS_ROCKSTAR_CLAN(clanDesc, bufferSize) end
--- bufferSize is 35 in the scripts.
--- @param clanDesc number
--- @param bufferSize number
--- @param formattedTag string
function NETWORK.NETWORK_CLAN_GET_UI_FORMATTED_TAG(clanDesc, bufferSize, formattedTag) end
--- @return number
function NETWORK.NETWORK_CLAN_GET_LOCAL_MEMBERSHIPS_COUNT() end
--- @param memberDesc number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_CLAN_GET_MEMBERSHIP_DESC(memberDesc, p1) end
--- @param gamerHandle number
--- @return boolean
function NETWORK.NETWORK_CLAN_DOWNLOAD_MEMBERSHIP(gamerHandle) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_CLAN_DOWNLOAD_MEMBERSHIP_PENDING(p0) end
--- @return boolean
function NETWORK.NETWORK_CLAN_ANY_DOWNLOAD_MEMBERSHIP_PENDING() end
--- @param p0 any
--- @return boolean
function NETWORK.NETWORK_CLAN_REMOTE_MEMBERSHIPS_ARE_IN_CACHE(p0) end
--- @param p0 any
--- @return number
function NETWORK.NETWORK_CLAN_GET_MEMBERSHIP_COUNT(p0) end
--- @param p0 any
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_CLAN_GET_MEMBERSHIP_VALID(p0, p1) end
--- @param p0 any
--- @param clanMembership number
--- @param p2 number
--- @return boolean
function NETWORK.NETWORK_CLAN_GET_MEMBERSHIP(p0, clanMembership, p2) end
--- @param clanDesc number
--- @return boolean
function NETWORK.NETWORK_CLAN_JOIN(clanDesc) end
--- Only documented...
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
--- @param animName string
--- @return boolean
function NETWORK.NETWORK_CLAN_CREWINFO_GET_STRING_VALUE(animDict, animName) end
--- @param p0 number
--- @param p1 string
--- @return boolean
function NETWORK.NETWORK_CLAN_CREWINFO_GET_CREWRANKTITLE(p0, p1) end
--- @return boolean
function NETWORK.NETWORK_CLAN_HAS_CREWINFO_METADATA_BEEN_RECEIVED() end
--- @param netHandle number
--- @param txdName string
--- @return boolean
function NETWORK.NETWORK_CLAN_GET_EMBLEM_TXD_NAME(netHandle, txdName) end
--- @param p0 number
--- @return boolean
function NETWORK.NETWORK_CLAN_REQUEST_EMBLEM(p0) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_CLAN_IS_EMBLEM_READY(p0, p1) end
--- @param p0 number
function NETWORK.NETWORK_CLAN_RELEASE_EMBLEM(p0) end
--- @return boolean
function NETWORK.NETWORK_GET_PRIMARY_CLAN_DATA_CLEAR() end
function NETWORK.NETWORK_GET_PRIMARY_CLAN_DATA_CANCEL() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_GET_PRIMARY_CLAN_DATA_START(p0, p1) end
--- @return boolean
function NETWORK.NETWORK_GET_PRIMARY_CLAN_DATA_PENDING() end
--- @return boolean
function NETWORK.NETWORK_GET_PRIMARY_CLAN_DATA_SUCCESS() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_GET_PRIMARY_CLAN_DATA_NEW(p0, p1) end
--- Whether or not another player is allowed to take control of the entity
--- @param netId number
--- @param toggle boolean
function NETWORK.SET_NETWORK_ID_CAN_MIGRATE(netId, toggle) end
--- @param netId number
--- @param toggle boolean
function NETWORK.SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(netId, toggle) end
--- @param netId number
--- @param player number
--- @param toggle boolean
function NETWORK.SET_NETWORK_ID_ALWAYS_EXISTS_FOR_PLAYER(netId, player, toggle) end
--- "No Reassign" in CPhysicalScriptGameStateDataNode
--- @param netId number
--- @param toggle boolean
function NETWORK.SET_NETWORK_ID_CAN_BE_REASSIGNED(netId, toggle) end
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_SET_ENTITY_CAN_BLEND(entity, toggle) end
--- @param object number
--- @param toggle boolean
function NETWORK.NETWORK_SET_OBJECT_CAN_BLEND_WHEN_FIXED(object, toggle) end
--- if set to true other network players can't see it
--- if set to false other network player can see it
--- =========================================
--- ^^ I attempted this by grabbing an object with GET_ENTITY_PLAYER_IS_FREE_AIMING_AT and setting this naive no matter the toggle he could still see it.
--- 
--- pc or last gen?
--- 
--- ^^ last-gen
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_SET_ENTITY_ONLY_EXISTS_FOR_PARTICIPANTS(entity, toggle) end
--- @param netId number
--- @param p1 boolean
--- @param p2 boolean
function NETWORK.SET_NETWORK_ID_VISIBLE_IN_CUTSCENE(netId, p1, p2) end
--- @param netId number
--- @param p1 boolean
--- @param p2 boolean
function NETWORK.SET_NETWORK_ID_VISIBLE_IN_CUTSCENE_HACK(netId, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function NETWORK.SET_NETWORK_ID_VISIBLE_IN_CUTSCENE_REMAIN_HACK(p0, p1, p2) end
--- @param toggle boolean
function NETWORK.SET_NETWORK_CUTSCENE_ENTITIES(toggle) end
--- Getter for SET_NETWORK_CUTSCENE_ENTITIES.
--- @return boolean
function NETWORK.ARE_CUTSCENE_ENTITIES_NETWORKED() end
--- @param netId number
--- @param state boolean
function NETWORK.SET_NETWORK_ID_PASS_CONTROL_IN_TUTORIAL(netId, state) end
--- @param netId number
--- @return boolean
function NETWORK.IS_NETWORK_ID_OWNED_BY_PARTICIPANT(netId) end
--- @param player number
--- @param locallyVisible boolean
function NETWORK.SET_REMOTE_PLAYER_VISIBLE_IN_CUTSCENE(player, locallyVisible) end
--- @param p0 boolean
--- @param p1 boolean
function NETWORK.SET_LOCAL_PLAYER_VISIBLE_IN_CUTSCENE(p0, p1) end
--- @param bIncludePlayersVehicle boolean
function NETWORK.SET_LOCAL_PLAYER_INVISIBLE_LOCALLY(bIncludePlayersVehicle) end
--- @param bIncludePlayersVehicle boolean
function NETWORK.SET_LOCAL_PLAYER_VISIBLE_LOCALLY(bIncludePlayersVehicle) end
--- @param player number
--- @param bIncludePlayersVehicle boolean
function NETWORK.SET_PLAYER_INVISIBLE_LOCALLY(player, bIncludePlayersVehicle) end
--- @param player number
--- @param bIncludePlayersVehicle boolean
function NETWORK.SET_PLAYER_VISIBLE_LOCALLY(player, bIncludePlayersVehicle) end
--- Hardcoded to not work in SP.
--- @param p0 boolean
function NETWORK.FADE_OUT_LOCAL_PLAYER(p0) end
--- normal - transition like when your coming out of LSC
--- slow - transition like when you walk into a mission
--- 
--- @param entity number
--- @param normal boolean
--- @param slow boolean
function NETWORK.NETWORK_FADE_OUT_ENTITY(entity, normal, slow) end
--- state - 0 does 5 fades
--- state - 1 does 6 fades
--- 
--- p3: setting to 1 made vehicle fade in slower, probably "slow" as per NETWORK_FADE_OUT_ENTITY
--- @param entity number
--- @param state boolean
--- @param p2 number
function NETWORK.NETWORK_FADE_IN_ENTITY(entity, state, p2) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_FADING(player) end
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_IS_ENTITY_FADING(entity) end
--- @param player number
--- @return boolean
function NETWORK.IS_PLAYER_IN_CUTSCENE(player) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function NETWORK.SET_ENTITY_VISIBLE_IN_CUTSCENE(p0, p1, p2) end
--- Makes the provided entity visible for yourself for the current frame.
--- @param entity number
function NETWORK.SET_ENTITY_LOCALLY_INVISIBLE(entity) end
--- @param entity number
function NETWORK.SET_ENTITY_LOCALLY_VISIBLE(entity) end
--- @param netID number
--- @return boolean
function NETWORK.IS_DAMAGE_TRACKER_ACTIVE_ON_NETWORK_ID(netID) end
--- @param netID number
--- @param toggle boolean
function NETWORK.ACTIVATE_DAMAGE_TRACKER_ON_NETWORK_ID(netID, toggle) end
--- @param player number
--- @return boolean
function NETWORK.IS_DAMAGE_TRACKER_ACTIVE_ON_PLAYER(player) end
--- @param player number
--- @param toggle boolean
function NETWORK.ACTIVATE_DAMAGE_TRACKER_ON_PLAYER(player, toggle) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.IS_SPHERE_VISIBLE_TO_ANOTHER_MACHINE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @return boolean
function NETWORK.IS_SPHERE_VISIBLE_TO_PLAYER(p0, p1, p2, p3, p4) end
--- @param amount number
function NETWORK.RESERVE_NETWORK_MISSION_OBJECTS(amount) end
--- @param amount number
function NETWORK.RESERVE_NETWORK_MISSION_PEDS(amount) end
--- @param amount number
function NETWORK.RESERVE_NETWORK_MISSION_VEHICLES(amount) end
--- @param amount number
function NETWORK.RESERVE_LOCAL_NETWORK_MISSION_OBJECTS(amount) end
--- @param amount number
function NETWORK.RESERVE_LOCAL_NETWORK_MISSION_PEDS(amount) end
--- @param amount number
function NETWORK.RESERVE_LOCAL_NETWORK_MISSION_VEHICLES(amount) end
--- @param amount number
--- @return boolean
function NETWORK.CAN_REGISTER_MISSION_OBJECTS(amount) end
--- @param amount number
--- @return boolean
function NETWORK.CAN_REGISTER_MISSION_PEDS(amount) end
--- @param amount number
--- @return boolean
function NETWORK.CAN_REGISTER_MISSION_VEHICLES(amount) end
--- @param amount number
--- @return boolean
function NETWORK.CAN_REGISTER_MISSION_PICKUPS(amount) end
--- @param p0 number
--- @return boolean
function NETWORK.CAN_REGISTER_MISSION_DOORS(p0) end
--- @param ped_amt number
--- @param vehicle_amt number
--- @param object_amt number
--- @param pickup_amt number
--- @return boolean
function NETWORK.CAN_REGISTER_MISSION_ENTITIES(ped_amt, vehicle_amt, object_amt, pickup_amt) end
--- p0 appears to be for MP
--- @param p0 boolean
--- @param p1 number
--- @return number
function NETWORK.GET_NUM_RESERVED_MISSION_OBJECTS(p0, p1) end
--- p0 appears to be for MP
--- @param p0 boolean
--- @param p1 number
--- @return number
function NETWORK.GET_NUM_RESERVED_MISSION_PEDS(p0, p1) end
--- p0 appears to be for MP
--- @param p0 boolean
--- @param p1 number
--- @return number
function NETWORK.GET_NUM_RESERVED_MISSION_VEHICLES(p0, p1) end
--- @param p0 boolean
--- @return number
function NETWORK.GET_NUM_CREATED_MISSION_OBJECTS(p0) end
--- @param p0 boolean
--- @return number
function NETWORK.GET_NUM_CREATED_MISSION_PEDS(p0) end
--- @param p0 boolean
--- @return number
function NETWORK.GET_NUM_CREATED_MISSION_VEHICLES(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param out1 number
--- @param out2 number
--- @param out3 number
function NETWORK.GET_RESERVED_MISSION_ENTITIES_IN_AREA(x, y, z, p3, out1, out2, out3) end
--- @return number
function NETWORK.GET_MAX_NUM_NETWORK_OBJECTS() end
--- @return number
function NETWORK.GET_MAX_NUM_NETWORK_PEDS() end
--- @return number
function NETWORK.GET_MAX_NUM_NETWORK_VEHICLES() end
--- @return number
function NETWORK.GET_MAX_NUM_NETWORK_PICKUPS() end
--- @param object number
--- @param range number
function NETWORK.NETWORK_SET_OBJECT_SCOPE_DISTANCE(object, range) end
--- @param p0 number
--- @param p1 number
function NETWORK.NETWORK_ALLOW_CLONING_WHILE_IN_TUTORIAL(p0, p1) end
--- A value between 1.0 and 5.0
--- 
--- _NETWORK_SET_TASK_CUTSCENE_PROXIMITY_SCALE?
--- @param p0 number
function NETWORK.NETWORK_SET_TASK_CUTSCENE_INSCOPE_MULTIPLER(p0) end
--- @param netHandle number
--- @param hide boolean
function NETWORK._NETWORK_HIDE_ENTITY_IN_TUTORIAL_SESSION(netHandle, hide) end
--- @return number
function NETWORK.GET_NETWORK_TIME() end
--- Returns the same value as GET_NETWORK_TIME in freemode, but as opposed to `GET_NETWORK_TIME` it always gets the most recent time, instead of once per tick.
--- Could be used for benchmarking since it can return times in ticks.
--- @return number
function NETWORK.GET_NETWORK_TIME_ACCURATE() end
--- @return boolean
function NETWORK.HAS_NETWORK_TIME_STARTED() end
--- Adds the first argument to the second.
--- @param timeA number
--- @param timeB number
--- @return number
function NETWORK.GET_TIME_OFFSET(timeA, timeB) end
--- Subtracts the second argument from the first, then returns whether the result is negative.
--- @param timeA number
--- @param timeB number
--- @return boolean
function NETWORK.IS_TIME_LESS_THAN(timeA, timeB) end
--- Subtracts the first argument from the second, then returns whether the result is negative.
--- @param timeA number
--- @param timeB number
--- @return boolean
function NETWORK.IS_TIME_MORE_THAN(timeA, timeB) end
--- Returns true if the two times are equal; otherwise returns false.
--- @param timeA number
--- @param timeB number
--- @return boolean
function NETWORK.IS_TIME_EQUAL_TO(timeA, timeB) end
--- Subtracts the second argument from the first.
--- @param timeA number
--- @param timeB number
--- @return number
function NETWORK.GET_TIME_DIFFERENCE(timeA, timeB) end
--- @param time number
--- @return string
function NETWORK.GET_TIME_AS_STRING(time) end
--- Same as GET_CLOUD_TIME_AS_INT but returns the value as a hex string (%I64X).
--- @return string
function NETWORK.GET_CLOUD_TIME_AS_STRING() end
--- Returns POSIX timestamp, an int representing the cloud time.
--- @return number
function NETWORK.GET_CLOUD_TIME_AS_INT() end
--- Takes the specified time and writes it to the structure specified in the second argument.
--- 
--- struct date_time
--- {
--- int year;
--- int PADDING1;
--- int month;
--- int PADDING2;
--- int day;
--- int PADDING3;
--- int hour;
--- int PADDING4;
--- int minute;
--- int PADDING5;
--- int second;
--- int PADDING6;
--- };
--- @param posixTime number
--- @param timeStructure number
function NETWORK.CONVERT_POSIX_TIME(posixTime, timeStructure) end
--- @param toggle boolean
--- @param playerPed number
function NETWORK.NETWORK_SET_IN_SPECTATOR_MODE(toggle, playerPed) end
--- @param toggle boolean
--- @param playerPed number
--- @param p2 boolean
function NETWORK.NETWORK_SET_IN_SPECTATOR_MODE_EXTENDED(toggle, playerPed, p2) end
--- @param toggle boolean
function NETWORK.NETWORK_SET_IN_FREE_CAM_MODE(toggle) end
--- @param toggle boolean
--- @param player number
function NETWORK.NETWORK_SET_ANTAGONISTIC_TO_PLAYER(toggle, player) end
--- @return boolean
function NETWORK.NETWORK_IS_IN_SPECTATOR_MODE() end
--- @param p0 boolean
--- @param p1 boolean
function NETWORK.NETWORK_SET_IN_MP_CUTSCENE(p0, p1) end
--- @return boolean
function NETWORK.NETWORK_IS_IN_MP_CUTSCENE() end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_IN_MP_CUTSCENE(player) end
function NETWORK.NETWORK_HIDE_PROJECTILE_IN_CUTSCENE() end
--- @param netId number
--- @param time number
--- @param p2 number
--- @param p3 number
function NETWORK.SET_NETWORK_VEHICLE_RESPOT_TIMER(netId, time, p2, p3) end
--- @param networkID number
--- @return boolean
function NETWORK.IS_NETWORK_VEHICLE_RUNNING_RESPOT_TIMER(networkID) end
--- @param vehicle number
--- @param toggle boolean
function NETWORK.SET_NETWORK_VEHICLE_AS_GHOST(vehicle, toggle) end
--- rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel
--- @param vehicle number
--- @param multiplier number
function NETWORK.SET_NETWORK_VEHICLE_MAX_POSITION_DELTA_MULTIPLIER(vehicle, multiplier) end
--- Enables a periodic ShapeTest within the NetBlender and invokes rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper).
--- @param vehicle number
--- @param toggle boolean
function NETWORK.SET_NETWORK_ENABLE_HIGH_SPEED_EDGE_FALL_DETECTION(vehicle, toggle) end
--- @param toggle boolean
--- @param p1 boolean
function NETWORK.SET_LOCAL_PLAYER_AS_GHOST(toggle, p1) end
--- @param entity number
--- @return boolean
function NETWORK.IS_ENTITY_A_GHOST(entity) end
--- @param p0 boolean
function NETWORK.SET_NON_PARTICIPANTS_OF_THIS_SCRIPT_AS_GHOSTS(p0) end
--- Enables ghosting between specific players
--- @param player number
--- @param p1 boolean
function NETWORK.SET_REMOTE_PLAYER_AS_GHOST(player, p1) end
--- Must be a value between 1 and 254
--- @param alpha number
function NETWORK.SET_GHOST_ALPHA(alpha) end
--- Resets the entity ghost alpha to the default value (128)
function NETWORK.RESET_GHOST_ALPHA() end
--- @param entity number
--- @param toggle boolean
function NETWORK.SET_ENTITY_GHOSTED_FOR_GHOST_PLAYERS(entity, toggle) end
--- @param p0 boolean
function NETWORK.SET_INVERT_GHOSTING(p0) end
--- @param entity number
--- @return boolean
function NETWORK.IS_ENTITY_IN_GHOST_COLLISION(entity) end
--- reportData includes mc, ceo, yacht and licenceplate names
--- @param gamerHandle number
--- @param reportData number
function NETWORK._SET_FREEMODE_REPORT_DATA(gamerHandle, reportData) end
--- @return boolean
function NETWORK.IS_OBJECT_REASSIGNMENT_IN_PROGRESS() end
--- @param toggle boolean
function NETWORK.USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR(toggle) end
--- @param x number
--- @param y number
--- @param z number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param rotationOrder number
--- @param useOcclusionPortal boolean
--- @param looped boolean
--- @param p9 number
--- @param animTime number
--- @param p11 number
--- @return number
function NETWORK.NETWORK_CREATE_SYNCHRONISED_SCENE(x, y, z, xRot, yRot, zRot, rotationOrder, useOcclusionPortal, looped, p9, animTime, p11) end
--- @param ped number
--- @param netScene number
--- @param animDict string
--- @param animnName string
--- @param speed number
--- @param speedMultiplier number
--- @param duration number
--- @param flag number
--- @param playbackRate number
--- @param p9 number
function NETWORK.NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(ped, netScene, animDict, animnName, speed, speedMultiplier, duration, flag, playbackRate, p9) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
function NETWORK.NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE_WITH_IK(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) end
--- @param entity number
--- @param netScene number
--- @param animDict string
--- @param animName string
--- @param speed number
--- @param speedMulitiplier number
--- @param flag number
function NETWORK.NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE(entity, netScene, animDict, animName, speed, speedMulitiplier, flag) end
--- Similar structure as NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE but it includes this time a hash.
--- In casino_slots it is used one time in a synced scene involving a ped and the slot machine?
--- @param netScene number
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param p5 number
--- @param p6 string
--- @param p7 number
--- @param p8 number
--- @param flags number
function NETWORK.NETWORK_ADD_MAP_ENTITY_TO_SYNCHRONISED_SCENE(netScene, modelHash, x, y, z, p5, p6, p7, p8, flags) end
--- @param netScene number
--- @param animDict string
--- @param animName string
function NETWORK.NETWORK_ADD_SYNCHRONISED_SCENE_CAMERA(netScene, animDict, animName) end
--- @param netScene number
--- @param entity number
--- @param bone number
function NETWORK.NETWORK_ATTACH_SYNCHRONISED_SCENE_TO_ENTITY(netScene, entity, bone) end
--- @param netScene number
function NETWORK.NETWORK_START_SYNCHRONISED_SCENE(netScene) end
--- @param netScene number
function NETWORK.NETWORK_STOP_SYNCHRONISED_SCENE(netScene) end
--- @param netId number
--- @return number
function NETWORK.NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(netId) end
--- @param netScene number
function NETWORK.NETWORK_FORCE_LOCAL_USE_OF_SYNCED_SCENE_CAMERA(netScene) end
--- @param p0 number
function NETWORK.NETWORK_ALLOW_REMOTE_SYNCED_SCENE_LOCAL_PLAYER_REQUESTS(p0) end
--- p0 is always 0. p1 is pointing to a global.
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.NETWORK_FIND_LARGEST_BUNCH_OF_PLAYERS(p0, p1) end
--- One of the first things it does is get the players ped.
--- Then it calls a function that is used in some tasks and ped based functions.
--- p5, p6, p7 is another coordinate (or zero), often related to `GET_BLIP_COORDS, in the decompiled scripts.
--- @param player number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param flags number
--- @return boolean
function NETWORK.NETWORK_START_RESPAWN_SEARCH_FOR_PLAYER(player, x, y, z, radius, p5, p6, p7, flags) end
--- p8, p9, p10 is another coordinate, or zero, often related to `GET_BLIP_COORDS in the decompiled scripts.
--- @param player number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param flags number
--- @return boolean
function NETWORK.NETWORK_START_RESPAWN_SEARCH_IN_ANGLED_AREA_FOR_PLAYER(player, x1, y1, z1, x2, y2, z2, width, p8, p9, p10, flags) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_QUERY_RESPAWN_RESULTS(p0) end
function NETWORK.NETWORK_CANCEL_RESPAWN_SEARCH() end
--- Based on scripts such as in freemode.c how they call their vars vVar and fVar the 2nd and 3rd param it a Vector3 and Float, but the first is based on get_random_int_in_range..
--- @param randomInt number
--- @param coordinates number
--- @param heading any
function NETWORK.NETWORK_GET_RESPAWN_RESULT(randomInt, coordinates, heading) end
--- @param p0 number
--- @return number
function NETWORK.NETWORK_GET_RESPAWN_RESULT_FLAGS(p0) end
function NETWORK.NETWORK_START_SOLO_TUTORIAL_SESSION() end
--- teamId must be < 3, instanceId must be < 64
--- @param teamId number
--- @param instanceId number
function NETWORK.NETWORK_ALLOW_GANG_TO_JOIN_TUTORIAL_SESSION(teamId, instanceId) end
function NETWORK.NETWORK_END_TUTORIAL_SESSION() end
--- @return boolean
function NETWORK.NETWORK_IS_IN_TUTORIAL_SESSION() end
--- @return boolean
function NETWORK.NETWORK_WAITING_POP_CLEAR_TUTORIAL_SESSION() end
--- @return boolean
function NETWORK.NETWORK_IS_TUTORIAL_SESSION_CHANGE_PENDING() end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_PLAYER_TUTORIAL_SESSION_INSTANCE(player) end
--- @param player number
--- @param index number
--- @return boolean
function NETWORK.NETWORK_ARE_PLAYERS_IN_SAME_TUTORIAL_SESSION(player, index) end
--- @param p0 number
function NETWORK.NETWORK_BLOCK_PROXY_MIGRATION_BETWEEN_TUTORIAL_SESSIONS(p0) end
--- @param player number
--- @param toggle boolean
--- @param p2 boolean
function NETWORK.NETWORK_CONCEAL_PLAYER(player, toggle, p2) end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_PLAYER_CONCEALED(player) end
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_CONCEAL_ENTITY(entity, toggle) end
--- Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct).
--- @param entity number
--- @return boolean
function NETWORK.NETWORK_IS_ENTITY_CONCEALED(entity) end
--- Works in Singleplayer too.
--- Passing wrong data (e.g. hours above 23) will cause the game to crash.
--- @param hours number
--- @param minutes number
--- @param seconds number
function NETWORK.NETWORK_OVERRIDE_CLOCK_TIME(hours, minutes, seconds) end
--- @param ms number
function NETWORK.NETWORK_OVERRIDE_CLOCK_RATE(ms) end
function NETWORK.NETWORK_CLEAR_CLOCK_TIME_OVERRIDE() end
--- @return boolean
function NETWORK.NETWORK_IS_CLOCK_TIME_OVERRIDDEN() end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function NETWORK.NETWORK_ADD_ENTITY_AREA(x1, y1, z1, x2, y2, z2) end
--- To remove, see: NETWORK_REMOVE_ENTITY_AREA
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @return number
function NETWORK.NETWORK_ADD_ENTITY_ANGLED_AREA(x1, y1, z1, x2, y2, z2, width) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function NETWORK.NETWORK_ADD_CLIENT_ENTITY_AREA(x1, y1, z1, x2, y2, z2) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param radius number
--- @return number
function NETWORK.NETWORK_ADD_CLIENT_ENTITY_ANGLED_AREA(x1, y1, z1, x2, y2, z2, radius) end
--- @param areaHandle number
--- @return boolean
function NETWORK.NETWORK_REMOVE_ENTITY_AREA(areaHandle) end
--- @param areaHandle number
--- @return boolean
function NETWORK.NETWORK_ENTITY_AREA_DOES_EXIST(areaHandle) end
--- @param areaHandle number
--- @return boolean
function NETWORK.NETWORK_ENTITY_AREA_HAVE_ALL_REPLIED(areaHandle) end
--- @param areaHandle number
--- @return boolean
function NETWORK.NETWORK_ENTITY_AREA_IS_OCCUPIED(areaHandle) end
--- @param netID number
--- @param toggle boolean
function NETWORK.NETWORK_USE_HIGH_PRECISION_BLENDING(netID, toggle) end
--- @param netId number
function NETWORK.NETWORK_SET_CUSTOM_ARENA_BALL_PARAMS(netId) end
--- @param netId number
--- @param toggle boolean
function NETWORK.NETWORK_ENTITY_USE_HIGH_PRECISION_ROTATION(netId, toggle) end
--- @return boolean
function NETWORK.NETWORK_REQUEST_CLOUD_BACKGROUND_SCRIPTS() end
--- @return boolean
function NETWORK.NETWORK_IS_CLOUD_BACKGROUND_SCRIPT_REQUEST_PENDING() end
function NETWORK.NETWORK_REQUEST_CLOUD_TUNABLES() end
--- @return boolean
function NETWORK.NETWORK_IS_TUNABLE_CLOUD_REQUEST_PENDING() end
--- Actually returns the version (TUNABLE_VERSION)
--- @return number
function NETWORK.NETWORK_GET_TUNABLE_CLOUD_CRC() end
--- Sets up tunable contexts for _NETWORK_GET_TUNABLES_REGISTRATION_{BOOL|INT|FLOAT}
--- @param tunableContextData number
function NETWORK._NETWORK_SET_TUNABLES_REGISTRATION_CONTEXTS(tunableContextData) end
--- Clears tunable contexts that were set up using _NETWORK_SET_TUNABLES_REGISTRATION_CONTEXTS
function NETWORK._NETWORK_CLEAR_TUNABLES_REGISTRATION_CONTEXTS() end
--- Checks if the given tunable exists and returns its value. Otherwise returns defaultValue.
--- Possible tunable contexts must first be set up using _NETWORK_SET_TUNABLES_REGISTRATION_CONTEXTS.
--- @param tunableName number
--- @param defaultValue boolean
--- @return boolean
function NETWORK._NETWORK_GET_TUNABLES_REGISTRATION_BOOL(tunableName, defaultValue) end
--- Checks if the given tunable exists and returns its value. Otherwise returns defaultValue.
--- Possible tunable contexts must first be set up using _NETWORK_SET_TUNABLES_REGISTRATION_CONTEXTS.
--- @param tunableName number
--- @param defaultValue number
--- @return number
function NETWORK._NETWORK_GET_TUNABLES_REGISTRATION_INT(tunableName, defaultValue) end
--- Checks if the given tunable exists and returns its value. Otherwise returns defaultValue.
--- Possible tunable contexts must first be set up using _NETWORK_SET_TUNABLES_REGISTRATION_CONTEXTS.
--- @param tunableName number
--- @param defaultValue number
--- @return number
function NETWORK._NETWORK_GET_TUNABLES_REGISTRATION_FLOAT(tunableName, defaultValue) end
--- @param tunableContext string
--- @param tunableName string
--- @return boolean
function NETWORK.NETWORK_DOES_TUNABLE_EXIST(tunableContext, tunableName) end
--- @param tunableContext string
--- @param tunableName string
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_INT(tunableContext, tunableName, value) end
--- @param tunableContext string
--- @param tunableName string
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_FLOAT(tunableContext, tunableName, value) end
--- @param tunableContext string
--- @param tunableName string
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_BOOL(tunableContext, tunableName) end
--- @param tunableContext number
--- @param tunableName number
--- @return boolean
function NETWORK.NETWORK_DOES_TUNABLE_EXIST_HASH(tunableContext, tunableName) end
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_MODIFICATION_DETECTION_CLEAR() end
--- @param tunableContext number
--- @param tunableName number
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_INT_HASH(tunableContext, tunableName, value) end
--- @param contextHash number
--- @param nameHash number
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_INT_MODIFICATION_DETECTION_REGISTRATION_HASH(contextHash, nameHash, value) end
--- @param tunableContext number
--- @param tunableName number
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_FLOAT_HASH(tunableContext, tunableName, value) end
--- @param contextHash number
--- @param nameHash number
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_FLOAT_MODIFICATION_DETECTION_REGISTRATION_HASH(contextHash, nameHash, value) end
--- @param tunableContext number
--- @param tunableName number
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_BOOL_HASH(tunableContext, tunableName) end
--- @param contextHash number
--- @param nameHash number
--- @param value any
--- @return boolean
function NETWORK.NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH(contextHash, nameHash, value) end
--- Returns defaultValue if the tunable doesn't exist.
--- @param tunableContext number
--- @param tunableName number
--- @param defaultValue boolean
--- @return boolean
function NETWORK.NETWORK_TRY_ACCESS_TUNABLE_BOOL_HASH(tunableContext, tunableName, defaultValue) end
--- Return the content modifier id (the tunables context if you want) of a specific content.
--- 
--- It takes the content hash (which is the mission id hash), and return the content modifier id, used as the tunables context.
--- 
--- The mission id can be found on the Social club, for example, 'socialclub.rockstargames.com/games/gtav/jobs/job/A8M6Bz8MLEC5xngvDCzGwA'
--- 
--- 'A8M6Bz8MLEC5xngvDCzGwA' is the mission id, so the game hash this and use it as the parameter for this native.
--- 
--- @param contentHash number
--- @return number
function NETWORK.NETWORK_GET_CONTENT_MODIFIER_LIST_ID(contentHash) end
--- @return number
function NETWORK.NETWORK_GET_BONE_ID_OF_FATAL_HIT() end
function NETWORK.NETWORK_RESET_BODY_TRACKER() end
--- @return number
function NETWORK.NETWORK_GET_NUMBER_BODY_TRACKER_HITS() end
--- @param boneIndex number
--- @return boolean
function NETWORK.NETWORK_HAS_BONE_BEEN_HIT_BY_KILLER(boneIndex) end
--- @param ped number
--- @param player number
--- @return boolean
function NETWORK.NETWORK_SET_ATTRIBUTE_DAMAGE_TO_PLAYER(ped, player) end
--- Allows vehicle wheels to be destructible even when the vehicle entity is invincible.
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_DAMAGE(entity, toggle) end
--- @param entity number
--- @param trigger boolean
function NETWORK._NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_PED_DAMAGE(entity, trigger) end
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_WEAPON_HASH(entity, toggle) end
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_SET_NO_LONGER_NEEDED(entity, toggle) end
--- In the console script dumps, this is only referenced once.
--- NETWORK::NETWORK_EXPLODE_VEHICLE(vehicle, 1, 0, 0);
--- 
--- ^^^^^ That must be PC script dumps? In X360 Script Dumps it is reference a few times with 2 differences in the parameters.
--- Which as you see below is 1, 0, 0 + 1, 1, 0 + 1, 0, and a *param?
--- 
--- am_plane_takedown.c
--- network_explode_vehicle(net_to_veh(Local_40.imm_2), 1, 1, 0);
--- 
--- armenian2.c
--- network_explode_vehicle(Local_80[6 <2>], 1, 0, 0);
--- 
--- fm_horde_controler.c
--- network_explode_vehicle(net_to_veh(*uParam0), 1, 0, *uParam0);
--- 
--- fm_mission_controller.c, has 6 hits so not going to list them.
--- 
--- Side note, setting the first parameter to 0 seems to mute sound or so?
--- 
--- Seems it's like ADD_EXPLOSION, etc. the first 2 params. The 3rd atm no need to worry since it always seems to be 0.
--- 
--- @param vehicle number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param netId number
--- @return boolean
function NETWORK.NETWORK_EXPLODE_VEHICLE(vehicle, isAudible, isInvisible, netId) end
--- @param vehicle number
--- @param isAudible boolean
--- @param isInvisible boolean
--- @param netId number
function NETWORK.NETWORK_EXPLODE_HELI(vehicle, isAudible, isInvisible, netId) end
--- @param entity number
function NETWORK.NETWORK_USE_LOGARITHMIC_BLENDING_THIS_FRAME(entity) end
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
function NETWORK.NETWORK_OVERRIDE_COORDS_AND_HEADING(entity, x, y, z, heading) end
--- @param netId number
--- @param toggle boolean
function NETWORK.NETWORK_ENABLE_EXTRA_VEHICLE_ORIENTATION_BLEND_CHECKS(netId, toggle) end
--- @param netID number
function NETWORK.NETWORK_DISABLE_PROXIMITY_MIGRATION(netID) end
--- value must be < 255
--- p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int
--- @param p0 number
function NETWORK.NETWORK_SET_PLAYER_MENTAL_STATE(p0) end
--- @param p0 boolean
function NETWORK.NETWORK_SET_MINIMUM_RANK_FOR_MISSION(p0) end
function NETWORK.NETWORK_CACHE_LOCAL_PLAYER_HEAD_BLEND_DATA() end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_HAS_CACHED_PLAYER_HEAD_BLEND_DATA(player) end
--- @param ped number
--- @param player number
--- @return boolean
function NETWORK.NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA(ped, player) end
--- @return number
function NETWORK.GET_NUM_COMMERCE_ITEMS() end
--- @return boolean
function NETWORK.IS_COMMERCE_DATA_VALID() end
--- Does nothing (it's a nullsub).
--- @param p0 number
function NETWORK.TRIGGER_COMMERCE_DATA_FETCH(p0) end
--- @return boolean
function NETWORK.IS_COMMERCE_DATA_FETCH_IN_PROGRESS() end
--- @param index number
--- @return string
function NETWORK.GET_COMMERCE_ITEM_ID(index) end
--- @param index number
--- @return string
function NETWORK.GET_COMMERCE_ITEM_NAME(index) end
--- @param index number
--- @return string
function NETWORK.GET_COMMERCE_PRODUCT_PRICE(index) end
--- @param index number
--- @return number
function NETWORK.GET_COMMERCE_ITEM_NUM_CATS(index) end
--- index2 is unused
--- @param index number
--- @param index2 number
--- @return string
function NETWORK.GET_COMMERCE_ITEM_CAT(index, index2) end
--- @param p0 string
--- @param p1 string
--- @param p2 number
function NETWORK.OPEN_COMMERCE_STORE(p0, p1, p2) end
--- @return boolean
function NETWORK.IS_COMMERCE_STORE_OPEN() end
--- Access to the store for shark cards etc...
--- @param toggle boolean
function NETWORK.SET_STORE_ENABLED(toggle) end
--- @param index number
--- @return boolean
function NETWORK.REQUEST_COMMERCE_ITEM_IMAGE(index) end
function NETWORK.RELEASE_ALL_COMMERCE_ITEM_IMAGES() end
--- @param index number
--- @return string
function NETWORK.GET_COMMERCE_ITEM_TEXTURENAME(index) end
--- @return boolean
function NETWORK.IS_STORE_AVAILABLE_TO_USER() end
function NETWORK.DELAY_MP_STORE_OPEN() end
function NETWORK.RESET_STORE_NETWORK_GAME_TRACKING() end
--- @return boolean
function NETWORK.IS_USER_OLD_ENOUGH_TO_ACCESS_STORE() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function NETWORK.SET_LAST_VIEWED_SHOP_ITEM(p0, p1, p2) end
--- Checks some commerce stuff
--- @return number
function NETWORK.GET_USER_PREMIUM_ACCESS() end
--- Checks some commerce stuff
--- @return number
function NETWORK.GET_USER_STARTER_ACCESS() end
--- @param p0 string
--- @return number
function NETWORK.CLOUD_DELETE_MEMBER_FILE(p0) end
--- @param requestId number
--- @return boolean
function NETWORK.CLOUD_HAS_REQUEST_COMPLETED(requestId) end
--- @param requestId number
--- @return boolean
function NETWORK.CLOUD_DID_REQUEST_SUCCEED(requestId) end
--- Downloads prod.cloud.rockstargames.com/titles/gta5/[platform]/check.json
function NETWORK.CLOUD_CHECK_AVAILABILITY() end
--- @return boolean
function NETWORK.CLOUD_IS_CHECKING_AVAILABILITY() end
--- @return boolean
function NETWORK.CLOUD_GET_AVAILABILITY_CHECK_RESULT() end
--- This function is hard-coded to always return 0.
--- @return number
function NETWORK.GET_CONTENT_TO_LOAD_TYPE() end
--- This function is hard-coded to always return 0.
--- @return boolean
function NETWORK.GET_IS_LAUNCH_FROM_LIVE_AREA() end
--- This function is hard-coded to always return 0.
--- @return boolean
function NETWORK.GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT() end
--- This native does absolutely nothing, just a nullsub
function NETWORK.CLEAR_SERVICE_EVENT_ARGUMENTS() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.UGC_COPY_CONTENT(p0, p1) end
--- @return boolean
function NETWORK.UGC_IS_CREATING() end
--- @return boolean
function NETWORK.UGC_HAS_CREATE_FINISHED() end
--- @return boolean
function NETWORK.UGC_DID_CREATE_SUCCEED() end
--- @return number
function NETWORK.UGC_GET_CREATE_RESULT() end
--- @return string
function NETWORK.UGC_GET_CREATE_CONTENT_ID() end
function NETWORK.UGC_CLEAR_CREATE_RESULT() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @return boolean
function NETWORK.UGC_QUERY_MY_CONTENT(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 string
--- @param p4 number
--- @param p5 boolean
--- @return boolean
function NETWORK.UGC_QUERY_BY_CATEGORY(p0, p1, p2, p3, p4, p5) end
--- @param contentId string
--- @param latestVersion boolean
--- @param contentTypeName string
--- @return boolean
function NETWORK.UGC_QUERY_BY_CONTENT_ID(contentId, latestVersion, contentTypeName) end
--- @param data number
--- @param count number
--- @param latestVersion boolean
--- @param contentTypeName string
--- @return boolean
function NETWORK.UGC_QUERY_BY_CONTENT_IDS(data, count, latestVersion, contentTypeName) end
--- @param offset number
--- @param count number
--- @param contentTypeName string
--- @param p3 number
--- @return boolean
function NETWORK.UGC_QUERY_MOST_RECENTLY_CREATED_CONTENT(offset, count, contentTypeName, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 string
--- @param p3 number
--- @return boolean
function NETWORK.UGC_GET_BOOKMARKED_CONTENT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 string
--- @param p3 number
--- @return boolean
function NETWORK.UGC_GET_MY_CONTENT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 string
--- @param p3 number
--- @return boolean
function NETWORK.UGC_GET_FRIEND_CONTENT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 string
--- @param p4 number
--- @return boolean
function NETWORK.UGC_GET_CREW_CONTENT(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 string
--- @param p4 number
--- @return boolean
function NETWORK.UGC_GET_GET_BY_CATEGORY(p0, p1, p2, p3, p4) end
--- @param contentId string
--- @param contentTypeName string
--- @return boolean
function NETWORK.UGC_GET_GET_BY_CONTENT_ID(contentId, contentTypeName) end
--- @param data number
--- @param dataCount number
--- @param contentTypeName string
--- @return boolean
function NETWORK.UGC_GET_GET_BY_CONTENT_IDS(data, dataCount, contentTypeName) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.UGC_GET_MOST_RECENTLY_CREATED_CONTENT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.UGC_GET_MOST_RECENTLY_PLAYED_CONTENT(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function NETWORK.UGC_GET_TOP_RATED_CONTENT(p0, p1, p2, p3) end
function NETWORK.UGC_CANCEL_QUERY() end
--- @return boolean
function NETWORK.UGC_IS_GETTING() end
--- @return boolean
function NETWORK.UGC_HAS_GET_FINISHED() end
--- @return boolean
function NETWORK.UGC_DID_GET_SUCCEED() end
--- @return boolean
function NETWORK.UGC_WAS_QUERY_FORCE_CANCELLED() end
--- @return number
function NETWORK.UGC_GET_QUERY_RESULT() end
--- @return number
function NETWORK.UGC_GET_CONTENT_NUM() end
--- @return number
function NETWORK.UGC_GET_CONTENT_TOTAL() end
--- @return number
function NETWORK.UGC_GET_CONTENT_HASH() end
function NETWORK.UGC_CLEAR_QUERY_RESULTS() end
--- @param p0 number
--- @return string
function NETWORK.UGC_GET_CONTENT_USER_ID(p0) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_CREATOR_GAMER_HANDLE(p0, p1) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_CREATED_BY_LOCAL_PLAYER(p0) end
--- @param p0 number
--- @return string
function NETWORK.UGC_GET_CONTENT_USER_NAME(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_IS_USING_SC_NICKNAME(p0) end
--- @param p0 number
--- @return number
function NETWORK.UGC_GET_CONTENT_CATEGORY(p0) end
--- Return the mission id of a job.
--- @param p0 number
--- @return string
function NETWORK.UGC_GET_CONTENT_ID(p0) end
--- Return the root content id of a job.
--- @param p0 number
--- @return string
function NETWORK.UGC_GET_ROOT_CONTENT_ID(p0) end
--- @param p0 number
--- @return string
function NETWORK.UGC_GET_CONTENT_NAME(p0) end
--- @param p0 number
--- @return number
function NETWORK.UGC_GET_CONTENT_DESCRIPTION_HASH(p0) end
--- @param p0 number
--- @param p1 number
--- @return string
function NETWORK.UGC_GET_CONTENT_PATH(p0, p1) end
--- @param p0 number
--- @param p1 number
function NETWORK.UGC_GET_CONTENT_UPDATED_DATE(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.UGC_GET_CONTENT_FILE_VERSION(p0, p1) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_HAS_LO_RES_PHOTO(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_HAS_HI_RES_PHOTO(p0) end
--- @param p0 number
--- @return number
function NETWORK.UGC_GET_CONTENT_LANGUAGE(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_IS_PUBLISHED(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_IS_VERIFIED(p0) end
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.UGC_GET_CONTENT_RATING(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.UGC_GET_CONTENT_RATING_COUNT(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.UGC_GET_CONTENT_RATING_POSITIVE_COUNT(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.UGC_GET_CONTENT_RATING_NEGATIVE_COUNT(p0, p1) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_HAS_PLAYER_RECORD(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_GET_CONTENT_HAS_PLAYER_BOOKMARKED(p0) end
--- @param p0 number
--- @param p1 number
--- @return number
function NETWORK.UGC_REQUEST_CONTENT_DATA_FROM_INDEX(p0, p1) end
--- @param contentTypeName string
--- @param contentId string
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @return number
function NETWORK.UGC_REQUEST_CONTENT_DATA_FROM_PARAMS(contentTypeName, contentId, p2, p3, p4) end
--- @param p0 number
--- @return number
function NETWORK.UGC_REQUEST_CACHED_DESCRIPTION(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_IS_DESCRIPTION_REQUEST_IN_PROGRESS(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_HAS_DESCRIPTION_REQUEST_FINISHED(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_DID_DESCRIPTION_REQUEST_SUCCEED(p0) end
--- @param p0 number
--- @param p1 number
--- @return string
function NETWORK.UGC_GET_CACHED_DESCRIPTION(p0, p1) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_RELEASE_CACHED_DESCRIPTION(p0) end
function NETWORK.UGC_RELEASE_ALL_CACHED_DESCRIPTIONS() end
--- @return boolean
function NETWORK.UGC_HAS_PERMISSION_TO_WRITE() end
--- @param contentId string
--- @param baseContentId string
--- @param contentTypeName string
--- @return boolean
function NETWORK.UGC_PUBLISH(contentId, baseContentId, contentTypeName) end
--- @param contentId string
--- @param bookmarked boolean
--- @param contentTypeName string
--- @return boolean
function NETWORK.UGC_SET_BOOKMARKED(contentId, bookmarked, contentTypeName) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 string
--- @return boolean
function NETWORK.UGC_SET_DELETED(p0, p1, p2) end
--- @return boolean
function NETWORK.UGC_IS_MODIFYING() end
--- @return boolean
function NETWORK.UGC_HAS_MODIFY_FINISHED() end
--- @return boolean
function NETWORK.UGC_DID_MODIFY_SUCCEED() end
--- @return number
function NETWORK.UGC_GET_MODIFY_RESULT() end
function NETWORK.UGC_CLEAR_MODIFY_RESULT() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function NETWORK.UGC_GET_CREATORS_BY_USER_ID(p0, p1) end
--- @return boolean
function NETWORK.UGC_HAS_QUERY_CREATORS_FINISHED() end
--- @return boolean
function NETWORK.UGC_DID_QUERY_CREATORS_SUCCEED() end
--- @return number
function NETWORK.UGC_GET_CREATOR_NUM() end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_LOAD_OFFLINE_QUERY(p0) end
function NETWORK.UGC_CLEAR_OFFLINE_QUERY() end
--- @param p0 boolean
function NETWORK.UGC_SET_QUERY_DATA_FROM_OFFLINE(p0) end
--- @param p0 boolean
function NETWORK.UGC_SET_USING_OFFLINE_CONTENT(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.UGC_IS_LANGUAGE_SUPPORTED(p0) end
--- @param heistName string
--- @param cashEarned number
--- @param xpEarned number
--- @return boolean
function NETWORK.FACEBOOK_POST_COMPLETED_HEIST(heistName, cashEarned, xpEarned) end
--- @return boolean
function NETWORK.FACEBOOK_POST_CREATE_CHARACTER() end
--- @param milestoneId number
--- @return boolean
function NETWORK.FACEBOOK_POST_COMPLETED_MILESTONE(milestoneId) end
--- @return boolean
function NETWORK.FACEBOOK_HAS_POST_COMPLETED() end
--- @return boolean
function NETWORK.FACEBOOK_DID_POST_SUCCEED() end
--- @return boolean
function NETWORK.FACEBOOK_CAN_POST_TO_FACEBOOK() end
--- @param gamerHandle number
--- @param filePath string
--- @param name string
--- @param p3 boolean
--- @return number
function NETWORK.TEXTURE_DOWNLOAD_REQUEST(gamerHandle, filePath, name, p3) end
--- @param filePath string
--- @param name string
--- @param p2 boolean
--- @return number
function NETWORK.TITLE_TEXTURE_DOWNLOAD_REQUEST(filePath, name, p2) end
--- @param p0 string
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 string
--- @param p5 boolean
--- @return number
function NETWORK.UGC_TEXTURE_DOWNLOAD_REQUEST(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
function NETWORK.TEXTURE_DOWNLOAD_RELEASE(p0) end
--- @param p0 number
--- @return boolean
function NETWORK.TEXTURE_DOWNLOAD_HAS_FAILED(p0) end
--- @param p0 number
--- @return string
function NETWORK.TEXTURE_DOWNLOAD_GET_NAME(p0) end
--- 0 = succeeded
--- 1 = pending
--- 2 = failed
--- @param p0 number
--- @return number
function NETWORK.GET_STATUS_OF_TEXTURE_DOWNLOAD(p0) end
--- Returns true if profile setting 901 is set to true and sets it to false.
--- @return boolean
function NETWORK.NETWORK_CHECK_ROS_LINK_WENTDOWN_NOT_NET() end
--- Returns true if the NAT type is Strict (3) and a certain number of connections have failed.
--- @return boolean
function NETWORK.NETWORK_SHOULD_SHOW_STRICT_NAT_WARNING() end
--- @return boolean
function NETWORK.NETWORK_IS_CABLE_CONNECTED() end
--- @return boolean
function NETWORK.NETWORK_HAVE_SCS_PRIVATE_MSG_PRIV() end
--- @return boolean
function NETWORK.NETWORK_HAVE_ROS_SOCIAL_CLUB_PRIV() end
--- @return boolean
function NETWORK.NETWORK_HAVE_ROS_BANNED_PRIV() end
--- @return boolean
function NETWORK.NETWORK_HAVE_ROS_CREATE_TICKET_PRIV() end
--- @return boolean
function NETWORK.NETWORK_HAVE_ROS_MULTIPLAYER_PRIV() end
--- @return boolean
function NETWORK.NETWORK_HAVE_ROS_LEADERBOARD_WRITE_PRIV() end
--- index is always 18 in scripts
--- @param index number
--- @return boolean
function NETWORK.NETWORK_HAS_ROS_PRIVILEGE(index) end
--- @param privilege number
--- @param banType any
--- @param timeData number
--- @return boolean
function NETWORK.NETWORK_HAS_ROS_PRIVILEGE_END_DATE(privilege, banType, timeData) end
--- @return boolean
function NETWORK.NETWORK_HAS_ROS_PRIVILEGE_PLAYED_LAST_GEN() end
--- @return boolean
function NETWORK.NETWORK_HAS_ROS_PRIVILEGE_SPECIAL_EDITION_CONTENT() end
--- Checks for privilege 29
--- @return boolean
function NETWORK._NETWORK_HAS_ROS_PRIVILEGE_MP_TEXT_COMMUNICATION() end
--- Checks for privilege 30
--- @return boolean
function NETWORK._NETWORK_HAS_ROS_PRIVILEGE_MP_VOICE_COMMUNICATION() end
--- Checks for privilege 31
--- @return boolean
function NETWORK._NETWORK_HAS_ROS_PRIVILEGE_REPORTING() end
--- Always returns -1. Seems to be XB1 specific.
--- @param netHandle number
--- @return number
function NETWORK.NETWORK_START_USER_CONTENT_PERMISSIONS_CHECK(netHandle) end
function NETWORK.NETWORK_SKIP_RADIO_RESET_NEXT_CLOSE() end
function NETWORK.NETWORK_SKIP_RADIO_RESET_NEXT_OPEN() end
--- Returns true if dinput8.dll is present in the game directory.
--- You will get following error message if that is true: "You are attempting to access GTA Online servers with an altered version of the game."
--- @return boolean
function NETWORK.NETWORK_SKIP_RADIO_WARNING() end
--- NETWORK_F[I-O]
function NETWORK.NETWORK_FORCE_LOCAL_PLAYER_SCAR_SYNC() end
--- @param toggle boolean
function NETWORK.NETWORK_DISABLE_LEAVE_REMOTE_PED_BEHIND(toggle) end
--- @param entity number
--- @param toggle boolean
function NETWORK.NETWORK_ALLOW_REMOTE_ATTACHMENT_MODIFICATION(entity, toggle) end
--- Does nothing (it's a nullsub).
--- @param player number
function NETWORK.NETWORK_SHOW_CHAT_RESTRICTION_MSC(player) end
--- This native does absolutely nothing, just a nullsub
function NETWORK.NETWORK_SHOW_PSN_UGC_RESTRICTION() end
--- This function is hard-coded to always return 0.
--- @return boolean
function NETWORK.NETWORK_IS_TITLE_UPDATE_REQUIRED() end
function NETWORK.NETWORK_QUIT_MP_TO_DESKTOP() end
--- @param player number
--- @return boolean
function NETWORK.NETWORK_IS_CONNECTED_VIA_RELAY(player) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_AVERAGE_LATENCY(player) end
--- Same as NETWORK_GET_AVERAGE_LATENCY
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_AVERAGE_PING(player) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_AVERAGE_PACKET_LOSS(player) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_NUM_UNACKED_RELIABLES(player) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_UNRELIABLE_RESEND_COUNT(player) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_HIGHEST_RELIABLE_RESEND_COUNT(player) end
function NETWORK.NETWORK_REPORT_CODE_TAMPER() end
--- @param entity number
--- @return { x: number, y: number, z: number }
function NETWORK.NETWORK_GET_LAST_ENTITY_POS_RECEIVED_OVER_NETWORK(entity) end
--- Returns the coordinates of another player.
--- Does not work if you enter your own player id as p0 (will return `(0.0, 0.0, 0.0)` in that case).
--- @param player number
--- @return { x: number, y: number, z: number }
function NETWORK.NETWORK_GET_LAST_PLAYER_POS_RECEIVED_OVER_NETWORK(player) end
--- Used by NetBlender
--- @param entity number
--- @return { x: number, y: number, z: number }
function NETWORK.NETWORK_GET_LAST_VEL_RECEIVED_OVER_NETWORK(entity) end
--- @param entity number
--- @param maxSpeedToPredict number
--- @return { x: number, y: number, z: number }
function NETWORK.NETWORK_GET_PREDICTED_VELOCITY(entity, maxSpeedToPredict) end
--- Does nothing (it's a nullsub).
function NETWORK.NETWORK_DUMP_NET_IF_CONFIG() end
--- Does nothing (it's a nullsub).
--- @param p0 number
function NETWORK.NETWORK_GET_SIGNALLING_INFO(p0) end
--- Does nothing (it's a nullsub).
--- @param p0 number
function NETWORK.NETWORK_GET_NET_STATISTICS_INFO(p0) end
--- @param player number
--- @return number
function NETWORK.NETWORK_GET_PLAYER_ACCOUNT_ID(player) end
--- @param p0 number
--- @param p1 number
function NETWORK.NETWORK_UGC_NAV(p0, p1) end

OBJECT = {}

--- List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param isNetwork boolean
--- @param bScriptHostObj boolean
--- @param dynamic boolean
--- @return number
function OBJECT.CREATE_OBJECT(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic) end
--- List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param isNetwork boolean
--- @param bScriptHostObj boolean
--- @param dynamic boolean
--- @param p7 number
--- @return number
function OBJECT.CREATE_OBJECT_NO_OFFSET(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic, p7) end
--- Deletes the specified object, then sets the handle pointed to by the pointer to NULL.
--- @param object number
function OBJECT.DELETE_OBJECT(object) end
--- @param object number
--- @return boolean
function OBJECT.PLACE_OBJECT_ON_GROUND_PROPERLY(object) end
--- @param object number
--- @return boolean
function OBJECT.PLACE_OBJECT_ON_GROUND_OR_OBJECT_PROPERLY(object) end
--- @param object number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @return boolean
function OBJECT.ROTATE_OBJECT(object, p1, p2, p3) end
--- Returns true if the object has finished moving.
--- 
--- If false, moves the object towards the specified X, Y and Z coordinates with the specified X, Y and Z speed.
--- 
--- See also: https://gtagmodding.com/opcode-database/opcode/034E/
--- Has to be looped until it returns true.
--- @param object number
--- @param toX number
--- @param toY number
--- @param toZ number
--- @param speedX number
--- @param speedY number
--- @param speedZ number
--- @param collision boolean
--- @return boolean
function OBJECT.SLIDE_OBJECT(object, toX, toY, toZ, speedX, speedY, speedZ, collision) end
--- @param object number
--- @param targettable boolean
--- @param p2 number
function OBJECT.SET_OBJECT_TARGETTABLE(object, targettable, p2) end
--- Sets the 34th and 35th object flags related to player peds.
--- @param object number
--- @param setFlag34 boolean
--- @param setFlag35 boolean
function OBJECT._SET_OBJECT_TARGETTABLE_BY_PLAYER(object, setFlag34, setFlag35) end
--- Overrides a flag on the object which determines if the object should be avoided by a vehicle in task CTaskVehicleGoToPointWithAvoidanceAutomobile.
--- @param object number
--- @param toggle boolean
function OBJECT.SET_OBJECT_FORCE_VEHICLES_TO_AVOID(object, toggle) end
--- Has 8 params in the latest patches.
--- 
--- isMission - if true doesn't return mission objects
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param isMission boolean
--- @param p6 boolean
--- @param p7 boolean
--- @return number
function OBJECT.GET_CLOSEST_OBJECT_OF_TYPE(x, y, z, radius, modelHash, isMission, p6, p7) end
--- @param object number
--- @param p1 number
--- @return boolean
function OBJECT.HAS_OBJECT_BEEN_BROKEN(object, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param modelHash number
--- @param p5 number
--- @return boolean
function OBJECT.HAS_CLOSEST_OBJECT_OF_TYPE_BEEN_BROKEN(p0, p1, p2, p3, modelHash, p5) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param p5 boolean
--- @return boolean
function OBJECT.HAS_CLOSEST_OBJECT_OF_TYPE_BEEN_COMPLETELY_DESTROYED(x, y, z, radius, modelHash, p5) end
--- @param p0 number
--- @return boolean
function OBJECT.GET_HAS_OBJECT_BEEN_COMPLETELY_DESTROYED(p0) end
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param heading number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @return { x: number, y: number, z: number }
function OBJECT.GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS(xPos, yPos, zPos, heading, xOffset, yOffset, zOffset) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param outPosition number
--- @param outRotation number
--- @param rotationOrder number
--- @return boolean
function OBJECT.GET_COORDS_AND_ROTATION_OF_CLOSEST_OBJECT_OF_TYPE(x, y, z, radius, modelHash, outPosition, outRotation, rotationOrder) end
--- Hardcoded to not work in multiplayer.
--- 
--- 
--- Used to lock/unlock doors to interior areas of the game.
--- 
--- (Possible) Door Types:
--- 
--- https://pastebin.com/9S2m3qA4
--- 
--- Heading is either 1, 0 or -1 in the scripts. Means default closed(0) or opened either into(1) or out(-1) of the interior.
--- Locked means that the heading is locked.
--- p6 is always 0.
--- 
--- 225 door types, model names and coords found in stripclub.c4:
--- https://pastebin.com/gywnbzsH
--- 
--- get door info: https://pastebin.com/i14rbekD
--- @param type number
--- @param x number
--- @param y number
--- @param z number
--- @param locked boolean
--- @param heading number
--- @param p6 boolean
function OBJECT.SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(type, x, y, z, locked, heading, p6) end
--- locked is 0 if no door is found
--- locked is 0 if door is unlocked
--- locked is 1 if door is found and unlocked.
--- 
--- -------------
--- the locked bool is either 0(unlocked)(false) or 1(locked)(true)
--- @param type number
--- @param x number
--- @param y number
--- @param z number
--- @param locked any
--- @param heading any
function OBJECT.GET_STATE_OF_CLOSEST_DOOR_OF_TYPE(type, x, y, z, locked, heading) end
--- Hardcoded not to work in multiplayer environments.
--- When you set locked to 0 the door open and to 1 the door close
--- OBJECT::SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 0, 0.0, 50.0, 0);  //door open
--- 
--- OBJECT::SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 1, 0.0, 50.0, 0);  //door close
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param locked boolean
--- @param xRotMult number
--- @param yRotMult number
--- @param zRotMult number
function OBJECT.SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(modelHash, x, y, z, locked, xRotMult, yRotMult, zRotMult) end
--- @param p0 number
function OBJECT.PLAY_OBJECT_AUTO_START_ANIM(p0) end
--- doorHash has to be unique. scriptDoor false; relies upon getNetworkGameScriptHandler. isLocal On true disables the creation CRequestDoorEvent's in DOOR_SYSTEM_SET_DOOR_STATE.
--- p5 only set to true in single player native scripts.
--- If scriptDoor is true, register the door on the script handler host (note: there's a hardcap on the number of script IDs that can be added to the system at a given time). If scriptDoor and isLocal are both false, the door is considered to be in a "Persists w/o netobj" state.
--- 
--- door hashes normally look like PROP_[int]_DOOR_[int] for interior doors and PROP_BUILDING_[int]_DOOR_[int] exterior doors but you can just make up your own hash if you want
--- All doors need to be registered with ADD_DOOR_TO_SYSTEM before they can be manipulated with the door natives and the easiest way to get door models is just find the door in codewalker.
--- 
--- Example: AddDoorToSystem("PROP_43_DOOR_0", "hei_v_ilev_fh_heistdoor2", -1456.818, -520.5037, 69.67043, 0, 0, 0)
--- @param doorHash number
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param p5 boolean
--- @param scriptDoor boolean
--- @param isLocal boolean
--- @param p8 number
function OBJECT.ADD_DOOR_TO_SYSTEM(doorHash, modelHash, x, y, z, p5, scriptDoor, isLocal, p8) end
--- CDoor and CDoorSystemData still internally allocated (and their associations between doorHash, modelHash, and coordinates).
--- Only its NetObj removed and flag ``*(v2 + 192) |= 8u`` (1604 retail) toggled.
--- @param doorHash number
--- @param p1 number
function OBJECT.REMOVE_DOOR_FROM_SYSTEM(doorHash, p1) end
--- Lockstates not applied and CNetObjDoor's not created until DOOR_SYSTEM_GET_IS_PHYSICS_LOADED returns true.
--- `requestDoor` on true, and when door system is configured to, i.e., "persists w/o netobj", generate a CRequestDoorEvent.
--- `forceUpdate` on true, forces an update on the door system (same path as netObjDoor_applyDoorStuff)
--- Door lock states:
--- 0: UNLOCKED
--- 1: LOCKED
--- 2: DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA
--- 3: DOORSTATE_FORCE_UNLOCKED_THIS_FRAME
--- 4: DOORSTATE_FORCE_LOCKED_THIS_FRAME
--- 5: DOORSTATE_FORCE_OPEN_THIS_FRAME
--- 6: DOORSTATE_FORCE_CLOSED_THIS_FRAME
--- @param doorHash number
--- @param state number
--- @param requestDoor boolean
--- @param forceUpdate boolean
function OBJECT.DOOR_SYSTEM_SET_DOOR_STATE(doorHash, state, requestDoor, forceUpdate) end
--- @param doorHash number
--- @return number
function OBJECT.DOOR_SYSTEM_GET_DOOR_STATE(doorHash) end
--- @param doorHash number
--- @return number
function OBJECT.DOOR_SYSTEM_GET_DOOR_PENDING_STATE(doorHash) end
--- Includes networking check: ownership vs. or the door itself **isn't** networked.
--- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused.
--- @param doorHash number
--- @param rate number
--- @param requestDoor boolean
--- @param forceUpdate boolean
function OBJECT.DOOR_SYSTEM_SET_AUTOMATIC_RATE(doorHash, rate, requestDoor, forceUpdate) end
--- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused.
--- @param doorHash number
--- @param distance number
--- @param requestDoor boolean
--- @param forceUpdate boolean
function OBJECT.DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(doorHash, distance, requestDoor, forceUpdate) end
--- Sets the ajar angle of a door.
--- Ranges from -1.0 to 1.0, and 0.0 is closed / default.
--- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused.
--- @param doorHash number
--- @param ajar number
--- @param requestDoor boolean
--- @param forceUpdate boolean
function OBJECT.DOOR_SYSTEM_SET_OPEN_RATIO(doorHash, ajar, requestDoor, forceUpdate) end
--- @param doorHash number
--- @return number
function OBJECT.DOOR_SYSTEM_GET_AUTOMATIC_DISTANCE(doorHash) end
--- @param doorHash number
--- @return number
function OBJECT.DOOR_SYSTEM_GET_OPEN_RATIO(doorHash) end
--- Includes networking check: ownership vs. or the door itself **isn't** networked.
--- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused.
--- @param doorHash number
--- @param removed boolean
--- @param requestDoor boolean
--- @param forceUpdate boolean
function OBJECT.DOOR_SYSTEM_SET_SPRING_REMOVED(doorHash, removed, requestDoor, forceUpdate) end
--- Includes networking check: ownership vs. or the door itself **isn't** networked.
--- @param doorHash number
--- @param toggle boolean
function OBJECT.DOOR_SYSTEM_SET_HOLD_OPEN(doorHash, toggle) end
--- Some property related to gates. Native name between ``DOOR_SYSTEM_SET_AUTOMATIC_RATE`` and ``DOOR_SYSTEM_SET_DOOR_STATE``.
--- @param doorHash number
--- @param p1 boolean
function OBJECT.DOOR_SYSTEM_SET_DOOR_OPEN_FOR_RACES(doorHash, p1) end
--- if (OBJECT::IS_DOOR_REGISTERED_WITH_SYSTEM(doorHash))
--- {
--- OBJECT::REMOVE_DOOR_FROM_SYSTEM(doorHash);
--- }
--- @param doorHash number
--- @return boolean
function OBJECT.IS_DOOR_REGISTERED_WITH_SYSTEM(doorHash) end
--- @param doorHash number
--- @return boolean
function OBJECT.IS_DOOR_CLOSED(doorHash) end
--- @param p0 boolean
function OBJECT.OPEN_ALL_BARRIERS_FOR_RACE(p0) end
--- Clears the fields sets by 0xC7F29CA00F46350E (1604 retail: 0x1424A7A10, 0x1424A7A11) and iterates over the global CDoor's bucket-list.
--- Related to its "Pre-networked state"?
function OBJECT.CLOSE_ALL_BARRIERS_FOR_RACE() end
--- @param p0 number
--- @return boolean
function OBJECT.DOOR_SYSTEM_GET_IS_PHYSICS_LOADED(p0) end
--- Search radius: 0.5
--- @param x number
--- @param y number
--- @param z number
--- @param modelHash number
--- @param outDoorHash any
--- @return boolean
function OBJECT.DOOR_SYSTEM_FIND_EXISTING_DOOR(x, y, z, modelHash, outDoorHash) end
--- @param garageHash number
--- @param p1 boolean
--- @param p2 number
--- @return boolean
function OBJECT.IS_GARAGE_EMPTY(garageHash, p1, p2) end
--- @param garageHash number
--- @param player number
--- @param p2 number
--- @param p3 number
--- @return boolean
function OBJECT.IS_PLAYER_ENTIRELY_INSIDE_GARAGE(garageHash, player, p2, p3) end
--- @param garageHash number
--- @param player number
--- @param p2 number
--- @return boolean
function OBJECT.IS_PLAYER_PARTIALLY_INSIDE_GARAGE(garageHash, player, p2) end
--- @param garageHash number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
--- @return boolean
function OBJECT.ARE_ENTITIES_ENTIRELY_INSIDE_GARAGE(garageHash, p1, p2, p3, p4) end
--- @param garageHash number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 number
--- @return boolean
function OBJECT.IS_ANY_ENTITY_ENTIRELY_INSIDE_GARAGE(garageHash, p1, p2, p3, p4) end
--- Despite the name, it does work for any entity type.
--- @param garageHash number
--- @param entity number
--- @param p2 number
--- @param p3 number
--- @return boolean
function OBJECT.IS_OBJECT_ENTIRELY_INSIDE_GARAGE(garageHash, entity, p2, p3) end
--- Despite the name, it does work for any entity type.
--- @param garageHash number
--- @param entity number
--- @param p2 number
--- @return boolean
function OBJECT.IS_OBJECT_PARTIALLY_INSIDE_GARAGE(garageHash, entity, p2) end
--- @param garageHash number
--- @param isNetwork boolean
function OBJECT.CLEAR_GARAGE(garageHash, isNetwork) end
--- @param garageHash number
--- @param vehicles boolean
--- @param peds boolean
--- @param objects boolean
--- @param isNetwork boolean
function OBJECT.CLEAR_OBJECTS_INSIDE_GARAGE(garageHash, vehicles, peds, objects, isNetwork) end
--- Sets a flag. A valid id is 0x157DC10D
--- @param id number
--- @param toggle boolean
function OBJECT.DISABLE_TIDYING_UP_IN_GARAGE(id, toggle) end
--- @param garageHash number
--- @param toggle boolean
function OBJECT.ENABLE_SAVING_IN_GARAGE(garageHash, toggle) end
function OBJECT.CLOSE_SAFEHOUSE_GARAGES() end
--- p5 is usually 0.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param hash number
--- @param p5 boolean
--- @return boolean
function OBJECT.DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(x, y, z, radius, hash, p5) end
--- An angled area is an X-Z oriented rectangle with three parameters:
--- 1. origin: the mid-point along a base edge of the rectangle;
--- 2. extent: the mid-point of opposite base edge on the other Z;
--- 3. width: the length of the base edge; (named derived from logging strings ``CNetworkRoadNodeWorldStateData``).
--- 
--- The oriented rectangle can then be derived from the direction of the two points (``norm(origin - extent)``), its orthonormal, and the width, e.g:
--- 1. golf_mp https://i.imgur.com/JhsQAK9.png
--- 2. am_taxi https://i.imgur.com/TJWCZaT.jpg
--- @param xPos number
--- @param yPos number
--- @param zPos number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param debug boolean
--- @param includeZ boolean
--- @return boolean
function OBJECT.IS_POINT_IN_ANGLED_AREA(xPos, yPos, zPos, x1, y1, z1, x2, y2, z2, width, debug, includeZ) end
--- Overrides the climbing/blocking flags of the object, used in the native scripts mostly for "prop_dock_bouy_*"
--- @param object number
--- @param toggle boolean
function OBJECT.SET_OBJECT_ALLOW_LOW_LOD_BUOYANCY(object, toggle) end
--- Adjust the physics parameters of a prop, or otherwise known as "object". This is useful for simulated gravity.
--- 
--- Other parameters seem to be unknown.
--- 
--- p2: seems to be weight and gravity related. Higher value makes the obj fall faster. Very sensitive?
--- p3: seems similar to p2
--- p4: makes obj fall slower the higher the value
--- p5: similar to p4
--- @param object number
--- @param weight number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param gravity number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param buoyancy number
function OBJECT.SET_OBJECT_PHYSICS_PARAMS(object, weight, p2, p3, p4, p5, gravity, p7, p8, p9, p10, buoyancy) end
--- @param p0 number
--- @param p1 boolean
--- @return number
function OBJECT.GET_OBJECT_FRAGMENT_DAMAGE_HEALTH(p0, p1) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_ACTIVATE_OBJECT_PHYSICS_AS_SOON_AS_IT_IS_UNFROZEN(object, toggle) end
--- @param x number
--- @param y number
--- @param z number
--- @param range number
--- @param p4 boolean
--- @return boolean
function OBJECT.IS_ANY_OBJECT_NEAR_POINT(x, y, z, range, p4) end
--- @param objectHash number
--- @param x number
--- @param y number
--- @param z number
--- @param range number
--- @return boolean
function OBJECT.IS_OBJECT_NEAR_POINT(objectHash, x, y, z, range) end
--- @param object number
function OBJECT.REMOVE_OBJECT_HIGH_DETAIL_MODEL(object) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
function OBJECT.BREAK_OBJECT_FRAGMENT_CHILD(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function OBJECT.DAMAGE_OBJECT_FRAGMENT_CHILD(p0, p1, p2) end
--- @param object number
function OBJECT.FIX_OBJECT_FRAGMENT(object) end
--- @param object number
function OBJECT.TRACK_OBJECT_VISIBILITY(object) end
--- @param object number
--- @return boolean
function OBJECT.IS_OBJECT_VISIBLE(object) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_OBJECT_IS_SPECIAL_GOLFBALL(object, toggle) end
--- @param p0 number
--- @param p1 boolean
function OBJECT.SET_OBJECT_TAKES_DAMAGE_FROM_COLLIDING_WITH_BUILDINGS(p0, p1) end
--- @param value boolean
function OBJECT.ALLOW_DAMAGE_EVENTS_FOR_NON_NETWORKED_OBJECTS(value) end
--- Requires a component_at_*_flsh to be attached to the weapon object
--- @param object number
--- @param toggle boolean
function OBJECT.SET_CUTSCENES_WEAPON_FLASHLIGHT_ON_THIS_FRAME(object, toggle) end
--- Example:
--- OBJECT::GET_RAYFIRE_MAP_OBJECT(-809.9619750976562, 170.919, 75.7406997680664, 3.0, "des_tvsmash");
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param name string
--- @return number
function OBJECT.GET_RAYFIRE_MAP_OBJECT(x, y, z, radius, name) end
--- Defines the state of a destructible object.
--- Use the GET_RAYFIRE_MAP_OBJECT native to find an object's handle with its name / coords.
--- State 2 == object just spawned
--- State 4 == Beginning of the animation
--- State 6 == Start animation
--- State 9 == End of the animation
--- @param object number
--- @param state number
function OBJECT.SET_STATE_OF_RAYFIRE_MAP_OBJECT(object, state) end
--- Get a destructible object's state.
--- Substract 1 to get the real state.
--- See SET_STATE_OF_RAYFIRE_MAP_OBJECT to see the different states
--- For example, if the object just spawned (state 2), the native will return 3.
--- @param object number
--- @return number
function OBJECT.GET_STATE_OF_RAYFIRE_MAP_OBJECT(object) end
--- Returns true if a destructible object with this handle exists, false otherwise.
--- @param object number
--- @return boolean
function OBJECT.DOES_RAYFIRE_MAP_OBJECT_EXIST(object) end
--- `object`: The des-object handle to get the animation progress from.
--- Return value is a float between 0.0 and 1.0, 0.0 is the beginning of the animation, 1.0 is the end. Value resets to 0.0 instantly after reaching 1.0.
--- @param object number
--- @return number
function OBJECT.GET_RAYFIRE_MAP_OBJECT_ANIM_PHASE(object) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param p4 number
--- @param value number
--- @param p6 boolean
--- @param modelHash number
--- @return number
function OBJECT.CREATE_PICKUP(pickupHash, posX, posY, posZ, p4, value, p6, modelHash) end
--- flags:
--- 8 (1 << 3): place on ground
--- 512 (1 << 9): spin around
--- 
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param flag number
--- @param amount number
--- @param p9 number
--- @param p10 boolean
--- @param modelHash number
--- @return number
function OBJECT.CREATE_PICKUP_ROTATE(pickupHash, posX, posY, posZ, rotX, rotY, rotZ, flag, amount, p9, p10, modelHash) end
function OBJECT.FORCE_PICKUP_ROTATE_FACE_UP() end
--- @param pickupHash number
--- @param pickup number
function OBJECT.SET_CUSTOM_PICKUP_WEAPON_HASH(pickupHash, pickup) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param flags number
--- @param value number
--- @param modelHash number
--- @param p7 boolean
--- @param p8 boolean
--- @return number
function OBJECT.CREATE_AMBIENT_PICKUP(pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8) end
--- @param pickupHash number
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param flags number
--- @param value number
--- @param modelHash number
--- @param p7 boolean
--- @param p8 boolean
--- @return number
function OBJECT.CREATE_NON_NETWORKED_AMBIENT_PICKUP(pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8) end
--- @param p0 number
--- @param p1 number
function OBJECT.BLOCK_PLAYERS_FOR_AMBIENT_PICKUP(p0, p1) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @param x number
--- @param y number
--- @param z number
--- @param placeOnGround boolean
--- @param modelHash number
--- @return number
function OBJECT.CREATE_PORTABLE_PICKUP(pickupHash, x, y, z, placeOnGround, modelHash) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @param x number
--- @param y number
--- @param z number
--- @param placeOnGround boolean
--- @param modelHash number
--- @return number
function OBJECT.CREATE_NON_NETWORKED_PORTABLE_PICKUP(pickupHash, x, y, z, placeOnGround, modelHash) end
--- @param pickupObject number
--- @param ped number
function OBJECT.ATTACH_PORTABLE_PICKUP_TO_PED(pickupObject, ped) end
--- @param pickupObject number
function OBJECT.DETACH_PORTABLE_PICKUP_FROM_PED(pickupObject) end
--- @param object number
function OBJECT.FORCE_PORTABLE_PICKUP_LAST_ACCESSIBLE_POSITION_SETTING(object) end
--- @param pickupObject number
--- @param toggle boolean
function OBJECT.HIDE_PORTABLE_PICKUP_WHEN_DETACHED(pickupObject, toggle) end
--- @param modelHash number
--- @param number number
function OBJECT.SET_MAX_NUM_PORTABLE_PICKUPS_CARRIED_BY_PLAYER(modelHash, number) end
--- @param toggle boolean
function OBJECT.SET_LOCAL_PLAYER_CAN_COLLECT_PORTABLE_PICKUPS(toggle) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 number
--- @return { x: number, y: number, z: number }
function OBJECT.GET_SAFE_PICKUP_COORDS(x, y, z, p3, p4) end
--- Adds an area that seems to be related to pickup physics behavior.
--- Max amount of areas is 10. Only works in multiplayer.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function OBJECT.ADD_EXTENDED_PICKUP_PROBE_AREA(x, y, z, radius) end
--- Clears all areas created by ADD_EXTENDED_PICKUP_PROBE_AREA
function OBJECT.CLEAR_EXTENDED_PICKUP_PROBE_AREAS() end
--- @param pickup number
--- @return { x: number, y: number, z: number }
function OBJECT.GET_PICKUP_COORDS(pickup) end
--- @param p0 number
--- @param p1 number
function OBJECT.SUPPRESS_PICKUP_SOUND_FOR_PICKUP(p0, p1) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
function OBJECT.REMOVE_ALL_PICKUPS_OF_TYPE(pickupHash) end
--- @param pickup number
--- @return boolean
function OBJECT.HAS_PICKUP_BEEN_COLLECTED(pickup) end
--- @param pickup number
function OBJECT.REMOVE_PICKUP(pickup) end
--- Spawns one or more money pickups.
--- 
--- x: The X-component of the world position to spawn the money pickups at.
--- y: The Y-component of the world position to spawn the money pickups at.
--- z: The Z-component of the world position to spawn the money pickups at.
--- value: The combined value of the pickups (in dollars).
--- amount: The number of pickups to spawn.
--- model: The model to use, or 0 for default money model.
--- 
--- Example:
--- CREATE_MONEY_PICKUPS(x, y, z, 1000, 3, 0x684a97ae);
--- 
--- Spawns 3 spray cans that'll collectively give $1000 when picked up. (Three spray cans, each giving $334, $334, $332 = $1000).
--- 
--- ==============================================
--- 
--- Max is 2000 in MP. So if you put the amount to 20, but the value to $400,000 eg. They will only be able to pickup 20 - $2,000 bags. So, $40,000
--- @param x number
--- @param y number
--- @param z number
--- @param value number
--- @param amount number
--- @param model number
function OBJECT.CREATE_MONEY_PICKUPS(x, y, z, value, amount, model) end
--- @param pickup number
--- @return boolean
function OBJECT.DOES_PICKUP_EXIST(pickup) end
--- @param pickupObject number
--- @return boolean
function OBJECT.DOES_PICKUP_OBJECT_EXIST(pickupObject) end
--- @param pickup number
--- @return number
function OBJECT.GET_PICKUP_OBJECT(pickup) end
--- @param object number
--- @return boolean
function OBJECT.IS_OBJECT_A_PICKUP(object) end
--- @param object number
--- @return boolean
function OBJECT.IS_OBJECT_A_PORTABLE_PICKUP(object) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function OBJECT.DOES_PICKUP_OF_TYPE_EXIST_IN_AREA(pickupHash, x, y, z, radius) end
--- @param pickup number
--- @param duration number
function OBJECT.SET_PICKUP_REGENERATION_TIME(pickup, duration) end
--- @param p0 number
function OBJECT.FORCE_PICKUP_REGENERATE(p0) end
--- Disabling/enabling a player from getting pickups. From the scripts:
--- 
--- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0);
--- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0);
--- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 1);
--- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0);
--- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 0);
--- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 1);
--- 
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param player number
--- @param pickupHash number
--- @param toggle boolean
function OBJECT.SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(player, pickupHash, toggle) end
--- Maximum amount of pickup models that can be disallowed is 30.
--- @param modelHash number
--- @param toggle boolean
function OBJECT.SET_LOCAL_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_WITH_MODEL(modelHash, toggle) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
function OBJECT.ALLOW_ALL_PLAYERS_TO_COLLECT_PICKUPS_OF_TYPE(pickupHash) end
--- @param object number
--- @param p1 number
--- @param p2 boolean
function OBJECT.SET_TEAM_PICKUP_OBJECT(object, p1, p2) end
--- @param object number
--- @param p1 boolean
--- @param p2 boolean
function OBJECT.PREVENT_COLLECTION_OF_PORTABLE_PICKUP(object, p1, p2) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_OBJECT_GLOW_WHEN_UNCOLLECTABLE(pickup, toggle) end
--- p1 is always 0.51. This native is called before SET_PICKUP_REGENERATION_TIME in all occurances.
--- @param pickup number
--- @param p1 number
function OBJECT.SET_PICKUP_GLOW_OFFSET(pickup, p1) end
--- p1 is always -0.2 in scripts and p2 is always true in scripts.
--- @param pickup number
--- @param p1 number
--- @param p2 boolean
function OBJECT.SET_PICKUP_OBJECT_GLOW_OFFSET(pickup, p1, p2) end
--- @param pickup number
function OBJECT.SET_OBJECT_GLOW_IN_SAME_TEAM(pickup) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_OBJECT_ARROW_MARKER(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.ALLOW_PICKUP_ARROW_MARKER_WHEN_UNCOLLECTABLE(pickup, toggle) end
--- @param pickupHash number
--- @return number
function OBJECT.GET_DEFAULT_AMMO_FOR_WEAPON_PICKUP(pickupHash) end
--- @param multiplier number
function OBJECT.SET_PICKUP_GENERATION_RANGE_MULTIPLIER(multiplier) end
--- @return number
function OBJECT.GET_PICKUP_GENERATION_RANGE_MULTIPLIER() end
--- @param p0 boolean
function OBJECT.SET_ONLY_ALLOW_AMMO_COLLECTION_WHEN_LOW(p0) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_UNCOLLECTABLE(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_TRANSPARENT_WHEN_UNCOLLECTABLE(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_HIDDEN_WHEN_UNCOLLECTABLE(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_OBJECT_TRANSPARENT_WHEN_UNCOLLECTABLE(pickup, toggle) end
--- p0 is either 0 or 50 in scripts.
--- @param p0 number
function OBJECT.SET_PICKUP_OBJECT_ALPHA_WHEN_TRANSPARENT(p0) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PORTABLE_PICKUP_PERSIST(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.ALLOW_PORTABLE_PICKUP_TO_MIGRATE_TO_NON_PARTICIPANTS(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.FORCE_ACTIVATE_PHYSICS_ON_UNFIXED_PICKUP(pickup, toggle) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.ALLOW_PICKUP_BY_NONE_PARTICIPANT(pickup, toggle) end
--- enum ePickupRewardType
--- {
--- PICKUP_REWARD_TYPE_AMMO = (1 << 0),
--- PICKUP_REWARD_TYPE_BULLET_MP = (1 << 1),
--- PICKUP_REWARD_TYPE_MISSILE_MP = (1 << 2),
--- PICKUP_REWARD_TYPE_GRENADE_LAUNCHER_MP = (1 << 3),
--- PICKUP_REWARD_TYPE_ARMOUR = (1 << 4),
--- PICKUP_REWARD_TYPE_HEALTH = (1 << 5),
--- PICKUP_REWARD_TYPE_HEALTH_VARIABLE = PICKUP_REWARD_TYPE_HEALTH,
--- PICKUP_REWARD_TYPE_MONEY_FIXED = (1 << 6),
--- PICKUP_REWARD_TYPE_MONEY_VARIABLE = PICKUP_REWARD_TYPE_MONEY_FIXED,
--- PICKUP_REWARD_TYPE_WEAPON = (1 << 7),
--- PICKUP_REWARD_TYPE_STAT = (1 << 8),
--- PICKUP_REWARD_TYPE_STAT_VARIABLE = PICKUP_REWARD_TYPE_STAT,
--- PICKUP_REWARD_TYPE_VEHICLE_FIX = (1 << 9),
--- PICKUP_REWARD_TYPE_FIREWORK_MP = (1 << 10),
--- };
--- @param rewardType number
--- @param suppress boolean
function OBJECT.SUPPRESS_PICKUP_REWARD_TYPE(rewardType, suppress) end
function OBJECT.CLEAR_ALL_PICKUP_REWARD_TYPE_SUPPRESSION() end
--- @param rewardType number
function OBJECT.CLEAR_PICKUP_REWARD_TYPE_SUPPRESSION(rewardType) end
--- draws circular marker at pos
--- -1 = none
--- 0 = red
--- 1 = green
--- 2 = blue
--- 3 = green larger
--- 4 = nothing
--- 5 = green small
--- @param x number
--- @param y number
--- @param z number
--- @param colorIndex number
function OBJECT.RENDER_FAKE_PICKUP_GLOW(x, y, z, colorIndex) end
--- @param pickup number
function OBJECT.SET_PICKUP_OBJECT_COLLECTABLE_IN_VEHICLE(pickup) end
--- @param pickup number
--- @param toggle boolean
function OBJECT.SET_PICKUP_TRACK_DAMAGE_EVENTS(pickup, toggle) end
--- Sets entity+38 to C (when false) or 0xFF3f (when true)
--- @param entity number
--- @param toggle boolean
function OBJECT.SET_ENTITY_FLAG_SUPPRESS_SHADOW(entity, toggle) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_ENTITY_FLAG_RENDER_SMALL_SHADOW(object, toggle) end
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @return number
function OBJECT.GET_WEAPON_TYPE_FROM_PICKUP_TYPE(pickupHash) end
--- Returns the pickup hash for the given weapon hash
--- @param weaponHash number
--- @return number
function OBJECT.GET_PICKUP_TYPE_FROM_WEAPON_HASH(weaponHash) end
--- @param object number
--- @return boolean
function OBJECT.IS_PICKUP_WEAPON_OBJECT_VALID(object) end
--- @param object number
--- @return number
function OBJECT.GET_OBJECT_TINT_INDEX(object) end
--- enum ObjectPaintVariants
--- {
--- Pacific = 0,
--- Azure = 1,
--- Nautical = 2,
--- Continental = 3,
--- Battleship = 4,
--- Intrepid = 5,
--- Uniform = 6,
--- Classico = 7,
--- Mediterranean = 8,
--- Command = 9,
--- Mariner = 10,
--- Ruby = 11,
--- Vintage = 12,
--- Pristine = 13,
--- Merchant = 14,
--- Voyager = 15
--- };
--- @param object number
--- @param textureVariation number
function OBJECT.SET_OBJECT_TINT_INDEX(object, textureVariation) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param textureVariation number
--- @return boolean
function OBJECT.SET_TINT_INDEX_CLOSEST_BUILDING_OF_TYPE(x, y, z, radius, modelHash, textureVariation) end
--- @param p0 number
--- @param p1 number
function OBJECT.SET_PROP_TINT_INDEX(p0, p1) end
--- @param object number
--- @param p1 boolean
--- @param r number
--- @param g number
--- @param b number
--- @return boolean
function OBJECT.SET_PROP_LIGHT_COLOR(object, p1, r, g, b) end
--- @param object number
--- @return boolean
function OBJECT.IS_PROP_LIGHT_OVERRIDEN(object) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_OBJECT_IS_VISIBLE_IN_MIRRORS(object, toggle) end
--- @param object number
--- @param p1 number
function OBJECT.SET_OBJECT_SPEED_BOOST_AMOUNT(object, p1) end
--- @param object number
--- @param duration number
function OBJECT.SET_OBJECT_SPEED_BOOST_DURATION(object, duration) end
--- returns pickup hash.
--- 
--- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json
--- @param pickupHash number
--- @return number
function OBJECT.CONVERT_OLD_PICKUP_TYPE_TO_NEW(pickupHash) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
function OBJECT.SET_FORCE_OBJECT_THIS_FRAME(x, y, z, p3) end
--- is this like setting is as no longer needed?
--- @param object number
function OBJECT.ONLY_CLEAN_UP_OBJECT_WHEN_OUT_OF_RANGE(object) end
--- @param p0 number
function OBJECT.SET_DISABLE_COLLISIONS_BETWEEN_CARS_AND_CAR_PARACHUTE(p0) end
--- @param entity number
--- @param p1 number
function OBJECT.SET_PROJECTILES_SHOULD_EXPLODE_ON_CONTACT(entity, p1) end
--- Activate the physics to: "xs_prop_arena_{flipper,wall,bollard,turntable,pit}"
--- @param object number
--- @param toggle boolean
--- @param p2 number
function OBJECT.SET_DRIVE_ARTICULATED_JOINT(object, toggle, p2) end
--- @param object number
--- @param toggle boolean
--- @param p2 number
--- @param ped number
function OBJECT.SET_DRIVE_ARTICULATED_JOINT_WITH_INFLICTOR(object, toggle, p2, ped) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_OBJECT_IS_A_PRESSURE_PLATE(object, toggle) end
--- @param object number
--- @param p1 boolean
function OBJECT.SET_WEAPON_IMPACTS_APPLY_GREATER_FORCE(object, p1) end
--- @param object number
--- @param p1 number
--- @return boolean
function OBJECT.GET_IS_ARTICULATED_JOINT_AT_MIN_ANGLE(object, p1) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function OBJECT.GET_IS_ARTICULATED_JOINT_AT_MAX_ANGLE(p0, p1) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_IS_OBJECT_ARTICULATED(object, toggle) end
--- @param object number
--- @param toggle boolean
function OBJECT.SET_IS_OBJECT_BALL(object, toggle) end

PAD = {}

--- control: 0: PLAYER_CONTROL, 1: CAMERA_CONTROL, 2: FRONTEND_CONTROL
--- For more info, see https://docs.fivem.net/docs/game-references/controls/
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_CONTROL_ENABLED(control, action) end
--- Returns whether a control is currently pressed.
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_CONTROL_PRESSED(control, action) end
--- Returns whether a control is currently _not_ pressed.
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_CONTROL_RELEASED(control, action) end
--- Returns whether a control was newly pressed since the last check.
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_CONTROL_JUST_PRESSED(control, action) end
--- Returns whether a control was newly released since the last check.
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_CONTROL_JUST_RELEASED(control, action) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return number
function PAD.GET_CONTROL_VALUE(control, action) end
--- Returns the value of GET_CONTROL_VALUE normalized (i.e. a real number value between -1 and 1)
--- 
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return number
function PAD.GET_CONTROL_NORMAL(control, action) end
--- @param toggle boolean
function PAD.SET_USE_ADJUSTED_MOUSE_COORDS(toggle) end
--- Seems to return values between -1 and 1 for controls like gas and steering.
--- 
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return number
function PAD.GET_CONTROL_UNBOUND_NORMAL(control, action) end
--- This is for simulating player input.
--- value is a float value from 0 - 1
--- 
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @param value number
--- @return boolean
function PAD.SET_CONTROL_VALUE_NEXT_FRAME(control, action, value) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_DISABLED_CONTROL_PRESSED(control, action) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_DISABLED_CONTROL_RELEASED(control, action) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_DISABLED_CONTROL_JUST_PRESSED(control, action) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return boolean
function PAD.IS_DISABLED_CONTROL_JUST_RELEASED(control, action) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return number
function PAD.GET_DISABLED_CONTROL_NORMAL(control, action) end
--- The "disabled" variant of GET_CONTROL_UNBOUND_NORMAL.
--- 
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @return number
function PAD.GET_DISABLED_CONTROL_UNBOUND_NORMAL(control, action) end
--- Returns time in ms since last input.
--- 
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @return number
function PAD.GET_CONTROL_HOW_LONG_AGO(control) end
--- control: unused parameter
--- @param control number
--- @return boolean
function PAD.IS_USING_KEYBOARD_AND_MOUSE(control) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @return boolean
function PAD.IS_USING_CURSOR(control) end
--- @param x number
--- @param y number
--- @return boolean
function PAD.SET_CURSOR_POSITION(x, y) end
--- control: see IS_CONTROL_ENABLED
--- 
--- Hardcoded to return false.
--- @param control number
--- @return boolean
function PAD.IS_USING_REMOTE_PLAY(control) end
--- control: unused parameter
--- @param control number
--- @return boolean
function PAD.HAVE_CONTROLS_CHANGED(control) end
--- allowXOSwap appears to always be true.
--- 
--- EG:
--- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 201, 1) /*INPUT_FRONTEND_ACCEPT (e.g. Enter button)*/
--- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 202, 1) /*INPUT_FRONTEND_CANCEL (e.g. ESC button)*/
--- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 51, 1) /*INPUT_CONTEXT (e.g. E button)*/
--- 
--- gtaforums.com/topic/819070-c-draw-instructional-buttons-scaleform-movie/#entry1068197378
--- 
--- control: unused parameter
--- @param control number
--- @param action number
--- @param allowXOSwap boolean
--- @return string
function PAD.GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(control, action, allowXOSwap) end
--- control: unused parameter
--- @param control number
--- @param controlGroup number
--- @param allowXOSwap boolean
--- @return string
function PAD.GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING(control, controlGroup, allowXOSwap) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param red number
--- @param green number
--- @param blue number
function PAD.SET_CONTROL_LIGHT_EFFECT_COLOR(control, red, green, blue) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
function PAD.CLEAR_CONTROL_LIGHT_EFFECT(control) end
--- control: see IS_CONTROL_ENABLED
--- duration in milliseconds
--- frequency should range from about 10 (slow vibration) to 255 (very fast)
--- 
--- example:
--- SET_CONTROL_SHAKE(PLAYER_CONTROL, 100, 200);
--- @param control number
--- @param duration number
--- @param frequency number
function PAD.SET_CONTROL_SHAKE(control, duration, frequency) end
--- Does nothing (it's a nullsub).
--- @param control number
--- @param leftDuration number
--- @param leftFrequency number
--- @param rightDuration number
--- @param rightFrequency number
function PAD.SET_CONTROL_TRIGGER_SHAKE(control, leftDuration, leftFrequency, rightDuration, rightFrequency) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
function PAD.STOP_CONTROL_SHAKE(control) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param uniqueId number
function PAD.SET_CONTROL_SHAKE_SUPPRESSED_ID(control, uniqueId) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
function PAD.CLEAR_CONTROL_SHAKE_SUPPRESSED_ID(control) end
--- @return boolean
function PAD.IS_LOOK_INVERTED() end
--- Used with IS_LOOK_INVERTED() and negates its affect.
--- 
--- --
--- 
--- Not sure how the person above got that description, but here's an actual example:
--- 
--- if (PAD::IS_USING_KEYBOARD_AND_MOUSE(2)) {
--- if (a_5) {
--- if (PAD::IS_LOOK_INVERTED()) {
--- a_3 *= -1;
--- }
--- if (PAD::IS_MOUSE_LOOK_INVERTED()) {
--- a_3 *= -1;
--- }
--- }
--- }
--- @return boolean
function PAD.IS_MOUSE_LOOK_INVERTED() end
--- Hard-coded to return 3 if using KBM, otherwise same behavior as GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE.
--- @return number
function PAD.GET_LOCAL_PLAYER_AIM_STATE() end
--- Returns the local player's targeting mode. See PLAYER::SET_PLAYER_TARGETING_MODE.
--- @return number
function PAD.GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE() end
--- @return boolean
function PAD.GET_IS_USING_ALTERNATE_HANDBRAKE() end
--- Returns profile setting 225.
--- @return boolean
function PAD.GET_IS_USING_ALTERNATE_DRIVEBY() end
--- Returns profile setting 17.
--- @return boolean
function PAD.GET_ALLOW_MOVEMENT_WHILE_ZOOMED() end
--- @param toggle boolean
function PAD.SET_PLAYERPAD_SHAKES_WHEN_CONTROLLER_DISABLED(toggle) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
function PAD.SET_INPUT_EXCLUSIVE(control, action) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @param disableRelatedActions boolean
function PAD.DISABLE_CONTROL_ACTION(control, action, disableRelatedActions) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
--- @param action number
--- @param enableRelatedActions boolean
function PAD.ENABLE_CONTROL_ACTION(control, action, enableRelatedActions) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
function PAD.DISABLE_ALL_CONTROL_ACTIONS(control) end
--- control: see IS_CONTROL_ENABLED
--- @param control number
function PAD.ENABLE_ALL_CONTROL_ACTIONS(control) end
--- Used in carsteal3 script with schemeName = "Carsteal4_spycar".
--- @param schemeName string
--- @return boolean
function PAD.INIT_PC_SCRIPTED_CONTROLS(schemeName) end
--- Same as INIT_PC_SCRIPTED_CONTROLS
--- @param schemeName string
--- @return boolean
function PAD.SWITCH_PC_SCRIPTED_CONTROLS(schemeName) end
function PAD.SHUTDOWN_PC_SCRIPTED_CONTROLS() end
--- control: see IS_CONTROL_ENABLED
--- @param control number
function PAD.ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT(control) end

PATHFIND = {}

--- When nodeEnabled is set to false, all nodes in the area get disabled.
--- `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns true afterwards.
--- If it's true, `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns false.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param nodeEnabled boolean
--- @param unknown2 boolean
function PATHFIND.SET_ROADS_IN_AREA(x1, y1, z1, x2, y2, z2, nodeEnabled, unknown2) end
--- unknown3 is related to `SEND_SCRIPT_WORLD_STATE_EVENT > CNetworkRoadNodeWorldStateData` in networked environments.
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param unknown1 boolean
--- @param unknown2 boolean
--- @param unknown3 boolean
function PATHFIND.SET_ROADS_IN_ANGLED_AREA(x1, y1, z1, x2, y2, z2, width, unknown1, unknown2, unknown3) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 boolean
--- @param p7 number
function PATHFIND.SET_PED_PATHS_IN_AREA(x1, y1, z1, x2, y2, z2, p6, p7) end
--- Flags are:
--- 1 = 1 = B02_IsFootpath
--- 2 = 4 = !B15_InteractionUnk
--- 4 = 0x20 = !B14_IsInterior
--- 8 = 0x40 = !B07_IsWater
--- 16 = 0x200 = B17_IsFlatGround
--- When onGround == true outPosition is a position located on the nearest pavement.
--- 
--- When a safe coord could not be found the result of a function is false and outPosition == Vector3.Zero.
--- 
--- In the scripts these flags are used: 0, 14, 12, 16, 20, 21, 28. 0 is most commonly used, then 16.
--- 
--- 16 works for me, 0 crashed the script.
--- @param x number
--- @param y number
--- @param z number
--- @param onGround boolean
--- @param outPosition number
--- @param flags number
--- @return boolean
function PATHFIND.GET_SAFE_COORD_FOR_PED(x, y, z, onGround, outPosition, flags) end
--- https://gtaforums.com/topic/843561-pathfind-node-types
--- @param x number
--- @param y number
--- @param z number
--- @param outPosition number
--- @param nodeFlags number
--- @param p5 number
--- @param p6 number
--- @return boolean
function PATHFIND.GET_CLOSEST_VEHICLE_NODE(x, y, z, outPosition, nodeFlags, p5, p6) end
--- Get the closest vehicle node to a given position.
--- @param x number
--- @param y number
--- @param z number
--- @param outPosition number
--- @param unknown1 number
--- @param unknown2 number
--- @return boolean
function PATHFIND.GET_CLOSEST_MAJOR_VEHICLE_NODE(x, y, z, outPosition, unknown1, unknown2) end
--- p5, p6 and p7 seems to be about the same as p4, p5 and p6 for GET_CLOSEST_VEHICLE_NODE. p6 and/or p7 has something to do with finding a node on the same path/road and same direction(at least for this native, something to do with the heading maybe). Edit this when you find out more.
--- 
--- nodeType: 0 = main roads, 1 = any dry path, 3 = water
--- p6 is always 3.0
--- p7 is always 0
--- 
--- gtaforums.com/topic/843561-pathfind-node-types
--- 
--- Example of usage, moving vehicle to closest path/road:
--- Vector3 coords = ENTITY::GET_ENTITY_COORDS(playerVeh, true);
--- Vector3 closestVehicleNodeCoords;
--- float roadHeading;
--- PATHFIND::GET_CLOSEST_VEHICLE_NODE_WITH_HEADING(coords.x, coords.y, coords.z, &closestVehicleNodeCoords, &roadHeading, 1, 3, 0);
--- ENTITY::SET_ENTITY_HEADING(playerVeh, roadHeading);
--- ENTITY::SET_ENTITY_COORDS(playerVeh, closestVehicleNodeCoords.x, closestVehicleNodeCoords.y, closestVehicleNodeCoords.z, 1, 0, 0, 1);
--- VEHICLE::SET_VEHICLE_ON_GROUND_PROPERLY(playerVeh);
--- 
--- ------------------------------------------------------------------
--- C# Example (ins1de) : https://pastebin.com/fxtMWAHD
--- @param x number
--- @param y number
--- @param z number
--- @param outPosition number
--- @param outHeading any
--- @param nodeType number
--- @param p6 number
--- @param p7 number
--- @return boolean
function PATHFIND.GET_CLOSEST_VEHICLE_NODE_WITH_HEADING(x, y, z, outPosition, outHeading, nodeType, p6, p7) end
--- @param x number
--- @param y number
--- @param z number
--- @param nthClosest number
--- @param outPosition number
--- @param nodeFlags number
--- @param unknown1 number
--- @param unknown2 number
--- @return boolean
function PATHFIND.GET_NTH_CLOSEST_VEHICLE_NODE(x, y, z, nthClosest, outPosition, nodeFlags, unknown1, unknown2) end
--- Returns the id.
--- @param x number
--- @param y number
--- @param z number
--- @param nth number
--- @param nodeFlags number
--- @param p5 number
--- @param p6 number
--- @return number
function PATHFIND.GET_NTH_CLOSEST_VEHICLE_NODE_ID(x, y, z, nth, nodeFlags, p5, p6) end
--- Get the nth closest vehicle node and its heading.
--- @param x number
--- @param y number
--- @param z number
--- @param nthClosest number
--- @param outPosition number
--- @param outHeading any
--- @param outNumLanes any
--- @param nodeFlags number
--- @param unknown3 number
--- @param unknown4 number
--- @return boolean
function PATHFIND.GET_NTH_CLOSEST_VEHICLE_NODE_WITH_HEADING(x, y, z, nthClosest, outPosition, outHeading, outNumLanes, nodeFlags, unknown3, unknown4) end
--- @param x number
--- @param y number
--- @param z number
--- @param nthClosest number
--- @param outPosition number
--- @param outHeading any
--- @param nodeFlags number
--- @param p7 number
--- @param p8 number
--- @return number
function PATHFIND.GET_NTH_CLOSEST_VEHICLE_NODE_ID_WITH_HEADING(x, y, z, nthClosest, outPosition, outHeading, nodeFlags, p7, p8) end
--- See gtaforums.com/topic/843561-pathfind-node-types for node type info. 0 = paved road only, 1 = any road, 3 = water
--- 
--- p10 always equals 3.0
--- p11 always equals 0
--- @param x number
--- @param y number
--- @param z number
--- @param desiredX number
--- @param desiredY number
--- @param desiredZ number
--- @param nthClosest number
--- @param outPosition number
--- @param outHeading any
--- @param nodeFlags number
--- @param p10 number
--- @param p11 number
--- @return boolean
function PATHFIND.GET_NTH_CLOSEST_VEHICLE_NODE_FAVOUR_DIRECTION(x, y, z, desiredX, desiredY, desiredZ, nthClosest, outPosition, outHeading, nodeFlags, p10, p11) end
--- Gets the density and flags of the closest node to the specified position.
--- Density is a value between 0 and 15, indicating how busy the road is.
--- Flags is a bit field.
--- @param x number
--- @param y number
--- @param z number
--- @param density any
--- @param flags any
--- @return boolean
function PATHFIND.GET_VEHICLE_NODE_PROPERTIES(x, y, z, density, flags) end
--- Returns true if the id is non zero.
--- @param vehicleNodeId number
--- @return boolean
function PATHFIND.IS_VEHICLE_NODE_ID_VALID(vehicleNodeId) end
--- Calling this with an invalid node id, will crash the game.
--- Note that IS_VEHICLE_NODE_ID_VALID simply checks if nodeId is not zero. It does not actually ensure that the id is valid.
--- Eg. IS_VEHICLE_NODE_ID_VALID(1) will return true, but will crash when calling GET_VEHICLE_NODE_POSITION().
--- @param nodeId number
--- @param outPosition number
function PATHFIND.GET_VEHICLE_NODE_POSITION(nodeId, outPosition) end
--- Returns false for nodes that aren't used for GPS routes.
--- Example:
--- Nodes in Fort Zancudo and LSIA are false
--- @param nodeID number
--- @return boolean
function PATHFIND.GET_VEHICLE_NODE_IS_GPS_ALLOWED(nodeID) end
--- Returns true when the node is Offroad. Alleys, some dirt roads, and carparks return true.
--- Normal roads where plenty of Peds spawn will return false
--- @param nodeID number
--- @return boolean
function PATHFIND.GET_VEHICLE_NODE_IS_SWITCHED_OFF(nodeID) end
--- p1 seems to be always 1.0f in the scripts
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 any
--- @param p10 boolean
--- @return boolean
function PATHFIND.GET_CLOSEST_ROAD(x, y, z, p3, p4, p5, p6, p7, p8, p9, p10) end
--- @param set boolean
--- @return boolean
function PATHFIND.LOAD_ALL_PATH_NODES(set) end
--- @param toggle boolean
function PATHFIND.SET_ALLOW_STREAM_PROLOGUE_NODES(toggle) end
--- Activates Cayo Perico path nodes if passed `1`. GPS navigation will start working, maybe more stuff will change, not sure. It seems if you try to unload (pass `0`) when close to the island, your game might crash.
--- @param type number
function PATHFIND.SET_ALLOW_STREAM_HEIST_ISLAND_NODES(type) end
--- @param x1 number
--- @param y1 number
--- @param x2 number
--- @param y2 number
--- @return boolean
function PATHFIND.ARE_NODES_LOADED_FOR_AREA(x1, y1, x2, y2) end
--- Used internally for long range tasks
--- @param x1 number
--- @param y1 number
--- @param x2 number
--- @param y2 number
--- @return boolean
function PATHFIND.REQUEST_PATH_NODES_IN_AREA_THIS_FRAME(x1, y1, x2, y2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function PATHFIND.SET_ROADS_BACK_TO_ORIGINAL(p0, p1, p2, p3, p4, p5, p6) end
--- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area.
--- bool p7 - always 1
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param p7 number
function PATHFIND.SET_ROADS_BACK_TO_ORIGINAL_IN_ANGLED_AREA(x1, y1, z1, x2, y2, z2, width, p7) end
--- @param multiplier number
function PATHFIND.SET_AMBIENT_PED_RANGE_MULTIPLIER_THIS_FRAME(multiplier) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function PATHFIND.ADJUST_AMBIENT_PED_SPAWN_DENSITIES_THIS_FRAME(p0, p1, p2, p3, p4, p5, p6) end
--- p6 is always 0
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 number
function PATHFIND.SET_PED_PATHS_BACK_TO_ORIGINAL(x1, y1, z1, x2, y2, z2, p6) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 boolean
--- @param outPosition number
--- @param nodeId any
--- @return boolean
function PATHFIND.GET_RANDOM_VEHICLE_NODE(x, y, z, radius, p4, p5, p6, outPosition, nodeId) end
--- @param nodeAddress number
--- @param towardsCoorsX number
--- @param towardsCoorsY number
--- @param towardsCoorsZ number
--- @param centrePoint number
--- @param heading any
--- @return { x: number, y: number, z: number }
function PATHFIND.GET_SPAWN_COORDS_FOR_VEHICLE_NODE(nodeAddress, towardsCoorsX, towardsCoorsY, towardsCoorsZ, centrePoint, heading) end
--- Determines the name of the street which is the closest to the given coordinates.
--- 
--- x,y,z - the coordinates of the street
--- streetName - returns a hash to the name of the street the coords are on
--- crossingRoad - if the coordinates are on an intersection, a hash to the name of the crossing road
--- 
--- Note: the names are returned as hashes, the strings can be returned using the function HUD::GET_STREET_NAME_FROM_HASH_KEY.
--- @param x number
--- @param y number
--- @param z number
--- @param streetName any
--- @param crossingRoad any
function PATHFIND.GET_STREET_NAME_AT_COORD(x, y, z, streetName, crossingRoad) end
--- p3 is 0 in the only game script occurrence (trevor3) but 1 doesn't seem to make a difference
--- 
--- distToNxJunction seems to be the distance in metres * 10.0f
--- 
--- direction:
--- 0 = This happens randomly during the drive for seemingly no reason but if you consider that this native is only used in trevor3, it seems to mean "Next frame, stop whatever's being said and tell the player the direction."
--- 1 = Route is being calculated or the player is going in the wrong direction
--- 2 = Please Proceed the Highlighted Route
--- 3 = In (distToNxJunction) Turn Left
--- 4 = In (distToNxJunction) Turn Right
--- 5 = In (distToNxJunction) Keep Straight
--- 6 = In (distToNxJunction) Turn Sharply To The Left
--- 7 = In (distToNxJunction) Turn Sharply To The Right
--- 8 = Route is being recalculated or the navmesh is confusing. This happens randomly during the drive but consistently at {2044.0358, 2996.6116, 44.9717} if you face towards the bar and the route needs you to turn right. In that particular case, it could be a bug with how the turn appears to be 270 deg. CCW instead of "right." Either way, this seems to be the engine saying "I don't know the route right now."
--- 
--- return value set to 0 always
--- @param x number
--- @param y number
--- @param z number
--- @param p3 boolean
--- @param direction any
--- @param p5 any
--- @param distToNxJunction any
--- @return number
function PATHFIND.GENERATE_DIRECTIONS_TO_COORD(x, y, z, p3, direction, p5, distToNxJunction) end
--- @param toggle boolean
function PATHFIND.SET_IGNORE_NO_GPS_FLAG(toggle) end
--- See: SET_BLIP_ROUTE
--- @param toggle boolean
function PATHFIND.SET_IGNORE_NO_GPS_FLAG_UNTIL_FIRST_NORMAL_NODE(toggle) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z3 number
function PATHFIND.SET_GPS_DISABLED_ZONE(x1, y1, z1, x2, y2, z3) end
--- @return number
function PATHFIND.GET_GPS_BLIP_ROUTE_LENGTH() end
--- p3 can be 0, 1 or 2.
--- @param result number
--- @param p1 boolean
--- @param p2 number
--- @param p3 number
--- @return boolean
function PATHFIND.GET_POS_ALONG_GPS_TYPE_ROUTE(result, p1, p2, p3) end
--- @return boolean
function PATHFIND.GET_GPS_BLIP_ROUTE_FOUND() end
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param outPosition number
--- @return boolean
function PATHFIND.GET_ROAD_BOUNDARY_USING_HEADING(x, y, z, heading, outPosition) end
--- @param x number
--- @param y number
--- @param z number
--- @param p3 number
--- @param outPosition number
--- @return boolean
function PATHFIND.GET_POSITION_BY_SIDE_OF_ROAD(x, y, z, p3, outPosition) end
--- Gets a value indicating whether the specified position is on a road.
--- The vehicle parameter is not implemented (ignored).
--- @param x number
--- @param y number
--- @param z number
--- @param vehicle number
--- @return boolean
function PATHFIND.IS_POINT_ON_ROAD(x, y, z, vehicle) end
--- Gets the next zone that has been disabled using SET_GPS_DISABLED_ZONE_AT_INDEX.
--- @return number
function PATHFIND.GET_NEXT_GPS_DISABLED_ZONE_INDEX() end
--- Disables the GPS route displayed on the minimap while within a certain zone (area). When in a disabled zone and creating a waypoint, the GPS route is not shown on the minimap until you are outside of the zone. When disabled, the direct distance is shown on minimap opposed to distance to travel. Seems to only work before setting a waypoint.
--- You can clear the disabled zone with CLEAR_GPS_DISABLED_ZONE_AT_INDEX.
--- 
--- **Setting a waypoint at the same coordinate:**
--- Disabled Zone: https://i.imgur.com/P9VUuxM.png
--- Enabled Zone (normal): https://i.imgur.com/BPi24aw.png
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param index number
function PATHFIND.SET_GPS_DISABLED_ZONE_AT_INDEX(x1, y1, z1, x2, y2, z2, index) end
--- Clears a disabled GPS route area from a certain index previously set using `SET_GPS_DISABLED_ZONE_AT_INDEX`.
--- @param index number
function PATHFIND.CLEAR_GPS_DISABLED_ZONE_AT_INDEX(index) end
--- @param x number
--- @param y number
--- @param radius number
function PATHFIND.ADD_NAVMESH_REQUIRED_REGION(x, y, radius) end
function PATHFIND.REMOVE_NAVMESH_REQUIRED_REGIONS() end
--- @return boolean
function PATHFIND.IS_NAVMESH_REQUIRED_REGION_IN_USE() end
--- Set toggle true to disable navmesh.
--- Set toggle false to enable navmesh.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param toggle boolean
function PATHFIND.DISABLE_NAVMESH_IN_AREA(x1, y1, z1, x2, y2, z2, toggle) end
--- @return boolean
function PATHFIND.ARE_ALL_NAVMESH_REGIONS_LOADED() end
--- Returns whether navmesh for the region is loaded. The region is a rectangular prism defined by it's top left deepest corner to it's bottom right shallowest corner.
--- 
--- If you can re-word this so it makes more sense, please do. I'm horrible with words sometimes...
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function PATHFIND.IS_NAVMESH_LOADED_IN_AREA(x1, y1, z1, x2, y2, z2) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function PATHFIND.GET_NUM_NAVMESHES_EXISTING_IN_AREA(x1, y1, z1, x2, y2, z2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 boolean
--- @param p8 number
--- @return number
function PATHFIND.ADD_NAVMESH_BLOCKING_OBJECT(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
function PATHFIND.UPDATE_NAVMESH_BLOCKING_OBJECT(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
--- @param p0 number
function PATHFIND.REMOVE_NAVMESH_BLOCKING_OBJECT(p0) end
--- @param p0 number
--- @return boolean
function PATHFIND.DOES_NAVMESH_BLOCKING_OBJECT_EXIST(p0) end
--- Returns CGameWorldHeightMap's maximum Z value at specified point (grid node).
--- @param x number
--- @param y number
--- @return number
function PATHFIND.GET_APPROX_HEIGHT_FOR_POINT(x, y) end
--- Returns CGameWorldHeightMap's maximum Z among all grid nodes that intersect with the specified rectangle.
--- @param x1 number
--- @param y1 number
--- @param x2 number
--- @param y2 number
--- @return number
function PATHFIND.GET_APPROX_HEIGHT_FOR_AREA(x1, y1, x2, y2) end
--- Returns CGameWorldHeightMap's minimum Z value at specified point (grid node).
--- @param x number
--- @param y number
--- @return number
function PATHFIND.GET_APPROX_FLOOR_FOR_POINT(x, y) end
--- Returns CGameWorldHeightMap's minimum Z among all grid nodes that intersect with the specified rectangle.
--- @param x1 number
--- @param y1 number
--- @param x2 number
--- @param y2 number
--- @return number
function PATHFIND.GET_APPROX_FLOOR_FOR_AREA(x1, y1, x2, y2) end
--- Calculates the travel distance between a set of points.
--- 
--- Doesn't seem to correlate with distance on gps sometimes.
--- This function returns the value 100000.0 over long distances, seems to be a failure mode result, potentially occurring when not all path nodes are loaded into pathfind.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function PATHFIND.CALCULATE_TRAVEL_DISTANCE_BETWEEN_POINTS(x1, y1, z1, x2, y2, z2) end

PED = {}

--- https://alloc8or.re/gta5/doc/enums/ePedType.txt
--- 
--- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json
--- @param pedType number
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param isNetwork boolean
--- @param bScriptHostPed boolean
--- @return number
function PED.CREATE_PED(pedType, modelHash, x, y, z, heading, isNetwork, bScriptHostPed) end
--- Deletes the specified ped, then sets the handle pointed to by the pointer to NULL.
--- @param ped number
function PED.DELETE_PED(ped) end
--- @param ped number
--- @param isNetwork boolean
--- @param bScriptHostPed boolean
--- @param copyHeadBlendFlag boolean
--- @return number
function PED.CLONE_PED(ped, isNetwork, bScriptHostPed, copyHeadBlendFlag) end
--- @param ped number
--- @param isNetwork boolean
--- @param bScriptHostPed boolean
--- @param copyHeadBlendFlag boolean
--- @param p4 boolean
--- @return number
function PED.CLONE_PED_ALT(ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4) end
--- Copies ped's components and props to targetPed.
--- @param ped number
--- @param targetPed number
function PED.CLONE_PED_TO_TARGET(ped, targetPed) end
--- @param ped number
--- @param targetPed number
--- @param p2 boolean
function PED.CLONE_PED_TO_TARGET_ALT(ped, targetPed, p2) end
--- Gets a value indicating whether the specified ped is in the specified vehicle.
--- 
--- If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible.
--- @param ped number
--- @param vehicle number
--- @param atGetIn boolean
--- @return boolean
function PED.IS_PED_IN_VEHICLE(ped, vehicle, atGetIn) end
--- @param ped number
--- @param modelHash number
--- @return boolean
function PED.IS_PED_IN_MODEL(ped, modelHash) end
--- Gets a value indicating whether the specified ped is in any vehicle.
--- 
--- If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible.
--- @param ped number
--- @param atGetIn boolean
--- @return boolean
function PED.IS_PED_IN_ANY_VEHICLE(ped, atGetIn) end
--- xyz - relative to the world origin.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function PED.IS_COP_PED_IN_AREA_3D(x1, y1, z1, x2, y2, z2) end
--- Gets a value indicating whether this ped's health is below its injured threshold.
--- 
--- The default threshold is 100.
--- @param ped number
--- @return boolean
function PED.IS_PED_INJURED(ped) end
--- Returns whether the specified ped is hurt.
--- @param ped number
--- @return boolean
function PED.IS_PED_HURT(ped) end
--- Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100.
--- If the handle is invalid, the function returns true.
--- @param ped number
--- @return boolean
function PED.IS_PED_FATALLY_INJURED(ped) end
--- Seems to consistently return true if the ped is dead.
--- 
--- p1 is always passed 1 in the scripts.
--- 
--- I suggest to remove "OR_DYING" part, because it does not detect dying phase.
--- 
--- That's what the devs call it, cry about it.
--- 
--- lol
--- @param ped number
--- @param p1 boolean
--- @return boolean
function PED.IS_PED_DEAD_OR_DYING(ped, p1) end
--- @param ped number
--- @return boolean
function PED.IS_CONVERSATION_PED_DEAD(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_AIMING_FROM_COVER(ped) end
--- Returns whether the specified ped is reloading.
--- @param ped number
--- @return boolean
function PED.IS_PED_RELOADING(ped) end
--- Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all.
--- @param ped number
--- @return boolean
function PED.IS_PED_A_PLAYER(ped) end
--- pedType: see CREATE_PED
--- 
--- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json
--- @param vehicle number
--- @param pedType number
--- @param modelHash number
--- @param seat number
--- @param isNetwork boolean
--- @param bScriptHostPed boolean
--- @return number
function PED.CREATE_PED_INSIDE_VEHICLE(vehicle, pedType, modelHash, seat, isNetwork, bScriptHostPed) end
--- @param ped number
--- @param heading number
function PED.SET_PED_DESIRED_HEADING(ped, heading) end
--- @param ped number
function PED.FORCE_ALL_HEADING_VALUES_TO_ALIGN(ped) end
--- angle is ped's view cone
--- @param ped number
--- @param otherPed number
--- @param angle number
--- @return boolean
function PED.IS_PED_FACING_PED(ped, otherPed, angle) end
--- Notes: The function only returns true while the ped is:
--- A.) Swinging a random melee attack (including pistol-whipping)
--- 
--- B.) Reacting to being hit by a melee attack (including pistol-whipping)
--- 
--- C.) Is locked-on to an enemy (arms up, strafing/skipping in the default fighting-stance, ready to dodge+counter).
--- 
--- You don't have to be holding the melee-targetting button to be in this stance; you stay in it by default for a few seconds after swinging at someone. If you do a sprinting punch, it returns true for the duration of the punch animation and then returns false again, even if you've punched and made-angry many peds
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_MELEE_COMBAT(ped) end
--- Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using APPLY_FORCE_TO_ENTITY for example, the function returns false.
--- @param ped number
--- @return boolean
function PED.IS_PED_STOPPED(ped) end
--- @param ped number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p7 boolean
--- @param p8 boolean
--- @return boolean
function PED.IS_PED_SHOOTING_IN_AREA(ped, x1, y1, z1, x2, y2, z2, p7, p8) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 boolean
--- @param p7 boolean
--- @return boolean
function PED.IS_ANY_PED_SHOOTING_IN_AREA(x1, y1, z1, x2, y2, z2, p6, p7) end
--- Returns whether the specified ped is shooting.
--- @param ped number
--- @return boolean
function PED.IS_PED_SHOOTING(ped) end
--- accuracy = 0-100, 100 being perfectly accurate
--- @param ped number
--- @param accuracy number
function PED.SET_PED_ACCURACY(ped, accuracy) end
--- @param ped number
--- @return number
function PED.GET_PED_ACCURACY(ped) end
--- @param multiplier number
function PED.SET_AMBIENT_LAW_PED_ACCURACY_MODIFIER(multiplier) end
--- @param ped number
--- @param modelHash number
--- @return boolean
function PED.IS_PED_MODEL(ped, modelHash) end
--- Forces the ped to fall back and kills it.
--- 
--- It doesn't really explode the ped's head but it kills the ped
--- @param ped number
--- @param weaponHash number
function PED.EXPLODE_PED_HEAD(ped, weaponHash) end
--- Judging purely from a quick disassembly, if the ped is in a vehicle, the ped will be deleted immediately. If not, it'll be marked as no longer needed. - very elegant..
--- @param ped number
function PED.REMOVE_PED_ELEGANTLY(ped) end
--- Same as SET_PED_ARMOUR, but ADDS 'amount' to the armor the Ped already has.
--- @param ped number
--- @param amount number
function PED.ADD_ARMOUR_TO_PED(ped, amount) end
--- Sets the armor of the specified ped.
--- 
--- ped: The Ped to set the armor of.
--- amount: A value between 0 and 100 indicating the value to set the Ped's armor to.
--- @param ped number
--- @param amount number
function PED.SET_PED_ARMOUR(ped, amount) end
--- Ped: The ped to warp.
--- vehicle: The vehicle to warp the ped into.
--- Seat_Index: [-1 is driver seat, -2 first free passenger seat]
--- 
--- Moreinfo of Seat Index
--- DriverSeat = -1
--- Passenger = 0
--- Left Rear = 1
--- RightRear = 2
--- @param ped number
--- @param vehicle number
--- @param seatIndex number
function PED.SET_PED_INTO_VEHICLE(ped, vehicle, seatIndex) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_ALLOW_VEHICLES_OVERRIDE(ped, toggle) end
--- @param p0 boolean
--- @return boolean
function PED.CAN_CREATE_RANDOM_PED(p0) end
--- vb.net
--- Dim ped_handle As Integer
--- With Game.Player.Character
--- Dim pos As Vector3 = .Position + .ForwardVector * 3
--- ped_handle = Native.Function.Call(Of Integer)(Hash.CREATE_RANDOM_PED, pos.X, pos.Y, pos.Z)
--- End With
--- 
--- Creates a Ped at the specified location, returns the Ped Handle.
--- Ped will not act until SET_PED_AS_NO_LONGER_NEEDED is called.
--- @param posX number
--- @param posY number
--- @param posZ number
--- @return number
function PED.CREATE_RANDOM_PED(posX, posY, posZ) end
--- @param vehicle number
--- @param returnHandle boolean
--- @return number
function PED.CREATE_RANDOM_PED_AS_DRIVER(vehicle, returnHandle) end
--- @return boolean
function PED.CAN_CREATE_RANDOM_DRIVER() end
--- @return boolean
function PED.CAN_CREATE_RANDOM_BIKE_RIDER() end
--- @param ped number
function PED.SET_PED_MOVE_ANIMS_BLEND_OUT(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_DRAGGED_OUT(ped, toggle) end
--- ntoggle was always false except in one instance (b678).
--- 
--- The one time this is set to true seems to do with when you fail the mission.
--- @param toggle boolean
function PED.SET_PED_ALLOW_HURT_COMBAT_FOR_ALL_MISSION_PEDS(toggle) end
--- Returns true/false if the ped is/isn't male.
--- @param ped number
--- @return boolean
function PED.IS_PED_MALE(ped) end
--- Returns true/false if the ped is/isn't humanoid.
--- @param ped number
--- @return boolean
function PED.IS_PED_HUMAN(ped) end
--- Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle.
--- @param ped number
--- @param includeEntering boolean
--- @return number
function PED.GET_VEHICLE_PED_IS_IN(ped, includeEntering) end
--- Resets the value for the last vehicle driven by the Ped.
--- @param ped number
function PED.RESET_PED_LAST_VEHICLE(ped) end
--- @param multiplier number
function PED.SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(multiplier) end
--- @param p0 number
--- @param p1 number
function PED.SET_SCENARIO_PED_DENSITY_MULTIPLIER_THIS_FRAME(p0, p1) end
function PED.SUPPRESS_AMBIENT_PED_AGGRESSIVE_CLEANUP_THIS_FRAME() end
--- @param x number
--- @param y number
--- @param z number
function PED.SET_SCRIPTED_CONVERSION_COORD_THIS_FRAME(x, y, z) end
--- The distance between these points, is the diagonal of a box (remember it's 3D).
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
function PED.SET_PED_NON_CREATION_AREA(x1, y1, z1, x2, y2, z2) end
function PED.CLEAR_PED_NON_CREATION_AREA() end
function PED.INSTANTLY_FILL_PED_POPULATION() end
--- Same function call as PED::GET_MOUNT, aka just returns 0
--- @param ped number
--- @return boolean
function PED.IS_PED_ON_MOUNT(ped) end
--- 
--- Function just returns 0
--- void __fastcall ped__get_mount(NativeContext *a1)
--- {
--- NativeContext *v1; // rbx@1
--- 
--- v1 = a1;
--- GetAddressOfPedFromScriptHandle(a1->Args->Arg1);
--- v1->Returns->Item1= 0;
--- }
--- @param ped number
--- @return number
function PED.GET_MOUNT(ped) end
--- Gets a value indicating whether the specified ped is on top of any vehicle.
--- 
--- Return 1 when ped is on vehicle.
--- Return 0 when ped is not on a vehicle.
--- 
--- @param ped number
--- @return boolean
function PED.IS_PED_ON_VEHICLE(ped) end
--- @param ped number
--- @param vehicle number
--- @return boolean
function PED.IS_PED_ON_SPECIFIC_VEHICLE(ped, vehicle) end
--- Maximum possible amount of money on MP is 2000. ~JX
--- 
--- -----------------------------------------------------------------------------
--- 
--- Maximum amount that a ped can theoretically have is 65535 (0xFFFF) since the amount is stored as an unsigned short (uint16_t) value.
--- @param ped number
--- @param amount number
function PED.SET_PED_MONEY(ped, amount) end
--- @param ped number
--- @return number
function PED.GET_PED_MONEY(ped) end
--- Related to Peds dropping pickup_health_snack; p0 is a value between [0.0, 1.0] that corresponds to drop rate
--- @param p0 number
--- @param p1 number
function PED.SET_HEALTH_SNACKS_CARRIED_BY_ALL_NEW_PEDS(p0, p1) end
--- @param p0 boolean
function PED.SET_AMBIENT_PEDS_DROP_MONEY(p0) end
function PED._SET_BLOCK_AMBIENT_PEDS_FROM_DROPPING_WEAPONS_THIS_FRAME() end
--- @param p0 boolean
function PED.SET_BLOCKING_OF_NON_TEMPORARY_EVENTS_FOR_AMBIENT_PEDS_THIS_FRAME(p0) end
--- Ped no longer takes critical damage modifiers if set to FALSE.
--- Example: Headshotting a player no longer one shots them. Instead they will take the same damage as a torso shot.
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_SUFFERS_CRITICAL_HITS(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_UPPER_BODY_DAMAGE_ONLY(ped, toggle) end
--- Detect if ped is sitting in the specified vehicle
--- [True/False]
--- @param ped number
--- @param vehicle number
--- @return boolean
function PED.IS_PED_SITTING_IN_VEHICLE(ped, vehicle) end
--- Detect if ped is in any vehicle
--- [True/False]
--- @param ped number
--- @return boolean
function PED.IS_PED_SITTING_IN_ANY_VEHICLE(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_ON_FOOT(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_ON_ANY_BIKE(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_PLANTING_BOMB(ped) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @return { x: number, y: number, z: number }
function PED.GET_DEAD_PED_PICKUP_COORDS(ped, p1, p2) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_BOAT(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_SUB(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_HELI(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_PLANE(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_FLYING_VEHICLE(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_DIES_IN_WATER(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.GET_PED_DIES_IN_WATER(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_DIES_IN_SINKING_VEHICLE(ped, toggle) end
--- @param ped number
--- @return number
function PED.GET_PED_ARMOUR(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_STAY_IN_VEHICLE_WHEN_JACKED(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_SHOT_IN_VEHICLE(ped, toggle) end
--- @param ped number
--- @param outBone any
--- @return boolean
function PED.GET_PED_LAST_DAMAGE_BONE(ped, outBone) end
--- @param ped number
function PED.CLEAR_PED_LAST_DAMAGE_BONE(ped) end
--- @param value number
function PED.SET_AI_WEAPON_DAMAGE_MODIFIER(value) end
function PED.RESET_AI_WEAPON_DAMAGE_MODIFIER() end
--- @param modifier number
function PED.SET_AI_MELEE_WEAPON_DAMAGE_MODIFIER(modifier) end
function PED.RESET_AI_MELEE_WEAPON_DAMAGE_MODIFIER() end
--- @param ped number
--- @param p1 boolean
function PED.SET_TREAT_AS_AMBIENT_PED_FOR_DRIVER_LOCKON(ped, p1) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_TARGETTED(ped, toggle) end
--- @param ped number
--- @param team number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_TARGETTED_BY_TEAM(ped, team, toggle) end
--- @param ped number
--- @param player number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_TARGETTED_BY_PLAYER(ped, player, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_ALLOW_LOCKON_TO_PED_IF_FRIENDLY(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_USE_CAMERA_HEADING_FOR_DESIRED_DIRECTION_LOCK_ON_TEST(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_POLICE_VEHICLE(ped) end
--- @param ped number
function PED.FORCE_PED_TO_OPEN_PARACHUTE(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_PARACHUTE_FREE_FALL(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_FALLING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_JUMPING(ped) end
--- @param p0 number
--- @return boolean
function PED.IS_PED_LANDING(p0) end
--- @param p0 number
--- @return boolean
function PED.IS_PED_DOING_A_BEAST_JUMP(p0) end
--- @param ped number
--- @return boolean
function PED.IS_PED_CLIMBING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_VAULTING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_DIVING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_JUMPING_OUT_OF_VEHICLE(ped) end
--- Returns true if the ped is currently opening a door (CTaskOpenDoor).
--- @param ped number
--- @return boolean
function PED.IS_PED_OPENING_DOOR(ped) end
--- Returns:
--- 
--- -1: Normal
--- 0: Wearing parachute on back
--- 1: Parachute opening
--- 2: Parachute open
--- 3: Falling to doom (e.g. after exiting parachute)
--- 
--- Normal means no parachute?
--- @param ped number
--- @return number
function PED.GET_PED_PARACHUTE_STATE(ped) end
--- -1: no landing
--- 0: landing on both feet
--- 1: stumbling
--- 2: rolling
--- 3: ragdoll
--- @param ped number
--- @return number
function PED.GET_PED_PARACHUTE_LANDING_TYPE(ped) end
--- @param ped number
--- @param tintIndex number
function PED.SET_PED_PARACHUTE_TINT_INDEX(ped, tintIndex) end
--- @param ped number
--- @param outTintIndex any
function PED.GET_PED_PARACHUTE_TINT_INDEX(ped, outTintIndex) end
--- @param ped number
--- @param p1 number
function PED.SET_PED_RESERVE_PARACHUTE_TINT_INDEX(ped, p1) end
--- @param ped number
--- @param p1 boolean
--- @param p2 boolean
--- @return number
function PED.CREATE_PARACHUTE_BAG_OBJECT(ped, p1, p2) end
--- This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IS_PED_DUCKING will always return false.
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_DUCKING(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.IS_PED_DUCKING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_TAXI(ped) end
--- @param ped number
--- @param value number
function PED.SET_PED_ID_RANGE(ped, value) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_HIGHLY_PERCEPTIVE(ped, toggle) end
--- @param seeingRange number
--- @param seeingRangePeripheral number
--- @param hearingRange number
--- @param visualFieldMinAzimuthAngle number
--- @param visualFieldMaxAzimuthAngle number
--- @param fieldOfGazeMaxAngle number
--- @param p6 number
function PED.SET_COP_PERCEPTION_OVERRIDES(seeingRange, seeingRangePeripheral, hearingRange, visualFieldMinAzimuthAngle, visualFieldMaxAzimuthAngle, fieldOfGazeMaxAngle, p6) end
--- @param ped number
--- @param p1 number
function PED.SET_PED_INJURED_ON_GROUND_BEHAVIOUR(ped, p1) end
--- @param ped number
function PED.DISABLE_PED_INJURED_ON_GROUND_BEHAVIOUR(ped) end
--- @param ped number
--- @param value number
function PED.SET_PED_SEEING_RANGE(ped, value) end
--- @param ped number
--- @param value number
function PED.SET_PED_HEARING_RANGE(ped, value) end
--- @param ped number
--- @param value number
function PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, value) end
--- @param ped number
--- @param value number
function PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, value) end
--- This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative.
--- -90f should let the ped see 90 degrees below them, for example.
--- @param ped number
--- @param angle number
function PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, angle) end
--- This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them.
--- @param ped number
--- @param angle number
function PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, angle) end
--- @param ped number
--- @param range number
function PED.SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE(ped, range) end
--- @param ped number
--- @param angle number
function PED.SET_PED_VISUAL_FIELD_CENTER_ANGLE(ped, angle) end
--- @param ped number
--- @return number
function PED.GET_PED_VISUAL_FIELD_CENTER_ANGLE(ped) end
--- p1 is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION".
--- @param ped number
--- @param p1 boolean
--- @param action string
function PED.SET_PED_STEALTH_MOVEMENT(ped, p1, action) end
--- Returns whether the entity is in stealth mode
--- @param ped number
--- @return boolean
function PED.GET_PED_STEALTH_MOVEMENT(ped) end
--- Creates a new ped group.
--- Groups can contain up to 8 peds.
--- 
--- The parameter is unused.
--- 
--- Returns a handle to the created group, or 0 if a group couldn't be created.
--- @param unused number
--- @return number
function PED.CREATE_GROUP(unused) end
--- @param ped number
--- @param groupId number
function PED.SET_PED_AS_GROUP_LEADER(ped, groupId) end
--- @param ped number
--- @param groupId number
function PED.SET_PED_AS_GROUP_MEMBER(ped, groupId) end
--- This only will teleport the ped to the group leader if the group leader teleports (sets coords).
--- 
--- Only works in singleplayer
--- @param pedHandle number
--- @param groupHandle number
--- @param toggle boolean
function PED.SET_PED_CAN_TELEPORT_TO_GROUP_LEADER(pedHandle, groupHandle, toggle) end
--- @param groupId number
function PED.REMOVE_GROUP(groupId) end
--- @param ped number
function PED.REMOVE_PED_FROM_GROUP(ped) end
--- @param ped number
--- @param groupId number
--- @return boolean
function PED.IS_PED_GROUP_MEMBER(ped, groupId) end
--- @param ped number
--- @return boolean
function PED.IS_PED_HANGING_ON_TO_VEHICLE(ped) end
--- Sets the range at which members will automatically leave the group.
--- @param groupHandle number
--- @param separationRange number
function PED.SET_GROUP_SEPARATION_RANGE(groupHandle, separationRange) end
--- Ped will stay on the ground after being stunned for at lest ms time. (in milliseconds)
--- @param ped number
--- @param ms number
function PED.SET_PED_MIN_GROUND_TIME_FOR_STUNGUN(ped, ms) end
--- @param ped number
--- @return boolean
function PED.IS_PED_PRONE(ped) end
--- Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back.
--- 
--- p1 is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[4/*14*/], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794
--- @param ped number
--- @param target number
--- @return boolean
function PED.IS_PED_IN_COMBAT(ped, target) end
--- @param ped number
--- @param p1 number
--- @return number
function PED.GET_PED_TARGET_FROM_COMBAT_PED(ped, p1) end
--- @param ped number
--- @param target number
--- @return boolean
function PED.CAN_PED_IN_COMBAT_SEE_TARGET(ped, target) end
--- @param ped number
--- @return boolean
function PED.IS_PED_DOING_DRIVEBY(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_JACKING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_BEING_JACKED(ped) end
--- p1 is always 0
--- @param ped number
--- @param p1 number
--- @return boolean
function PED.IS_PED_BEING_STUNNED(ped, p1) end
--- @param ped number
--- @return number
function PED.GET_PEDS_JACKER(ped) end
--- @param ped number
--- @return number
function PED.GET_JACK_TARGET(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_FLEEING(ped) end
--- p1 is nearly always 0 in the scripts.
--- @param ped number
--- @param exceptUseWeapon boolean
--- @return boolean
function PED.IS_PED_IN_COVER(ped, exceptUseWeapon) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_COVER_FACING_LEFT(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_HIGH_COVER(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_GOING_INTO_COVER(ped) end
--- i could be time. Only example in the decompiled scripts uses it as -1.
--- @param ped number
--- @param pinned boolean
--- @param i number
--- @return boolean
function PED.SET_PED_PINNED_DOWN(ped, pinned, i) end
--- @param ped number
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
--- @param p5 number
--- @param p6 boolean
--- @param p7 boolean
--- @return boolean
function PED._HAS_PED_CLEAR_LOS_TO_ENTITY(ped, entity, x, y, z, p5, p6, p7) end
--- @param ped number
--- @return number
function PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(ped) end
--- @param ped number
--- @return number
function PED.GET_VEHICLE_PED_IS_TRYING_TO_ENTER(ped) end
--- Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped'
--- 
--- Is best to check if the Ped is dead before asking for its killer.
--- @param ped number
--- @return number
function PED.GET_PED_SOURCE_OF_DEATH(ped) end
--- Returns the hash of the weapon/model/object that killed the ped.
--- @param ped number
--- @return number
function PED.GET_PED_CAUSE_OF_DEATH(ped) end
--- @param ped number
--- @return number
function PED.GET_PED_TIME_OF_DEATH(ped) end
--- @param ped number
--- @return number
function PED.COUNT_PEDS_IN_COMBAT_WITH_TARGET(ped) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return number
function PED.COUNT_PEDS_IN_COMBAT_WITH_TARGET_WITHIN_RADIUS(ped, x, y, z, radius) end
--- @param ped number
--- @param hash number
function PED.SET_PED_RELATIONSHIP_GROUP_DEFAULT_HASH(ped, hash) end
--- @param ped number
--- @param hash number
function PED.SET_PED_RELATIONSHIP_GROUP_HASH(ped, hash) end
--- Sets the relationship between two groups. This should be called twice (once for each group).
--- 
--- Relationship types:
--- 0 = Companion
--- 1 = Respect
--- 2 = Like
--- 3 = Neutral
--- 4 = Dislike
--- 5 = Hate
--- 255 = Pedestrians
--- 
--- Example:
--- PED::SET_RELATIONSHIP_BETWEEN_GROUPS(2, l_1017, 0xA49E591C);
--- PED::SET_RELATIONSHIP_BETWEEN_GROUPS(2, 0xA49E591C, l_1017);
--- @param relationship number
--- @param group1 number
--- @param group2 number
function PED.SET_RELATIONSHIP_BETWEEN_GROUPS(relationship, group1, group2) end
--- Clears the relationship between two groups. This should be called twice (once for each group).
--- 
--- Relationship types:
--- 0 = Companion
--- 1 = Respect
--- 2 = Like
--- 3 = Neutral
--- 4 = Dislike
--- 5 = Hate
--- 255 = Pedestrians
--- (Credits: Inco)
--- 
--- Example:
--- PED::CLEAR_RELATIONSHIP_BETWEEN_GROUPS(2, l_1017, 0xA49E591C);
--- PED::CLEAR_RELATIONSHIP_BETWEEN_GROUPS(2, 0xA49E591C, l_1017);
--- @param relationship number
--- @param group1 number
--- @param group2 number
function PED.CLEAR_RELATIONSHIP_BETWEEN_GROUPS(relationship, group1, group2) end
--- Can't select void. This function returns nothing. The hash of the created relationship group is output in the second parameter.
--- @param name string
--- @param groupHash any
--- @return boolean
function PED.ADD_RELATIONSHIP_GROUP(name, groupHash) end
--- @param groupHash number
function PED.REMOVE_RELATIONSHIP_GROUP(groupHash) end
--- @param groupHash number
--- @return boolean
function PED.DOES_RELATIONSHIP_GROUP_EXIST(groupHash) end
--- Gets the relationship between two peds. This should be called twice (once for each ped).
--- 
--- Relationship types:
--- 0 = Companion
--- 1 = Respect
--- 2 = Like
--- 3 = Neutral
--- 4 = Dislike
--- 5 = Hate
--- 255 = Pedestrians
--- (Credits: Inco)
--- 
--- Example:
--- PED::GET_RELATIONSHIP_BETWEEN_PEDS(2, l_1017, 0xA49E591C);
--- PED::GET_RELATIONSHIP_BETWEEN_PEDS(2, 0xA49E591C, l_1017);
--- @param ped1 number
--- @param ped2 number
--- @return number
function PED.GET_RELATIONSHIP_BETWEEN_PEDS(ped1, ped2) end
--- @param ped number
--- @return number
function PED.GET_PED_RELATIONSHIP_GROUP_DEFAULT_HASH(ped) end
--- @param ped number
--- @return number
function PED.GET_PED_RELATIONSHIP_GROUP_HASH(ped) end
--- Gets the relationship between two groups. This should be called twice (once for each group).
--- 
--- Relationship types:
--- 0 = Companion
--- 1 = Respect
--- 2 = Like
--- 3 = Neutral
--- 4 = Dislike
--- 5 = Hate
--- 255 = Pedestrians
--- 
--- Example:
--- PED::GET_RELATIONSHIP_BETWEEN_GROUPS(l_1017, 0xA49E591C);
--- PED::GET_RELATIONSHIP_BETWEEN_GROUPS(0xA49E591C, l_1017);
--- @param group1 number
--- @param group2 number
--- @return number
function PED.GET_RELATIONSHIP_BETWEEN_GROUPS(group1, group2) end
--- @param group number
--- @param p1 boolean
function PED.SET_RELATIONSHIP_GROUP_AFFECTS_WANTED_LEVEL(group, p1) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param hash number
--- @param p4 number
--- @param p5 number
function PED.TELL_GROUP_PEDS_IN_AREA_TO_ATTACK(ped, p1, p2, hash, p4, p5) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_TARGETED_WITHOUT_LOS(ped, toggle) end
--- @param ped number
--- @param radius number
--- @param maxFriends number
function PED.SET_PED_TO_INFORM_RESPECTED_FRIENDS(ped, radius, maxFriends) end
--- @param ped number
--- @param event number
--- @return boolean
function PED.IS_PED_RESPONDING_TO_EVENT(ped, event) end
--- @param ped number
--- @param eventType number
--- @param outData number
--- @return boolean
function PED.GET_POS_FROM_FIRED_EVENT(ped, eventType, outData) end
--- FIRING_PATTERN_BURST_FIRE = 0xD6FF6D61 ( 1073727030 )
--- FIRING_PATTERN_BURST_FIRE_IN_COVER = 0x026321F1 ( 40051185 )
--- FIRING_PATTERN_BURST_FIRE_DRIVEBY = 0xD31265F2 ( -753768974 )
--- FIRING_PATTERN_FROM_GROUND = 0x2264E5D6 ( 577037782 )
--- FIRING_PATTERN_DELAY_FIRE_BY_ONE_SEC = 0x7A845691 ( 2055493265 )
--- FIRING_PATTERN_FULL_AUTO = 0xC6EE6B4C ( -957453492 )
--- FIRING_PATTERN_SINGLE_SHOT = 0x5D60E4E0 ( 1566631136 )
--- FIRING_PATTERN_BURST_FIRE_PISTOL = 0xA018DB8A ( -1608983670 )
--- FIRING_PATTERN_BURST_FIRE_SMG = 0xD10DADEE ( 1863348768 )
--- FIRING_PATTERN_BURST_FIRE_RIFLE = 0x9C74B406 ( -1670073338 )
--- FIRING_PATTERN_BURST_FIRE_MG = 0xB573C5B4 ( -1250703948 )
--- FIRING_PATTERN_BURST_FIRE_PUMPSHOTGUN = 0x00BAC39B ( 12239771 )
--- FIRING_PATTERN_BURST_FIRE_HELI = 0x914E786F ( -1857128337 )
--- FIRING_PATTERN_BURST_FIRE_MICRO = 0x42EF03FD ( 1122960381 )
--- FIRING_PATTERN_SHORT_BURSTS = 0x1A92D7DF ( 445831135 )
--- FIRING_PATTERN_SLOW_FIRE_TANK = 0xE2CA3A71 ( -490063247 )
--- 
--- Firing pattern info: https://pastebin.com/Px036isB
--- @param ped number
--- @param patternHash number
function PED.SET_PED_FIRING_PATTERN(ped, patternHash) end
--- shootRate 0-1000
--- @param ped number
--- @param shootRate number
function PED.SET_PED_SHOOT_RATE(ped, shootRate) end
--- combatType can be between 0-14. See GET_COMBAT_FLOAT below for a list of possible parameters.
--- @param ped number
--- @param combatType number
--- @param p2 number
function PED.SET_COMBAT_FLOAT(ped, combatType, p2) end
--- p0: Ped Handle
--- p1: int i | 0 <= i <= 27
--- 
--- p1 probably refers to the attributes configured in combatbehavior.meta. There are 13. Example:
--- 
--- <BlindFireChance value="0.1"/>
--- <WeaponShootRateModifier value="1.0"/>
--- <TimeBetweenBurstsInCover value="1.25"/>
--- <BurstDurationInCover value="2.0"/>
--- <TimeBetweenPeeks value="10.0"/>
--- <WeaponAccuracy value="0.18"/>
--- <FightProficiency value="0.8"/>
--- <StrafeWhenMovingChance value="1.0"/>
--- <WalkWhenStrafingChance value="0.0"/>
--- <AttackWindowDistanceForCover value="55.0"/>
--- <TimeToInvalidateInjuredTarget value="9.0"/>
--- <TriggerChargeTime_Near value="4.0"/>
--- <TriggerChargeTime_Far value="10.0"/>
--- 
--- -------------Confirmed by editing combatbehavior.meta:
--- p1:
--- 0=BlindFireChance
--- 1=BurstDurationInCover
--- 3=TimeBetweenBurstsInCover
--- 4=TimeBetweenPeeks
--- 5=StrafeWhenMovingChance
--- 8=WalkWhenStrafingChance
--- 11=AttackWindowDistanceForCover
--- 12=TimeToInvalidateInjuredTarget
--- 16=OptimalCoverDistance
--- 
--- @param ped number
--- @param p1 number
--- @return number
function PED.GET_COMBAT_FLOAT(ped, p1) end
--- p1 may be a BOOL representing whether or not the group even exists
--- @param groupID number
--- @param p1 number
--- @param sizeInMembers any
function PED.GET_GROUP_SIZE(groupID, p1, sizeInMembers) end
--- @param groupId number
--- @return boolean
function PED.DOES_GROUP_EXIST(groupId) end
--- Returns the group id of which the specified ped is a member of.
--- @param ped number
--- @return number
function PED.GET_PED_GROUP_INDEX(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_GROUP(ped) end
--- @param ped number
--- @return number
function PED.GET_PLAYER_PED_IS_FOLLOWING(ped) end
--- 0: Default
--- 1: Circle Around Leader
--- 2: Alternative Circle Around Leader
--- 3: Line, with Leader at center
--- @param groupId number
--- @param formationType number
function PED.SET_GROUP_FORMATION(groupId, formationType) end
--- @param groupId number
--- @param x number
--- @param y number
--- @param z number
function PED.SET_GROUP_FORMATION_SPACING(groupId, x, y, z) end
--- @param groupHandle number
function PED.RESET_GROUP_FORMATION_DEFAULT_SPACING(groupHandle) end
--- Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GET_VEHICLE_PED_IS_IN but less safe.
--- @param ped number
--- @return number
function PED.GET_VEHICLE_PED_IS_USING(ped) end
--- @param ped number
--- @return number
function PED.GET_VEHICLE_PED_IS_ENTERING(ped) end
--- enable or disable the gravity of a ped
--- 
--- Examples:
--- PED::SET_PED_GRAVITY(PLAYER::PLAYER_PED_ID(), 0x00000001);
--- PED::SET_PED_GRAVITY(Local_289[iVar0 /*20*/], 0x00000001);
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_GRAVITY(ped, toggle) end
--- damages a ped with the given amount
--- @param ped number
--- @param damageAmount number
--- @param p2 boolean
--- @param p3 number
--- @param weaponType number
function PED.APPLY_DAMAGE_TO_PED(ped, damageAmount, p2, p3, weaponType) end
--- @param ped number
--- @param weaponHash number
--- @return number
function PED.GET_TIME_PED_DAMAGED_BY_WEAPON(ped, weaponHash) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_ALLOWED_TO_DUCK(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_NEVER_LEAVES_GROUP(ped, toggle) end
--- https://alloc8or.re/gta5/doc/enums/ePedType.txt
--- @param ped number
--- @return number
function PED.GET_PED_TYPE(ped) end
--- Turns the desired ped into a cop. If you use this on the player ped, you will become almost invisible to cops dispatched for you. You will also report your own crimes, get a generic cop voice, get a cop-vision-cone on the radar, and you will be unable to shoot at other cops. SWAT and Army will still shoot at you. Toggling ped as "false" has no effect; you must change p0's ped model to disable the effect.
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_AS_COP(ped, toggle) end
--- @param toggle boolean
function PED.SET_PED_HEALTH_PENDING_LAST_DAMAGE_EVENT_OVERRIDE_FLAG(toggle) end
--- Sets the maximum health of a ped.
--- @param ped number
--- @param value number
function PED.SET_PED_MAX_HEALTH(ped, value) end
--- @param ped number
--- @return number
function PED.GET_PED_MAX_HEALTH(ped) end
--- @param ped number
--- @param value number
function PED.SET_PED_MAX_TIME_IN_WATER(ped, value) end
--- @param ped number
--- @param value number
function PED.SET_PED_MAX_TIME_UNDERWATER(ped, value) end
--- @param ped number
--- @param p1 number
function PED.SET_CORPSE_RAGDOLL_FRICTION(ped, p1) end
--- seatIndex must be <= 2
--- @param ped number
--- @param vehicle number
--- @param seatIndex number
--- @param flags number
--- @param p4 number
function PED.SET_PED_VEHICLE_FORCED_SEAT_USAGE(ped, vehicle, seatIndex, flags, p4) end
--- @param ped number
function PED.CLEAR_ALL_PED_VEHICLE_FORCED_SEAT_USAGE(ped) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
--- @param p1 number
function PED.SET_PED_CAN_BE_KNOCKED_OFF_BIKE(p0, p1) end
--- state: https://alloc8or.re/gta5/doc/enums/eKnockOffVehicle.txt
--- @param ped number
--- @param state number
function PED.SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(ped, state) end
--- @param ped number
--- @return boolean
function PED.CAN_KNOCK_PED_OFF_VEHICLE(ped) end
--- @param ped number
function PED.KNOCK_PED_OFF_VEHICLE(ped) end
--- @param ped number
--- @param posX number
--- @param posY number
--- @param posZ number
function PED.SET_PED_COORDS_NO_GANG(ped, posX, posY, posZ) end
--- from fm_mission_controller.c4 (variable names changed for clarity):
--- 
--- int groupID = PLAYER::GET_PLAYER_GROUP(PLAYER::PLAYER_ID());
--- PED::GET_GROUP_SIZE(group, &unused, &groupSize);
--- if (groupSize >= 1) {
--- . . . . for (int memberNumber = 0; memberNumber < groupSize; memberNumber++) {
--- . . . . . . . . Ped ped1 = PED::GET_PED_AS_GROUP_MEMBER(groupID, memberNumber);
--- . . . . . . . . //and so on
--- @param groupID number
--- @param memberNumber number
--- @return number
function PED.GET_PED_AS_GROUP_MEMBER(groupID, memberNumber) end
--- @param groupID number
--- @return number
function PED.GET_PED_AS_GROUP_LEADER(groupID) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_KEEP_TASK(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_ALLOW_MINOR_REACTIONS_AS_MISSION_PED(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.IS_PED_SWIMMING(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_SWIMMING_UNDER_WATER(ped) end
--- teleports ped to coords along with the vehicle ped is in
--- @param ped number
--- @param posX number
--- @param posY number
--- @param posZ number
function PED.SET_PED_COORDS_KEEP_VEHICLE(ped, posX, posY, posZ) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_DIES_IN_VEHICLE(ped, toggle) end
--- @param toggle boolean
function PED.SET_CREATE_RANDOM_COPS(toggle) end
--- @param toggle boolean
function PED.SET_CREATE_RANDOM_COPS_NOT_ON_SCENARIOS(toggle) end
--- @param toggle boolean
function PED.SET_CREATE_RANDOM_COPS_ON_SCENARIOS(toggle) end
--- @return boolean
function PED.CAN_CREATE_RANDOM_COPS() end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_AS_ENEMY(ped, toggle) end
--- @param ped number
--- @param p1 boolean
--- @param p2 boolean
function PED.SET_PED_CAN_SMASH_GLASS(ped, p1, p2) end
--- @param ped number
--- @return boolean
function PED.IS_PED_IN_ANY_TRAIN(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_GETTING_INTO_A_VEHICLE(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_TRYING_TO_ENTER_A_LOCKED_VEHICLE(ped) end
--- ped can not pull out a weapon when true
--- @param ped number
--- @param toggle boolean
function PED.SET_ENABLE_HANDCUFFS(ped, toggle) end
--- Used with SET_ENABLE_HANDCUFFS in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend.
--- @param ped number
--- @param toggle boolean
function PED.SET_ENABLE_BOUND_ANKLES(ped, toggle) end
--- Enables diving motion when underwater.
--- @param ped number
--- @param toggle boolean
function PED.SET_ENABLE_SCUBA(ped, toggle) end
--- Setting ped to true allows the ped to shoot "friendlies".
--- 
--- p2 set to true when toggle is also true seams to make peds permanently unable to aim at, even if you set p2 back to false.
--- 
--- p1 = false & p2 = false for unable to aim at.
--- p1 = true & p2 = false for able to aim at.
--- @param ped number
--- @param toggle boolean
--- @param p2 boolean
function PED.SET_CAN_ATTACK_FRIENDLY(ped, toggle, p2) end
--- Returns the ped's alertness (0-3).
--- 
--- Values :
--- 
--- 0 : Neutral
--- 1 : Heard something (gun shot, hit, etc)
--- 2 : Knows (the origin of the event)
--- 3 : Fully alerted (is facing the event?)
--- 
--- If the Ped does not exist, returns -1.
--- @param ped number
--- @return number
function PED.GET_PED_ALERTNESS(ped) end
--- value ranges from 0 to 3.
--- @param ped number
--- @param value number
function PED.SET_PED_ALERTNESS(ped, value) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_GET_OUT_UPSIDE_DOWN_VEHICLE(ped, toggle) end
--- transitionSpeed is the time in seconds it takes to transition from one movement clipset to another.	ransitionSpeed is usually 1.0f
--- 
--- List of movement clipsets:
--- Thanks to elsewhat for list.
--- 
--- "ANIM_GROUP_MOVE_BALLISTIC"
--- "ANIM_GROUP_MOVE_LEMAR_ALLEY"
--- "clipset@move@trash_fast_turn"
--- "FEMALE_FAST_RUNNER"
--- "missfbi4prepp1_garbageman"
--- "move_characters@franklin@fire"
--- "move_characters@Jimmy@slow@"
--- "move_characters@michael@fire"
--- "move_f@flee@a"
--- "move_f@scared"
--- "move_f@sexy@a"
--- "move_heist_lester"
--- "move_injured_generic"
--- "move_lester_CaneUp"
--- "move_m@bag"
--- "MOVE_M@BAIL_BOND_NOT_TAZERED"
--- "MOVE_M@BAIL_BOND_TAZERED"
--- "move_m@brave"
--- "move_m@casual@d"
--- "move_m@drunk@moderatedrunk"
--- "MOVE_M@DRUNK@MODERATEDRUNK"
--- "MOVE_M@DRUNK@MODERATEDRUNK_HEAD_UP"
--- "MOVE_M@DRUNK@SLIGHTLYDRUNK"
--- "MOVE_M@DRUNK@VERYDRUNK"
--- "move_m@fire"
--- "move_m@gangster@var_e"
--- "move_m@gangster@var_f"
--- "move_m@gangster@var_i"
--- "move_m@JOG@"
--- "MOVE_M@PRISON_GAURD"
--- "MOVE_P_M_ONE"
--- "MOVE_P_M_ONE_BRIEFCASE"
--- "move_p_m_zero_janitor"
--- "move_p_m_zero_slow"
--- "move_ped_bucket"
--- "move_ped_crouched"
--- "move_ped_mop"
--- "MOVE_M@FEMME@"
--- "MOVE_F@FEMME@"
--- "MOVE_M@GANGSTER@NG"
--- "MOVE_F@GANGSTER@NG"
--- "MOVE_M@POSH@"
--- "MOVE_F@POSH@"
--- "MOVE_M@TOUGH_GUY@"
--- "MOVE_F@TOUGH_GUY@"
--- 
--- ~ NotCrunchyTaco
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param ped number
--- @param clipSet string
--- @param transitionSpeed number
function PED.SET_PED_MOVEMENT_CLIPSET(ped, clipSet, transitionSpeed) end
--- If p1 is 0.0, I believe you are back to normal.
--- If p1 is 1.0, it looks like you can only rotate the ped, not walk.
--- 
--- Using the following code to reset back to normal
--- PED::RESET_PED_MOVEMENT_CLIPSET(PLAYER::PLAYER_PED_ID(), 0.0);
--- @param ped number
--- @param p1 number
function PED.RESET_PED_MOVEMENT_CLIPSET(ped, p1) end
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param ped number
--- @param clipSet string
function PED.SET_PED_STRAFE_CLIPSET(ped, clipSet) end
--- @param ped number
function PED.RESET_PED_STRAFE_CLIPSET(ped) end
--- @param ped number
--- @param clipSet string
function PED.SET_PED_WEAPON_MOVEMENT_CLIPSET(ped, clipSet) end
--- @param ped number
function PED.RESET_PED_WEAPON_MOVEMENT_CLIPSET(ped) end
--- @param ped number
--- @param clipset string
function PED.SET_PED_DRIVE_BY_CLIPSET_OVERRIDE(ped, clipset) end
--- @param ped number
function PED.CLEAR_PED_DRIVE_BY_CLIPSET_OVERRIDE(ped) end
--- Found in the b617d scripts:
--- PED::SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE(v_7, "trevor_heist_cover_2h");
--- @param ped number
--- @param p1 string
function PED.SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE(ped, p1) end
--- @param ped number
function PED.CLEAR_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE(ped) end
--- @param ped number
function PED.CLEAR_PED_FALL_UPPER_BODY_CLIPSET_OVERRIDE(ped) end
--- PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_PASSENGER"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT_REAR"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(l_95, MISC::GET_HASH_KEY("MISS_FAMILY2_JIMMY_BICYCLE"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(num3, MISC::GET_HASH_KEY("MISSFBI2_MICHAEL_DRIVEBY"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISS_ARMENIAN3_FRANKLIN_TENSE"));
--- PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISSFBI5_TREVOR_DRIVING"));
--- @param ped number
--- @param context number
function PED.SET_PED_IN_VEHICLE_CONTEXT(ped, context) end
--- @param ped number
function PED.RESET_PED_IN_VEHICLE_CONTEXT(ped) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animDict string
--- @param anim string
--- @return boolean
function PED.IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM(ped, animDict, anim) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param ped number
--- @param animDict string
--- @param animName string
--- @param p3 number
--- @param p4 boolean
function PED.SET_PED_ALTERNATE_WALK_ANIM(ped, animDict, animName, p3, p4) end
--- @param ped number
--- @param p1 number
function PED.CLEAR_PED_ALTERNATE_WALK_ANIM(ped, p1) end
--- stance:
--- 0 = idle
--- 1 = walk
--- 2 = running
--- 
--- p5 = usually set to true
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param ped number
--- @param stance number
--- @param animDictionary string
--- @param animationName string
--- @param p4 number
--- @param p5 boolean
function PED.SET_PED_ALTERNATE_MOVEMENT_ANIM(ped, stance, animDictionary, animationName, p4, p5) end
--- @param ped number
--- @param stance number
--- @param p2 number
function PED.CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(ped, stance, p2) end
--- From the scripts:
--- PED::SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(),
--- "ANIM_GROUP_GESTURE_MISS_FRA0");
--- PED::SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(),
--- "ANIM_GROUP_GESTURE_MISS_DocksSetup1");
--- @param ped number
--- @param animGroupGesture string
function PED.SET_PED_GESTURE_GROUP(ped, animGroupGesture) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
--- @param animName string
--- @param x number
--- @param y number
--- @param z number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param p8 number
--- @param p9 number
--- @return { x: number, y: number, z: number }
function PED.GET_ANIM_INITIAL_OFFSET_POSITION(animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
--- @param animName string
--- @param x number
--- @param y number
--- @param z number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param p8 number
--- @param p9 number
--- @return { x: number, y: number, z: number }
function PED.GET_ANIM_INITIAL_OFFSET_ROTATION(animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9) end
--- Ids
--- 0 - Head
--- 1 - Beard
--- 2 - Hair
--- 3 - Torso
--- 4 - Legs
--- 5 - Hands
--- 6 - Foot
--- 7 - ------
--- 8 - Accessories 1
--- 9 - Accessories 2
--- 10- Decals
--- 11 - Auxiliary parts for torso
--- @param ped number
--- @param componentId number
--- @return number
function PED.GET_PED_DRAWABLE_VARIATION(ped, componentId) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @return number
function PED.GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS(ped, componentId) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @return number
function PED.GET_PED_TEXTURE_VARIATION(ped, componentId) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @param drawableId number
--- @return number
function PED.GET_NUMBER_OF_PED_TEXTURE_VARIATIONS(ped, componentId, drawableId) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param propId number
--- @return number
function PED.GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS(ped, propId) end
--- Need to check behavior when drawableId = -1
--- 
--- - Doofy.Ass
--- Why this function doesn't work and return nill value?
--- GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(PLAYER.PLAYER_PED_ID(), 0, 5)
--- 
--- tick: scripts/addins/menu_execute.lua:51: attempt to call field 'GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS' (a nil value)
--- 
--- 
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param propId number
--- @param drawableId number
--- @return number
function PED.GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(ped, propId, drawableId) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @return number
function PED.GET_PED_PALETTE_VARIATION(ped, componentId) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function PED.GET_MP_OUTFIT_DATA_FROM_METADATA(p0, p1) end
--- @param p0 number
--- @return number
function PED.GET_FM_MALE_SHOP_PED_APPAREL_ITEM_INDEX(p0) end
--- @param p0 number
--- @return number
function PED.GET_FM_FEMALE_SHOP_PED_APPAREL_ITEM_INDEX(p0) end
--- Checks if the component variation is valid, this works great for randomizing components using loops.
--- 
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- 
--- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json
--- @param ped number
--- @param componentId number
--- @param drawableId number
--- @param textureId number
--- @return boolean
function PED.IS_PED_COMPONENT_VARIATION_VALID(ped, componentId, drawableId, textureId) end
--- paletteId: 0 to 3.
--- 
--- componentId:
--- enum ePedVarComp
--- {
--- PV_COMP_INVALID = -1,
--- PV_COMP_HEAD,
--- PV_COMP_BERD,
--- PV_COMP_HAIR,
--- PV_COMP_UPPR,
--- PV_COMP_LOWR,
--- PV_COMP_HAND,
--- PV_COMP_FEET,
--- PV_COMP_TEEF,
--- PV_COMP_ACCS,
--- PV_COMP_TASK,
--- PV_COMP_DECL,
--- PV_COMP_JBIB,
--- PV_COMP_MAX
--- };
--- 
--- Examples: https://gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- 
--- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json
--- @param ped number
--- @param componentId number
--- @param drawableId number
--- @param textureId number
--- @param paletteId number
function PED.SET_PED_COMPONENT_VARIATION(ped, componentId, drawableId, textureId, paletteId) end
--- p1 is always 0 in R* scripts.
--- 
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param p1 number
function PED.SET_PED_RANDOM_COMPONENT_VARIATION(ped, p1) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
function PED.SET_PED_RANDOM_PROPS(ped) end
--- Sets Ped Default Clothes
--- @param ped number
function PED.SET_PED_DEFAULT_COMPONENT_VARIATION(ped) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function PED.SET_PED_BLEND_FROM_PARENTS(ped, p1, p2, p3, p4) end
--- The "shape" parameters control the shape of the ped's face. The "skin" parameters control the skin tone. ShapeMix and skinMix control how much the first and second IDs contribute,(typically mother and father.) ThirdMix overrides the others in favor of the third IDs. IsParent is set for "children" of the player character's grandparents during old-gen character creation. It has unknown effect otherwise.
--- 
--- The IDs start at zero and go Male Non-DLC, Female Non-DLC, Male DLC, and Female DLC.
--- 
--- !!!Can someone add working example for this???
--- 
--- try this:
--- headBlendData headData;
--- GET_PED_HEAD_BLEND_DATA(PLAYER_PED_ID(), &headData);
--- 
--- SET_PED_HEAD_BLEND_DATA(PLAYER_PED_ID(), headData.shapeFirst, headData.shapeSecond, headData.shapeThird, headData.skinFirst, headData.skinSecond
--- , headData.skinThird, headData.shapeMix, headData.skinMix, headData.skinThird, 0);
--- 
--- 
--- For more info please refer to this topic.
--- gtaforums.com/topic/858970-all-gtao-face-ids-pedset-ped-head-blend-data-explained
--- @param ped number
--- @param shapeFirstID number
--- @param shapeSecondID number
--- @param shapeThirdID number
--- @param skinFirstID number
--- @param skinSecondID number
--- @param skinThirdID number
--- @param shapeMix number
--- @param skinMix number
--- @param thirdMix number
--- @param isParent boolean
function PED.SET_PED_HEAD_BLEND_DATA(ped, shapeFirstID, shapeSecondID, shapeThirdID, skinFirstID, skinSecondID, skinThirdID, shapeMix, skinMix, thirdMix, isParent) end
--- The pointer is to a padded struct that matches the arguments to SET_PED_HEAD_BLEND_DATA(...). There are 4 bytes of padding after each field.
--- pass this struct in the second parameter
--- struct headBlendData
--- {
--- int shapeFirst;
--- int padding1;
--- int shapeSecond;
--- int padding2;
--- int shapeThird;
--- int padding3;
--- int skinFirst;
--- int padding4;
--- int skinSecond;
--- int padding5;
--- int skinThird;
--- int padding6;
--- float shapeMix;
--- int padding7;
--- float skinMix;
--- int padding8;
--- float thirdMix;
--- int padding9;
--- bool isParent;
--- };
--- @param ped number
--- @param headBlendData number
--- @return boolean
function PED.GET_PED_HEAD_BLEND_DATA(ped, headBlendData) end
--- See SET_PED_HEAD_BLEND_DATA().
--- @param ped number
--- @param shapeMix number
--- @param skinMix number
--- @param thirdMix number
function PED.UPDATE_PED_HEAD_BLEND_DATA(ped, shapeMix, skinMix, thirdMix) end
--- Used for freemode (online) characters.
--- 
--- For some reason, the scripts use a rounded float for the index.
--- Indexes:
--- 1. black
--- 2. very light blue/green
--- 3. dark blue
--- 4. brown
--- 5. darker brown
--- 6. light brown
--- 7. blue
--- 8. light blue
--- 9. pink
--- 10. yellow
--- 11. purple
--- 12. black
--- 13. dark green
--- 14. light brown
--- 15. yellow/black pattern
--- 16. light colored spiral pattern
--- 17. shiny red
--- 18. shiny half blue/half red
--- 19. half black/half light blue
--- 20. white/red perimter
--- 21. green snake
--- 22. red snake
--- 23. dark blue snake
--- 24. dark yellow
--- 25. bright yellow
--- 26. all black
--- 28. red small pupil
--- 29. devil blue/black
--- 30. white small pupil
--- 31. glossed over
--- @param ped number
--- @param index number
function PED.SET_HEAD_BLEND_EYE_COLOR(ped, index) end
--- A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get.
--- @param ped number
--- @return number
function PED.GET_HEAD_BLEND_EYE_COLOR(ped) end
--- OverlayID ranges from 0 to 12, index from 0 to _GET_NUM_OVERLAY_VALUES(overlayID)-1, and opacity from 0.0 to 1.0.
--- 
--- overlayID       Part                  Index, to disable
--- 0               Blemishes             0 - 23, 255
--- 1               Facial Hair           0 - 28, 255
--- 2               Eyebrows              0 - 33, 255
--- 3               Ageing                0 - 14, 255
--- 4               Makeup                0 - 74, 255
--- 5               Blush                 0 - 6, 255
--- 6               Complexion            0 - 11, 255
--- 7               Sun Damage            0 - 10, 255
--- 8               Lipstick              0 - 9, 255
--- 9               Moles/Freckles        0 - 17, 255
--- 10              Chest Hair            0 - 16, 255
--- 11              Body Blemishes        0 - 11, 255
--- 12              Add Body Blemishes    0 - 1, 255
--- @param ped number
--- @param overlayID number
--- @param index number
--- @param opacity number
function PED.SET_PED_HEAD_OVERLAY(ped, overlayID, index, opacity) end
--- Likely a char, if that overlay is not set, e.i. "None" option, returns 255;
--- 
--- This might be the once removed native GET_PED_HEAD_OVERLAY.
--- @param ped number
--- @param overlayID number
--- @return number
function PED.GET_PED_HEAD_OVERLAY(ped, overlayID) end
--- @param overlayID number
--- @return number
function PED.GET_PED_HEAD_OVERLAY_NUM(overlayID) end
--- 
--- 
--- ColorType is 1 for eyebrows, beards, and chest hair; 2 for blush and lipstick; and 0 otherwise, though not called in those cases.
--- 
--- Called after SET_PED_HEAD_OVERLAY().
--- @param ped number
--- @param overlayID number
--- @param colorType number
--- @param colorID number
--- @param secondColorID number
function PED.SET_PED_HEAD_OVERLAY_TINT(ped, overlayID, colorType, colorID, secondColorID) end
--- @param ped number
--- @param colorID number
--- @param highlightColorID number
function PED.SET_PED_HAIR_TINT(ped, colorID, highlightColorID) end
--- @return number
function PED.GET_NUM_PED_HAIR_TINTS() end
--- @return number
function PED.GET_NUM_PED_MAKEUP_TINTS() end
--- Input: Haircolor index, value between 0 and 63 (inclusive).
--- Output: RGB values for the haircolor specified in the input.
--- 
--- This is used with the hair color swatches scaleform.
--- Use `GET_PED_MAKEUP_TINT_COLOR` to get the makeup colors.
--- @param hairColorIndex number
--- @param outR any
--- @param outG any
--- @param outB any
function PED.GET_PED_HAIR_TINT_COLOR(hairColorIndex, outR, outG, outB) end
--- Input: Makeup color index, value between 0 and 63 (inclusive).
--- Output: RGB values for the makeup color specified in the input.
--- 
--- This is used with the makeup color swatches scaleform.
--- Use `GET_PED_HAIR_TINT_COLOR` to get the hair colors.
--- @param makeupColorIndex number
--- @param outR any
--- @param outG any
--- @param outB any
function PED.GET_PED_MAKEUP_TINT_COLOR(makeupColorIndex, outR, outG, outB) end
--- @param colorId number
--- @return boolean
function PED.IS_PED_HAIR_TINT_FOR_CREATOR(colorId) end
--- @param colorId number
--- @return number
function PED.GET_DEFAULT_SECONDARY_TINT_FOR_CREATOR(colorId) end
--- @param colorId number
--- @return boolean
function PED.IS_PED_LIPSTICK_TINT_FOR_CREATOR(colorId) end
--- @param colorId number
--- @return boolean
function PED.IS_PED_BLUSH_TINT_FOR_CREATOR(colorId) end
--- @param colorID number
--- @return boolean
function PED.IS_PED_HAIR_TINT_FOR_BARBER(colorID) end
--- @param colorID number
--- @return number
function PED.GET_DEFAULT_SECONDARY_TINT_FOR_BARBER(colorID) end
--- @param colorID number
--- @return boolean
function PED.IS_PED_LIPSTICK_TINT_FOR_BARBER(colorID) end
--- @param colorID number
--- @return boolean
function PED.IS_PED_BLUSH_TINT_FOR_BARBER(colorID) end
--- @param colorId number
--- @return boolean
function PED.IS_PED_BLUSH_FACEPAINT_TINT_FOR_BARBER(colorId) end
--- @param modelHash number
--- @param drawableId number
--- @param textureId number
--- @return number
function PED.GET_TINT_INDEX_FOR_LAST_GEN_HAIR_TEXTURE(modelHash, drawableId, textureId) end
--- Sets the various freemode face features, e.g. nose length, chin shape. Scale ranges from -1.0 to 1.0.
--- 
--- 
--- 
--- 0 - Nose Width (Thin/Wide)
--- 
--- 1 - Nose Peak (Up/Down)
--- 
--- 2 - Nose Length (Long/Short)
--- 
--- 3 - Nose Bone Curveness (Crooked/Curved)
--- 
--- 4 - Nose Tip (Up/Down)
--- 
--- 5 - Nose Bone Twist (Left/Right)
--- 
--- 6 - Eyebrow (Up/Down)
--- 
--- 7 - Eyebrow (In/Out)
--- 
--- 8 - Cheek Bones (Up/Down)
--- 
--- 9 - Cheek Sideways Bone Size (In/Out)
--- 
--- 10 - Cheek Bones Width (Puffed/Gaunt)
--- 
--- 11 - Eye Opening (Both) (Wide/Squinted)
--- 
--- 12 - Lip Thickness (Both) (Fat/Thin)
--- 
--- 13 - Jaw Bone Width (Narrow/Wide)
--- 
--- 14 - Jaw Bone Shape (Round/Square)
--- 
--- 15 - Chin Bone (Up/Down)
--- 
--- 16 - Chin Bone Length (In/Out or Backward/Forward)
--- 
--- 17 - Chin Bone Shape (Pointed/Square)
--- 
--- 18 - Chin Hole (Chin Bum)
--- 
--- 19 - Neck Thickness (Thin/Thick)
--- @param ped number
--- @param index number
--- @param scale number
function PED.SET_PED_MICRO_MORPH(ped, index, scale) end
--- @param ped number
--- @return boolean
function PED.HAS_PED_HEAD_BLEND_FINISHED(ped) end
--- @param ped number
function PED.FINALIZE_HEAD_BLEND(ped) end
--- p4 seems to vary from 0 to 3.
--- Preview: https://gfycat.com/MaleRareAmazonparrot
--- @param ped number
--- @param r number
--- @param g number
--- @param b number
--- @param id number
function PED.SET_HEAD_BLEND_PALETTE_COLOR(ped, r, g, b, id) end
--- @param ped number
function PED.DISABLE_HEAD_BLEND_PALETTE_COLOR(ped) end
--- Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc.
--- 
--- Used when calling SET_PED_HEAD_BLEND_DATA.
--- @param type number
--- @return number
function PED.GET_PED_HEAD_BLEND_FIRST_INDEX(type) end
--- Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc.
--- @param type number
--- @return number
function PED.GET_PED_HEAD_BLEND_NUM_HEADS(type) end
--- from extreme3.c4
--- PED::SET_PED_PRELOAD_VARIATION_DATA(PLAYER::PLAYER_PED_ID(), 8, PED::GET_PED_DRAWABLE_VARIATION(PLAYER::PLAYER_PED_ID(), 8), PED::GET_PED_TEXTURE_VARIATION(PLAYER::PLAYER_PED_ID(), 8));
--- 
--- p1 is probably componentId
--- @param ped number
--- @param slot number
--- @param drawableId number
--- @param textureId number
--- @return number
function PED.SET_PED_PRELOAD_VARIATION_DATA(ped, slot, drawableId, textureId) end
--- @param ped number
--- @return boolean
function PED.HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(ped) end
--- @param ped number
function PED.RELEASE_PED_PRELOAD_VARIATION_DATA(ped) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @param drawableId number
--- @param TextureId number
--- @return number
function PED.SET_PED_PRELOAD_PROP_DATA(ped, componentId, drawableId, TextureId) end
--- @param ped number
--- @return boolean
function PED.HAS_PED_PRELOAD_PROP_DATA_FINISHED(ped) end
--- @param ped number
function PED.RELEASE_PED_PRELOAD_PROP_DATA(ped) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @param p2 number
--- @return number
function PED.GET_PED_PROP_INDEX(ped, componentId, p2) end
--- ComponentId can be set to various things based on what category you're wanting to set
--- enum PedPropsData
--- {
--- PED_PROP_HATS = 0,
--- PED_PROP_GLASSES = 1,
--- PED_PROP_EARS = 2,
--- PED_PROP_WATCHES = 3,
--- };
--- Usage: SET_PED_PROP_INDEX(playerPed, PED_PROP_HATS, GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS(playerPed, PED_PROP_HATS), GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(playerPed, PED_PROP_HATS, 0), TRUE);
--- 
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @param drawableId number
--- @param TextureId number
--- @param attach boolean
--- @param p5 number
function PED.SET_PED_PROP_INDEX(ped, componentId, drawableId, TextureId, attach, p5) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 boolean
function PED.KNOCK_OFF_PED_PROP(ped, p1, p2, p3, p4) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param propId number
--- @param p2 number
function PED.CLEAR_PED_PROP(ped, propId, p2) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param p1 number
function PED.CLEAR_ALL_PED_PROPS(ped, p1) end
--- @param ped number
function PED.DROP_AMBIENT_PROP(ped) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param componentId number
--- @return number
function PED.GET_PED_PROP_TEXTURE_INDEX(ped, componentId) end
--- @param ped number
function PED.CLEAR_PED_PARACHUTE_PACK_VARIATION(ped) end
--- This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models.
--- @param ped number
function PED.SET_PED_SCUBA_GEAR_VARIATION(ped) end
--- Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it.
--- @param ped number
function PED.CLEAR_PED_SCUBA_GEAR_VARIATION(ped) end
--- @param p0 number
--- @return boolean
function PED.IS_USING_PED_SCUBA_GEAR_VARIATION(p0) end
--- works with TASK::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS to make a ped completely oblivious to all events going on around him
--- @param ped number
--- @param toggle boolean
function PED.SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(ped, toggle) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param x number
--- @param y number
--- @param z number
function PED.SET_PED_BOUNDS_ORIENTATION(ped, p1, p2, x, y, z) end
--- PED::REGISTER_TARGET(l_216, PLAYER::PLAYER_PED_ID()); from re_prisonbreak.txt.
--- 
--- l_216 = RECSBRobber1
--- @param ped number
--- @param target number
function PED.REGISTER_TARGET(ped, target) end
--- Based on TASK_COMBAT_HATED_TARGETS_AROUND_PED, the parameters are likely similar (PedHandle, and area to attack in).
--- @param ped number
--- @param radius number
function PED.REGISTER_HATED_TARGETS_AROUND_PED(ped, radius) end
--- Gets a random ped in the x/y/zRadius near the x/y/z coordinates passed.
--- 
--- Ped Types:
--- Any = -1
--- Player = 1
--- Male = 4
--- Female = 5
--- Cop = 6
--- Human = 26
--- SWAT = 27
--- Animal = 28
--- Army = 29
--- @param x number
--- @param y number
--- @param z number
--- @param xRadius number
--- @param yRadius number
--- @param zRadius number
--- @param pedType number
--- @return number
function PED.GET_RANDOM_PED_AT_COORD(x, y, z, xRadius, yRadius, zRadius, pedType) end
--- Gets the closest ped in a radius.
--- 
--- Ped Types:
--- Any ped = -1
--- Player = 1
--- Male = 4
--- Female = 5
--- Cop = 6
--- Human = 26
--- SWAT = 27
--- Animal = 28
--- Army = 29
--- 
--- ------------------
--- P4 P5 P7 P8
--- 1  0  x  x  = return nearest walking Ped
--- 1  x  0  x  = return nearest walking Ped
--- x  1  1  x  = return Ped you are using
--- 0  0  x  x  = no effect
--- 0  x  0  x  = no effect
--- 
--- x = can be 1 or 0. Does not have any obvious changes.
--- 
--- This function does not return ped who is:
--- 1. Standing still
--- 2. Driving
--- 3. Fleeing
--- 4. Attacking
--- 
--- This function only work if the ped is:
--- 1. walking normally.
--- 2. waiting to cross a road.
--- 
--- Note: PED::GET_PED_NEARBY_PEDS works for more peds.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 boolean
--- @param p5 boolean
--- @param outPed number
--- @param p7 boolean
--- @param p8 boolean
--- @param pedType number
--- @return boolean
function PED.GET_CLOSEST_PED(x, y, z, radius, p4, p5, outPed, p7, p8, pedType) end
--- Sets a value indicating whether scenario peds should be returned by the next call to a command that returns peds. Eg. GET_CLOSEST_PED.
--- @param value boolean
function PED.SET_SCENARIO_PEDS_TO_BE_RETURNED_BY_NEXT_COMMAND(value) end
--- @param ped number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 boolean
--- @param p7 boolean
--- @param p8 number
--- @return boolean
function PED.GET_CAN_PED_BE_GRABBED_BY_SCRIPT(ped, p1, p2, p3, p4, p5, p6, p7, p8) end
--- Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0
--- @param driver number
--- @param modifier number
function PED.SET_DRIVER_RACING_MODIFIER(driver, modifier) end
--- The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all.
--- @param driver number
--- @param ability number
function PED.SET_DRIVER_ABILITY(driver, ability) end
--- range 0.0f - 1.0f
--- @param driver number
--- @param aggressiveness number
function PED.SET_DRIVER_AGGRESSIVENESS(driver, aggressiveness) end
--- Prevents the ped from going limp.
--- 
--- [Example: Can prevent peds from falling when standing on moving vehicles.]
--- @param ped number
--- @return boolean
function PED.CAN_PED_RAGDOLL(ped) end
--- p4/p5: Unused in TU27
--- Ragdoll Types:
--- **0**: CTaskNMRelax
--- **1**: CTaskNMScriptControl: Hardcoded not to work in networked environments.
--- **Else**: CTaskNMBalance
--- time1- Time(ms) Ped is in ragdoll mode; only applies to ragdoll types 0 and not 1.
--- 
--- time2- Unknown time, in milliseconds
--- 
--- ragdollType-
--- 0 : Normal ragdoll
--- 1 : Falls with stiff legs/body
--- 2 : Narrow leg stumble(may not fall)
--- 3 : Wide leg stumble(may not fall)
--- 
--- p4, p5, p6- No idea. In R*'s scripts they are usually either "true, true, false" or "false, false, false".
--- 
--- 
--- 
--- 
--- EDIT 3/11/16: unclear what 'mircoseconds' mean-- a microsecond is 1000x a ms, so time2 must be 1000x time1?  more testing needed.  -sob
--- 
--- Edit Mar 21, 2017: removed part about time2 being the microseconds version of time1. this just isn't correct. time2 is in milliseconds, and time1 and time2 don't seem to be connected in any way.
--- @param ped number
--- @param time1 number
--- @param time2 number
--- @param ragdollType number
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 boolean
--- @return boolean
function PED.SET_PED_TO_RAGDOLL(ped, time1, time2, ragdollType, p4, p5, p6) end
--- Return variable is never used in R*'s scripts.
--- 
--- Not sure what p2 does. It seems like it would be a time judging by it's usage in R*'s scripts, but didn't seem to affect anything in my testings.
--- 
--- enum eRagdollType
--- {
--- RD_MALE=0,
--- RD_FEMALE = 1,
--- RD_MALE_LARGE = 2,
--- RD_CUSTOM = 3,
--- }
--- 
--- x, y, and z are coordinates, most likely to where the ped will fall.
--- 
--- p8 to p13 are always 0f in R*'s scripts.
--- 
--- (Simplified) Example of the usage of the function from R*'s scripts:
--- ped::set_ped_to_ragdoll_with_fall(ped, 1500, 2000, 1, -entity::get_entity_forward_vector(ped), 1f, 0f, 0f, 0f, 0f, 0f, 0f);
--- 
--- @param ped number
--- @param time number
--- @param p2 number
--- @param ragdollType number
--- @param x number
--- @param y number
--- @param z number
--- @param velocity number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
--- @param p12 number
--- @param p13 number
--- @return boolean
function PED.SET_PED_TO_RAGDOLL_WITH_FALL(ped, time, p2, ragdollType, x, y, z, velocity, p8, p9, p10, p11, p12, p13) end
--- Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk.
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_RAGDOLL_ON_COLLISION(ped, toggle) end
--- If the ped handle passed through the parenthesis is in a ragdoll state this will return true.
--- @param ped number
--- @return boolean
function PED.IS_PED_RAGDOLL(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_RUNNING_RAGDOLL_TASK(ped) end
--- @param ped number
function PED.SET_PED_RAGDOLL_FORCE_FALL(ped) end
--- @param ped number
function PED.RESET_PED_RAGDOLL_TIMER(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_RAGDOLL(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.IS_PED_RUNNING_MELEE_TASK(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_RUNNING_MOBILE_PHONE_TASK(ped) end
--- @param ped number
--- @return boolean
function PED.IS_MOBILE_PHONE_TO_PED_EAR(ped) end
--- Works for both player and peds,
--- 
--- enum eRagdollBlockingFlags
--- {
--- RBF_BULLET_IMPACT = 0,
--- RBF_VEHICLE_IMPACT = 1,
--- RBF_FIRE = 2,
--- RBF_ELECTROCUTION = 3,
--- RBF_PLAYER_IMPACT = 4,
--- RBF_EXPLOSION = 5,0
--- RBF_IMPACT_OBJECT = 6,
--- RBF_MELEE = 7,
--- RBF_RUBBER_BULLET = 8,
--- RBF_FALLING = 9,
--- RBF_WATER_JET = 10,
--- RBF_DROWNING = 11,
--- _0x9F52E2C4 = 12,
--- RBF_PLAYER_BUMP = 13,
--- RBF_PLAYER_RAGDOLL_BUMP = 14,
--- RBF_PED_RAGDOLL_BUMP = 15,
--- RBF_VEHICLE_GRAB = 16,
--- RBF_SMOKE_GRENADE = 17,
--- };
--- 
--- 
--- @param ped number
--- @param blockingFlag number
function PED.SET_RAGDOLL_BLOCKING_FLAGS(ped, blockingFlag) end
--- See SET_RAGDOLL_BLOCKING_FLAGS for flags
--- @param ped number
--- @param blockingFlag number
function PED.CLEAR_RAGDOLL_BLOCKING_FLAGS(ped, blockingFlag) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 boolean
--- @param p9 boolean
function PED.SET_PED_ANGLED_DEFENSIVE_AREA(ped, p1, p2, p3, p4, p5, p6, p7, p8, p9) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p5 boolean
--- @param p6 boolean
function PED.SET_PED_SPHERE_DEFENSIVE_AREA(ped, x, y, z, radius, p5, p6) end
--- @param ped number
--- @param target number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param radius number
--- @param p6 boolean
function PED.SET_PED_DEFENSIVE_SPHERE_ATTACHED_TO_PED(ped, target, xOffset, yOffset, zOffset, radius, p6) end
--- @param ped number
--- @param target number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param radius number
--- @param p6 boolean
function PED.SET_PED_DEFENSIVE_SPHERE_ATTACHED_TO_VEHICLE(ped, target, xOffset, yOffset, zOffset, radius, p6) end
--- @param ped number
--- @param attachPed number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 boolean
--- @param p10 boolean
function PED.SET_PED_DEFENSIVE_AREA_ATTACHED_TO_PED(ped, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 boolean
function PED.SET_PED_DEFENSIVE_AREA_DIRECTION(ped, p1, p2, p3, p4) end
--- Ped will no longer get angry when you stay near him.
--- @param ped number
--- @param toggle boolean
function PED.REMOVE_PED_DEFENSIVE_AREA(ped, toggle) end
--- @param ped number
--- @param p1 boolean
--- @return { x: number, y: number, z: number }
function PED.GET_PED_DEFENSIVE_AREA_POSITION(ped, p1) end
--- @param ped number
--- @param p1 boolean
--- @return boolean
function PED.IS_PED_DEFENSIVE_AREA_ACTIVE(ped, p1) end
--- @param ped number
--- @param itemSet number
function PED.SET_PED_PREFERRED_COVER_SET(ped, itemSet) end
--- @param ped number
function PED.REMOVE_PED_PREFERRED_COVER_SET(ped) end
--- It will revive/cure the injured ped. The condition is ped must not be dead.
--- 
--- Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100).
--- 
--- This function is well suited there.
--- @param ped number
function PED.REVIVE_INJURED_PED(ped) end
--- This function will simply bring the dead person back to life.
--- 
--- Try not to use it alone, since using this function alone, will make peds fall through ground in hell(well for the most of the times).
--- 
--- Instead, before calling this function, you may want to declare the position, where your Resurrected ped to be spawn at.(For instance, Around 2 floats of Player's current position.)
--- 
--- Also, disabling any assigned task immediately helped in the number of scenarios, where If you want peds to perform certain decided tasks.
--- @param ped number
function PED.RESURRECT_PED(ped) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- 
--- *untested but char *name could also be a hash for a localized string
--- @param ped number
--- @param name string
function PED.SET_PED_NAME_DEBUG(ped, name) end
--- Gets the offset the specified ped has moved since the previous tick.
--- 
--- If worldSpace is false, the returned offset is relative to the ped. That is, if the ped has moved 1 meter right and 5 meters forward, it'll return 1,5,0.
--- 
--- If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0.
--- @param ped number
--- @param worldSpace boolean
--- @return { x: number, y: number, z: number }
function PED.GET_PED_EXTRACTED_DISPLACEMENT(ped, worldSpace) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_DIES_WHEN_INJURED(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_ENABLE_WEAPON_BLOCKING(ped, toggle) end
--- p1 was always 1 (true).
--- 
--- Kicks the ped from the current vehicle and keeps the rendering-focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle.
--- @param ped number
--- @param p1 boolean
function PED.SPECIAL_FUNCTION_DO_NOT_USE(ped, p1) end
--- @param ped number
function PED.RESET_PED_VISIBLE_DAMAGE(ped) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function PED.APPLY_PED_BLOOD_DAMAGE_BY_ZONE(ped, p1, p2, p3, p4) end
--- woundTypes:
--- - soak_splat
--- - wound_sheet
--- - BulletSmall
--- - BulletLarge
--- - ShotgunSmall
--- - ShotgunSmallMonolithic
--- - ShotgunLarge
--- - ShotgunLargeMonolithic
--- - NonFatalHeadshot
--- - stab
--- - BasicSlash
--- - Scripted_Ped_Splash_Back
--- - BackSplash
--- @param ped number
--- @param boneIndex number
--- @param xRot number
--- @param yRot number
--- @param zRot number
--- @param woundType string
function PED.APPLY_PED_BLOOD(ped, boneIndex, xRot, yRot, zRot, woundType) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 string
function PED.APPLY_PED_BLOOD_BY_ZONE(ped, p1, p2, p3, p4) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 string
function PED.APPLY_PED_BLOOD_SPECIFIC(ped, p1, p2, p3, p4, p5, p6, p7, p8) end
--- enum eDamageZone
--- {
--- DZ_Torso = 0,
--- DZ_Head,
--- DZ_LeftArm,
--- DZ_RightArm,
--- DZ_LeftLeg,
--- DZ_RightLeg,
--- };
--- 
--- Decal Names:
--- scar
--- blushing
--- cs_flush_anger
--- cs_flush_anger_face
--- bruise
--- bruise_large
--- herpes
--- ArmorBullet
--- basic_dirt_cloth
--- basic_dirt_skin
--- cs_trev1_dirt
--- 
--- APPLY_PED_DAMAGE_DECAL(ped, 1, 0.5f, 0.513f, 0f, 1f, unk, 0, 0, "blushing");
--- @param ped number
--- @param damageZone number
--- @param xOffset number
--- @param yOffset number
--- @param heading number
--- @param scale number
--- @param alpha number
--- @param variation number
--- @param fadeIn boolean
--- @param decalName string
function PED.APPLY_PED_DAMAGE_DECAL(ped, damageZone, xOffset, yOffset, heading, scale, alpha, variation, fadeIn, decalName) end
--- Damage Packs:
--- 
--- "SCR_TrevorTreeBang"
--- "HOSPITAL_0"
--- "HOSPITAL_1"
--- "HOSPITAL_2"
--- "HOSPITAL_3"
--- "HOSPITAL_4"
--- "HOSPITAL_5"
--- "HOSPITAL_6"
--- "HOSPITAL_7"
--- "HOSPITAL_8"
--- "HOSPITAL_9"
--- "SCR_Dumpster"
--- "BigHitByVehicle"
--- "SCR_Finale_Michael_Face"
--- "SCR_Franklin_finb"
--- "SCR_Finale_Michael"
--- "SCR_Franklin_finb2"
--- "Explosion_Med"
--- "SCR_Torture"
--- "SCR_TracySplash"
--- "Skin_Melee_0"
--- 
--- Additional damage packs:
--- 
--- gist.github.com/alexguirre/f3f47f75ddcf617f416f3c8a55ae2227
--- Full list of ped damage packs by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedDamagePacks.json
--- @param ped number
--- @param damagePack string
--- @param damage number
--- @param mult number
function PED.APPLY_PED_DAMAGE_PACK(ped, damagePack, damage, mult) end
--- @param ped number
function PED.CLEAR_PED_BLOOD_DAMAGE(ped) end
--- Somehow related to changing ped's clothes.
--- @param ped number
--- @param p1 number
function PED.CLEAR_PED_BLOOD_DAMAGE_BY_ZONE(ped, p1) end
--- @param ped number
--- @param p1 number
--- @param p2 boolean
function PED.HIDE_PED_BLOOD_DAMAGE_BY_ZONE(ped, p1, p2) end
--- p1: from 0 to 5 in the b617d scripts.
--- p2: "blushing" and "ALL" found in the b617d scripts.
--- @param ped number
--- @param p1 number
--- @param p2 string
function PED.CLEAR_PED_DAMAGE_DECAL_BY_ZONE(ped, p1, p2) end
--- @param ped number
--- @return number
function PED.GET_PED_DECORATIONS_STATE(ped) end
--- @param ped number
--- @param p1 boolean
function PED.MARK_PED_DECORATIONS_AS_CLONED_FROM_LOCAL_PLAYER(ped, p1) end
--- It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference.
--- @param ped number
function PED.CLEAR_PED_WETNESS(ped) end
--- It adds the wetness level to the player clothing/outfit. As if player just got out from water surface.
--- 
--- 
--- @param ped number
--- @param height number
function PED.SET_PED_WETNESS_HEIGHT(ped, height) end
--- combined with PED::SET_PED_WETNESS_HEIGHT(), this native makes the ped drenched in water up to the height specified in the other function
--- @param ped number
function PED.SET_PED_WETNESS_ENABLED_THIS_FRAME(ped) end
--- @param ped number
--- @param wetLevel number
function PED.SET_PED_WETNESS(ped, wetLevel) end
--- @param ped number
function PED.CLEAR_PED_ENV_DIRT(ped) end
--- Sweat is set to 100.0 or 0.0 in the decompiled scripts.
--- @param ped number
--- @param sweat number
function PED.SET_PED_SWEAT(ped, sweat) end
--- Applies an Item from a PedDecorationCollection to a ped. These include tattoos and shirt decals.
--- 
--- collection - PedDecorationCollection filename hash
--- overlay - Item name hash
--- 
--- Example:
--- Entry inside "mpbeach_overlays.xml" -
--- <Item>
--- <uvPos x="0.500000" y="0.500000" />
--- <scale x="0.600000" y="0.500000" />
--- <rotation value="0.000000" />
--- <nameHash>FM_Hair_Fuzz</nameHash>
--- <txdHash>mp_hair_fuzz</txdHash>
--- <txtHash>mp_hair_fuzz</txtHash>
--- <zone>ZONE_HEAD</zone>
--- <type>TYPE_TATTOO</type>
--- <faction>FM</faction>
--- <garment>All</garment>
--- <gender>GENDER_DONTCARE</gender>
--- <award />
--- <awardLevel />
--- </Item>
--- 
--- Code:
--- PED::ADD_PED_DECORATION_FROM_HASHES(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("mpbeach_overlays"), MISC::GET_HASH_KEY("fm_hair_fuzz"))
--- 
--- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json
--- @param ped number
--- @param collection number
--- @param overlay number
function PED.ADD_PED_DECORATION_FROM_HASHES(ped, collection, overlay) end
--- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json
--- @param ped number
--- @param collection number
--- @param overlay number
function PED.ADD_PED_DECORATION_FROM_HASHES_IN_CORONA(ped, collection, overlay) end
--- Returns the zoneID for the overlay if it is a member of collection.
--- enum ePedDecorationZone
--- {
--- ZONE_TORSO = 0,
--- ZONE_HEAD = 1,
--- ZONE_LEFT_ARM = 2,
--- ZONE_RIGHT_ARM = 3,
--- ZONE_LEFT_LEG = 4,
--- ZONE_RIGHT_LEG = 5,
--- ZONE_MEDALS = 6,
--- ZONE_INVALID = 7
--- };
--- 
--- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json
--- @param collection number
--- @param overlay number
--- @return number
function PED.GET_PED_DECORATION_ZONE_FROM_HASHES(collection, overlay) end
--- @param ped number
function PED.CLEAR_PED_DECORATIONS(ped) end
--- @param ped number
function PED.CLEAR_PED_DECORATIONS_LEAVE_SCARS(ped) end
--- Despite this function's name, it simply returns whether the specified handle is a Ped.
--- @param ped number
--- @return boolean
function PED.WAS_PED_SKELETON_UPDATED(ped) end
--- Gets the position of the specified bone of the specified ped.
--- 
--- ped: The ped to get the position of a bone from.
--- boneId: The ID of the bone to get the position from. This is NOT the index.
--- offsetX: The X-component of the offset to add to the position relative to the bone's rotation.
--- offsetY: The Y-component of the offset to add to the position relative to the bone's rotation.
--- offsetZ: The Z-component of the offset to add to the position relative to the bone's rotation.
--- @param ped number
--- @param boneId number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @return { x: number, y: number, z: number }
function PED.GET_PED_BONE_COORDS(ped, boneId, offsetX, offsetY, offsetZ) end
--- Creates a new NaturalMotion message.
--- 
--- startImmediately: If set to true, the character will perform the message the moment it receives it by GIVE_PED_NM_MESSAGE. If false, the Ped will get the message but won't perform it yet. While it's a boolean value, if negative, the message will not be initialized.
--- messageId: The ID of the NaturalMotion message.
--- 
--- If a message already exists, this function does nothing. A message exists until the point it has been successfully dispatched by GIVE_PED_NM_MESSAGE.
--- @param startImmediately boolean
--- @param messageId number
function PED.CREATE_NM_MESSAGE(startImmediately, messageId) end
--- Sends the message that was created by a call to CREATE_NM_MESSAGE to the specified Ped.
--- 
--- If a message hasn't been created already, this function does nothing.
--- If the Ped is not ragdolled with Euphoria enabled, this function does nothing.
--- The following call can be used to ragdoll the Ped with Euphoria enabled: SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0);
--- 
--- Call order:
--- SET_PED_TO_RAGDOLL
--- CREATE_NM_MESSAGE
--- GIVE_PED_NM_MESSAGE
--- 
--- Multiple messages can be chained. Eg. to make the ped stagger and swing his arms around, the following calls can be made:
--- SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0);
--- CREATE_NM_MESSAGE(true, 0); // stopAllBehaviours - Stop all other behaviours, in case the Ped is already doing some Euphoria stuff.
--- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped.
--- CREATE_NM_MESSAGE(true, 1151); // staggerFall - Attempt to walk while falling.
--- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped.
--- CREATE_NM_MESSAGE(true, 372); // armsWindmill - Swing arms around.
--- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped.
--- @param ped number
function PED.GIVE_PED_NM_MESSAGE(ped) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 boolean
--- @param p7 boolean
--- @param p8 boolean
--- @param p9 boolean
--- @param p10 number
--- @return number
function PED.ADD_SCENARIO_BLOCKING_AREA(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10) end
function PED.REMOVE_SCENARIO_BLOCKING_AREAS() end
--- @param p0 number
--- @param p1 boolean
function PED.REMOVE_SCENARIO_BLOCKING_AREA(p0, p1) end
--- @param x number
--- @param y number
--- @param z number
--- @param range number
--- @param p4 number
function PED.SET_SCENARIO_PEDS_SPAWN_IN_SPHERE_AREA(x, y, z, range, p4) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return boolean
function PED.DOES_SCENARIO_BLOCKING_AREA_EXISTS(x1, y1, z1, x2, y2, z2) end
--- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json
--- @param ped number
--- @param scenario string
--- @return boolean
function PED.IS_PED_USING_SCENARIO(ped, scenario) end
--- @param ped number
--- @return boolean
function PED.IS_PED_USING_ANY_SCENARIO(ped) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function PED.SET_PED_PANIC_EXIT_SCENARIO(p0, p1, p2, p3) end
--- @param ped number
--- @param toggle boolean
function PED.TOGGLE_SCENARIO_PED_COWER_IN_PLACE(ped, toggle) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function PED.TRIGGER_PED_SCENARIO_PANICEXITTOFLEE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function PED.SET_PED_SHOULD_PLAY_DIRECTED_NORMAL_SCENARIO_EXIT(p0, p1, p2, p3) end
--- @param ped number
function PED.SET_PED_SHOULD_PLAY_NORMAL_SCENARIO_EXIT(ped) end
--- @param ped number
function PED.SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(ped) end
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @return boolean
function PED.SET_PED_SHOULD_PLAY_FLEE_SCENARIO_EXIT(ped, p1, p2, p3) end
--- @param ped number
--- @param p1 boolean
function PED.SET_PED_SHOULD_IGNORE_SCENARIO_EXIT_COLLISION_CHECKS(ped, p1) end
--- @param p0 number
--- @param p1 boolean
function PED.SET_PED_SHOULD_IGNORE_SCENARIO_NAV_CHECKS(p0, p1) end
--- @param p0 number
--- @param p1 boolean
function PED.SET_PED_SHOULD_PROBE_FOR_SCENARIO_EXITS_IN_ONE_FRAME(p0, p1) end
--- @param p0 number
--- @return boolean
function PED.IS_PED_GESTURING(p0) end
--- @param ped number
function PED.RESET_FACIAL_IDLE_ANIM(ped) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animName string
--- @param animDict string
function PED.PLAY_FACIAL_ANIM(ped, animName, animDict) end
--- Clipsets:
--- facials@gen_female@base
--- facials@gen_male@base
--- facials@p_m_zero@base
--- 
--- Typically followed with SET_FACIAL_IDLE_ANIM_OVERRIDE:
--- mood_drunk_1
--- mood_stressed_1
--- mood_happy_1
--- mood_talking_1
--- 
--- @param ped number
--- @param animDict string
function PED.SET_FACIAL_CLIPSET(ped, animDict) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animName string
--- @param animDict string
function PED.SET_FACIAL_IDLE_ANIM_OVERRIDE(ped, animName, animDict) end
--- @param ped number
function PED.CLEAR_FACIAL_IDLE_ANIM_OVERRIDE(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_PLAY_GESTURE_ANIMS(ped, toggle) end
--- p2 usually 0
--- @param ped number
--- @param toggle boolean
--- @param p2 boolean
function PED.SET_PED_CAN_PLAY_VISEME_ANIMS(ped, toggle, p2) end
--- @param ped number
--- @param p1 boolean
function PED.SET_PED_IS_IGNORED_BY_AUTO_OPEN_DOORS(ped, p1) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_PLAY_AMBIENT_ANIMS(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS(ped, toggle) end
--- @param ped number
function PED.TRIGGER_IDLE_ANIMATION_ON_PED(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_ARM_IK(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_HEAD_IK(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_LEG_IK(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_TORSO_IK(ped, toggle) end
--- @param ped number
--- @param p1 boolean
function PED.SET_PED_CAN_TORSO_REACT_IK(ped, p1) end
--- @param ped number
--- @param p1 boolean
function PED.SET_PED_CAN_TORSO_VEHICLE_IK(ped, p1) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(ped, toggle) end
--- @param ped1 number
--- @param ped2 number
--- @return boolean
function PED.IS_PED_HEADTRACKING_PED(ped1, ped2) end
--- @param ped number
--- @param entity number
--- @return boolean
function PED.IS_PED_HEADTRACKING_ENTITY(ped, entity) end
--- This is only called once in the scripts.
--- 
--- sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1);
--- sub_1CA8("WORLD_HUMAN_SMOKING", 2);
--- PED::SET_PED_PRIMARY_LOOKAT(getElem(3, &l_34, 4), PLAYER::PLAYER_PED_ID());
--- @param ped number
--- @param lookAt number
function PED.SET_PED_PRIMARY_LOOKAT(ped, lookAt) end
--- @param p0 number
--- @param p1 number
function PED.SET_PED_CLOTH_PIN_FRAMES(p0, p1) end
--- @param p0 number
--- @param p1 number
function PED.SET_PED_CLOTH_PACKAGE_INDEX(p0, p1) end
--- @param p0 number
--- @param p1 boolean
function PED.SET_PED_CLOTH_PRONE(p0, p1) end
--- @param ped number
--- @param flagId number
--- @param value boolean
function PED.SET_PED_CONFIG_FLAG(ped, flagId, value) end
--- PED::SET_PED_RESET_FLAG(PLAYER::PLAYER_PED_ID(), 240, 1);
--- Known values:
--- PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)*
--- @param ped number
--- @param flagId number
--- @param doReset boolean
function PED.SET_PED_RESET_FLAG(ped, flagId, doReset) end
--- See SET_PED_CONFIG_FLAG
--- @param ped number
--- @param flagId number
--- @param p2 boolean
--- @return boolean
function PED.GET_PED_CONFIG_FLAG(ped, flagId, p2) end
--- @param ped number
--- @param flagId number
--- @return boolean
function PED.GET_PED_RESET_FLAG(ped, flagId) end
--- @param ped number
--- @param index number
function PED.SET_PED_GROUP_MEMBER_PASSENGER_INDEX(ped, index) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_EVASIVE_DIVE(ped, toggle) end
--- Presumably returns the Entity that the Ped is currently diving out of the way of.
--- 
--- var num3;
--- if (PED::IS_PED_EVASIVE_DIVING(A_0, &num3) != 0)
--- if (ENTITY::IS_ENTITY_A_VEHICLE(num3) != 0)
--- @param ped number
--- @param evadingEntity number
--- @return boolean
function PED.IS_PED_EVASIVE_DIVING(ped, evadingEntity) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param toggle boolean
function PED.SET_PED_SHOOTS_AT_COORD(ped, x, y, z, toggle) end
--- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json
--- @param modelHash number
--- @param toggle boolean
function PED.SET_PED_MODEL_IS_SUPPRESSED(modelHash, toggle) end
function PED.STOP_ANY_PED_MODEL_BEING_SUPPRESSED() end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_BE_TARGETED_WHEN_INJURED(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_GENERATES_DEAD_BODY_EVENTS(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.BLOCK_PED_FROM_GENERATING_DEAD_BODY_EVENTS_WHEN_DEAD(ped, toggle) end
--- @param p0 number
--- @param p1 number
function PED.SET_PED_WILL_ONLY_ATTACK_WANTED_PLAYER(p0, p1) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(ped, toggle) end
--- PoliceMotorcycleHelmet   1024
--- RegularMotorcycleHelmet   4096
--- FiremanHelmet 16384
--- PilotHeadset  32768
--- PilotHelmet   65536
--- --
--- p2 is generally 4096 or 16384 in the scripts. p1 varies between 1 and 0.
--- @param ped number
--- @param cannotRemove boolean
--- @param helmetFlag number
--- @param textureIndex number
function PED.GIVE_PED_HELMET(ped, cannotRemove, helmetFlag, textureIndex) end
--- @param ped number
--- @param instantly boolean
function PED.REMOVE_PED_HELMET(ped, instantly) end
--- @param ped number
--- @return boolean
function PED.IS_PED_TAKING_OFF_HELMET(ped) end
--- @param ped number
--- @param canWearHelmet boolean
function PED.SET_PED_HELMET(ped, canWearHelmet) end
--- @param ped number
--- @param helmetFlag number
function PED.SET_PED_HELMET_FLAG(ped, helmetFlag) end
--- List of component/props ID
--- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html
--- @param ped number
--- @param propIndex number
--- @param p2 boolean
function PED.SET_PED_HELMET_PROP_INDEX(ped, propIndex, p2) end
--- @param ped number
--- @param p1 boolean
--- @param p2 number
--- @param p3 number
function PED.SET_PED_HELMET_VISOR_PROP_INDICES(ped, p1, p2, p3) end
--- @param ped number
--- @return boolean
function PED.IS_PED_HELMET_VISOR_UP(ped) end
--- @param ped number
--- @param textureIndex number
function PED.SET_PED_HELMET_TEXTURE_INDEX(ped, textureIndex) end
--- Returns true if the ped passed through the parenthesis is wearing a helmet.
--- @param ped number
--- @return boolean
function PED.IS_PED_WEARING_HELMET(ped) end
--- @param ped number
function PED.CLEAR_PED_STORED_HAT_PROP(ped) end
--- @param ped number
--- @return number
function PED.GET_PED_HELMET_STORED_HAT_PROP_INDEX(ped) end
--- @param ped number
--- @return number
function PED.GET_PED_HELMET_STORED_HAT_TEX_INDEX(ped) end
--- @param p0 number
--- @return boolean
function PED.IS_CURRENT_HEAD_PROP_A_HELMET(p0) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_TO_LOAD_COVER(ped, toggle) end
--- It simply makes the said ped to cower behind cover object(wall, desk, car)
--- 
--- Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations.
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_COWER_IN_COVER(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_PEEK_IN_COVER(ped, toggle) end
--- This native does absolutely nothing, just a nullsub
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_PLAYS_HEAD_ON_HORN_ANIM_WHEN_DIES_IN_VEHICLE(ped, toggle) end
--- "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1
--- @param ped number
--- @param mode number
function PED.SET_PED_LEG_IK_MODE(ped, mode) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_MOTION_BLUR(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_SWITCH_WEAPON(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_DIES_INSTANTLY_IN_WATER(ped, toggle) end
--- Only appears in lamar1 script.
--- @param ped number
--- @param p1 number
function PED.SET_LADDER_CLIMB_INPUT_STATE(ped, p1) end
--- @param ped number
function PED.STOP_PED_WEAPON_FIRING_WHEN_DROPPED(ped) end
--- @param ped number
--- @param p1 number
function PED.SET_SCRIPTED_ANIM_SEAT_OFFSET(ped, p1) end
--- enum eCombatMovement // 0x4F456B61
--- {
--- CM_Stationary,
--- CM_Defensive,
--- CM_WillAdvance,
--- CM_WillRetreat
--- };
--- @param ped number
--- @param combatMovement number
function PED.SET_PED_COMBAT_MOVEMENT(ped, combatMovement) end
--- See SET_PED_COMBAT_MOVEMENT
--- @param ped number
--- @return number
function PED.GET_PED_COMBAT_MOVEMENT(ped) end
--- enum eCombatAbility // 0xE793438C
--- {
--- CA_Poor,
--- CA_Average,
--- CA_Professional,
--- CA_NumTypes
--- };
--- @param ped number
--- @param abilityLevel number
function PED.SET_PED_COMBAT_ABILITY(ped, abilityLevel) end
--- enum eCombatRange // 0xB69160F5
--- {
--- CR_Near,
--- CR_Medium,
--- CR_Far,
--- CR_VeryFar,
--- CR_NumRanges
--- };
--- @param ped number
--- @param combatRange number
function PED.SET_PED_COMBAT_RANGE(ped, combatRange) end
--- See SET_PED_COMBAT_RANGE
--- @param ped number
--- @return number
function PED.GET_PED_COMBAT_RANGE(ped) end
--- enum eCombatAttributes // 0x0E8E7201
--- {
--- BF_CanUseCover = 0,
--- BF_CanUseVehicles = 1,
--- BF_CanDoDrivebys = 2,
--- BF_CanLeaveVehicle = 3,
--- BF_CanUseDynamicStrafeDecisions = 4,
--- BF_AlwaysFight = 5,
--- BF_0x66BB9FCC = 6,
--- BF_0x6837DA41 = 7,
--- BF_0xB4A13A5A = 8,
--- BF_0xEE326AAD = 9,
--- BF_0x7DF2CCFA = 10,
--- BF_0x0036D422 = 11,
--- BF_BlindFireWhenInCover = 12,
--- BF_Aggressive = 13,
--- BF_CanInvestigate = 14,
--- BF_HasRadio = 15,
--- BF_0x6BDE28D1 = 16,
--- BF_AlwaysFlee = 17,
--- BF_0x7852797D = 18,
--- BF_0x33497B95 = 19,
--- BF_CanTauntInVehicle = 20,
--- BF_CanChaseTargetOnFoot = 21,
--- BF_WillDragInjuredPedsToSafety = 22,
--- BF_0xCD7168B8 = 23,
--- BF_UseProximityFiringRate = 24,
--- BF_0x48F914F8 = 25,
--- BF_0x2EA543D0 = 26,
--- BF_PerfectAccuracy = 27,
--- BF_CanUseFrustratedAdvance = 28,
--- BF_0x3D131AC1 = 29,
--- BF_0x3AD95F27 = 30,
--- BF_MaintainMinDistanceToTarget = 31,
--- BF_0xEAD68AD2 = 32,
--- BF_0xA206C2E0 = 33,
--- BF_CanUsePeekingVariations = 34,
--- BF_0xA5715184 = 35,
--- BF_0xD5265533 = 36,
--- BF_0x2B84C2BF = 37,
--- BF_DisableBulletReactions = 38,
--- BF_CanBust = 39,
--- BF_0xAA525726 = 40,
--- BF_CanCommandeerVehicles = 41,
--- BF_CanFlank = 42,
--- BF_SwitchToAdvanceIfCantFindCover = 43,
--- BF_SwitchToDefensiveIfInCover = 44,
--- BF_0xEB4786A0 = 45,
--- BF_CanFightArmedPedsWhenNotArmed = 46,
--- BF_0xA08E9402 = 47,
--- BF_0x952EAD7D = 48,
--- BF_UseEnemyAccuracyScaling = 49,
--- BF_CanCharge = 50,
--- BF_0xDA8C2BD3 = 51,
--- BF_0x6562F017 = 52,
--- BF_0xA2C3D53B = 53,
--- BF_AlwaysEquipBestWeapon = 54,
--- BF_CanSeeUnderwaterPeds = 55,
--- BF_0xF619486B = 56,
--- BF_0x61EB63A3 = 57,
--- BF_DisableFleeFromCombat = 58,
--- BF_0x8976D12B = 59,
--- BF_CanThrowSmokeGrenade = 60,
--- BF_NonMissionPedsFleeFromThisPedUnlessArmed = 61,
--- BF_0x5452A10C = 62,
--- BF_FleesFromInvincibleOpponents = 63,
--- BF_DisableBlockFromPursueDuringVehicleChase = 64,
--- BF_DisableSpinOutDuringVehicleChase = 65,
--- BF_DisableCruiseInFrontDuringBlockDuringVehicleChase = 66,
--- BF_0x0B404731 = 67,
--- BF_DisableReactToBuddyShot = 68,
--- BF_0x7FFD6AEB = 69,
--- BF_0x51F4AEF8 = 70,
--- BF_PermitChargeBeyondDefensiveArea = 71,
--- BF_0x63E0A8E2 = 72,
--- BF_0xDF974436 = 73,
--- BF_0x556C080B = 74,
--- BF_0xA4D50035 = 75,
--- BF_SetDisableShoutTargetPositionOnCombatStart = 76,
--- BF_DisableRespondedToThreatBroadcast = 77,
--- BF_0xCBB01765 = 78,
--- BF_0x4F862ED4 = 79,
--- BF_0xEF9C7C40 = 80,
--- BF_0xE51B494F = 81,
--- BF_0x054D0199 = 82,
--- BF_0xD36BCE94 = 83,
--- BF_0xFB11F690 = 84,
--- BF_0xD208A9AD = 85,
--- BF_AllowDogFighting = 86,
--- BF_0x07A6E531 = 87,
--- BF_0x34F9317B = 88,
--- BF_0x4240F5A9 = 89,
--- BF_0xEE129DBD = 90,
--- BF_0x053AEAD9 = 91
--- };
--- @param ped number
--- @param attributeId number
--- @param enabled boolean
function PED.SET_PED_COMBAT_ATTRIBUTES(ped, attributeId, enabled) end
--- enum eTargetLossResponseType
--- {
--- TLR_ExitTask,
--- TLR_NeverLoseTarget,
--- TLR_SearchForTarget
--- };
--- @param ped number
--- @param responseType number
function PED.SET_PED_TARGET_LOSS_RESPONSE(ped, responseType) end
--- @param ped number
--- @return boolean
function PED.IS_PED_PERFORMING_MELEE_ACTION(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_PERFORMING_STEALTH_KILL(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_PERFORMING_A_COUNTER_ATTACK(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_BEING_STEALTH_KILLED(ped) end
--- @param ped number
--- @return number
function PED.GET_MELEE_TARGET_FOR_PED(ped) end
--- @param ped number
--- @return boolean
function PED.WAS_PED_KILLED_BY_STEALTH(ped) end
--- @param ped number
--- @return boolean
function PED.WAS_PED_KILLED_BY_TAKEDOWN(ped) end
--- @param ped number
--- @return boolean
function PED.WAS_PED_KNOCKED_OUT(ped) end
--- bit 1 (0x2) = use vehicle
--- bit 15 (0x8000) = force cower
--- @param ped number
--- @param attributeFlags number
--- @param enable boolean
function PED.SET_PED_FLEE_ATTRIBUTES(ped, attributeFlags, enable) end
--- p1: Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts.
--- @param ped number
--- @param p1 string
function PED.SET_PED_COWER_HASH(ped, p1) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_STEERS_AROUND_DEAD_BODIES(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_STEERS_AROUND_PEDS(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_STEERS_AROUND_OBJECTS(ped, toggle) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_STEERS_AROUND_VEHICLES(ped, toggle) end
--- @param p0 number
--- @param p1 boolean
function PED.SET_PED_IS_AVOIDED_BY_OTHERS(p0, p1) end
--- @param ped number
function PED.SET_PED_INCREASED_AVOIDANCE_RADIUS(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_BLOCKS_PATHING_WHEN_DEAD(ped, toggle) end
--- @param p0 number
function PED.SET_PED_NO_TIME_DELAY_BEFORE_SHOT(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function PED.IS_ANY_PED_NEAR_POINT(x, y, z, radius) end
--- @param ped number
--- @param p1 boolean
--- @param p2 boolean
function PED.FORCE_PED_AI_AND_ANIMATION_UPDATE(ped, p1, p2) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 number
--- @return boolean
function PED.IS_PED_HEADING_TOWARDS_POSITION(ped, x, y, z, p4) end
--- @param ped number
function PED.REQUEST_PED_VISIBILITY_TRACKING(ped) end
--- @param ped number
--- @param p1 boolean
function PED.REQUEST_PED_VEHICLE_VISIBILITY_TRACKING(ped, p1) end
--- @param ped number
--- @param p1 boolean
function PED.REQUEST_PED_RESTRICTED_VEHICLE_VISIBILITY_TRACKING(ped, p1) end
--- @param ped number
--- @param p1 boolean
function PED.REQUEST_PED_USE_SMALL_BBOX_VISIBILITY_TRACKING(ped, p1) end
--- returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance.
--- 
--- 
--- Target needs to be tracked.. won't work otherwise.
--- @param ped number
--- @return boolean
function PED.IS_TRACKED_PED_VISIBLE(ped) end
--- @param ped number
--- @return number
function PED.GET_TRACKED_PED_PIXELCOUNT(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_TRACKED(ped) end
--- @param ped number
--- @param eventId number
--- @return boolean
function PED.HAS_PED_RECEIVED_EVENT(ped, eventId) end
--- @param ped1 number
--- @param ped2 number
--- @return boolean
function PED.CAN_PED_SEE_HATED_PED(ped1, ped2) end
--- @param ped number
--- @param p1 any
--- @return boolean
function PED.CAN_PED_SHUFFLE_TO_OR_FROM_TURRET_SEAT(ped, p1) end
--- @param ped number
--- @param p1 any
--- @return boolean
function PED.CAN_PED_SHUFFLE_TO_OR_FROM_EXTRA_SEAT(ped, p1) end
--- no bone= -1
--- 
--- boneIds:
--- SKEL_ROOT = 0x0,
--- SKEL_Pelvis = 0x2e28,
--- SKEL_L_Thigh = 0xe39f,
--- SKEL_L_Calf = 0xf9bb,
--- SKEL_L_Foot = 0x3779,
--- SKEL_L_Toe0 = 0x83c,
--- IK_L_Foot = 0xfedd,
--- PH_L_Foot = 0xe175,
--- MH_L_Knee = 0xb3fe,
--- SKEL_R_Thigh = 0xca72,
--- SKEL_R_Calf = 0x9000,
--- SKEL_R_Foot = 0xcc4d,
--- SKEL_R_Toe0 = 0x512d,
--- IK_R_Foot = 0x8aae,
--- PH_R_Foot = 0x60e6,
--- MH_R_Knee = 0x3fcf,
--- RB_L_ThighRoll = 0x5c57,
--- RB_R_ThighRoll = 0x192a,
--- SKEL_Spine_Root = 0xe0fd,
--- SKEL_Spine0 = 0x5c01,
--- SKEL_Spine1 = 0x60f0,
--- SKEL_Spine2 = 0x60f1,
--- SKEL_Spine3 = 0x60f2,
--- SKEL_L_Clavicle = 0xfcd9,
--- SKEL_L_UpperArm = 0xb1c5,
--- SKEL_L_Forearm = 0xeeeb,
--- SKEL_L_Hand = 0x49d9,
--- SKEL_L_Finger00 = 0x67f2,
--- SKEL_L_Finger01 = 0xff9,
--- SKEL_L_Finger02 = 0xffa,
--- SKEL_L_Finger10 = 0x67f3,
--- SKEL_L_Finger11 = 0x1049,
--- SKEL_L_Finger12 = 0x104a,
--- SKEL_L_Finger20 = 0x67f4,
--- SKEL_L_Finger21 = 0x1059,
--- SKEL_L_Finger22 = 0x105a,
--- SKEL_L_Finger30 = 0x67f5,
--- SKEL_L_Finger31 = 0x1029,
--- SKEL_L_Finger32 = 0x102a,
--- SKEL_L_Finger40 = 0x67f6,
--- SKEL_L_Finger41 = 0x1039,
--- SKEL_L_Finger42 = 0x103a,
--- PH_L_Hand = 0xeb95,
--- IK_L_Hand = 0x8cbd,
--- RB_L_ForeArmRoll = 0xee4f,
--- RB_L_ArmRoll = 0x1470,
--- MH_L_Elbow = 0x58b7,
--- SKEL_R_Clavicle = 0x29d2,
--- SKEL_R_UpperArm = 0x9d4d,
--- SKEL_R_Forearm = 0x6e5c,
--- SKEL_R_Hand = 0xdead,
--- SKEL_R_Finger00 = 0xe5f2,
--- SKEL_R_Finger01 = 0xfa10,
--- SKEL_R_Finger02 = 0xfa11,
--- SKEL_R_Finger10 = 0xe5f3,
--- SKEL_R_Finger11 = 0xfa60,
--- SKEL_R_Finger12 = 0xfa61,
--- SKEL_R_Finger20 = 0xe5f4,
--- SKEL_R_Finger21 = 0xfa70,
--- SKEL_R_Finger22 = 0xfa71,
--- SKEL_R_Finger30 = 0xe5f5,
--- SKEL_R_Finger31 = 0xfa40,
--- SKEL_R_Finger32 = 0xfa41,
--- SKEL_R_Finger40 = 0xe5f6,
--- SKEL_R_Finger41 = 0xfa50,
--- SKEL_R_Finger42 = 0xfa51,
--- PH_R_Hand = 0x6f06,
--- IK_R_Hand = 0x188e,
--- RB_R_ForeArmRoll = 0xab22,
--- RB_R_ArmRoll = 0x90ff,
--- MH_R_Elbow = 0xbb0,
--- SKEL_Neck_1 = 0x9995,
--- SKEL_Head = 0x796e,
--- IK_Head = 0x322c,
--- FACIAL_facialRoot = 0xfe2c,
--- FB_L_Brow_Out_000 = 0xe3db,
--- FB_L_Lid_Upper_000 = 0xb2b6,
--- FB_L_Eye_000 = 0x62ac,
--- FB_L_CheekBone_000 = 0x542e,
--- FB_L_Lip_Corner_000 = 0x74ac,
--- FB_R_Lid_Upper_000 = 0xaa10,
--- FB_R_Eye_000 = 0x6b52,
--- FB_R_CheekBone_000 = 0x4b88,
--- FB_R_Brow_Out_000 = 0x54c,
--- FB_R_Lip_Corner_000 = 0x2ba6,
--- FB_Brow_Centre_000 = 0x9149,
--- FB_UpperLipRoot_000 = 0x4ed2,
--- FB_UpperLip_000 = 0xf18f,
--- FB_L_Lip_Top_000 = 0x4f37,
--- FB_R_Lip_Top_000 = 0x4537,
--- FB_Jaw_000 = 0xb4a0,
--- FB_LowerLipRoot_000 = 0x4324,
--- FB_LowerLip_000 = 0x508f,
--- FB_L_Lip_Bot_000 = 0xb93b,
--- FB_R_Lip_Bot_000 = 0xc33b,
--- FB_Tongue_000 = 0xb987,
--- RB_Neck_1 = 0x8b93,
--- IK_Root = 0xdd1c
--- @param ped number
--- @param boneId number
--- @return number
function PED.GET_PED_BONE_INDEX(ped, boneId) end
--- @param ped number
--- @param bone number
--- @return number
function PED.GET_PED_RAGDOLL_BONE_INDEX(ped, bone) end
--- Values look to be between 0.0 and 1.0
--- From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0
--- 
--- You are correct, just looked in IDA it breaks from the function if it's less than 0.0f or greater than 1.0f.
--- @param ped number
--- @param value number
function PED.SET_PED_ENVEFF_SCALE(ped, value) end
--- @param ped number
--- @return number
function PED.GET_PED_ENVEFF_SCALE(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_ENABLE_PED_ENVEFF_SCALE(ped, toggle) end
--- In agency_heist3b.c4, its like this 90% of the time:
--- 
--- PED::SET_PED_ENVEFF_CPV_ADD(ped, 0.099);
--- PED::SET_PED_ENVEFF_SCALE(ped, 1.0);
--- PED::SET_PED_ENVEFF_CPV_ADD(ped, 87, 81, 68);
--- PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1);
--- 
--- and its like this 10% of the time:
--- 
--- PED::SET_PED_ENVEFF_CPV_ADD(ped, 0.2);
--- PED::SET_PED_ENVEFF_SCALE(ped, 0.65);
--- PED::SET_PED_ENVEFF_COLOR_MODULATOR(ped, 74, 69, 60);
--- PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1);
--- @param ped number
--- @param p1 number
function PED.SET_PED_ENVEFF_CPV_ADD(ped, p1) end
--- Something related to the environmental effects natives.
--- In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SET_PED_ENVEFF_SCALE is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60}
--- @param ped number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function PED.SET_PED_ENVEFF_COLOR_MODULATOR(ped, p1, p2, p3) end
--- intensity: 0.0f - 1.0f
--- 
--- This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing.
--- @param ped number
--- @param intensity number
function PED.SET_PED_EMISSIVE_SCALE(ped, intensity) end
--- Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped.
--- Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity.
--- @param ped number
--- @return number
function PED.GET_PED_EMISSIVE_SCALE(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_SHADER_READY(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_ENABLE_CREW_EMBLEM(ped, toggle) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
--- @param p1 number
function PED.REQUEST_RAGDOLL_BOUNDS_UPDATE(p0, p1) end
--- Enable/disable ped shadow (ambient occlusion). https://gfycat.com/thankfulesteemedgecko
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_AO_BLOB_RENDERING(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.IS_PED_SHELTERED(ped) end
--- p6 always 2 (but it doesnt seem to matter...)
--- 
--- roll and pitch 0
--- yaw to Ped.rotation
--- @param x number
--- @param y number
--- @param z number
--- @param roll number
--- @param pitch number
--- @param yaw number
--- @param p6 number
--- @return number
function PED.CREATE_SYNCHRONIZED_SCENE(x, y, z, roll, pitch, yaw, p6) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param object number
--- @return number
function PED.CREATE_SYNCHRONIZED_SCENE_AT_MAP_OBJECT(x, y, z, radius, object) end
--- Returns true if a synchronized scene is running
--- @param sceneId number
--- @return boolean
function PED.IS_SYNCHRONIZED_SCENE_RUNNING(sceneId) end
--- @param sceneID number
--- @param x number
--- @param y number
--- @param z number
--- @param roll number
--- @param pitch number
--- @param yaw number
--- @param p7 boolean
function PED.SET_SYNCHRONIZED_SCENE_ORIGIN(sceneID, x, y, z, roll, pitch, yaw, p7) end
--- @param sceneID number
--- @param phase number
function PED.SET_SYNCHRONIZED_SCENE_PHASE(sceneID, phase) end
--- @param sceneID number
--- @return number
function PED.GET_SYNCHRONIZED_SCENE_PHASE(sceneID) end
--- @param sceneID number
--- @param rate number
function PED.SET_SYNCHRONIZED_SCENE_RATE(sceneID, rate) end
--- @param sceneID number
--- @return number
function PED.GET_SYNCHRONIZED_SCENE_RATE(sceneID) end
--- @param sceneID number
--- @param toggle boolean
function PED.SET_SYNCHRONIZED_SCENE_LOOPED(sceneID, toggle) end
--- @param sceneID number
--- @return boolean
function PED.IS_SYNCHRONIZED_SCENE_LOOPED(sceneID) end
--- @param sceneID number
--- @param toggle boolean
function PED.SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(sceneID, toggle) end
--- @param sceneID number
--- @return boolean
function PED.IS_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(sceneID) end
--- @param sceneID number
--- @param entity number
--- @param boneIndex number
function PED.ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneID, entity, boneIndex) end
--- @param sceneID number
function PED.DETACH_SYNCHRONIZED_SCENE(sceneID) end
--- @param scene number
function PED.TAKE_OWNERSHIP_OF_SYNCHRONIZED_SCENE(scene) end
--- Regarding p2, p3 and p4: Most common is 0, 0, 0); followed by 0, 1, 0); and 1, 1, 0); in R* scripts. p4 is very rarely something other than 0.
--- 
--- enum eMotionState // 0x92A659FE
--- {
--- MotionState_None = 0xEE717723,
--- MotionState_Idle = 0x9072A713,
--- MotionState_Walk = 0xD827C3DB,
--- MotionState_Run = 0xFFF7E7A4,
--- MotionState_Sprint = 0xBD8817DB,
--- MotionState_Crouch_Idle = 0x43FB099E,
--- MotionState_Crouch_Walk = 0x08C31A98,
--- MotionState_Crouch_Run = 0x3593CF09,
--- MotionState_DoNothing = 0x0EC17E58,
--- MotionState_AnimatedVelocity = 0x551AAC43,
--- MotionState_InVehicle = 0x94D9D58D,
--- MotionState_Aiming = 0x3F67C6AF,
--- MotionState_Diving_Idle = 0x4848CDED,
--- MotionState_Diving_Swim = 0x916E828C,
--- MotionState_Swimming_TreadWater = 0xD1BF11C7,
--- MotionState_Dead = 0x0DBB071C,
--- MotionState_Stealth_Idle = 0x422D7A25,
--- MotionState_Stealth_Walk = 0x042AB6A2,
--- MotionState_Stealth_Run = 0xFB0B79E1,
--- MotionState_Parachuting = 0xBAC0F10B,
--- MotionState_ActionMode_Idle = 0xDA40A0DC,
--- MotionState_ActionMode_Walk = 0xD2905EA7,
--- MotionState_ActionMode_Run = 0x31BADE14,
--- MotionState_Jetpack = 0x535E6A5E
--- };
--- @param ped number
--- @param motionStateHash number
--- @param p2 boolean
--- @param p3 number
--- @param p4 boolean
--- @return boolean
function PED.FORCE_PED_MOTION_STATE(ped, motionStateHash, p2, p3, p4) end
--- @param ped number
--- @param speedX any
--- @param speedY any
--- @return boolean
function PED.GET_PED_CURRENT_MOVE_BLEND_RATIO(ped, speedX, speedY) end
--- @param ped number
--- @param value number
function PED.SET_PED_MAX_MOVE_BLEND_RATIO(ped, value) end
--- @param ped number
--- @param value number
function PED.SET_PED_MIN_MOVE_BLEND_RATIO(ped, value) end
--- Min: 0.00
--- Max: 10.00
--- 
--- Can be used in combo with fast run cheat.
--- 
--- When value is set to 10.00:
--- Sprinting without fast run cheat: 66 m/s
--- Sprinting with fast run cheat: 77 m/s
--- 
--- Needs to be looped!
--- 
--- Note: According to IDA for the Xbox360 xex, when they check bgt they seem to have the min to 0.0f, but the max set to 1.15f not 10.0f.
--- @param ped number
--- @param value number
function PED.SET_PED_MOVE_RATE_OVERRIDE(ped, value) end
--- @param ped number
--- @param p1 number
function PED.SET_PED_MOVE_RATE_IN_WATER_OVERRIDE(ped, p1) end
--- Checks if the specified sexiness flag is set
--- 
--- enum eSexinessFlags
--- {
--- SF_JEER_AT_HOT_PED = 0,
--- SF_HURRIEDFEMALES_SEXY = 1,
--- SF_HOT_PERSON = 2,
--- };
--- @param ped number
--- @param sexinessFlag number
--- @return boolean
function PED.PED_HAS_SEXINESS_FLAG_SET(ped, sexinessFlag) end
--- Returns size of array, passed into the second variable.
--- 
--- See below for usage information.
--- 
--- This function actually requires a struct, where the first value is the maximum number of elements to return.  Here is a sample of how I was able to get it to work correctly, without yet knowing the struct format.
--- 
--- //Setup the array
--- const int numElements = 10;
--- const int arrSize = numElements * 2 + 2;
--- Any veh[arrSize];
--- //0 index is the size of the array
--- veh[0] = numElements;
--- 
--- int count = PED::GET_PED_NEARBY_VEHICLES(PLAYER::PLAYER_PED_ID(), veh);
--- 
--- if (veh != NULL)
--- {
--- //Simple loop to go through results
--- for (int i = 0; i < count; i++)
--- {
--- int offsettedID = i * 2 + 2;
--- //Make sure it exists
--- if (veh[offsettedID] != NULL && ENTITY::DOES_ENTITY_EXIST(veh[offsettedID]))
--- {
--- //Do something
--- }
--- }
--- }
--- @param ped number
--- @param sizeAndVehs number
--- @return number
function PED.GET_PED_NEARBY_VEHICLES(ped, sizeAndVehs) end
--- sizeAndPeds - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument.
--- ignore - ped type to ignore
--- 
--- Return value is the number of peds found and added to the array passed.
--- 
--- -----------------------------------
--- 
--- To make this work in most menu bases at least in C++ do it like so,
--- 
--- Formatted Example: https://pastebin.com/D8an9wwp
--- 
--- -----------------------------------
--- 
--- Example: gtaforums.com/topic/789788-function-args-to-pedget-ped-nearby-peds/?p=1067386687
--- @param ped number
--- @param sizeAndPeds number
--- @param ignore number
--- @return number
function PED.GET_PED_NEARBY_PEDS(ped, sizeAndPeds, ignore) end
--- @param ped number
--- @return boolean
function PED.HAVE_ALL_STREAMING_REQUESTS_COMPLETED(ped) end
--- @param ped number
--- @return boolean
function PED.IS_PED_USING_ACTION_MODE(ped) end
--- p2 is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION".
--- @param ped number
--- @param p1 boolean
--- @param p2 number
--- @param action string
function PED.SET_PED_USING_ACTION_MODE(ped, p1, p2, action) end
--- name: "MP_FEMALE_ACTION" found multiple times in the b617d scripts.
--- @param ped number
--- @param name string
function PED.SET_MOVEMENT_MODE_OVERRIDE(ped, name) end
--- Overrides the ped's collision capsule radius for the current tick.
--- Must be called every tick to be effective.
--- 
--- Setting this to 0.001 will allow warping through some objects.
--- @param ped number
--- @param value number
function PED.SET_PED_CAPSULE(ped, value) end
--- gtaforums.com/topic/885580-ped-headshotmugshot-txd/
--- @param ped number
--- @return number
function PED.REGISTER_PEDHEADSHOT(ped) end
--- @param ped number
--- @return number
function PED.REGISTER_PEDHEADSHOT_HIRES(ped) end
--- Similar to REGISTER_PEDHEADSHOT but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png
--- @param ped number
--- @return number
function PED.REGISTER_PEDHEADSHOT_TRANSPARENT(ped) end
--- gtaforums.com/topic/885580-ped-headshotmugshot-txd/
--- @param id number
function PED.UNREGISTER_PEDHEADSHOT(id) end
--- gtaforums.com/topic/885580-ped-headshotmugshot-txd/
--- @param id number
--- @return boolean
function PED.IS_PEDHEADSHOT_VALID(id) end
--- gtaforums.com/topic/885580-ped-headshotmugshot-txd/
--- @param id number
--- @return boolean
function PED.IS_PEDHEADSHOT_READY(id) end
--- gtaforums.com/topic/885580-ped-headshotmugshot-txd/
--- @param id number
--- @return string
function PED.GET_PEDHEADSHOT_TXD_STRING(id) end
--- @param id number
--- @return boolean
function PED.REQUEST_PEDHEADSHOT_IMG_UPLOAD(id) end
--- @param id number
function PED.RELEASE_PEDHEADSHOT_IMG_UPLOAD(id) end
--- @return boolean
function PED.IS_PEDHEADSHOT_IMG_UPLOAD_AVAILABLE() end
--- @return boolean
function PED.HAS_PEDHEADSHOT_IMG_UPLOAD_FAILED() end
--- @return boolean
function PED.HAS_PEDHEADSHOT_IMG_UPLOAD_SUCCEEDED() end
--- @param ped number
--- @param heatScale number
function PED.SET_PED_HEATSCALE_OVERRIDE(ped, heatScale) end
--- @param ped number
function PED.DISABLE_PED_HEATSCALE_OVERRIDE(ped) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param interiorFlags number
--- @param scale number
--- @param duration number
function PED.SPAWNPOINTS_START_SEARCH(p0, p1, p2, p3, p4, interiorFlags, scale, duration) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param width number
--- @param interiorFlags number
--- @param scale number
--- @param duration number
function PED.SPAWNPOINTS_START_SEARCH_IN_ANGLED_AREA(x1, y1, z1, x2, y2, z2, width, interiorFlags, scale, duration) end
function PED.SPAWNPOINTS_CANCEL_SEARCH() end
--- @return boolean
function PED.SPAWNPOINTS_IS_SEARCH_ACTIVE() end
--- @return boolean
function PED.SPAWNPOINTS_IS_SEARCH_COMPLETE() end
--- @return boolean
function PED.SPAWNPOINTS_IS_SEARCH_FAILED() end
--- @return number
function PED.SPAWNPOINTS_GET_NUM_SEARCH_RESULTS() end
--- @param randomInt number
--- @param x any
--- @param y any
--- @param z any
function PED.SPAWNPOINTS_GET_SEARCH_RESULT(randomInt, x, y, z) end
--- @param p0 number
--- @param p1 any
function PED.SPAWNPOINTS_GET_SEARCH_RESULT_FLAGS(p0, p1) end
--- @param ped number
--- @param ikIndex number
--- @param entityLookAt number
--- @param boneLookAt number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param p7 number
--- @param blendInDuration number
--- @param blendOutDuration number
function PED.SET_IK_TARGET(ped, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration) end
--- @param ped number
function PED.FORCE_INSTANT_LEG_IK_SETUP(ped) end
--- @param asset string
function PED.REQUEST_ACTION_MODE_ASSET(asset) end
--- @param asset string
--- @return boolean
function PED.HAS_ACTION_MODE_ASSET_LOADED(asset) end
--- @param asset string
function PED.REMOVE_ACTION_MODE_ASSET(asset) end
--- @param asset string
function PED.REQUEST_STEALTH_MODE_ASSET(asset) end
--- @param asset string
--- @return boolean
function PED.HAS_STEALTH_MODE_ASSET_LOADED(asset) end
--- @param asset string
function PED.REMOVE_STEALTH_MODE_ASSET(asset) end
--- @param ped number
--- @param multiplier number
function PED.SET_PED_LOD_MULTIPLIER(ped, multiplier) end
--- @param ped number
--- @param toggle boolean
--- @param p2 number
function PED.SET_PED_CAN_LOSE_PROPS_ON_DAMAGE(ped, toggle, p2) end
--- @param ped number
--- @param toggle boolean
function PED.SET_FORCE_FOOTSTEP_UPDATE(ped, toggle) end
--- @param ped number
--- @param p1 boolean
--- @param type number
--- @param p3 number
function PED.SET_FORCE_STEP_TYPE(ped, p1, type, p3) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function PED.IS_ANY_HOSTILE_PED_NEAR_POINT(ped, x, y, z, radius) end
--- Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles.
--- @param ped number
--- @param toggle boolean
function PED.SET_PED_CAN_PLAY_IN_CAR_IDLES(ped, toggle) end
--- @param ped number
--- @param targetPed number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @return boolean
function PED.IS_TARGET_PED_IN_PERCEPTION_AREA(ped, targetPed, p2, p3, p4, p5) end
--- Min and max are usually 100.0 and 200.0
--- @param x number
--- @param y number
--- @param z number
--- @param min number
--- @param max number
function PED.SET_POP_CONTROL_SPHERE_THIS_FRAME(x, y, z, min, max) end
--- @param ped number
function PED.FORCE_ZERO_MASS_IN_COLLISIONS(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_DISABLE_HIGH_FALL_DEATH(ped, toggle) end
--- @param p0 number
--- @param p1 number
function PED.SET_PED_PHONE_PALETTE_IDX(p0, p1) end
--- @param ped number
--- @param value number
function PED.SET_PED_STEER_BIAS(ped, value) end
--- @param Ped number
--- @return boolean
function PED.IS_PED_SWITCHING_WEAPON(Ped) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function PED.SET_PED_TREATED_AS_FRIENDLY(p0, p1, p2) end
--- @param ped number
function PED.SET_DISABLE_PED_MAP_COLLISION(ped) end
--- @param ped number
--- @param toggle boolean
function PED.ENABLE_MP_LIGHT(ped, toggle) end
--- @param ped number
--- @return boolean
function PED.GET_MP_LIGHT_ENABLED(ped) end
--- @param ped number
function PED.CLEAR_COVER_POINT_FOR_PED(ped) end
--- @param ped number
--- @param toggle boolean
function PED.SET_ALLOW_STUNT_JUMP_CAMERA(ped, toggle) end

PHYSICS = {}

--- Creates a rope at the specific position, that extends in the specified direction when not attached to any entities.
--- __
--- 
--- Add_Rope(pos.x,pos.y,pos.z,0.0,0.0,0.0,20.0,4,20.0,1.0,0.0,false,false,false,5.0,false,NULL)
--- 
--- When attached, Position<vector> does not matter
--- When attached, Angle<vector> does not matter
--- 
--- Rope Type:
--- 4 and bellow is a thick rope
--- 5 and up are small metal wires
--- 0 crashes the game
--- 
--- Max_length - Rope is forced to this length, generally best to keep this the same as your rope length.
--- 
--- windingSpeed - Speed the Rope is being winded, using native START_ROPE_WINDING. Set positive for winding and negative for unwinding.
--- 
--- Rigid - If max length is zero, and this is set to false the rope will become rigid (it will force a specific distance, what ever length is, between the objects).
--- 
--- breakable - Whether or not shooting the rope will break it.
--- 
--- unkPtr - unknown ptr, always 0 in orig scripts
--- __
--- 
--- Lengths can be calculated like so:
--- 
--- float distance = abs(x1 - x2) + abs(y1 - y2) + abs(z1 - z2); // Rope length
--- 
--- 
--- NOTES:
--- 
--- Rope does NOT interact with anything you attach it to, in some cases it make interact with the world AFTER it breaks (seems to occur if you set the type to -1).
--- 
--- Rope will sometimes contract and fall to the ground like you'd expect it to, but since it doesn't interact with the world the effect is just jaring.
--- @param x number
--- @param y number
--- @param z number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param length number
--- @param ropeType number
--- @param maxLength number
--- @param minLength number
--- @param windingSpeed number
--- @param p11 boolean
--- @param p12 boolean
--- @param rigid boolean
--- @param p14 number
--- @param breakWhenShot boolean
--- @param unkPtr number
--- @return number
function PHYSICS.ADD_ROPE(x, y, z, rotX, rotY, rotZ, length, ropeType, maxLength, minLength, windingSpeed, p11, p12, rigid, p14, breakWhenShot, unkPtr) end
--- @param ropeId any
function PHYSICS.DELETE_ROPE(ropeId) end
--- @param ropeId number
function PHYSICS.DELETE_CHILD_ROPE(ropeId) end
--- @param ropeId any
--- @return boolean
function PHYSICS.DOES_ROPE_EXIST(ropeId) end
--- @param ropeId any
--- @param p1 boolean
function PHYSICS.ROPE_DRAW_ENABLED(ropeId, p1) end
--- @param ropeId any
--- @param toggle boolean
function PHYSICS.ROPE_DRAW_SHADOW_ENABLED(ropeId, toggle) end
--- Rope presets can be found in the gamefiles. One example is "ropeFamily3", it is NOT a hash but rather a string.
--- @param ropeId number
--- @param rope_preset string
function PHYSICS.LOAD_ROPE_DATA(ropeId, rope_preset) end
--- @param ropeId number
--- @param vertex number
--- @param x number
--- @param y number
--- @param z number
function PHYSICS.PIN_ROPE_VERTEX(ropeId, vertex, x, y, z) end
--- @param ropeId number
--- @param vertex number
function PHYSICS.UNPIN_ROPE_VERTEX(ropeId, vertex) end
--- @param ropeId number
--- @return number
function PHYSICS.GET_ROPE_VERTEX_COUNT(ropeId) end
--- Attaches entity 1 to entity 2.
--- @param ropeId number
--- @param ent1 number
--- @param ent2 number
--- @param ent1_x number
--- @param ent1_y number
--- @param ent1_z number
--- @param ent2_x number
--- @param ent2_y number
--- @param ent2_z number
--- @param length number
--- @param p10 boolean
--- @param p11 boolean
--- @param p12 number
--- @param p13 number
function PHYSICS.ATTACH_ENTITIES_TO_ROPE(ropeId, ent1, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, p12, p13) end
--- The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin.
--- @param ropeId number
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
--- @param p5 boolean
function PHYSICS.ATTACH_ROPE_TO_ENTITY(ropeId, entity, x, y, z, p5) end
--- @param ropeId number
--- @param entity number
function PHYSICS.DETACH_ROPE_FROM_ENTITY(ropeId, entity) end
--- @param ropeId number
function PHYSICS.ROPE_SET_UPDATE_PINVERTS(ropeId) end
--- @param ropeId number
--- @param p1 number
function PHYSICS.ROPE_SET_UPDATE_ORDER(ropeId, p1) end
--- @param ropeId number
--- @param p1 boolean
function PHYSICS.ROPE_SET_SMOOTH_REELIN(ropeId, p1) end
--- @param ropeId any
--- @return boolean
function PHYSICS.IS_ROPE_ATTACHED_AT_BOTH_ENDS(ropeId) end
--- @param ropeId number
--- @return { x: number, y: number, z: number }
function PHYSICS.GET_ROPE_LAST_VERTEX_COORD(ropeId) end
--- @param ropeId number
--- @param vertex number
--- @return { x: number, y: number, z: number }
function PHYSICS.GET_ROPE_VERTEX_COORD(ropeId, vertex) end
--- @param ropeId number
function PHYSICS.START_ROPE_WINDING(ropeId) end
--- @param ropeId number
function PHYSICS.STOP_ROPE_WINDING(ropeId) end
--- @param ropeId number
function PHYSICS.START_ROPE_UNWINDING_FRONT(ropeId) end
--- @param ropeId number
function PHYSICS.STOP_ROPE_UNWINDING_FRONT(ropeId) end
--- @param ropeId number
function PHYSICS.ROPE_CONVERT_TO_SIMPLE(ropeId) end
--- Loads rope textures for all ropes in the current scene.
function PHYSICS.ROPE_LOAD_TEXTURES() end
--- @return boolean
function PHYSICS.ROPE_ARE_TEXTURES_LOADED() end
--- Unloads rope textures for all ropes in the current scene.
function PHYSICS.ROPE_UNLOAD_TEXTURES() end
--- @param ropeId number
--- @return boolean
function PHYSICS.DOES_SCRIPT_OWN_ROPE(ropeId) end
--- @param ropeId number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 number
--- @param p12 number
--- @param p13 number
function PHYSICS.ROPE_ATTACH_VIRTUAL_BOUND_GEOM(ropeId, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function PHYSICS.ROPE_CHANGE_SCRIPT_OWNER(p0, p1, p2) end
--- @param ropeId number
--- @param p1 number
function PHYSICS.ROPE_SET_REFFRAMEVELOCITY_COLLIDERORDER(ropeId, p1) end
--- @param ropeId number
--- @return number
function PHYSICS.ROPE_GET_DISTANCE_BETWEEN_ENDS(ropeId) end
--- Forces a rope to a certain length.
--- @param ropeId number
--- @param length number
function PHYSICS.ROPE_FORCE_LENGTH(ropeId, length) end
--- Reset a rope to a certain length.
--- @param ropeId number
--- @param length number
function PHYSICS.ROPE_RESET_LENGTH(ropeId, length) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param vecX number
--- @param vecY number
--- @param vecZ number
--- @param impulse number
function PHYSICS.APPLY_IMPULSE_TO_CLOTH(posX, posY, posZ, vecX, vecY, vecZ, impulse) end
--- @param entity number
--- @param vertex number
--- @param value number
function PHYSICS.SET_DAMPING(entity, vertex, value) end
--- @param entity number
function PHYSICS.ACTIVATE_PHYSICS(entity) end
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
function PHYSICS.SET_CGOFFSET(entity, x, y, z) end
--- @param entity number
--- @return { x: number, y: number, z: number }
function PHYSICS.GET_CGOFFSET(entity) end
--- @param entity number
function PHYSICS.SET_CG_AT_BOUNDCENTER(entity) end
--- @param entity number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 boolean
function PHYSICS.BREAK_ENTITY_GLASS(entity, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) end
--- @param object number
--- @return boolean
function PHYSICS.GET_IS_ENTITY_A_FRAG(object) end
--- @param object number
--- @param toggle boolean
function PHYSICS.SET_DISABLE_BREAKING(object, toggle) end
--- @param object number
function PHYSICS.RESET_DISABLE_BREAKING(object) end
--- @param object number
--- @param toggle boolean
function PHYSICS.SET_DISABLE_FRAG_DAMAGE(object, toggle) end
--- PED_RAGDOLL_BUMP Proof?
--- @param entity number
--- @param toggle boolean
function PHYSICS.SET_USE_KINEMATIC_PHYSICS(entity, toggle) end
--- @param p0 boolean
function PHYSICS.SET_IN_STUNT_MODE(p0) end
--- Related to the lower-end of a vehicles fTractionCurve, e.g., from standing starts and acceleration from low/zero speeds.
--- @param toggle boolean
function PHYSICS.SET_IN_ARENA_MODE(toggle) end

PLAYER = {}

--- Gets the ped for a specified player index.
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_PED(player) end
--- Does the same like PLAYER::GET_PLAYER_PED
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_PED_SCRIPT_INDEX(player) end
--- Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset
--- Make sure to request the model first and wait until it has loaded.
--- @param player number
--- @param model number
function PLAYER.SET_PLAYER_MODEL(player, model) end
--- @param player number
--- @param ped number
--- @param p2 boolean
--- @param resetDamage boolean
function PLAYER.CHANGE_PLAYER_PED(player, ped, p2, resetDamage) end
--- @param player number
--- @param r any
--- @param g any
--- @param b any
function PLAYER.GET_PLAYER_RGB_COLOUR(player, r, g, b) end
--- Gets the number of players in the current session.
--- If not multiplayer, always returns 1.
--- @return number
function PLAYER.GET_NUMBER_OF_PLAYERS() end
--- Gets the player's team.
--- Does nothing in singleplayer.
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_TEAM(player) end
--- Set player team on deathmatch and last team standing..
--- @param player number
--- @param team number
function PLAYER.SET_PLAYER_TEAM(player, team) end
--- @param team number
--- @return number
function PLAYER.GET_NUMBER_OF_PLAYERS_IN_TEAM(team) end
--- @param player number
--- @return string
function PLAYER.GET_PLAYER_NAME(player) end
--- Remnant from GTA IV. Does nothing in GTA V.
--- @param player number
--- @return number
function PLAYER.GET_WANTED_LEVEL_RADIUS(player) end
--- @param player number
--- @return { x: number, y: number, z: number }
function PLAYER.GET_PLAYER_WANTED_CENTRE_POSITION(player) end
--- # Predominant call signatures
--- PLAYER::SET_PLAYER_WANTED_CENTRE_POSITION(PLAYER::PLAYER_ID(), ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1));
--- 
--- # Parameter value ranges
--- P0: PLAYER::PLAYER_ID()
--- P1: ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1)
--- P2: Not set by any call
--- @param player number
--- @param position number
--- @param p2 boolean
--- @param p3 boolean
function PLAYER.SET_PLAYER_WANTED_CENTRE_POSITION(player, position, p2, p3) end
--- Drft
--- @param wantedLevel number
--- @return number
function PLAYER.GET_WANTED_LEVEL_THRESHOLD(wantedLevel) end
--- Call SET_PLAYER_WANTED_LEVEL_NOW for immediate effect
--- 
--- wantedLevel is an integer value representing 0 to 5 stars even though the game supports the 6th wanted level but no police will appear since no definitions are present for it in the game files
--- 
--- disableNoMission-  Disables When Off Mission- appears to always be false
--- 
--- @param player number
--- @param wantedLevel number
--- @param disableNoMission boolean
function PLAYER.SET_PLAYER_WANTED_LEVEL(player, wantedLevel, disableNoMission) end
--- p2 is always false in R* scripts
--- @param player number
--- @param wantedLevel number
--- @param p2 boolean
function PLAYER.SET_PLAYER_WANTED_LEVEL_NO_DROP(player, wantedLevel, p2) end
--- Forces any pending wanted level to be applied to the specified player immediately.
--- 
--- Call SET_PLAYER_WANTED_LEVEL with the desired wanted level, followed by SET_PLAYER_WANTED_LEVEL_NOW.
--- 
--- Second parameter is unknown (always false).
--- @param player number
--- @param p1 boolean
function PLAYER.SET_PLAYER_WANTED_LEVEL_NOW(player, p1) end
--- @param player number
--- @return boolean
function PLAYER.ARE_PLAYER_FLASHING_STARS_ABOUT_TO_DROP(player) end
--- @param player number
--- @return boolean
function PLAYER.ARE_PLAYER_STARS_GREYED_OUT(player) end
--- @param player number
--- @return boolean
function PLAYER.IS_WANTED_AND_HAS_BEEN_SEEN_BY_COPS(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_DISPATCH_COPS_FOR_PLAYER(player, toggle) end
--- @param player number
--- @param wantedLevel number
--- @return boolean
function PLAYER.IS_PLAYER_WANTED_LEVEL_GREATER(player, wantedLevel) end
--- This executes at the same as speed as PLAYER::SET_PLAYER_WANTED_LEVEL(player, 0, false);
--- 
--- PLAYER::GET_PLAYER_WANTED_LEVEL(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible.
--- @param player number
function PLAYER.CLEAR_PLAYER_WANTED_LEVEL(player) end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_DEAD(player) end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_PRESSING_HORN(player) end
--- Flags:
--- SPC_AMBIENT_SCRIPT = (1 << 1),
--- SPC_CLEAR_TASKS = (1 << 2),
--- SPC_REMOVE_FIRES = (1 << 3),
--- SPC_REMOVE_EXPLOSIONS = (1 << 4),
--- SPC_REMOVE_PROJECTILES = (1 << 5),
--- SPC_DEACTIVATE_GADGETS = (1 << 6),
--- SPC_REENABLE_CONTROL_ON_DEATH = (1 << 7),
--- SPC_LEAVE_CAMERA_CONTROL_ON = (1 << 8),
--- SPC_ALLOW_PLAYER_DAMAGE = (1 << 9),
--- SPC_DONT_STOP_OTHER_CARS_AROUND_PLAYER = (1 << 10),
--- SPC_PREVENT_EVERYBODY_BACKOFF = (1 << 11),
--- SPC_ALLOW_PAD_SHAKE = (1 << 12)
--- 
--- See: https://alloc8or.re/gta5/doc/enums/eSetPlayerControlFlag.txt
--- @param player number
--- @param bHasControl boolean
--- @param flags number
function PLAYER.SET_PLAYER_CONTROL(player, bHasControl, flags) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_WANTED_LEVEL(player) end
--- @param maxWantedLevel number
function PLAYER.SET_MAX_WANTED_LEVEL(maxWantedLevel) end
--- If toggle is set to false:
--- The police won't be shown on the (mini)map
--- 
--- If toggle is set to true:
--- The police will be shown on the (mini)map
--- @param toggle boolean
function PLAYER.SET_POLICE_RADAR_BLIPS(toggle) end
--- The player will be ignored by the police if toggle is set to true
--- @param player number
--- @param toggle boolean
function PLAYER.SET_POLICE_IGNORE_PLAYER(player, toggle) end
--- Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested.
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_PLAYING(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_EVERYONE_IGNORE_PLAYER(player, toggle) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_ALL_RANDOM_PEDS_FLEE(player, toggle) end
--- @param player number
function PLAYER.SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_ALL_NEUTRAL_RANDOM_PEDS_FLEE(player, toggle) end
--- - This is called after SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME
--- 
--- @param player number
function PLAYER.SET_ALL_NEUTRAL_RANDOM_PEDS_FLEE_THIS_FRAME(player) end
--- @param player number
function PLAYER.SET_LAW_PEDS_CAN_ATTACK_NON_WANTED_PLAYER_THIS_FRAME(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_IGNORE_LOW_PRIORITY_SHOCKING_EVENTS(player, toggle) end
--- @param multiplier number
function PLAYER.SET_WANTED_LEVEL_MULTIPLIER(multiplier) end
--- Max value is 1.0
--- @param player number
--- @param difficulty number
function PLAYER.SET_WANTED_LEVEL_DIFFICULTY(player, difficulty) end
--- @param player number
function PLAYER.RESET_WANTED_LEVEL_DIFFICULTY(player) end
--- @return number
function PLAYER.GET_WANTED_LEVEL_TIME_TO_ESCAPE() end
--- @param player number
--- @param wantedLevel number
--- @param lossTime number
function PLAYER.SET_WANTED_LEVEL_HIDDEN_ESCAPE_TIME(player, wantedLevel, lossTime) end
--- @param player number
function PLAYER.RESET_WANTED_LEVEL_HIDDEN_ESCAPE_TIME(player) end
--- @param duration number
function PLAYER.START_FIRING_AMNESTY(duration) end
--- PLAYER::REPORT_CRIME(PLAYER::PLAYER_ID(), 37, PLAYER::GET_WANTED_LEVEL_THRESHOLD(1));
--- 
--- From am_armybase.ysc.c4:
--- 
--- PLAYER::REPORT_CRIME(PLAYER::PLAYER_ID(4), 36, PLAYER::GET_WANTED_LEVEL_THRESHOLD(4));
--- 
--- -----
--- 
--- This was taken from the GTAV.exe v1.334. The function is called sub_140592CE8. For a full decompilation of the function, see here: https://pastebin.com/09qSMsN7
--- 
--- -----
--- crimeType:
--- 1: Firearms possession
--- 2: Person running a red light ("5-0-5")
--- 3: Reckless driver
--- 4: Speeding vehicle (a "5-10")
--- 5: Traffic violation (a "5-0-5")
--- 6: Motorcycle rider without a helmet
--- 7: Vehicle theft (a "5-0-3")
--- 8: Grand Theft Auto
--- 9: ???
--- 10: ???
--- 11: Assault on a civilian (a "2-40")
--- 12: Assault on an officer
--- 13: Assault with a deadly weapon (a "2-45")
--- 14: Officer shot (a "2-45")
--- 15: Pedestrian struck by a vehicle
--- 16: Officer struck by a vehicle
--- 17: Helicopter down (an "AC"?)
--- 18: Civilian on fire (a "2-40")
--- 19: Officer set on fire (a "10-99")
--- 20: Car on fire
--- 21: Air unit down (an "AC"?)
--- 22: An explosion (a "9-96")
--- 23: A stabbing (a "2-45") (also something else I couldn't understand)
--- 24: Officer stabbed (also something else I couldn't understand)
--- 25: Attack on a vehicle ("MDV"?)
--- 26: Damage to property
--- 27: Suspect threatening officer with a firearm
--- 28: Shots fired
--- 29: ???
--- 30: ???
--- 31: ???
--- 32: ???
--- 33: ???
--- 34: A "2-45"
--- 35: ???
--- 36: A "9-25"
--- 37: ???
--- 38: ???
--- 39: ???
--- 40: ???
--- 41: ???
--- 42: ???
--- 43: Possible disturbance
--- 44: Civilian in need of assistance
--- 45: ???
--- 46: ???
--- @param player number
--- @param crimeType number
--- @param wantedLvlThresh number
function PLAYER.REPORT_CRIME(player, crimeType, wantedLvlThresh) end
--- crimeType: see REPORT_CRIME
--- @param player number
--- @param crimeType number
function PLAYER.SUPPRESS_CRIME_THIS_FRAME(player, crimeType) end
--- This native is used in both singleplayer and multiplayer scripts.
--- 
--- Always used like this in scripts
--- PLAYER::UPDATE_WANTED_POSITION_THIS_FRAME(PLAYER::PLAYER_ID());
--- @param player number
function PLAYER.UPDATE_WANTED_POSITION_THIS_FRAME(player) end
--- This has been found in use in the decompiled files.
--- @param player number
function PLAYER.SUPPRESS_LOSING_WANTED_LEVEL_IF_HIDDEN_THIS_FRAME(player) end
--- @param player number
--- @param p1 number
function PLAYER.ALLOW_EVASION_HUD_IF_DISABLING_HIDDEN_EVASION_THIS_FRAME(player, p1) end
--- This has been found in use in the decompiled files.
--- @param player number
function PLAYER.FORCE_START_HIDDEN_EVASION(player) end
--- @param player number
function PLAYER.SUPPRESS_WITNESSES_CALLING_POLICE_THIS_FRAME(player) end
--- @param player number
function PLAYER.REPORT_POLICE_SPOTTED_PLAYER(player) end
--- PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE(rPtr((&l_122) + 71)); // Found in decompilation
--- 
--- ***
--- 
--- In "am_hold_up.ysc" used once:
--- 
--- l_8d._f47 = MISC::GET_RANDOM_FLOAT_IN_RANGE(18.0, 28.0);
--- PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE((l_8d._f47));
--- @param p0 number
function PLAYER.SET_LAW_RESPONSE_DELAY_OVERRIDE(p0) end
--- 2 matches in 1 script - am_hold_up
--- 
--- Used in multiplayer scripts?
function PLAYER.RESET_LAW_RESPONSE_DELAY_OVERRIDE() end
--- @param player number
--- @return boolean
function PLAYER.CAN_PLAYER_START_MISSION(player) end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_READY_FOR_CUTSCENE(player) end
--- @param player number
--- @param entity number
--- @return boolean
function PLAYER.IS_PLAYER_TARGETTING_ENTITY(player, entity) end
--- Assigns the handle of locked-on melee target to *entity that you pass it.
--- Returns false if no entity found.
--- @param player number
--- @param entity number
--- @return boolean
function PLAYER.GET_PLAYER_TARGET_ENTITY(player, entity) end
--- Gets a value indicating whether the specified player is currently aiming freely.
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_FREE_AIMING(player) end
--- Gets a value indicating whether the specified player is currently aiming freely at the specified entity.
--- @param player number
--- @param entity number
--- @return boolean
function PLAYER.IS_PLAYER_FREE_AIMING_AT_ENTITY(player, entity) end
--- Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it.
--- Returns false if no entity found.
--- @param player number
--- @param entity number
--- @return boolean
function PLAYER.GET_ENTITY_PLAYER_IS_FREE_AIMING_AT(player, entity) end
--- Affects the range of auto aim target.
--- @param player number
--- @param range number
function PLAYER.SET_PLAYER_LOCKON_RANGE_OVERRIDE(player, range) end
--- Set whether this player should be able to do drive-bys.
--- 
--- "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick."
--- 
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_CAN_DO_DRIVE_BY(player, toggle) end
--- Sets whether this player can be hassled by gangs.
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_CAN_BE_HASSLED_BY_GANGS(player, toggle) end
--- Sets whether this player can take cover.
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_CAN_USE_COVER(player, toggle) end
--- Gets the maximum wanted level the player can get.
--- Ranges from 0 to 5.
--- @return number
function PLAYER.GET_MAX_WANTED_LEVEL() end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_TARGETTING_ANYTHING(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_SPRINT(player, toggle) end
--- @param player number
function PLAYER.RESET_PLAYER_STAMINA(player) end
--- @param player number
--- @param p1 number
function PLAYER.RESTORE_PLAYER_STAMINA(player, p1) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_SPRINT_STAMINA_REMAINING(player) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_SPRINT_TIME_REMAINING(player) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_UNDERWATER_TIME_REMAINING(player) end
--- @param player number
--- @param time number
--- @return number
function PLAYER.SET_PLAYER_UNDERWATER_BREATH_PERCENT_REMAINING(player, time) end
--- Returns the group ID the player is member of.
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_GROUP(player) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_MAX_ARMOUR(player) end
--- Can the player control himself, used to disable controls for player for things like a cutscene.
--- 
--- ---
--- 
--- You can't disable controls with this, use SET_PLAYER_CONTROL(...) for this.
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_CONTROL_ON(player) end
--- Returns true when the player is not able to control the cam i.e. when running a benchmark test, switching the player or viewing a cutscene.
--- 
--- Note: I am not 100% sure if the native actually checks if the cam control is disabled but it seems promising.
--- @return boolean
function PLAYER.GET_ARE_CAMERA_CONTROLS_DISABLED() end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_SCRIPT_CONTROL_ON(player) end
--- Returns TRUE if the player ('s ped) is climbing at the moment.
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_CLIMBING(player) end
--- Return true while player is being arrested / busted.
--- 
--- If atArresting is set to 1, this function will return 1 when player is being arrested (while player is putting his hand up, but still have control)
--- 
--- If atArresting is set to 0, this function will return 1 only when the busted screen is shown.
--- @param player number
--- @param atArresting boolean
--- @return boolean
function PLAYER.IS_PLAYER_BEING_ARRESTED(player, atArresting) end
--- @param player number
function PLAYER.RESET_PLAYER_ARREST_STATE(player) end
--- Alternative: GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), 1);
--- @return number
function PLAYER.GET_PLAYERS_LAST_VEHICLE() end
--- Returns the same as PLAYER_ID and NETWORK_PLAYER_ID_TO_INT
--- @return number
function PLAYER.GET_PLAYER_INDEX() end
--- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
--- @param value number
--- @return number
function PLAYER.INT_TO_PLAYERINDEX(value) end
--- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
--- --------------------------------------------------------
--- if (NETWORK::NETWORK_IS_PARTICIPANT_ACTIVE(PLAYER::INT_TO_PARTICIPANTINDEX(i)))
--- 
--- @param value number
--- @return number
function PLAYER.INT_TO_PARTICIPANTINDEX(value) end
--- @param player number
--- @return number
function PLAYER.GET_TIME_SINCE_PLAYER_HIT_VEHICLE(player) end
--- @param player number
--- @return number
function PLAYER.GET_TIME_SINCE_PLAYER_HIT_PED(player) end
--- @param player number
--- @return number
function PLAYER.GET_TIME_SINCE_PLAYER_DROVE_ON_PAVEMENT(player) end
--- @param player number
--- @return number
function PLAYER.GET_TIME_SINCE_PLAYER_DROVE_AGAINST_TRAFFIC(player) end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_FREE_FOR_AMBIENT_TASK(player) end
--- This returns YOUR 'identity' as a Player type.
--- 
--- Always returns 0 in story mode.
--- @return number
function PLAYER.PLAYER_ID() end
--- Returns current player ped
--- @return number
function PLAYER.PLAYER_PED_ID() end
--- Does exactly the same thing as PLAYER_ID()
--- @return number
function PLAYER.NETWORK_PLAYER_ID_TO_INT() end
--- @param cleanupFlags number
--- @return boolean
function PLAYER.HAS_FORCE_CLEANUP_OCCURRED(cleanupFlags) end
--- used with 1,2,8,64,128 in the scripts
--- @param cleanupFlags number
function PLAYER.FORCE_CLEANUP(cleanupFlags) end
--- PLAYER::FORCE_CLEANUP_FOR_ALL_THREADS_WITH_THIS_NAME("pb_prostitute", 1); // Found in decompilation
--- @param name string
--- @param cleanupFlags number
function PLAYER.FORCE_CLEANUP_FOR_ALL_THREADS_WITH_THIS_NAME(name, cleanupFlags) end
--- @param id number
--- @param cleanupFlags number
function PLAYER.FORCE_CLEANUP_FOR_THREAD_WITH_THIS_ID(id, cleanupFlags) end
--- @return number
function PLAYER.GET_CAUSE_OF_MOST_RECENT_FORCE_CLEANUP() end
--- @param player number
--- @param vehicle number
function PLAYER.SET_PLAYER_MAY_ONLY_ENTER_THIS_VEHICLE(player, vehicle) end
--- @param player number
function PLAYER.SET_PLAYER_MAY_NOT_ENTER_ANY_VEHICLE(player) end
--- 1 - Welcome to Los Santos
--- 2 - A Friendship Resurrected
--- 3 - A Fair Day's Pay
--- 4 - The Moment of Truth
--- 5 - To Live or Die in Los Santos
--- 6 - Diamond Hard
--- 7 - Subversive
--- 8 - Blitzed
--- 9 - Small Town, Big Job
--- 10 - The Government Gimps
--- 11 - The Big One!
--- 12 - Solid Gold, Baby!
--- 13 - Career Criminal
--- 14 - San Andreas Sightseer
--- 15 - All's Fare in Love and War
--- 16 - TP Industries Arms Race
--- 17 - Multi-Disciplined
--- 18 - From Beyond the Stars
--- 19 - A Mystery, Solved
--- 20 - Waste Management
--- 21 - Red Mist
--- 22 - Show Off
--- 23 - Kifflom!
--- 24 - Three Man Army
--- 25 - Out of Your Depth
--- 26 - Altruist Acolyte
--- 27 - A Lot of Cheddar
--- 28 - Trading Pure Alpha
--- 29 - Pimp My Sidearm
--- 30 - Wanted: Alive Or Alive
--- 31 - Los Santos Customs
--- 32 - Close Shave
--- 33 - Off the Plane
--- 34 - Three-Bit Gangster
--- 35 - Making Moves
--- 36 - Above the Law
--- 37 - Numero Uno
--- 38 - The Midnight Club
--- 39 - Unnatural Selection
--- 40 - Backseat Driver
--- 41 - Run Like The Wind
--- 42 - Clean Sweep
--- 43 - Decorated
--- 44 - Stick Up Kid
--- 45 - Enjoy Your Stay
--- 46 - Crew Cut
--- 47 - Full Refund
--- 48 - Dialling Digits
--- 49 - American Dream
--- 50 - A New Perspective
--- 51 - Be Prepared
--- 52 - In the Name of Science
--- 53 - Dead Presidents
--- 54 - Parole Day
--- 55 - Shot Caller
--- 56 - Four Way
--- 57 - Live a Little
--- 58 - Can't Touch This
--- 59 - Mastermind
--- 60 - Vinewood Visionary
--- 61 - Majestic
--- 62 - Humans of Los Santos
--- 63 - First Time Director
--- 64 - Animal Lover
--- 65 - Ensemble Piece
--- 66 - Cult Movie
--- 67 - Location Scout
--- 68 - Method Actor
--- 69 - Cryptozoologist
--- 70 - Getting Started
--- 71 - The Data Breaches
--- 72 - The Bogdan Problem
--- 73 - The Doomsday Scenario
--- 74 - A World Worth Saving
--- 75 - Orbital Obliteration
--- 76 - Elitist
--- 77 - Masterminds
--- @param achievementId number
--- @return boolean
function PLAYER.GIVE_ACHIEVEMENT_TO_PLAYER(achievementId) end
--- For Steam.
--- Does nothing and always returns false in the retail version of the game.
--- @param achievementId number
--- @param progress number
--- @return boolean
function PLAYER.SET_ACHIEVEMENT_PROGRESS(achievementId, progress) end
--- For Steam.
--- Always returns 0 in retail version of the game.
--- @param achievementId number
--- @return number
function PLAYER.GET_ACHIEVEMENT_PROGRESS(achievementId) end
--- See GIVE_ACHIEVEMENT_TO_PLAYER
--- @param achievementId number
--- @return boolean
function PLAYER.HAS_ACHIEVEMENT_BEEN_PASSED(achievementId) end
--- Returns TRUE if the game is in online mode and FALSE if in offline mode.
--- 
--- This is an alias for NETWORK_IS_SIGNED_ONLINE.
--- @return boolean
function PLAYER.IS_PLAYER_ONLINE() end
--- this function is hard-coded to always return 0.
--- @return boolean
function PLAYER.IS_PLAYER_LOGGING_IN_NP() end
--- Purpose of the BOOL currently unknown.
--- Both, true and false, work
--- @param p0 boolean
function PLAYER.DISPLAY_SYSTEM_SIGNIN_UI(p0) end
--- @return boolean
function PLAYER.IS_SYSTEM_UI_BEING_DISPLAYED() end
--- Simply sets you as invincible (Health will not deplete).
--- 
--- Use 0x733A643B5B0C53C1 instead if you want Ragdoll enabled, which is equal to:
--- *(DWORD *)(playerPedAddress + 0x188) |= (1 << 9);
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_INVINCIBLE(player, toggle) end
--- Returns the Player's Invincible status.
--- 
--- This function will always return false if 0x733A643B5B0C53C1 is used to set the invincibility status. To always get the correct result, use this:
--- 
--- bool IsPlayerInvincible(Player player)
--- {
--- auto addr = getScriptHandleBaseAddress(GET_PLAYER_PED(player));
--- 
--- if (addr)
--- {
--- DWORD flag = *(DWORD *)(addr + 0x188);
--- return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0);
--- }
--- 
--- return false;
--- }
--- 
--- 
--- @param player number
--- @return boolean
function PLAYER.GET_PLAYER_INVINCIBLE(player) end
--- Always returns false.
--- @param player number
--- @return boolean
function PLAYER.GET_PLAYER_DEBUG_INVINCIBLE(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_INVINCIBLE_BUT_HAS_REACTIONS(player, toggle) end
--- @param player number
--- @param p1 boolean
function PLAYER.SET_PLAYER_CAN_COLLECT_DROPPED_MONEY(player, p1) end
--- @param player number
--- @param p2 boolean
function PLAYER.REMOVE_PLAYER_HELMET(player, p2) end
--- @param player number
--- @param toggle boolean
function PLAYER.GIVE_PLAYER_RAGDOLL_CONTROL(player, toggle) end
--- Example from fm_mission_controler.ysc.c4:
--- 
--- PLAYER::SET_PLAYER_LOCKON(PLAYER::PLAYER_ID(), 1);
--- 
--- All other decompiled scripts using this seem to be using the player id as the first parameter, so I feel the need to confirm it as so.
--- 
--- No need to confirm it says PLAYER_ID() so it uses PLAYER_ID() lol.
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_LOCKON(player, toggle) end
--- Sets your targeting mode.
--- 0 = Assisted Aim - Full
--- 1 = Assisted Aim - Partial
--- 2 = Free Aim - Assisted
--- 3 = Free Aim
--- @param targetMode number
function PLAYER.SET_PLAYER_TARGETING_MODE(targetMode) end
--- @param targetLevel number
function PLAYER.SET_PLAYER_TARGET_LEVEL(targetLevel) end
--- Returns profile setting 237.
--- @return boolean
function PLAYER.GET_IS_USING_FPS_THIRD_PERSON_COVER() end
--- Returns profile setting 243.
--- @return boolean
function PLAYER.GET_IS_USING_HOOD_CAMERA() end
--- @param player number
function PLAYER.CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_PED(player) end
--- @param player number
--- @return boolean
function PLAYER.HAS_PLAYER_DAMAGED_AT_LEAST_ONE_PED(player) end
--- @param player number
function PLAYER.CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED(player) end
--- @param player number
--- @return boolean
function PLAYER.HAS_PLAYER_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED(player) end
--- This can be between 1.0f - 14.9f
--- 
--- You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default.
--- 
--- 
--- @param player number
--- @param multiplier number
function PLAYER.SET_AIR_DRAG_MULTIPLIER_FOR_PLAYERS_VEHICLE(player, multiplier) end
--- Swim speed multiplier.
--- Multiplier goes up to 1.49
--- 
--- Just call it one time, it is not required to be called once every tick. - Note copied from below native.
--- 
--- Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and RUN_SPRINT below. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default.
--- @param player number
--- @param multiplier number
function PLAYER.SET_SWIM_MULTIPLIER_FOR_PLAYER(player, multiplier) end
--- Multiplier goes up to 1.49 any value above will be completely overruled by the game and the multiplier will not take effect, this can be edited in memory however.
--- 
--- Just call it one time, it is not required to be called once every tick.
--- 
--- Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default.
--- @param player number
--- @param multiplier number
function PLAYER.SET_RUN_SPRINT_MULTIPLIER_FOR_PLAYER(player, multiplier) end
--- Returns the time since the character was arrested in (ms) milliseconds.
--- 
--- example
--- 
--- var time = Function.call<int>(Hash.GET_TIME_SINCE_LAST_ARREST();
--- 
--- UI.DrawSubtitle(time.ToString());
--- 
--- if player has not been arrested, the int returned will be -1.
--- @return number
function PLAYER.GET_TIME_SINCE_LAST_ARREST() end
--- Returns the time since the character died in (ms) milliseconds.
--- 
--- example
--- 
--- var time = Function.call<int>(Hash.GET_TIME_SINCE_LAST_DEATH();
--- 
--- UI.DrawSubtitle(time.ToString());
--- 
--- if player has not died, the int returned will be -1.
--- @return number
function PLAYER.GET_TIME_SINCE_LAST_DEATH() end
function PLAYER.ASSISTED_MOVEMENT_CLOSE_ROUTE() end
function PLAYER.ASSISTED_MOVEMENT_FLUSH_ROUTE() end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_FORCED_AIM(player, toggle) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_FORCED_ZOOM(player, toggle) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_FORCE_SKIP_AIM_INTRO(player, toggle) end
--- Inhibits the player from using any method of combat including melee and firearms.
--- 
--- NOTE: Only disables the firing for one frame
--- @param player number
--- @param toggle boolean
function PLAYER.DISABLE_PLAYER_FIRING(player, toggle) end
--- Used only once in R* scripts (freemode.ysc).
function PLAYER.DISABLE_PLAYER_THROW_GRENADE_WHILE_USING_GUN() end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_DISABLE_AMBIENT_MELEE_MOVE(player, toggle) end
--- Default is 100. Use player id and not ped id. For instance: PLAYER::SET_PLAYER_MAX_ARMOUR(PLAYER::PLAYER_ID(), 100); // main_persistent.ct4
--- @param player number
--- @param value number
function PLAYER.SET_PLAYER_MAX_ARMOUR(player, value) end
--- p1 is always 0 in the scripts
--- @param player number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_ACTIVATE(player, p1) end
--- @param player number
--- @param p1 number
--- @param p2 number
function PLAYER.SET_SPECIAL_ABILITY_MP(player, p1, p2) end
--- p1 is always 0 in the scripts
--- @param player number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_DEACTIVATE_MP(player, p1) end
--- @param player number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_DEACTIVATE(player, p1) end
--- @param player number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_DEACTIVATE_FAST(player, p1) end
--- @param player number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_RESET(player, p1) end
--- @param player number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_CHARGE_ON_MISSION_FAILED(player, p1) end
--- Every occurrence of p1 & p2 were both true.
--- @param player number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function PLAYER.SPECIAL_ABILITY_CHARGE_SMALL(player, p1, p2, p3) end
--- Only 1 match. Both p1 & p2 were true.
--- @param player number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function PLAYER.SPECIAL_ABILITY_CHARGE_MEDIUM(player, p1, p2, p3) end
--- 2 matches. p1 was always true.
--- @param player number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 number
function PLAYER.SPECIAL_ABILITY_CHARGE_LARGE(player, p1, p2, p3) end
--- p1 appears to always be 1 (only comes up twice)
--- @param player number
--- @param p1 number
--- @param p2 number
function PLAYER.SPECIAL_ABILITY_CHARGE_CONTINUOUS(player, p1, p2) end
--- p1 appears as 5, 10, 15, 25, or 30. p2 is always true.
--- @param player number
--- @param p1 number
--- @param p2 boolean
--- @param p3 number
function PLAYER.SPECIAL_ABILITY_CHARGE_ABSOLUTE(player, p1, p2, p3) end
--- 
--- normalizedValue is from 0.0 - 1.0
--- p2 is always 1
--- @param player number
--- @param normalizedValue number
--- @param p2 boolean
--- @param p3 number
function PLAYER.SPECIAL_ABILITY_CHARGE_NORMALIZED(player, normalizedValue, p2, p3) end
--- Also known as _RECHARGE_SPECIAL_ABILITY
--- @param player number
--- @param p1 boolean
--- @param p2 number
function PLAYER.SPECIAL_ABILITY_FILL_METER(player, p1, p2) end
--- p1 was always true.
--- @param player number
--- @param p1 boolean
--- @param p2 number
function PLAYER.SPECIAL_ABILITY_DEPLETE_METER(player, p1, p2) end
--- @param playerModel number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_LOCK(playerModel, p1) end
--- @param playerModel number
--- @param p1 number
function PLAYER.SPECIAL_ABILITY_UNLOCK(playerModel, p1) end
--- @param playerModel number
--- @return boolean
function PLAYER.IS_SPECIAL_ABILITY_UNLOCKED(playerModel) end
--- @param player number
--- @param p1 number
--- @return boolean
function PLAYER.IS_SPECIAL_ABILITY_ACTIVE(player, p1) end
--- @param player number
--- @param p1 number
--- @return boolean
function PLAYER.IS_SPECIAL_ABILITY_METER_FULL(player, p1) end
--- @param player number
--- @param toggle boolean
--- @param p2 number
function PLAYER.ENABLE_SPECIAL_ABILITY(player, toggle, p2) end
--- @param player number
--- @param p1 number
--- @return boolean
function PLAYER.IS_SPECIAL_ABILITY_ENABLED(player, p1) end
--- @param multiplier number
function PLAYER.SET_SPECIAL_ABILITY_MULTIPLIER(multiplier) end
--- @param player number
--- @param p1 number
function PLAYER.UPDATE_SPECIAL_ABILITY_FROM_STAT(player, p1) end
--- Appears once in "re_dealgonewrong"
--- @param player number
--- @return boolean
function PLAYER.GET_IS_PLAYER_DRIVING_ON_HIGHWAY(player) end
--- Only 1 occurrence. p1 was 2.
--- @param player number
--- @param p1 number
--- @return boolean
function PLAYER.GET_IS_PLAYER_DRIVING_WRECKLESS(player, p1) end
--- 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f.
--- @param player number
--- @param p1 number
--- @return boolean
function PLAYER.GET_IS_MOPPING_AREA_FREE_IN_FRONT_OF_PLAYER(player, p1) end
--- `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky.
--- @param player number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param p5 boolean
--- @param findCollisionLand boolean
--- @param p7 boolean
function PLAYER.START_PLAYER_TELEPORT(player, x, y, z, heading, p5, findCollisionLand, p7) end
--- @param player number
--- @return boolean
function PLAYER.UPDATE_PLAYER_TELEPORT(player) end
--- Disables the player's teleportation
function PLAYER.STOP_PLAYER_TELEPORT() end
--- @return boolean
function PLAYER.IS_PLAYER_TELEPORT_ACTIVE() end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_CURRENT_STEALTH_NOISE(player) end
--- `regenRate`: The recharge multiplier, a value between 0.0 and 1.0.
--- Use 1.0 to reset it back to normal
--- @param player number
--- @param regenRate number
function PLAYER.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER(player, regenRate) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(player) end
--- @param player number
--- @param limit number
function PLAYER.SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(player, limit) end
--- Needs to be called every frame.
--- @param player number
function PLAYER.DISABLE_PLAYER_HEALTH_RECHARGE(player) end
--- @param player number
--- @param p1 number
function PLAYER.SET_PLAYER_FALL_DISTANCE_TO_TRIGGER_RAGDOLL_OVERRIDE(player, p1) end
--- This modifies the damage value of your weapon. Whether it is a multiplier or base damage is unknown.
--- 
--- Based on tests, it is unlikely to be a multiplier.
--- 
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
function PLAYER.SET_PLAYER_WEAPON_DAMAGE_MODIFIER(player, modifier) end
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
function PLAYER.SET_PLAYER_WEAPON_DEFENSE_MODIFIER(player, modifier) end
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
function PLAYER.SET_PLAYER_WEAPON_MINIGUN_DEFENSE_MODIFIER(player, modifier) end
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
--- @param p2 boolean
function PLAYER.SET_PLAYER_MELEE_WEAPON_DAMAGE_MODIFIER(player, modifier, p2) end
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
function PLAYER.SET_PLAYER_MELEE_WEAPON_DEFENSE_MODIFIER(player, modifier) end
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
function PLAYER.SET_PLAYER_VEHICLE_DAMAGE_MODIFIER(player, modifier) end
--- modifier's min value is 0.1
--- @param player number
--- @param modifier number
function PLAYER.SET_PLAYER_VEHICLE_DEFENSE_MODIFIER(player, modifier) end
--- @param player number
--- @param p1 number
function PLAYER.SET_PLAYER_MAX_EXPLOSIVE_DAMAGE(player, p1) end
--- @param player number
--- @param p1 number
function PLAYER.SET_PLAYER_EXPLOSIVE_DAMAGE_MODIFIER(player, p1) end
--- @param player number
--- @param p1 number
function PLAYER.SET_PLAYER_WEAPON_TAKEDOWN_DEFENSE_MODIFIER(player, p1) end
--- Tints:
--- None = -1,
--- Rainbow = 0,
--- Red = 1,
--- SeasideStripes = 2,
--- WidowMaker = 3,
--- Patriot = 4,
--- Blue = 5,
--- Black = 6,
--- Hornet = 7,
--- AirFocce = 8,
--- Desert = 9,
--- Shadow = 10,
--- HighAltitude = 11,
--- Airbone = 12,
--- Sunrise = 13,
--- 
--- @param player number
--- @param tintIndex number
function PLAYER.SET_PLAYER_PARACHUTE_TINT_INDEX(player, tintIndex) end
--- Tints:
--- None = -1,
--- Rainbow = 0,
--- Red = 1,
--- SeasideStripes = 2,
--- WidowMaker = 3,
--- Patriot = 4,
--- Blue = 5,
--- Black = 6,
--- Hornet = 7,
--- AirFocce = 8,
--- Desert = 9,
--- Shadow = 10,
--- HighAltitude = 11,
--- Airbone = 12,
--- Sunrise = 13,
--- @param player number
--- @param tintIndex any
function PLAYER.GET_PLAYER_PARACHUTE_TINT_INDEX(player, tintIndex) end
--- Tints:
--- None = -1,
--- Rainbow = 0,
--- Red = 1,
--- SeasideStripes = 2,
--- WidowMaker = 3,
--- Patriot = 4,
--- Blue = 5,
--- Black = 6,
--- Hornet = 7,
--- AirFocce = 8,
--- Desert = 9,
--- Shadow = 10,
--- HighAltitude = 11,
--- Airbone = 12,
--- Sunrise = 13,
--- @param player number
--- @param index number
function PLAYER.SET_PLAYER_RESERVE_PARACHUTE_TINT_INDEX(player, index) end
--- Tints:
--- None = -1,
--- Rainbow = 0,
--- Red = 1,
--- SeasideStripes = 2,
--- WidowMaker = 3,
--- Patriot = 4,
--- Blue = 5,
--- Black = 6,
--- Hornet = 7,
--- AirFocce = 8,
--- Desert = 9,
--- Shadow = 10,
--- HighAltitude = 11,
--- Airbone = 12,
--- Sunrise = 13,
--- @param player number
--- @param index any
function PLAYER.GET_PLAYER_RESERVE_PARACHUTE_TINT_INDEX(player, index) end
--- tints 0- 13
--- 0 - unkown
--- 1 - unkown
--- 2 - unkown
--- 3 - unkown
--- 4 - unkown
--- @param player number
--- @param tintIndex number
function PLAYER.SET_PLAYER_PARACHUTE_PACK_TINT_INDEX(player, tintIndex) end
--- @param player number
--- @param tintIndex any
function PLAYER.GET_PLAYER_PARACHUTE_PACK_TINT_INDEX(player, tintIndex) end
--- @param player number
function PLAYER.SET_PLAYER_HAS_RESERVE_PARACHUTE(player) end
--- @param player number
--- @return boolean
function PLAYER.GET_PLAYER_HAS_RESERVE_PARACHUTE(player) end
--- @param player number
--- @param enabled boolean
function PLAYER.SET_PLAYER_CAN_LEAVE_PARACHUTE_SMOKE_TRAIL(player, enabled) end
--- @param player number
--- @param r number
--- @param g number
--- @param b number
function PLAYER.SET_PLAYER_PARACHUTE_SMOKE_TRAIL_COLOR(player, r, g, b) end
--- @param player number
--- @param r any
--- @param g any
--- @param b any
function PLAYER.GET_PLAYER_PARACHUTE_SMOKE_TRAIL_COLOR(player, r, g, b) end
--- example:
--- 
--- flags: 0-6
--- 
--- PLAYER::SET_PLAYER_RESET_FLAG_PREFER_REAR_SEATS(PLAYER::PLAYER_ID(), 6);
--- 
--- wouldnt the flag be the seatIndex?
--- @param player number
--- @param flags number
function PLAYER.SET_PLAYER_PHONE_PALETTE_IDX(player, flags) end
--- @param player number
--- @param multiplier number
function PLAYER.SET_PLAYER_NOISE_MULTIPLIER(player, multiplier) end
--- Values around 1.0f to 2.0f used in game scripts.
--- @param player number
--- @param multiplier number
function PLAYER.SET_PLAYER_SNEAKING_NOISE_MULTIPLIER(player, multiplier) end
--- @param player number
--- @param ped number
--- @return boolean
function PLAYER.CAN_PED_HEAR_PLAYER(player, ped) end
--- This is to make the player walk without accepting input from INPUT.
--- 
--- gaitType is in increments of 100s. 2000, 500, 300, 200, etc.
--- 
--- p4 is always 1 and p5 is always 0.
--- 
--- C# Example :
--- 
--- Function.Call(Hash.SIMULATE_PLAYER_INPUT_GAIT, Game.Player, 1.0f, 100, 1.0f, 1, 0); //Player will go forward for 100ms
--- @param player number
--- @param amount number
--- @param gaitType number
--- @param speed number
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 number
function PLAYER.SIMULATE_PLAYER_INPUT_GAIT(player, amount, gaitType, speed, p4, p5, p6) end
--- @param player number
function PLAYER.RESET_PLAYER_INPUT_GAIT(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_AUTO_GIVE_PARACHUTE_WHEN_ENTER_PLANE(player, toggle) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_AUTO_GIVE_SCUBA_GEAR_WHEN_EXIT_VEHICLE(player, toggle) end
--- @param player number
--- @param value number
function PLAYER.SET_PLAYER_STEALTH_PERCEPTION_MODIFIER(player, value) end
--- @param player number
--- @return boolean
function PLAYER.IS_REMOTE_PLAYER_IN_NON_CLONED_VEHICLE(player) end
--- @param player number
function PLAYER.INCREASE_PLAYER_JUMP_SUPPRESSION_RANGE(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_SIMULATE_AIMING(player, toggle) end
--- @param player number
--- @param p1 number
function PLAYER.SET_PLAYER_CLOTH_PIN_FRAMES(player, p1) end
--- Every occurrence was either 0 or 2.
--- @param index number
function PLAYER.SET_PLAYER_CLOTH_PACKAGE_INDEX(index) end
--- 6 matches across 4 scripts. 5 occurrences were 240. The other was 255.
--- @param value number
function PLAYER.SET_PLAYER_CLOTH_LOCK_COUNTER(value) end
--- Only 1 match. ob_sofa_michael.
--- 
--- PLAYER::PLAYER_ATTACH_VIRTUAL_BOUND(-804.5928f, 173.1801f, 71.68436f, 0f, 0f, 0.590625f, 1f, 0.7f);1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1;
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
function PLAYER.PLAYER_ATTACH_VIRTUAL_BOUND(p0, p1, p2, p3, p4, p5, p6, p7) end
--- 1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1;
function PLAYER.PLAYER_DETACH_VIRTUAL_BOUND() end
--- @param player number
--- @return boolean
function PLAYER.HAS_PLAYER_BEEN_SPOTTED_IN_STOLEN_VEHICLE(player) end
--- Returns true if an unk value is greater than 0.0f
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_BATTLE_AWARE(player) end
--- @param player number
--- @param p1 number
--- @param p2 boolean
--- @return boolean
function PLAYER.GET_PLAYER_RECEIVED_BATTLE_EVENT_RECENTLY(player, p1, p2) end
--- Appears only 3 times in the scripts, more specifically in michael1.ysc
--- 
--- -
--- This can be used to prevent dying if you are "out of the world"
--- @param x number
--- @param y number
--- @param z number
function PLAYER.EXTEND_WORLD_BOUNDARY_FOR_PLAYER(x, y, z) end
function PLAYER.RESET_WORLD_BOUNDARY_FOR_PLAYER() end
--- Returns true if the player is riding a train.
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_RIDING_TRAIN(player) end
--- @param player number
--- @return boolean
function PLAYER.HAS_PLAYER_LEFT_THE_WORLD(player) end
--- @param player number
--- @param toggle boolean
function PLAYER.SET_PLAYER_LEAVE_PED_BEHIND(player, toggle) end
--- p1 was always 5.
--- p4 was always false.
--- @param player number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 boolean
function PLAYER.SET_PLAYER_PARACHUTE_VARIATION_OVERRIDE(player, p1, p2, p3, p4) end
--- @param player number
function PLAYER.CLEAR_PLAYER_PARACHUTE_VARIATION_OVERRIDE(player) end
--- @param player number
--- @param model number
function PLAYER.SET_PLAYER_PARACHUTE_MODEL_OVERRIDE(player, model) end
--- @param player number
--- @param model number
function PLAYER.SET_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE(player, model) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_PARACHUTE_MODEL_OVERRIDE(player) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE(player) end
--- @param player number
function PLAYER.CLEAR_PLAYER_PARACHUTE_MODEL_OVERRIDE(player) end
--- @param player number
function PLAYER.CLEAR_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE(player) end
--- @param player number
--- @param model number
function PLAYER.SET_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE(player, model) end
--- @param player number
function PLAYER.CLEAR_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE(player) end
--- @param player number
function PLAYER.DISABLE_PLAYER_VEHICLE_REWARDS(player) end
--- @param p0 boolean
function PLAYER.SET_PLAYER_SPECTATED_VEHICLE_RADIO_OVERRIDE(p0) end
--- @param player number
--- @param state boolean
function PLAYER.SET_PLAYER_BLUETOOTH_STATE(player, state) end
--- @param player number
--- @return boolean
function PLAYER.IS_PLAYER_BLUETOOTH_ENABLE(player) end
--- @param player number
function PLAYER.DISABLE_CAMERA_VIEW_MODE_CYCLE(player) end
--- @param player number
--- @return number
function PLAYER.GET_PLAYER_FAKE_WANTED_LEVEL(player) end
--- @param player1 number
--- @param player2 number
--- @param toggle boolean
function PLAYER.SET_PLAYER_CAN_DAMAGE_PLAYER(player1, player2, toggle) end
--- @param player number
--- @param hudColor number
function PLAYER.SET_APPLY_WAYPOINT_OF_PLAYER(player, hudColor) end
--- @param p0 number
--- @return boolean
function PLAYER.IS_PLAYER_VEHICLE_WEAPON_TOGGLED_TO_NON_HOMING(p0) end
--- Unsets playerPed+330 if the current weapon has certain flags.
--- @param p0 number
function PLAYER.SET_PLAYER_VEHICLE_WEAPON_TO_NON_HOMING(p0) end
--- @param p0 number
--- @param p1 number
function PLAYER.SET_PLAYER_HOMING_DISABLED_FOR_ALL_VEHICLE_WEAPONS(p0, p1) end
--- @param player number
--- @param entity number
function PLAYER.ADD_PLAYER_TARGETABLE_ENTITY(player, entity) end
--- @param player number
--- @param entity number
function PLAYER.REMOVE_PLAYER_TARGETABLE_ENTITY(player, entity) end
--- @param player number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function PLAYER.SET_PLAYER_PREVIOUS_VARIATION_DATA(player, p1, p2, p3, p4, p5) end
--- Resets values set by SET_SCRIPT_FIRE_POSITION
function PLAYER.REMOVE_SCRIPT_FIRE_POSITION() end
--- @param coordX number
--- @param coordY number
--- @param coordZ number
function PLAYER.SET_SCRIPT_FIRE_POSITION(coordX, coordY, coordZ) end

RECORDING = {}

--- @param p0 number
function RECORDING.REPLAY_START_EVENT(p0) end
function RECORDING.REPLAY_STOP_EVENT() end
function RECORDING.REPLAY_CANCEL_EVENT() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function RECORDING.REPLAY_RECORD_BACK_FOR_TIME(p0, p1, p2) end
--- -This function appears to be deprecated/ unused. Tracing the call internally leads to a _nullsub -
--- 
--- first one seems to be a string of a mission name, second one seems to be a bool/toggle
--- 
--- p1 was always 0.
--- 
--- @param missionNameLabel string
--- @param p1 number
function RECORDING.REPLAY_CHECK_FOR_EVENT_THIS_FRAME(missionNameLabel, p1) end
--- This disable the recording feature and has to be called every frame.
function RECORDING.REPLAY_PREVENT_RECORDING_THIS_FRAME() end
function RECORDING.REPLAY_RESET_EVENT_INFO() end
--- This will disable the ability to make camera changes in R* Editor.
function RECORDING.REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() end
--- Does nothing (it's a nullsub).
--- @param p0 number
--- @param p1 number
--- @param p2 number
function RECORDING.RECORD_GREATEST_MOMENT(p0, p1, p2) end
--- Starts recording a replay.
--- If mode is 0, turns on action replay.
--- If mode is 1, starts recording.
--- If already recording a replay, does nothing.
--- @param mode number
function RECORDING.START_REPLAY_RECORDING(mode) end
--- Stops recording and saves the recorded clip.
function RECORDING.STOP_REPLAY_RECORDING() end
--- Stops recording and discards the recorded clip.
function RECORDING.CANCEL_REPLAY_RECORDING() end
--- @return boolean
function RECORDING.SAVE_REPLAY_RECORDING() end
--- Checks if you're recording, returns TRUE when you start recording (F1) or turn on action replay (F2)
--- 
--- mov al, cs:g_bIsRecordingGameplay // byte_141DD0CD0 in b944
--- retn
--- @return boolean
function RECORDING.IS_REPLAY_RECORDING() end
--- @return boolean
function RECORDING.IS_REPLAY_INITIALIZED() end
--- @return boolean
function RECORDING.IS_REPLAY_AVAILABLE() end
--- @param p0 boolean
--- @return boolean
function RECORDING.IS_REPLAY_RECORD_SPACE_AVAILABLE(p0) end

REPLAY = {}

--- Does nothing (it's a nullsub).
--- @param p0 string
--- @param p1 boolean
function REPLAY.REGISTER_EFFECT_FOR_REPLAY_EDITOR(p0, p1) end
--- Returns a bool if interior rendering is disabled, if yes, all "normal" rendered interiors are invisible
--- @return boolean
function REPLAY.REPLAY_SYSTEM_HAS_REQUESTED_A_SCRIPT_CLEANUP() end
--- Disables some other rendering (internal)
function REPLAY.SET_SCRIPTS_HAVE_CLEANED_UP_FOR_REPLAY_SYSTEM() end
--- @param p0 boolean
function REPLAY.SET_REPLAY_SYSTEM_PAUSED_FOR_SAVE(p0) end
--- Sets (almost, not sure) all Rockstar Editor values (bIsRecording etc) to 0.
function REPLAY.REPLAY_CONTROL_SHUTDOWN() end
--- Please note that you will need to call DO_SCREEN_FADE_IN after exiting the Rockstar Editor when you call this.
--- @param p0 number
function REPLAY.ACTIVATE_ROCKSTAR_EDITOR(p0) end

SAVEMIGRATION = {}

--- @return boolean
function SAVEMIGRATION.SAVEMIGRATION_IS_MP_ENABLED() end
--- @return boolean
function SAVEMIGRATION.SAVEMIGRATION_MP_REQUEST_ACCOUNTS() end
--- @return number
function SAVEMIGRATION.SAVEMIGRATION_MP_GET_ACCOUNTS_STATUS() end
--- @return number
function SAVEMIGRATION.SAVEMIGRATION_MP_NUM_ACCOUNTS() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function SAVEMIGRATION.SAVEMIGRATION_MP_GET_ACCOUNT(p0, p1) end
--- @return boolean
function SAVEMIGRATION.SAVEMIGRATION_MP_REQUEST_STATUS() end
--- @return number
function SAVEMIGRATION.SAVEMIGRATION_MP_GET_STATUS() end

SCRIPT = {}

--- @param scriptName string
function SCRIPT.REQUEST_SCRIPT(scriptName) end
--- @param scriptName string
function SCRIPT.SET_SCRIPT_AS_NO_LONGER_NEEDED(scriptName) end
--- Returns if a script has been loaded into the game. Used to see if a script was loaded after requesting.
--- @param scriptName string
--- @return boolean
function SCRIPT.HAS_SCRIPT_LOADED(scriptName) end
--- @param scriptName string
--- @return boolean
function SCRIPT.DOES_SCRIPT_EXIST(scriptName) end
--- formerly _REQUEST_STREAMED_SCRIPT
--- @param scriptHash number
function SCRIPT.REQUEST_SCRIPT_WITH_NAME_HASH(scriptHash) end
--- @param scriptHash number
function SCRIPT.SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(scriptHash) end
--- @param scriptHash number
--- @return boolean
function SCRIPT.HAS_SCRIPT_WITH_NAME_HASH_LOADED(scriptHash) end
--- @param scriptHash number
--- @return boolean
function SCRIPT.DOES_SCRIPT_WITH_NAME_HASH_EXIST(scriptHash) end
--- @param threadId number
function SCRIPT.TERMINATE_THREAD(threadId) end
--- @param threadId number
--- @return boolean
function SCRIPT.IS_THREAD_ACTIVE(threadId) end
--- @param threadId number
--- @return string
function SCRIPT.GET_NAME_OF_SCRIPT_WITH_THIS_ID(threadId) end
--- Starts a new iteration of the current threads.
--- Call this first, then SCRIPT_THREAD_ITERATOR_GET_NEXT_THREAD_ID (0x30B4FA1C82DD4B9F)
function SCRIPT.SCRIPT_THREAD_ITERATOR_RESET() end
--- If the function returns 0, the end of the iteration has been reached.
--- @return number
function SCRIPT.SCRIPT_THREAD_ITERATOR_GET_NEXT_THREAD_ID() end
--- @return number
function SCRIPT.GET_ID_OF_THIS_THREAD() end
function SCRIPT.TERMINATE_THIS_THREAD() end
--- Gets the number of instances of the specified script is currently running.
--- 
--- Actually returns numRefs - 1.
--- if (program)
--- v3 = rage::scrProgram::GetNumRefs(program) - 1;
--- return v3;
--- @param scriptHash number
--- @return number
function SCRIPT.GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(scriptHash) end
--- @return string
function SCRIPT.GET_THIS_SCRIPT_NAME() end
--- @return number
function SCRIPT.GET_HASH_OF_THIS_SCRIPT_NAME() end
--- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork)
--- @param eventGroup number
--- @return number
function SCRIPT.GET_NUMBER_OF_EVENTS(eventGroup) end
--- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork)
--- @param eventGroup number
--- @param eventIndex number
--- @return boolean
function SCRIPT.GET_EVENT_EXISTS(eventGroup, eventIndex) end
--- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork)
--- @param eventGroup number
--- @param eventIndex number
--- @return number
function SCRIPT.GET_EVENT_AT_INDEX(eventGroup, eventIndex) end
--- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork)
--- 
--- Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!).
--- @param eventGroup number
--- @param eventIndex number
--- @param eventData number
--- @param eventDataSize number
--- @return boolean
function SCRIPT.GET_EVENT_DATA(eventGroup, eventIndex, eventData, eventDataSize) end
--- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork)
--- 
--- Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!).
--- 
--- playerBits (also known as playersToBroadcastTo) is a bitset that indicates which players this event should be sent to. In order to send the event to specific players only, use (1 << playerIndex). Set all bits if it should be broadcast to all players.
function SCRIPT.SHUTDOWN_LOADING_SCREEN() end
--- @param toggle boolean
function SCRIPT.SET_NO_LOADING_SCREEN(toggle) end
--- @return boolean
function SCRIPT.GET_NO_LOADING_SCREEN() end
function SCRIPT.COMMIT_TO_LOADINGSCREEN_SELCTION() end
--- Returns true if bit 0 in GtaThread+0x154 is set.
--- @return boolean
function SCRIPT.BG_IS_EXITFLAG_SET() end
--- Sets bit 1 in GtaThread+0x154
function SCRIPT.BG_SET_EXITFLAG_RESPONSE() end
--- Hashed version of BG_START_CONTEXT.
--- @param contextHash number
function SCRIPT.BG_START_CONTEXT_HASH(contextHash) end
--- Hashed version of BG_END_CONTEXT.
--- @param contextHash number
function SCRIPT.BG_END_CONTEXT_HASH(contextHash) end
--- Inserts the given context into the background scripts context map.
--- @param contextName string
function SCRIPT.BG_START_CONTEXT(contextName) end
--- Deletes the given context from the background scripts context map.
--- @param contextName string
function SCRIPT.BG_END_CONTEXT(contextName) end
--- @param scriptIndex number
--- @param p1 string
--- @return boolean
function SCRIPT.BG_DOES_LAUNCH_PARAM_EXIST(scriptIndex, p1) end
--- @param scriptIndex number
--- @param p1 string
--- @return number
function SCRIPT.BG_GET_LAUNCH_PARAM_VALUE(scriptIndex, p1) end
--- @param p0 number
--- @return number
function SCRIPT.BG_GET_SCRIPT_ID_FROM_NAME_HASH(p0) end
--- New variant of SEND_TU_SCRIPT_EVENT that automatically initializes the event data header.
--- See TRIGGER_SCRIPT_EVENT for more info.
--- @param eventGroup number
--- @param eventData number
--- @param eventDataSize number
--- @param playerBits number
--- @param eventType number
function SCRIPT._SEND_TU_SCRIPT_EVENT_NEW(eventGroup, eventData, eventDataSize, playerBits, eventType) end

SECURITY = {}

--- Registers a protected variable that will be checked for modifications by the anticheat
--- @param variable number
function SECURITY.REGISTER_SCRIPT_VARIABLE(variable) end
--- @param variable number
function SECURITY.UNREGISTER_SCRIPT_VARIABLE(variable) end
function SECURITY.FORCE_CHECK_SCRIPT_VARIABLES() end

SHAPETEST = {}

--- Asynchronously starts a line-of-sight (raycast) world probe shape test.
--- 
--- Use the handle with 0x3D87450E15D98694 or 0x65287525D951F6BE until it returns 0 or 2.
--- 
--- p8 is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param flags number
--- @param entity number
--- @param p8 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_LOS_PROBE(x1, y1, z1, x2, y2, z2, flags, entity, p8) end
--- Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param flags number
--- @param entity number
--- @param p8 number
--- @return number
function SHAPETEST.START_EXPENSIVE_SYNCHRONOUS_SHAPE_TEST_LOS_PROBE(x1, y1, z1, x2, y2, z2, flags, entity, p8) end
--- @param entity number
--- @param flags1 number
--- @param flags2 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_BOUNDING_BOX(entity, flags1, flags2) end
--- @param x number
--- @param y number
--- @param z number
--- @param dimX number
--- @param dimY number
--- @param dimZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param p9 number
--- @param flags number
--- @param entity number
--- @param p12 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_BOX(x, y, z, dimX, dimY, dimZ, rotX, rotY, rotZ, p9, flags, entity, p12) end
--- @param entity number
--- @param flags1 number
--- @param flags2 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_BOUND(entity, flags1, flags2) end
--- Raycast from point to point, where the ray has a radius.
--- 
--- flags:
--- vehicles=10
--- peds =12
--- 
--- Iterating through flags yields many ped / vehicle/ object combinations
--- 
--- p9 = 7, but no idea what it does
--- 
--- Entity is an entity to ignore
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param radius number
--- @param flags number
--- @param entity number
--- @param p9 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_CAPSULE(x1, y1, z1, x2, y2, z2, radius, flags, entity, p9) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param radius number
--- @param flags number
--- @param entity number
--- @param p9 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_SWEPT_SPHERE(x1, y1, z1, x2, y2, z2, radius, flags, entity, p9) end
--- Returns a ShapeTest handle that can be used with GET_SHAPE_TEST_RESULT.
--- 
--- In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7
--- @param pVec1 number
--- @param pVec2 number
--- @param flag number
--- @param entity number
--- @param flag2 number
--- @return number
function SHAPETEST.START_SHAPE_TEST_MOUSE_CURSOR_LOS_PROBE(pVec1, pVec2, flag, entity, flag2) end
--- Returns the result of a shape test: 0 if the handle is invalid, 1 if the shape test is still pending, or 2 if the shape test has completed, and the handle should be invalidated.
--- 
--- When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated.
--- @param shapeTestHandle number
--- @param hit any
--- @param endCoords number
--- @param surfaceNormal number
--- @param entityHit number
--- @return number
function SHAPETEST.GET_SHAPE_TEST_RESULT(shapeTestHandle, hit, endCoords, surfaceNormal, entityHit) end
--- Returns the result of a shape test, also returning the material of any touched surface.
--- 
--- When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated.
--- 
--- Unless the return value is 2, the other return values are undefined.
--- @param shapeTestHandle number
--- @param hit any
--- @param endCoords number
--- @param surfaceNormal number
--- @param materialHash any
--- @param entityHit number
--- @return number
function SHAPETEST.GET_SHAPE_TEST_RESULT_INCLUDING_MATERIAL(shapeTestHandle, hit, endCoords, surfaceNormal, materialHash, entityHit) end
--- Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle.
--- @param entityHit number
function SHAPETEST.RELEASE_SCRIPT_GUID_FROM_ENTITY(entityHit) end

SOCIALCLUB = {}

--- @return number
function SOCIALCLUB.SC_INBOX_GET_TOTAL_NUM_MESSAGES() end
--- @param msgIndex number
--- @return number
function SOCIALCLUB.SC_INBOX_GET_MESSAGE_TYPE_AT_INDEX(msgIndex) end
--- @param msgIndex number
--- @return boolean
function SOCIALCLUB.SC_INBOX_GET_MESSAGE_IS_READ_AT_INDEX(msgIndex) end
--- @param msgIndex number
--- @return boolean
function SOCIALCLUB.SC_INBOX_SET_MESSAGE_AS_READ_AT_INDEX(msgIndex) end
--- @param p0 number
--- @param context string
--- @param out any
--- @return boolean
function SOCIALCLUB.SC_INBOX_MESSAGE_GET_DATA_INT(p0, context, out) end
--- @param p0 number
--- @param p1 string
--- @return boolean
function SOCIALCLUB.SC_INBOX_MESSAGE_GET_DATA_BOOL(p0, p1) end
--- @param p0 number
--- @param context string
--- @param out string
--- @return boolean
function SOCIALCLUB.SC_INBOX_MESSAGE_GET_DATA_STRING(p0, context, out) end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_INBOX_MESSAGE_DO_APPLY(p0) end
--- @param p0 number
--- @return string
function SOCIALCLUB.SC_INBOX_MESSAGE_GET_RAW_TYPE_AT_INDEX(p0) end
--- @param gamerHandle number
function SOCIALCLUB.SC_INBOX_MESSAGE_PUSH_GAMER_T0_RECIP_LIST(gamerHandle) end
--- @param data number
function SOCIALCLUB.SC_INBOX_SEND_UGCSTATUPDATE_TO_RECIP_LIST(data) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function SOCIALCLUB.SC_INBOX_MESSAGE_GET_UGCDATA(p0, p1) end
--- @param index number
--- @param outData number
--- @return boolean
function SOCIALCLUB.SC_INBOX_GET_BOUNTY_DATA_AT_INDEX(index, outData) end
--- @param offset number
--- @param limit number
function SOCIALCLUB.SC_EMAIL_RETRIEVE_EMAILS(offset, limit) end
--- @return number
function SOCIALCLUB.SC_EMAIL_GET_RETRIEVAL_STATUS() end
--- @return number
function SOCIALCLUB.SC_EMAIL_GET_NUM_RETRIEVED_EMAILS() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function SOCIALCLUB.SC_EMAIL_GET_EMAIL_AT_INDEX(p0, p1) end
--- @param index number
function SOCIALCLUB._SC_EMAIL_MARKETING_EMAIL_OPENED(index) end
--- @param p0 number
--- @param p1 number
function SOCIALCLUB.SC_EMAIL_DELETE_EMAILS(p0, p1) end
--- @param gamerHandle number
function SOCIALCLUB.SC_EMAIL_MESSAGE_PUSH_GAMER_TO_RECIP_LIST(gamerHandle) end
function SOCIALCLUB.SC_EMAIL_MESSAGE_CLEAR_RECIP_LIST() end
--- @param p0 string
function SOCIALCLUB.SC_EMAIL_SEND_EMAIL(p0) end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_EMAIL_SET_CURRENT_EMAIL_TAG(p0) end
--- @param toggle boolean
function SOCIALCLUB.SC_CACHE_NEW_ROCKSTAR_MSGS(toggle) end
--- @return boolean
function SOCIALCLUB.SC_HAS_NEW_ROCKSTAR_MSG() end
--- @return string
function SOCIALCLUB.SC_GET_NEW_ROCKSTAR_MSG() end
--- @param attrHash number
--- @param value number
--- @return boolean
function SOCIALCLUB.SC_PRESENCE_ATTR_SET_INT(attrHash, value) end
--- @param attrHash number
--- @param value number
--- @return boolean
function SOCIALCLUB.SC_PRESENCE_ATTR_SET_FLOAT(attrHash, value) end
--- @param attrHash number
--- @param value string
--- @return boolean
function SOCIALCLUB.SC_PRESENCE_ATTR_SET_STRING(attrHash, value) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function SOCIALCLUB.SC_PRESENCE_SET_ACTIVITY_RATING(p0, p1) end
--- @param name string
--- @param value any
--- @return boolean
function SOCIALCLUB.SC_GAMERDATA_GET_INT(name, value) end
--- @param name string
--- @param value any
--- @return boolean
function SOCIALCLUB.SC_GAMERDATA_GET_FLOAT(name, value) end
--- @param name string
--- @return boolean
function SOCIALCLUB.SC_GAMERDATA_GET_BOOL(name) end
--- @param name string
--- @param value string
--- @return boolean
function SOCIALCLUB.SC_GAMERDATA_GET_STRING(name, value) end
--- @param value any
--- @return boolean
function SOCIALCLUB.SC_GAMERDATA_GET_ACTIVE_XP_BONUS(value) end
--- Starts a task to check an entered string for profanity on the ROS/Social Club services.
--- 
--- See also: 1753344C770358AE, 82E4A58BABC15AE7.
--- @param string string
--- @param token any
--- @return boolean
function SOCIALCLUB.SC_PROFANITY_CHECK_STRING(string, token) end
--- @param string string
--- @param token any
--- @return boolean
function SOCIALCLUB.SC_PROFANITY_CHECK_STRING_UGC(string, token) end
--- @param token number
--- @return boolean
function SOCIALCLUB.SC_PROFANITY_GET_CHECK_IS_VALID(token) end
--- @param token number
--- @return boolean
function SOCIALCLUB.SC_PROFANITY_GET_CHECK_IS_PENDING(token) end
--- @param token number
--- @return boolean
function SOCIALCLUB.SC_PROFANITY_GET_STRING_PASSED(token) end
--- @param token number
--- @return number
function SOCIALCLUB.SC_PROFANITY_GET_STRING_STATUS(token) end
--- Retrieves the profane part of the string with max size of 128.
--- Returns true if profane term was retrieved.
--- @param token number
--- @param outProfaneWord string
--- @return boolean
function SOCIALCLUB.SC_PROFANITY_GET_PROFANE_WORD(token, outProfaneWord) end
--- @param p0 string
--- @param p1 any
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_CHECK_STRING(p0, p1) end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_GET_CHECK_IS_VALID(p0) end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_GET_CHECK_IS_PENDING(p0) end
--- @param token number
--- @return number
function SOCIALCLUB.SC_LICENSEPLATE_GET_COUNT(token) end
--- @param token number
--- @param plateIndex number
--- @return string
function SOCIALCLUB.SC_LICENSEPLATE_GET_PLATE(token, plateIndex) end
--- @param token number
--- @param plateIndex number
--- @return string
function SOCIALCLUB.SC_LICENSEPLATE_GET_PLATE_DATA(token, plateIndex) end
--- @param oldPlateText string
--- @param newPlateText string
--- @param plateData number
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_SET_PLATE_DATA(oldPlateText, newPlateText, plateData) end
--- @param plateText string
--- @param plateData number
--- @param token any
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_ADD(plateText, plateData, token) end
--- @param token number
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_GET_ADD_IS_PENDING(token) end
--- @param token number
--- @return number
function SOCIALCLUB.SC_LICENSEPLATE_GET_ADD_STATUS(token) end
--- @param plateText string
--- @param token any
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_ISVALID(plateText, token) end
--- @param token number
--- @return boolean
function SOCIALCLUB.SC_LICENSEPLATE_GET_ISVALID_IS_PENDING(token) end
--- @param token number
--- @return number
function SOCIALCLUB.SC_LICENSEPLATE_GET_ISVALID_STATUS(token) end
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_IS_ACTIVE() end
--- @return number
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EVENT_ID() end
--- @param p0 string
--- @param p1 any
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT(p0, p1) end
--- @param p0 string
--- @param p1 any
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT(p0, p1) end
--- @param p0 string
--- @param p1 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING(p0, p1) end
--- @param p0 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_DISPLAY_NAME(p0) end
--- @param p0 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_IS_ACTIVE_FOR_TYPE(p0) end
--- @param p0 string
--- @return number
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EVENT_ID_FOR_TYPE(p0) end
--- @param p0 string
--- @param p1 any
--- @param p2 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT_FOR_TYPE(p0, p1, p2) end
--- @param p0 string
--- @param p1 any
--- @param p2 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT_FOR_TYPE(p0, p1, p2) end
--- @param p0 string
--- @param p1 string
--- @param p2 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING_FOR_TYPE(p0, p1, p2) end
--- @param p0 string
--- @param p1 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_DISPLAY_NAME_FOR_TYPE(p0, p1) end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_IS_ACTIVE_BY_ID(p0) end
--- @param p0 number
--- @param p1 string
--- @param p2 any
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT_BY_ID(p0, p1, p2) end
--- @param p0 number
--- @param p1 string
--- @param p2 any
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT_BY_ID(p0, p1, p2) end
--- @param p0 number
--- @param p1 string
--- @param p2 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING_BY_ID(p0, p1, p2) end
--- @param p0 number
--- @param p1 string
--- @return boolean
function SOCIALCLUB.SC_COMMUNITY_EVENT_GET_DISPLAY_NAME_BY_ID(p0, p1) end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_TRANSITION_NEWS_SHOW(p0) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function SOCIALCLUB.SC_TRANSITION_NEWS_SHOW_TIMED(p0, p1) end
--- @return boolean
function SOCIALCLUB.SC_TRANSITION_NEWS_SHOW_NEXT_ITEM() end
--- @return boolean
function SOCIALCLUB.SC_TRANSITION_NEWS_HAS_EXTRA_DATA_TU() end
--- @param p0 string
--- @param p1 any
--- @return boolean
function SOCIALCLUB.SC_TRANSITION_NEWS_GET_EXTRA_DATA_INT_TU(p0, p1) end
function SOCIALCLUB.SC_TRANSITION_NEWS_END() end
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_PAUSE_NEWS_INIT_STARTER_PACK(p0) end
--- Fills some 0x30 sized struct
--- @param p0 number
--- @return boolean
function SOCIALCLUB.SC_PAUSE_NEWS_GET_PENDING_STORY(p0) end
function SOCIALCLUB.SC_PAUSE_NEWS_SHUTDOWN() end
--- Returns the nickname of the logged-in Rockstar Social Club account.
--- @return string
function SOCIALCLUB.SC_ACCOUNT_INFO_GET_NICKNAME() end
--- @param p0 any
--- @return boolean
function SOCIALCLUB.SC_ACHIEVEMENT_INFO_STATUS(p0) end
--- Same as HAS_ACHIEVEMENT_BEEN_PASSED
--- @param achievementId number
--- @return boolean
function SOCIALCLUB.SC_HAS_ACHIEVEMENT_BEEN_PASSED(achievementId) end

STATS = {}

--- Example:
--- 
--- for (v_2 = 0; v_2 <= 4; v_2 += 1) {
--- STATS::STAT_CLEAR_SLOT_FOR_RELOAD(v_2);
--- }
--- @param statSlot number
--- @return boolean
function STATS.STAT_CLEAR_SLOT_FOR_RELOAD(statSlot) end
--- @param statSlot number
--- @return boolean
function STATS.STAT_LOAD(statSlot) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 number
--- @param p3 boolean
--- @return boolean
function STATS.STAT_SAVE(p0, p1, p2, p3) end
--- @param p0 number
function STATS.STAT_SET_OPEN_SAVETYPE_IN_JOB(p0) end
--- @param statSlot number
--- @return boolean
function STATS.STAT_LOAD_PENDING(statSlot) end
--- @return boolean
function STATS.STAT_SAVE_PENDING() end
--- @return boolean
function STATS.STAT_SAVE_PENDING_OR_REQUESTED() end
--- p0 is characterSlot? seems range from 0 to 2
--- @param p0 number
--- @return boolean
function STATS.STAT_DELETE_SLOT(p0) end
--- @param statSlot number
--- @return boolean
function STATS.STAT_SLOT_IS_LOADED(statSlot) end
--- @param p0 number
--- @return boolean
function STATS.STAT_CLOUD_SLOT_LOAD_FAILED(p0) end
--- @param p0 number
--- @return number
function STATS.STAT_CLOUD_SLOT_LOAD_FAILED_CODE(p0) end
--- @param toggle boolean
function STATS.STAT_SET_BLOCK_SAVES(toggle) end
--- @return boolean
function STATS.STAT_GET_BLOCK_SAVES() end
--- @param p0 number
--- @return boolean
function STATS.STAT_CLOUD_SLOT_SAVE_FAILED(p0) end
--- @param p0 number
function STATS.STAT_CLEAR_PENDING_SAVES(p0) end
--- @return boolean
function STATS.STAT_LOAD_DIRTY_READ_DETECTED() end
function STATS.STAT_CLEAR_DIRTY_READ_DETECTED() end
--- @return boolean
function STATS.STAT_GET_LOAD_SAFE_TO_PROGRESS_TO_MP_FROM_SP() end
--- Returns stat hash based on dataType, statIndex/statId and characterSlot. Related to CStatsMpCharacterMappingData
--- @param dataType number
--- @param statIndex number
--- @param charSlot number
--- @return number
function STATS._GET_STAT_HASH_FOR_CHARACTER_STAT(dataType, statIndex, charSlot) end
--- Example:
--- STATS::STAT_SET_INT(MISC::GET_HASH_KEY("MPPLY_KILLS_PLAYERS"), 1337, true);
--- @param statName number
--- @param value number
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_INT(statName, value, save) end
--- Example:
--- STATS::STAT_SET_FLOAT(MISC::GET_HASH_KEY("MP0_WEAPON_ACCURACY"), 66.6f, true);
--- @param statName number
--- @param value number
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_FLOAT(statName, value, save) end
--- Example:
--- STATS::STAT_SET_BOOL(MISC::GET_HASH_KEY("MPPLY_MELEECHLENGECOMPLETED"), trur, true);
--- @param statName number
--- @param value boolean
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_BOOL(statName, value, save) end
--- The following values have been found in the decompiled scripts:
--- "RC_ABI1"
--- "RC_ABI2"
--- "RC_BA1"
--- "RC_BA2"
--- "RC_BA3"
--- "RC_BA3A"
--- "RC_BA3C"
--- "RC_BA4"
--- "RC_DRE1"
--- "RC_EPS1"
--- "RC_EPS2"
--- "RC_EPS3"
--- "RC_EPS4"
--- "RC_EPS5"
--- "RC_EPS6"
--- "RC_EPS7"
--- "RC_EPS8"
--- "RC_EXT1"
--- "RC_EXT2"
--- "RC_EXT3"
--- "RC_EXT4"
--- "RC_FAN1"
--- "RC_FAN2"
--- "RC_FAN3"
--- "RC_HAO1"
--- "RC_HUN1"
--- "RC_HUN2"
--- "RC_JOS1"
--- "RC_JOS2"
--- "RC_JOS3"
--- "RC_JOS4"
--- "RC_MAU1"
--- "RC_MIN1"
--- "RC_MIN2"
--- "RC_MIN3"
--- "RC_MRS1"
--- "RC_MRS2"
--- "RC_NI1"
--- "RC_NI1A"
--- "RC_NI1B"
--- "RC_NI1C"
--- "RC_NI1D"
--- "RC_NI2"
--- "RC_NI3"
--- "RC_OME1"
--- "RC_OME2"
--- "RC_PA1"
--- "RC_PA2"
--- "RC_PA3"
--- "RC_PA3A"
--- "RC_PA3B"
--- "RC_PA4"
--- "RC_RAM1"
--- "RC_RAM2"
--- "RC_RAM3"
--- "RC_RAM4"
--- "RC_RAM5"
--- "RC_SAS1"
--- "RC_TON1"
--- "RC_TON2"
--- "RC_TON3"
--- "RC_TON4"
--- "RC_TON5"
--- @param statName number
--- @param value string
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_GXT_LABEL(statName, value, save) end
--- 'value' is a structure to a structure, 'numFields' is how many fields there are in said structure (usually 7).
--- 
--- The structure looks like this:
--- 
--- int year
--- int month
--- int day
--- int hour
--- int minute
--- int second
--- int millisecond
--- 
--- The decompiled scripts use TIME::GET_POSIX_TIME to fill this structure.
--- @param statName number
--- @param value number
--- @param numFields number
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_DATE(statName, value, numFields, save) end
--- @param statName number
--- @param value string
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_STRING(statName, value, save) end
--- @param statName number
--- @param x number
--- @param y number
--- @param z number
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_POS(statName, x, y, z, save) end
--- @param statName number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_MASKED_INT(statName, p1, p2, p3, save) end
--- @param statName number
--- @param value string
--- @param save boolean
--- @return boolean
function STATS.STAT_SET_USER_ID(statName, value, save) end
--- p1 always true.
--- @param statName number
--- @param p1 boolean
--- @return boolean
function STATS.STAT_SET_CURRENT_POSIX_TIME(statName, p1) end
--- p2 appears to always be -1
--- 
--- @param statHash number
--- @param outValue any
--- @param p2 number
--- @return boolean
function STATS.STAT_GET_INT(statHash, outValue, p2) end
--- @param statHash number
--- @param outValue any
--- @param p2 number
--- @return boolean
function STATS.STAT_GET_FLOAT(statHash, outValue, p2) end
--- @param statHash number
--- @param outValue any
--- @param p2 number
--- @return boolean
function STATS.STAT_GET_BOOL(statHash, outValue, p2) end
--- p3 is probably characterSlot or BOOL save, always -1
--- @param statHash number
--- @param outValue number
--- @param numFields number
--- @param p3 number
--- @return boolean
function STATS.STAT_GET_DATE(statHash, outValue, numFields, p3) end
--- p1 is always -1 in the script files
--- @param statHash number
--- @param p1 number
--- @return string
function STATS.STAT_GET_STRING(statHash, p1) end
--- p3 is probably characterSlot or BOOL save, always -1
--- @param statName number
--- @param outX any
--- @param outY any
--- @param outZ any
--- @param p4 number
--- @return boolean
function STATS.STAT_GET_POS(statName, outX, outY, outZ, p4) end
--- p4 is probably characterSlot or BOOL save
--- @param statHash number
--- @param outValue any
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @return boolean
function STATS.STAT_GET_MASKED_INT(statHash, outValue, p2, p3, p4) end
--- Returns the rockstar ID (user id) value of a given stat. Returns "STAT_UNKNOWN" if the statHash is invalid or the stat has no userId
--- @param statHash number
--- @return string
function STATS.STAT_GET_USER_ID(statHash) end
--- @param statName number
--- @return string
function STATS.STAT_GET_LICENSE_PLATE(statName) end
--- @param statName number
--- @param str string
--- @return boolean
function STATS.STAT_SET_LICENSE_PLATE(statName, str) end
--- @param statName number
--- @param value number
function STATS.STAT_INCREMENT(statName, value) end
--- @return boolean
function STATS.STAT_COMMUNITY_START_SYNCH() end
--- @return boolean
function STATS.STAT_COMMUNITY_SYNCH_IS_PENDING() end
--- @param statName number
--- @param p1 number
--- @param outValue any
--- @return boolean
function STATS.STAT_COMMUNITY_GET_HISTORY(statName, p1, outValue) end
--- p0 seems to range from 0 to 7
--- @param p0 number
function STATS.STAT_RESET_ALL_ONLINE_CHARACTER_STATS(p0) end
--- p0 seems to range from 0 to 7
--- @param p0 number
function STATS.STAT_LOCAL_RESET_ALL_ONLINE_CHARACTER_STATS(p0) end
--- @param statName number
--- @return number
function STATS.STAT_GET_NUMBER_OF_DAYS(statName) end
--- @param statName number
--- @return number
function STATS.STAT_GET_NUMBER_OF_HOURS(statName) end
--- @param statName number
--- @return number
function STATS.STAT_GET_NUMBER_OF_MINUTES(statName) end
--- @param statName number
--- @return number
function STATS.STAT_GET_NUMBER_OF_SECONDS(statName) end
--- Does not take effect immediately, unfortunately.
--- 
--- profileSetting seems to only be 936, 937 and 938 in scripts
--- @param profileSetting number
--- @param value number
function STATS.STAT_SET_PROFILE_SETTING_VALUE(profileSetting, value) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
function STATS.STATS_COMPLETED_CHARACTER_CREATION(p0) end
--- Needs more research. Possibly used to calculate the "mask" when calling "STAT_SET_MASKED_INT"?
--- @param p0 number
--- @return number
function STATS.PACKED_STAT_GET_INT_STAT_INDEX(p0) end
--- @param index number
--- @param spStat boolean
--- @param charStat boolean
--- @param character number
--- @return number
function STATS.GET_PACKED_INT_STAT_KEY(index, spStat, charStat, character) end
--- @param index number
--- @param spStat boolean
--- @param charStat boolean
--- @param character number
--- @return number
function STATS.GET_PACKED_TU_INT_STAT_KEY(index, spStat, charStat, character) end
--- Needs more research. Gets the stat name of a masked int?
--- 
--- section - values used in the decompiled scripts:
--- "_NGPSTAT_INT"
--- "_MP_NGPSTAT_INT"
--- "_MP_LRPSTAT_INT"
--- "_MP_APAPSTAT_INT"
--- "_MP_LR2PSTAT_INT"
--- "_MP_BIKEPSTAT_INT"
--- "_MP_IMPEXPPSTAT_INT"
--- "_MP_GUNRPSTAT_INT"
--- "_NGDLCPSTAT_INT"
--- "_MP_NGDLCPSTAT_INT"
--- "_DLCSMUGCHARPSTAT_INT"
--- "_GANGOPSPSTAT_INT"
--- "_BUSINESSBATPSTAT_INT"
--- "_ARENAWARSPSTAT_INT"
--- "_CASINOPSTAT_INT"
--- "_CASINOHSTPSTAT_INT"
--- @param index number
--- @param spStat boolean
--- @param charStat boolean
--- @param character number
--- @param section string
--- @return number
function STATS.GET_PACKED_NG_INT_STAT_KEY(index, spStat, charStat, character, section) end
--- @param index number
--- @param characterSlot number
--- @return boolean
function STATS.GET_PACKED_STAT_BOOL_CODE(index, characterSlot) end
--- @param index number
--- @param characterSlot number
--- @return number
function STATS.GET_PACKED_STAT_INT_CODE(index, characterSlot) end
--- @param index number
--- @param value boolean
--- @param characterSlot number
function STATS.SET_PACKED_STAT_BOOL_CODE(index, value, characterSlot) end
--- @param index number
--- @param value number
--- @param characterSlot number
function STATS.SET_PACKED_STAT_INT_CODE(index, value, characterSlot) end
--- @param action string
--- @param value number
function STATS.PLAYSTATS_BACKGROUND_SCRIPT_ACTION(action, value) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param action string
--- @param p4 boolean
--- @param p5 number
function STATS._PLAYSTATS_FLOW_LOW(posX, posY, posZ, action, p4, p5) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param action string
--- @param p4 boolean
--- @param p5 number
function STATS._PLAYSTATS_FLOW_MEDIUM(posX, posY, posZ, action, p4, p5) end
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param action string
--- @param p4 boolean
--- @param p5 number
function STATS._PLAYSTATS_FLOW_HIGH(posX, posY, posZ, action, p4, p5) end
--- @param p0 string
function STATS.PLAYSTATS_NPC_INVITE(p0) end
--- @param amount number
--- @param type number
--- @param category number
function STATS.PLAYSTATS_AWARD_XP(amount, type, category) end
--- @param rank number
function STATS.PLAYSTATS_RANK_UP(rank) end
function STATS.PLAYSTATS_STARTED_SESSION_IN_OFFLINEMODE() end
--- @param p0 number
--- @param activityId number
--- @param p2 number
function STATS.PLAYSTATS_ACTIVITY_DONE(p0, activityId, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_LEAVE_JOB_CHAIN(p0, p1, p2, p3, p4) end
--- @param p0 string
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
function STATS.PLAYSTATS_MISSION_STARTED(p0, p1, p2, p3) end
--- @param p0 string
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @param p4 boolean
--- @param p5 boolean
function STATS.PLAYSTATS_MISSION_OVER(p0, p1, p2, p3, p4, p5) end
--- @param p0 string
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_MISSION_CHECKPOINT(p0, p1, p2, p3) end
--- @param name string
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_RANDOM_MISSION_DONE(name, p1, p2, p3) end
--- @param amount number
--- @param act number
--- @param player number
--- @param cm number
function STATS.PLAYSTATS_ROS_BET(amount, act, player, cm) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_RACE_CHECKPOINT(p0, p1, p2, p3, p4) end
--- @param playerAccountId any
--- @param posixTime any
--- @return boolean
function STATS.PLAYSTATS_CREATE_MATCH_HISTORY_ID_2(playerAccountId, posixTime) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.PLAYSTATS_MATCH_STARTED(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_SHOP_ITEM(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
function STATS.PLAYSTATS_CRATE_DROP_MISSION_DONE(p0, p1, p2, p3, p4, p5, p6, p7) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.PLAYSTATS_CRATE_CREATED(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_HOLD_UP_MISSION_DONE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_IMPORT_EXPORT_MISSION_DONE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_RACE_TO_POINT_MISSION_DONE(p0, p1, p2, p3) end
--- @param p0 number
function STATS.PLAYSTATS_ACQUIRED_HIDDEN_PACKAGE(p0) end
--- @param scaleformHash number
--- @param p1 number
function STATS.PLAYSTATS_WEBSITE_VISITED(scaleformHash, p1) end
--- @param p0 number
--- @param p1 boolean
function STATS.PLAYSTATS_FRIEND_ACTIVITY(p0, p1) end
--- This native does absolutely nothing, just a nullsub
--- @param totalTimeMs number
--- @param p1 number
--- @param p2 boolean
function STATS.PLAYSTATS_ODDJOB_DONE(totalTimeMs, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_PROP_CHANGE(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_CLOTH_CHANGE(p0, p1, p2, p3, p4) end
--- This is a typo made by R*. It's supposed to be called PLAYSTATS_WEAPON_MOD_CHANGE.
--- @param weaponHash number
--- @param componentHashTo number
--- @param componentHashFrom number
function STATS.PLAYSTATS_WEAPON_MODE_CHANGE(weaponHash, componentHashTo, componentHashFrom) end
--- @param cheat string
function STATS.PLAYSTATS_CHEAT_APPLIED(cheat) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_JOB_ACTIVITY_END(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_JOB_BEND(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_JOB_LTS_END(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_JOB_LTS_ROUND_END(p0, p1, p2, p3) end
--- @param element number
--- @param item string
function STATS.PLAYSTATS_QUICKFIX_TOOL(element, item) end
--- @param msStoodIdle number
function STATS.PLAYSTATS_IDLE_KICK(msStoodIdle) end
--- @param joinType number
function STATS.PLAYSTATS_SET_JOIN_TYPE(joinType) end
--- @param hash number
--- @param p1 number
function STATS.PLAYSTATS_HEIST_SAVE_CHEAT(hash, p1) end
--- @param p0 number
function STATS.PLAYSTATS_APPEND_DIRECTOR_METRIC(p0) end
--- @param id number
function STATS.PLAYSTATS_AWARD_BAD_SPORT(id) end
--- @param modelHash number
function STATS.PLAYSTATS_PEGASUS_AS_PERSONAL_AIRCRAFT(modelHash) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS._PLAYSTATS_SHOPMENU_NAV(p0, p1, p2, p3) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_CHALLENGES(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_VEHICLETARGET(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_URBANWARFARE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_CHECKPOINTCOLLECTION(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_ATOB(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_PENNEDIN(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_PASSTHEPARCEL(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_HOTPROPERTY(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_DEADDROP(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_KINGOFTHECASTLE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_CRIMINALDAMAGE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_COMPETITIVEURBANWARFARE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_FM_EVENT_HUNTBEAST(p0) end
--- @param data number
function STATS.PLAYSTATS_PIMENU_HIDE_OPTIONS(data) end
--- Known text types: NAME_YACHT, NAME_ORG_OFFICE
--- @param isBoss boolean
--- @param bossType number
--- @param bossId1 number
--- @param bossId2 number
--- @param textType number
--- @param textString string
--- @param textSource number
function STATS._PLAYSTATS_NAMED_USER_CONTENT(isBoss, bossType, bossId1, bossId2, textType, textString, textSource) end
--- @param p0 number
--- @param p1 number
--- @return number
function STATS.LEADERBOARDS_GET_NUMBER_OF_COLUMNS(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return number
function STATS.LEADERBOARDS_GET_COLUMN_ID(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return number
function STATS.LEADERBOARDS_GET_COLUMN_TYPE(p0, p1, p2) end
--- @return number
function STATS.LEADERBOARDS_READ_CLEAR_ALL() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return number
function STATS.LEADERBOARDS_READ_CLEAR(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS_READ_PENDING(p0, p1, p2) end
--- @return boolean
function STATS.LEADERBOARDS_READ_ANY_PENDING() end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS_READ_SUCCESSFUL(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @param p4 number
--- @param p5 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_FRIENDS_BY_ROW(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_BY_HANDLE(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_BY_RANK(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_BY_RADIUS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_BY_SCORE_INT(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_BY_SCORE_FLOAT(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_RANK_PREDICTION(p0, p1, p2) end
--- @param p0 number
--- @param gamerHandleCsv string
--- @param platformName string
--- @return boolean
function STATS.LEADERBOARDS2_READ_BY_PLAFORM(p0, gamerHandleCsv, platformName) end
--- @param p0 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_GET_ROW_DATA_START(p0) end
function STATS.LEADERBOARDS2_READ_GET_ROW_DATA_END() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function STATS.LEADERBOARDS2_READ_GET_ROW_DATA_INFO(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function STATS.LEADERBOARDS2_READ_GET_ROW_DATA_INT(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function STATS.LEADERBOARDS2_READ_GET_ROW_DATA_FLOAT(p0, p1) end
--- @param p0 number
--- @return boolean
function STATS.LEADERBOARDS2_WRITE_DATA(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.LEADERBOARDS_WRITE_ADD_COLUMN(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.LEADERBOARDS_WRITE_ADD_COLUMN_LONG(p0, p1, p2) end
--- @param p0 number
--- @return boolean
function STATS.LEADERBOARDS_CACHE_DATA_ROW(p0) end
function STATS.LEADERBOARDS_CLEAR_CACHE_DATA() end
--- @param p0 number
function STATS.LEADERBOARDS_CLEAR_CACHE_DATA_ID(p0) end
--- @param p0 number
--- @return boolean
function STATS.LEADERBOARDS_GET_CACHE_EXISTS(p0) end
--- @param p0 number
--- @return number
function STATS.LEADERBOARDS_GET_CACHE_TIME(p0) end
--- @param p0 number
--- @return number
function STATS.LEADERBOARDS_GET_CACHE_NUMBER_OF_ROWS(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @return boolean
function STATS.LEADERBOARDS_GET_CACHE_DATA_ROW(p0, p1, p2) end
--- @param statHash number
--- @param value number
--- @param p2 number
function STATS.PRESENCE_EVENT_UPDATESTAT_INT(statHash, value, p2) end
--- @param statHash number
--- @param value number
--- @param p2 number
function STATS.PRESENCE_EVENT_UPDATESTAT_FLOAT(statHash, value, p2) end
--- @param statHash number
--- @param value number
--- @param p2 number
--- @param string string
function STATS.PRESENCE_EVENT_UPDATESTAT_INT_WITH_STRING(statHash, value, p2, string) end
--- @return boolean
function STATS.GET_PLAYER_HAS_DRIVEN_ALL_VEHICLES() end
function STATS.SET_HAS_POSTED_ALL_VEHICLES_DRIVEN() end
function STATS.SET_PROFILE_SETTING_PROLOGUE_COMPLETE() end
--- Sets profile setting 939
function STATS.SET_PROFILE_SETTING_SP_CHOP_MISSION_COMPLETE() end
--- Sets profile setting 933
--- @param value number
function STATS.SET_PROFILE_SETTING_CREATOR_RACES_DONE(value) end
--- Sets profile setting 934
--- @param value number
function STATS.SET_PROFILE_SETTING_CREATOR_DM_DONE(value) end
--- Sets profile setting 935
--- @param value number
function STATS.SET_PROFILE_SETTING_CREATOR_CTF_DONE(value) end
--- @param p0 number
--- @param characterSlot number
function STATS.SET_JOB_ACTIVITY_ID_STARTED(p0, characterSlot) end
--- @param p0 number
--- @param characterSlot number
function STATS.SET_FREEMODE_PROLOGUE_DONE(p0, characterSlot) end
--- Sets profile setting 940 and 941
--- @param profileSetting number
--- @param settingValue number
function STATS.SET_FREEMODE_STRAND_PROGRESSION_STATUS(profileSetting, settingValue) end
--- @param p0 number
--- @param p1 number
function STATS.STAT_NETWORK_INCREMENT_ON_SUICIDE(p0, p1) end
function STATS.STAT_SET_CHEAT_IS_ACTIVE() end
--- @param p0 number
--- @param p1 number
--- @return boolean
function STATS.LEADERBOARDS2_WRITE_DATA_FOR_EVENT_TYPE(p0, p1) end
function STATS.FORCE_CLOUD_MP_STATS_DOWNLOAD_AND_OVERWRITE_LOCAL_SAVE() end
function STATS.STAT_MIGRATE_CLEAR_FOR_RESTART() end
--- platformName must be one of the following: ps3, xbox360, ps4, xboxone
--- @param platformName string
--- @return boolean
function STATS.STAT_MIGRATE_SAVEGAME_START(platformName) end
--- @return number
function STATS.STAT_MIGRATE_SAVEGAME_GET_STATUS() end
--- @return boolean
function STATS.STAT_MIGRATE_CHECK_ALREADY_DONE() end
--- @return boolean
function STATS.STAT_MIGRATE_CHECK_START() end
--- @param p0 number
--- @return number
function STATS.STAT_MIGRATE_CHECK_GET_IS_PLATFORM_AVAILABLE(p0) end
--- @param p0 number
--- @param p1 number
--- @return number
function STATS.STAT_MIGRATE_CHECK_GET_PLATFORM_STATUS(p0, p1) end
--- @param data number
--- @return number
function STATS.STAT_GET_SAVE_MIGRATION_STATUS(data) end
--- @return boolean
function STATS.STAT_SAVE_MIGRATION_CANCEL_PENDING_OPERATION() end
--- @return number
function STATS.STAT_GET_CANCEL_SAVE_MIGRATION_STATUS() end
--- @param contentId number
--- @param srcPlatform string
--- @param srcGamerHandle string
--- @return boolean
function STATS.STAT_SAVE_MIGRATION_CONSUME_CONTENT(contentId, srcPlatform, srcGamerHandle) end
--- @param p0 any
--- @return number
function STATS.STAT_GET_SAVE_MIGRATION_CONSUME_CONTENT_STATUS(p0) end
function STATS.STAT_ENABLE_STATS_TRACKING() end
--- Prevents updates to CStatsMgr (e.g., STAT_SET_* natives)
function STATS.STAT_DISABLE_STATS_TRACKING() end
--- @return boolean
function STATS.STAT_IS_STATS_TRACKING_ENABLED() end
--- enum StatTrackingType
--- {
--- LongestWheelie = 1,
--- LongestStoppie = 2,
--- NoCrashes = 3,
--- HighestSpeed = 4,
--- _MostFlips = 5,
--- _LongestSpin = 6,
--- _HighestJumpReached = 7,
--- LongestJump = 8,
--- _NearMissesNoCrash = 9,
--- LongestFallSurvived = 10,
--- LowestParachute = 11,
--- ReverseDriving = 12,
--- LongestFreefall = 13,
--- VehiclesStolen = 14,
--- _SomeCFireEventCount = 15,
--- _Unk16 = 16,
--- _LowFlyingTime = 17,
--- LowFlying = 18,
--- _InvertedFlyingTime = 19,
--- InvertedFlying = 20,
--- _PlaneSpinCount = 21,
--- MeleeKills = 22, // Players
--- _LongestSniperKill = 23,
--- SniperSkills = 24, // Players
--- DrivebyKills = 25, // Players
--- HeadshotKills = 26, // Players
--- LongestBail = 27,
--- _TotalRammedByCar = 28,
--- NearMissesPrecise = 29,
--- _FreefallTime = 30,
--- Unk31 = 31,
--- }
--- 
--- enum StatTrackingValueType
--- {
--- Total,
--- Max,
--- Min
--- }
--- @param statType number
--- @param valueType number
--- @return boolean
function STATS.STAT_START_RECORD_STAT(statType, valueType) end
--- @return boolean
function STATS.STAT_STOP_RECORD_STAT() end
--- @param value any
--- @return boolean
function STATS.STAT_GET_RECORDED_VALUE(value) end
--- @return boolean
function STATS.STAT_IS_RECORDING_STAT() end
--- Perform the most near misses with other vehicles in a land vehicle without crashing
--- @return number
function STATS.STAT_GET_CURRENT_NEAR_MISS_NOCRASH_PRECISE() end
--- Perform the longest wheelie on a motorcycle
--- @return number
function STATS.STAT_GET_CURRENT_REAR_WHEEL_DISTANCE() end
--- Perform the longest stoppie on a motorcycle
--- @return number
function STATS.STAT_GET_CURRENT_FRONT_WHEEL_DISTANCE() end
--- Perform the longest jump in a land vehicle
--- @return number
function STATS.STAT_GET_CURRENT_JUMP_DISTANCE() end
--- Drive the furthest distance in a land vehicle without crashing
--- @return number
function STATS.STAT_GET_CURRENT_DRIVE_NOCRASH_DISTANCE() end
--- Achieve the highest speed in a land vehicle
--- @return number
function STATS.STAT_GET_CURRENT_SPEED() end
--- Reverse the longest distance without crashing
--- @return number
function STATS.STAT_GET_CURRENT_DRIVING_REVERSE_DISTANCE() end
--- Fall the longest distance with a parachute before opening it
--- @return number
function STATS.STAT_GET_CURRENT_SKYDIVING_DISTANCE() end
--- Fly low to the ground for the longest distance
--- @return number
function STATS.STAT_GET_CHALLENGE_FLYING_DIST() end
--- @param outValue any
--- @return boolean
function STATS.STAT_GET_FLYING_ALTITUDE(outValue) end
--- Or non-flyable area
--- @return boolean
function STATS.STAT_IS_PLAYER_VEHICLE_ABOVE_OCEAN() end
--- Travel the furthest distance when bailing from a vehicle
--- @return number
function STATS.STAT_GET_VEHICLE_BAIL_DISTANCE() end
--- This function is hard-coded to always return 1.
--- @return boolean
function STATS.STAT_ROLLBACK_SAVE_MIGRATION() end
--- Sets profile setting 866
--- @param value number
function STATS.SET_HAS_SPECIALEDITION_CONTENT(value) end
--- Sets profile setting 501
--- @param transactionId number
function STATS.SET_SAVE_MIGRATION_TRANSACTION_ID_WARNING(transactionId) end
--- @param characterSlot number
--- @param p1 number
--- @param p2 number
function STATS.GET_BOSS_GOON_UUID(characterSlot, p1, p2) end
--- @param p0 number
function STATS.PLAYSTATS_BW_BOSSONBOSSDEATHMATCH(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_YATCHATTACK(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_HUNT_THE_BOSS(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_SIGHTSEER(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_ASSAULT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_BELLY_OF_THE_BEAST(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_HEAD_HUNTER(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_FRAGILE_GOODS(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BW_AIR_FREIGHT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_CAR_JACKING(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_SMASH_AND_GRAB(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_PROTECTION_RACKET(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_MOST_WANTED(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_FINDERS_KEEPERS(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_POINT_TO_POINT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_CASHING(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BC_SALVAGE(p0) end
--- @param amount number
function STATS.PLAYSTATS_SPENT_PI_CUSTOM_LOADOUT(amount) end
--- @param data number
function STATS.PLAYSTATS_BUY_CONTRABAND_MISSION(data) end
--- @param data number
function STATS.PLAYSTATS_SELL_CONTRABAND_MISSION(data) end
--- @param data number
function STATS.PLAYSTATS_DEFEND_CONTRABAND_MISSION(data) end
--- @param data number
function STATS.PLAYSTATS_RECOVER_CONTRABAND_MISSION(data) end
--- @param p0 number
function STATS.PLAYSTATS_HIT_CONTRABAND_DESTROY_LIMIT(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.START_BEING_BOSS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.START_BEING_GOON(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.END_BEING_BOSS(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.END_BEING_GOON(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
function STATS.HIRED_LIMO(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param vehicleHash number
function STATS.ORDER_BOSS_VEHICLE(p0, p1, vehicleHash) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.CHANGE_UNIFORM(p0, p1, p2) end
--- @param p0 number
function STATS.CHANGE_GOON_LOOKING_FOR_WORK(p0) end
--- @param p0 number
function STATS.SEND_METRIC_GHOSTING_TO_PLAYER(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.SEND_METRIC_VIP_POACH(p0, p1, p2) end
--- @param p0 number
function STATS.SEND_METRIC_PUNISH_BODYGUARD(p0) end
--- Allows CEventNetworkStuntPerformed to be triggered.
function STATS.PLAYSTATS_START_TRACKING_STUNTS() end
--- Disallows CEventNetworkStuntPerformed to be triggered.
function STATS.PLAYSTATS_STOP_TRACKING_STUNTS() end
--- @param p0 number
function STATS.PLAYSTATS_MISSION_ENDED(p0) end
--- @param p0 number
function STATS.PLAYSTATS_IMPEXP_MISSION_ENDED(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param role number
--- @param p5 number
--- @param p6 number
function STATS.PLAYSTATS_CHANGE_MC_ROLE(p0, p1, p2, p3, role, p5, p6) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_CHANGE_MC_OUTFIT(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_SWITCH_MC_EMBLEM(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_MC_REQUEST_BIKE(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_MC_KILLED_RIVAL_MC_MEMBER(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_ABANDONED_MC(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function STATS.PLAYSTATS_EARNED_MC_POINTS(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function STATS.PLAYSTATS_MC_FORMATION_ENDS(p0, p1, p2, p3, p4, p5, p6) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
function STATS.PLAYSTATS_MC_CLUBHOUSE_ACTIVITY(p0, p1, p2, p3, p4, p5, p6, p7) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
function STATS.PLAYSTATS_RIVAL_BEHAVIOR(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function STATS.PLAYSTATS_COPY_RANK_INTO_NEW_SLOT(p0, p1, p2, p3, p4, p5, p6) end
--- @param data number
function STATS.PLAYSTATS_DUPE_DETECTED(data) end
--- @param p0 number
function STATS.PLAYSTATS_BAN_ALERT(p0) end
--- @param data number
function STATS.PLAYSTATS_GUNRUNNING_MISSION_ENDED(data) end
--- @param p0 number
function STATS.PLAYSTATS_GUNRUNNING_RND(p0) end
--- @param p0 number
function STATS.PLAYSTATS_BUSINESS_BATTLE_ENDED(p0) end
--- @param p0 number
function STATS.PLAYSTATS_WAREHOUSE_MISSION_ENDED(p0) end
--- @param p0 number
function STATS.PLAYSTATS_NIGHTCLUB_MISSION_ENDED(p0) end
--- @param p0 number
--- @param p1 number
function STATS.PLAYSTATS_DJ_USAGE(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.PLAYSTATS_MINIGAME_USAGE(p0, p1, p2) end
--- @param data number
function STATS.PLAYSTATS_STONE_HATCHET_ENDED(data) end
--- @param data number
function STATS.PLAYSTATS_SMUGGLER_MISSION_ENDED(data) end
--- @param data number
function STATS.PLAYSTATS_FM_HEIST_PREP_ENDED(data) end
--- @param data number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_INSTANCED_HEIST_ENDED(data, p1, p2, p3) end
--- @param data number
function STATS.PLAYSTATS_DAR_CHECKPOINT(data) end
--- @param data number
function STATS.PLAYSTATS_ENTER_SESSION_PACK(data) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS.PLAYSTATS_DRONE_USAGE(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_SPIN_WHEEL(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_ARENA_WARS_SPECTATOR(p0, p1, p2, p3, p4) end
--- @param data number
function STATS.PLAYSTATS_ARENA_WARS_ENDED(data) end
--- @param p0 boolean
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_SWITCH_PASSIVE_MODE(p0, p1, p2, p3) end
--- @param p0 number
--- @param objectHash number
--- @param p2 number
--- @param p3 number
--- @param moneyAmount number
--- @param rpAmount number
--- @param chipsAmount number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
function STATS.PLAYSTATS_COLLECTIBLE_PICKED_UP(p0, objectHash, p2, p3, moneyAmount, rpAmount, chipsAmount, p7, p8, p9, p10) end
--- @param p0 number
--- @param p1 number
function STATS.PLAYSTATS_CASINO_STORY_MISSION_ENDED(p0, p1) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_CHIP(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_ROULETTE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_BLACKJACK(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_THREE_CARD_POKER(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_SLOT_MACHINE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_INSIDE_TRACK(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_LUCKY_SEVEN(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_ROULETTE_LIGHT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_BLACKJACK_LIGHT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_THREE_CARD_POKER_LIGHT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_SLOT_MACHINE_LIGHT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CASINO_INSIDE_TRACK_LIGHT(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
function STATS.PLAYSTATS_ARCADE_GAME(p0, p1, p2, p3, p4, p5, p6) end
--- @param p0 number
--- @param p1 number
function STATS.PLAYSTATS_ARCADE_LOVE_MATCH(p0, p1) end
--- @param data number
function STATS.PLAYSTATS_FREEMODE_CASINO_MISSION_ENDED(data) end
--- @param p0 number
function STATS.PLAYSTATS_HEIST3_DRONE(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function STATS.PLAYSTATS_HEIST3_HACK(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
function STATS.PLAYSTATS_NPC_PHONE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_ARCADE_CABINET(p0) end
--- @param p0 number
function STATS.PLAYSTATS_HEIST3_FINALE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_HEIST3_PREP(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_MASTER_CONTROL(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_QUIT_MODE(p0, p1, p2, p3, p4) end
--- @param p0 number
function STATS.PLAYSTATS_MISSION_VOTE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_NJVS_VOTE(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_FM_MISSION_END(p0, p1, p2, p3) end
--- @param p0 number
function STATS.PLAYSTATS_HEIST4_PREP(p0) end
--- @param p0 number
function STATS.PLAYSTATS_HEIST4_FINALE(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function STATS.PLAYSTATS_HEIST4_HACK(p0, p1, p2, p3, p4) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_SUB_WEAP(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
function STATS.PLAYSTATS_FAST_TRVL(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) end
--- @param p0 number
function STATS.PLAYSTATS_HUB_ENTRY(p0) end
--- @param p0 number
function STATS.PLAYSTATS_DJ_MISSION_ENDED(p0) end
--- @param p0 number
function STATS.PLAYSTATS_ROBBERY_PREP(p0) end
--- @param p0 number
function STATS.PLAYSTATS_ROBBERY_FINALE(p0) end
--- @param p0 number
function STATS.PLAYSTATS_EXTRA_EVENT(p0) end
--- @param p0 number
function STATS.PLAYSTATS_CARCLUB_POINTS(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_CARCLUB_CHALLENGE(p0, p1, p2, p3) end
--- @param p0 number
--- @param vehicleModel number
function STATS.PLAYSTATS_CARCLUB_PRIZE(p0, vehicleModel) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STATS.PLAYSTATS_AWARD_NAV(p0, p1, p2, p3) end
--- @param p0 number
function STATS.PLAYSTATS_INST_MISSION_END(p0) end
--- @param p0 number
function STATS.PLAYSTATS_HUB_EXIT(p0) end
--- @param bossId1 number
--- @param bossId2 number
--- @param bossType number
--- @param vehicleID number
--- @param reason number
function STATS.PLAYSTATS_VEH_DEL(bossId1, bossId2, bossType, vehicleID, reason) end
--- @param p0 number
function STATS.PLAYSTATS_INVENTORY(p0) end
--- @param p0 number
function STATS._PLAYSTATS_ACID_MISSION_END(p0) end
--- @param p0 number
function STATS._PLAYSTATS_ACID_RND(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function STATS._PLAYSTATS_IDLE(p0, p1, p2) end
--- @param p0 number
function STATS._PLAYSTATS_PLAYER_STYLE(p0) end
--- @param p0 number
function STATS._PLAYSTATS_RANDOM_EVENT(p0) end
--- @param data number
function STATS._PLAYSTATS_ALERT(data) end
--- @param p0 number
function STATS._PLAYSTATS_ATTRITION_STAGE_END(p0) end
--- @param p0 number
--- @param p1 number
--- @param entity number
function STATS._PLAYSTATS_SHOWROOM_NAV(p0, p1, entity) end
--- Data struct contains various tunables related to test drives at Simeons Showroom or Luxury Showcase.
--- @param data number
function STATS._PLAYSTATS_SHOWROOM_OVERVIEW(data) end
--- @param data number
function STATS._PLAYSTATS_PIMENU_NAV(data) end
--- @param data number
function STATS._PLAYSTATS_RECOVER_VEHICLE(data) end

STREAMING = {}

function STREAMING.LOAD_ALL_OBJECTS_NOW() end
--- @param x number
--- @param y number
--- @param z number
function STREAMING.LOAD_SCENE(x, y, z) end
--- @return boolean
function STREAMING.NETWORK_UPDATE_LOAD_SCENE() end
--- @return boolean
function STREAMING.IS_NETWORK_LOADING_SCENE() end
--- @param interiorID number
--- @param toggle boolean
function STREAMING.SET_INTERIOR_ACTIVE(interiorID, toggle) end
--- Request a model to be loaded into memory.
--- 
--- @param model number
function STREAMING.REQUEST_MODEL(model) end
--- @param model number
function STREAMING.REQUEST_MENU_PED_MODEL(model) end
--- Checks if the specified model has loaded into memory.
--- @param model number
--- @return boolean
function STREAMING.HAS_MODEL_LOADED(model) end
--- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "V_FIB01_cur_elev");
--- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "limbo");
--- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BB, "V_Office_gnd_lifts");
--- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BB, "limbo");
--- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "v_fib01_jan_elev");
--- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "limbo");
--- @param interior number
--- @param roomName string
function STREAMING.REQUEST_MODELS_IN_ROOM(interior, roomName) end
--- Unloads model from memory
--- @param model number
function STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(model) end
--- Check if model is in cdimage(rpf)
--- @param model number
--- @return boolean
function STREAMING.IS_MODEL_IN_CDIMAGE(model) end
--- Returns whether the specified model exists in the game.
--- @param model number
--- @return boolean
function STREAMING.IS_MODEL_VALID(model) end
--- @param model number
--- @return boolean
function STREAMING.IS_MODEL_A_PED(model) end
--- Returns whether the specified model represents a vehicle.
--- @param model number
--- @return boolean
function STREAMING.IS_MODEL_A_VEHICLE(model) end
--- @param x number
--- @param y number
--- @param z number
function STREAMING.REQUEST_COLLISION_AT_COORD(x, y, z) end
--- @param model number
function STREAMING.REQUEST_COLLISION_FOR_MODEL(model) end
--- @param model number
--- @return boolean
function STREAMING.HAS_COLLISION_FOR_MODEL_LOADED(model) end
--- Alias of REQUEST_COLLISION_AT_COORD.
--- @param x number
--- @param y number
--- @param z number
function STREAMING.REQUEST_ADDITIONAL_COLLISION_AT_COORD(x, y, z) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
--- @return boolean
function STREAMING.DOES_ANIM_DICT_EXIST(animDict) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
function STREAMING.REQUEST_ANIM_DICT(animDict) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
--- @return boolean
function STREAMING.HAS_ANIM_DICT_LOADED(animDict) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param animDict string
function STREAMING.REMOVE_ANIM_DICT(animDict) end
--- Starts loading the specified animation set. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param animSet string
function STREAMING.REQUEST_ANIM_SET(animSet) end
--- Gets whether the specified animation set has finished loading. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET.
--- 
--- Animation set and clip set are synonymous.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param animSet string
--- @return boolean
function STREAMING.HAS_ANIM_SET_LOADED(animSet) end
--- Unloads the specified animation set. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET.
--- 
--- Animation set and clip set are synonymous.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param animSet string
function STREAMING.REMOVE_ANIM_SET(animSet) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param clipSet string
function STREAMING.REQUEST_CLIP_SET(clipSet) end
--- Alias for HAS_ANIM_SET_LOADED.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param clipSet string
--- @return boolean
function STREAMING.HAS_CLIP_SET_LOADED(clipSet) end
--- Alias for REMOVE_ANIM_SET.
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json
--- @param clipSet string
function STREAMING.REMOVE_CLIP_SET(clipSet) end
--- Exemple: REQUEST_IPL("TrevorsTrailerTrash");
--- 
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- @param iplName string
function STREAMING.REQUEST_IPL(iplName) end
--- Removes an IPL from the map.
--- 
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- 
--- Example:
--- C#:
--- Function.Call(Hash.REMOVE_IPL, "trevorstrailertidy");
--- 
--- C++:
--- STREAMING::REMOVE_IPL("trevorstrailertidy");
--- 
--- iplName = Name of IPL you want to remove.
--- @param iplName string
function STREAMING.REMOVE_IPL(iplName) end
--- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json
--- @param iplName string
--- @return boolean
function STREAMING.IS_IPL_ACTIVE(iplName) end
--- @param toggle boolean
function STREAMING.SET_STREAMING(toggle) end
--- 0 - default
--- 1 - HeistIsland
--- @param waterType number
function STREAMING.LOAD_GLOBAL_WATER_FILE(waterType) end
--- @return number
function STREAMING.GET_GLOBAL_WATER_FILE() end
--- @param toggle boolean
function STREAMING.SET_GAME_PAUSES_FOR_STREAMING(toggle) end
--- @param toggle boolean
function STREAMING.SET_REDUCE_PED_MODEL_BUDGET(toggle) end
--- @param toggle boolean
function STREAMING.SET_REDUCE_VEHICLE_MODEL_BUDGET(toggle) end
--- This is a NOP function. It does nothing at all.
--- @param toggle boolean
function STREAMING.SET_DITCH_POLICE_MODELS(toggle) end
--- @return number
function STREAMING.GET_NUMBER_OF_STREAMING_REQUESTS() end
--- maps script name (thread + 0xD0) by lookup via scriptfx.dat - does nothing when script name is empty
function STREAMING.REQUEST_PTFX_ASSET() end
--- @return boolean
function STREAMING.HAS_PTFX_ASSET_LOADED() end
function STREAMING.REMOVE_PTFX_ASSET() end
--- From the b678d decompiled scripts:
--- 
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("core_snow");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("fm_mission_controler");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("proj_xmas_firework");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_apartment_mp");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_biolab_heist");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_fireworks");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_parachute");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_wheelsmoke");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_cig_plane");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_creator");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_tankbattle");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_ornate_heist");
--- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_prison_break_heist_station");
--- @param fxName string
function STREAMING.REQUEST_NAMED_PTFX_ASSET(fxName) end
--- @param fxName string
--- @return boolean
function STREAMING.HAS_NAMED_PTFX_ASSET_LOADED(fxName) end
--- @param fxName string
function STREAMING.REMOVE_NAMED_PTFX_ASSET(fxName) end
--- @param p0 number
function STREAMING.SET_VEHICLE_POPULATION_BUDGET(p0) end
--- Control how many new (ambient?) peds will spawn in the game world.
--- Range for p0 seems to be 0-3, where 0 is none and 3 is the normal level.
--- @param p0 number
function STREAMING.SET_PED_POPULATION_BUDGET(p0) end
function STREAMING.CLEAR_FOCUS() end
--- Override the area where the camera will render the terrain.
--- p3, p4 and p5 are usually set to 0.0
--- 
--- @param x number
--- @param y number
--- @param z number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
function STREAMING.SET_FOCUS_POS_AND_VEL(x, y, z, offsetX, offsetY, offsetZ) end
--- It seems to make the entity's coords mark the point from which LOD-distances are measured. In my testing, setting a vehicle as the focus entity and moving that vehicle more than 300 distance units away from the player will make the level of detail around the player go down drastically (shadows disappear, textures go extremely low res, etc). The player seems to be the default focus entity.
--- @param entity number
function STREAMING.SET_FOCUS_ENTITY(entity) end
--- @param entity number
--- @return boolean
function STREAMING.IS_ENTITY_FOCUS(entity) end
--- @param p0 number
function STREAMING.SET_RESTORE_FOCUS_ENTITY(p0) end
--- Possible p0 values:
--- 
--- "prologue"
--- "Prologue_Main"
--- @param name string
--- @param toggle boolean
function STREAMING.SET_MAPDATACULLBOX_ENABLED(name, toggle) end
--- This native does absolutely nothing, just a nullsub
--- @param p0 number
function STREAMING.SET_ALL_MAPDATA_CULLED(p0) end
--- Always returns zero.
--- @param x number
--- @param y number
--- @param z number
--- @param rad number
--- @param p4 number
--- @param p5 number
--- @return number
function STREAMING.STREAMVOL_CREATE_SPHERE(x, y, z, rad, p4, p5) end
--- Always returns zero.
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @return number
function STREAMING.STREAMVOL_CREATE_FRUSTUM(p0, p1, p2, p3, p4, p5, p6, p7, p8) end
--- Always returns zero.
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return number
function STREAMING.STREAMVOL_CREATE_LINE(p0, p1, p2, p3, p4, p5, p6) end
--- @param unused number
function STREAMING.STREAMVOL_DELETE(unused) end
--- @param unused number
--- @return boolean
function STREAMING.STREAMVOL_HAS_LOADED(unused) end
--- @param unused number
--- @return boolean
function STREAMING.STREAMVOL_IS_VALID(unused) end
--- @return boolean
function STREAMING.IS_STREAMVOL_ACTIVE() end
--- `radius` value is usually between `3f` and `7000f` in original 1868 scripts.
--- `p7` is 0, 1, 2, 3 or 4 used in decompiled scripts, 0 is by far the most common.
--- Returns True if success, used only 7 times in decompiled scripts of 1868
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param radius number
--- @param p7 number
--- @return boolean
function STREAMING.NEW_LOAD_SCENE_START(posX, posY, posZ, offsetX, offsetY, offsetZ, radius, p7) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 number
--- @return boolean
function STREAMING.NEW_LOAD_SCENE_START_SPHERE(x, y, z, radius, p4) end
function STREAMING.NEW_LOAD_SCENE_STOP() end
--- @return boolean
function STREAMING.IS_NEW_LOAD_SCENE_ACTIVE() end
--- @return boolean
function STREAMING.IS_NEW_LOAD_SCENE_LOADED() end
--- @return boolean
function STREAMING.IS_SAFE_TO_START_PLAYER_SWITCH() end
--- // this enum comes directly from R* so don't edit this
--- enum ePlayerSwitchTypes
--- {
--- SWITCH_TYPE_AUTO,
--- SWITCH_TYPE_LONG,
--- SWITCH_TYPE_MEDIUM,
--- SWITCH_TYPE_SHORT
--- };
--- 
--- Use GET_IDEAL_PLAYER_SWITCH_TYPE for the best switch type.
--- 
--- ----------------------------------------------------
--- 
--- Examples from the decompiled scripts:
--- 
--- STREAMING::START_PLAYER_SWITCH(l_832._f3, PLAYER::PLAYER_PED_ID(), 0, 3);
--- STREAMING::START_PLAYER_SWITCH(l_832._f3, PLAYER::PLAYER_PED_ID(), 2050, 3);
--- STREAMING::START_PLAYER_SWITCH(PLAYER::PLAYER_PED_ID(), l_832._f3, 1024, 3);
--- STREAMING::START_PLAYER_SWITCH(g_141F27, PLAYER::PLAYER_PED_ID(), 513, v_14);
--- 
--- Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call STOP_PLAYER_SWITCH() to return to your ped.
--- 
--- Flag 8 w/ SWITCH_TYPE_LONG will zoom out 3 steps, then zoom in 2/3 steps and stop on the 3rd and just hang there.
--- Flag 8 w/ SWITCH_TYPE_MEDIUM will zoom out 1 step, and just hang there.
--- @param from number
--- @param to number
--- @param flags number
--- @param switchType number
function STREAMING.START_PLAYER_SWITCH(from, to, flags, switchType) end
function STREAMING.STOP_PLAYER_SWITCH() end
--- Returns true if the player is currently switching, false otherwise.
--- (When the camera is in the sky moving from Trevor to Franklin for example)
--- @return boolean
function STREAMING.IS_PLAYER_SWITCH_IN_PROGRESS() end
--- @return number
function STREAMING.GET_PLAYER_SWITCH_TYPE() end
--- x1, y1, z1 -- Coords of your ped model
--- x2, y2, z2 -- Coords of the ped you want to switch to
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @return number
function STREAMING.GET_IDEAL_PLAYER_SWITCH_TYPE(x1, y1, z1, x2, y2, z2) end
--- @return number
function STREAMING.GET_PLAYER_SWITCH_STATE() end
--- @return number
function STREAMING.GET_PLAYER_SHORT_SWITCH_STATE() end
--- @param p0 number
function STREAMING.SET_PLAYER_SHORT_SWITCH_STYLE(p0) end
--- @return number
function STREAMING.GET_PLAYER_SWITCH_JUMP_CUT_INDEX() end
--- @param cameraCoordX number
--- @param cameraCoordY number
--- @param cameraCoordZ number
--- @param camRotationX number
--- @param camRotationY number
--- @param camRotationZ number
--- @param camFov number
--- @param camFarClip number
--- @param rotationOrder number
function STREAMING.SET_PLAYER_SWITCH_OUTRO(cameraCoordX, cameraCoordY, cameraCoordZ, camRotationX, camRotationY, camRotationZ, camFov, camFarClip, rotationOrder) end
--- All names can be found in playerswitchestablishingshots.meta
--- @param name string
function STREAMING.SET_PLAYER_SWITCH_ESTABLISHING_SHOT(name) end
function STREAMING.ALLOW_PLAYER_SWITCH_PAN() end
function STREAMING.ALLOW_PLAYER_SWITCH_OUTRO() end
function STREAMING.ALLOW_PLAYER_SWITCH_ASCENT() end
function STREAMING.ALLOW_PLAYER_SWITCH_DESCENT() end
--- @return boolean
function STREAMING.IS_SWITCH_READY_FOR_DESCENT() end
function STREAMING.ENABLE_SWITCH_PAUSE_BEFORE_DESCENT() end
function STREAMING.DISABLE_SWITCH_OUTRO_FX() end
--- doesn't act normally when used on mount chilliad
--- Flags is a bitflag:
--- 2^n - Enabled Functionality:
--- 0 - Skip camera rotate up
--- 3 - Wait for SET_PLAYER_SWITCH_ESTABLISHING_SHOT / hang at last step. You will still need to run 0x74DE2E8739086740 to exit "properly" and then STOP_PLAYER_SWITCH
--- 6 - Invert Switch Direction (false = out, true = in)
--- 8 - Hang above ped
--- 
--- switchType: 0 - 3
--- 0: 1 step towards ped
--- 1: 3 steps out from ped
--- 2: 1 step out from ped
--- 3: 1 step towards ped
--- @param ped number
--- @param flags number
--- @param switchType number
function STREAMING.SWITCH_TO_MULTI_FIRSTPART(ped, flags, switchType) end
--- @param ped number
function STREAMING.SWITCH_TO_MULTI_SECONDPART(ped) end
--- @return boolean
function STREAMING.IS_SWITCH_TO_MULTI_FIRSTPART_FINISHED() end
--- @return number
function STREAMING.GET_PLAYER_SWITCH_INTERP_OUT_DURATION() end
--- @return number
function STREAMING.GET_PLAYER_SWITCH_INTERP_OUT_CURRENT_TIME() end
--- @return boolean
function STREAMING.IS_SWITCH_SKIPPING_DESCENT() end
function STREAMING.SET_SCENE_STREAMING_TRACKS_CAM_POS_THIS_FRAME() end
--- @return number
function STREAMING.GET_LODSCALE() end
--- This allows you to override "extended distance scaling" setting. Needs to be called each frame.
--- Max scaling seems to be 200.0, normal is 1.0
--- See https://gfycat.com/DetailedHauntingIncatern
--- @param scaling number
function STREAMING.OVERRIDE_LODSCALE_THIS_FRAME(scaling) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STREAMING.REMAP_LODSCALE_RANGE_THIS_FRAME(p0, p1, p2, p3) end
function STREAMING.SUPPRESS_HD_MAP_STREAMING_THIS_FRAME() end
--- @param toggle boolean
function STREAMING.SET_RENDER_HD_ONLY(toggle) end
function STREAMING.FORCE_ALLOW_TIME_BASED_FADING_THIS_FRAME() end
--- @param iplName1 string
--- @param iplName2 string
function STREAMING.IPL_GROUP_SWAP_START(iplName1, iplName2) end
function STREAMING.IPL_GROUP_SWAP_CANCEL() end
--- @return boolean
function STREAMING.IPL_GROUP_SWAP_IS_READY() end
function STREAMING.IPL_GROUP_SWAP_FINISH() end
--- @return boolean
function STREAMING.IPL_GROUP_SWAP_IS_ACTIVE() end
--- This native is used to attribute the SRL that BEGIN_SRL is going to load. This is usually used for 'in-game' cinematics (not cutscenes but camera stuff) instead of SET_FOCUS_POS_AND_VEL because it loads a specific area of the map which is pretty useful when the camera moves from distant areas.
--- For instance, GTA:O opening cutscene.
--- https://pastebin.com/2EeKVeLA : a list of SRL found in srllist.meta
--- https://pastebin.com/zd9XYUWY here is the content of a SRL file opened with codewalker.
--- @param srl string
function STREAMING.PREFETCH_SRL(srl) end
--- Returns true when the srl from BEGIN_SRL is loaded.
--- @return boolean
function STREAMING.IS_SRL_LOADED() end
function STREAMING.BEGIN_SRL() end
--- Clear the current srl and stop rendering the area selected by PREFETCH_SRL and started with BEGIN_SRL.
function STREAMING.END_SRL() end
--- @param p0 number
function STREAMING.SET_SRL_TIME(p0) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function STREAMING.SET_SRL_POST_CUTSCENE_CAMERA(p0, p1, p2, p3, p4, p5) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
function STREAMING.SET_SRL_READAHEAD_TIMES(p0, p1, p2, p3) end
--- @param p0 boolean
function STREAMING.SET_SRL_LONG_JUMP_MODE(p0) end
--- @param p0 number
function STREAMING.SET_SRL_FORCE_PRESTREAM(p0) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function STREAMING.SET_HD_AREA(x, y, z, radius) end
function STREAMING.CLEAR_HD_AREA() end
function STREAMING.INIT_CREATOR_BUDGET() end
function STREAMING.SHUTDOWN_CREATOR_BUDGET() end
--- @param modelHash number
--- @return boolean
function STREAMING.ADD_MODEL_TO_CREATOR_BUDGET(modelHash) end
--- @param modelHash number
function STREAMING.REMOVE_MODEL_FROM_CREATOR_BUDGET(modelHash) end
--- 0.0 = no memory used
--- 1.0 = all memory used
--- 
--- Maximum model memory (as defined in common\data\missioncreatordata.meta) is 100 MiB
--- @return number
function STREAMING.GET_USED_CREATOR_BUDGET() end
--- Enables the specified island. For more information, see islandhopper.meta
--- @param name string
--- @param toggle boolean
function STREAMING.SET_ISLAND_ENABLED(name, toggle) end

TASK = {}

--- Stand still (?)
--- @param ped number
--- @param ms number
function TASK.TASK_PAUSE(ped, ms) end
--- Makes the specified ped stand still for (time) milliseconds.
--- @param ped number
--- @param time number
function TASK.TASK_STAND_STILL(ped, time) end
--- Definition is wrong. This has 4 parameters (Not sure when they were added. v350 has 2, v678 has 4).
--- 
--- v350: Ped ped, bool unused
--- v678: Ped ped, bool unused, bool flag1, bool flag2
--- 
--- flag1 = super jump, flag2 = do nothing if flag1 is false and doubles super jump height if flag1 is true.
--- @param ped number
--- @param usePlayerLaunchForce boolean
--- @param doSuperJump boolean
--- @param useFullSuperJumpForce boolean
function TASK.TASK_JUMP(ped, usePlayerLaunchForce, doSuperJump, useFullSuperJumpForce) end
--- @param ped number
--- @param duration number
function TASK.TASK_COWER(ped, duration) end
--- In the scripts, p3 was always -1.
--- 
--- p3 seems to be duration or timeout of turn animation.
--- Also facingPed can be 0 or -1 so ped will just raise hands up.
--- @param ped number
--- @param duration number
--- @param facingPed number
--- @param timeToFacePed number
--- @param flags number
function TASK.TASK_HANDS_UP(ped, duration, facingPed, timeToFacePed, flags) end
--- @param ped number
--- @param duration number
function TASK.UPDATE_TASK_HANDS_UP_DURATION(ped, duration) end
--- The given ped will try to open the nearest door to 'seat'.
--- Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer.
--- @param ped number
--- @param vehicle number
--- @param timeOut number
--- @param seat number
--- @param speed number
function TASK.TASK_OPEN_VEHICLE_DOOR(ped, vehicle, timeOut, seat, speed) end
--- speed 1.0 = walk, 2.0 = run
--- p5 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle
--- p6 is always 0
--- 
--- Usage of seat
--- -1 = driver
--- 0 = passenger
--- 1 = left back seat
--- 2 = right back seat
--- 3 = outside left
--- 4 = outside right
--- @param ped number
--- @param vehicle number
--- @param timeout number
--- @param seat number
--- @param speed number
--- @param flag number
--- @param overrideEntryClipsetName string
--- @param p7 number
function TASK.TASK_ENTER_VEHICLE(ped, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName, p7) end
--- Flags from decompiled scripts:
--- 0 = normal exit and closes door.
--- 1 = normal exit and closes door.
--- 16 = teleports outside, door kept closed.
--- 64 = normal exit and closes door, maybe a bit slower animation than 0.
--- 256 = normal exit but does not close the door.
--- 4160 = ped is throwing himself out, even when the vehicle is still.
--- 262144 = ped moves to passenger seat first, then exits normally
--- 
--- Others to be tried out: 320, 512, 131072.
--- @param ped number
--- @param vehicle number
--- @param flags number
function TASK.TASK_LEAVE_VEHICLE(ped, vehicle, flags) end
--- @param ped number
--- @param boat number
function TASK.TASK_GET_OFF_BOAT(ped, boat) end
--- @param ped number
--- @param instant boolean
function TASK.TASK_SKY_DIVE(ped, instant) end
--- Second parameter is unused.
--- 
--- second parameter was for jetpack in the early stages of gta and the hard coded code is now removed
--- @param ped number
--- @param giveParachuteItem boolean
--- @param instant boolean
function TASK.TASK_PARACHUTE(ped, giveParachuteItem, instant) end
--- makes ped parachute to coords x y z. Works well with PATHFIND::GET_SAFE_COORD_FOR_PED
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
function TASK.TASK_PARACHUTE_TO_TARGET(ped, x, y, z) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
function TASK.SET_PARACHUTE_TASK_TARGET(ped, x, y, z) end
--- @param ped number
--- @param thrust number
function TASK.SET_PARACHUTE_TASK_THRUST(ped, thrust) end
--- minHeightAboveGround: the minimum height above ground the heli must be at before the ped can start rappelling
--- 
--- Only appears twice in the scripts.
--- 
--- TASK::TASK_RAPPEL_FROM_HELI(PLAYER::PLAYER_PED_ID(), 10.0f);
--- TASK::TASK_RAPPEL_FROM_HELI(a_0, 10.0f);
--- @param ped number
--- @param minHeightAboveGround number
function TASK.TASK_RAPPEL_FROM_HELI(ped, minHeightAboveGround) end
--- info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/
--- @param ped number
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param speed number
--- @param p6 number
--- @param vehicleModel number
--- @param drivingMode number
--- @param stopRange number
--- @param straightLineDistance number
function TASK.TASK_VEHICLE_DRIVE_TO_COORD(ped, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance) end
--- @param ped number
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param speed number
--- @param driveMode number
--- @param stopRange number
function TASK.TASK_VEHICLE_DRIVE_TO_COORD_LONGRANGE(ped, vehicle, x, y, z, speed, driveMode, stopRange) end
--- @param ped number
--- @param vehicle number
--- @param speed number
--- @param drivingStyle number
function TASK.TASK_VEHICLE_DRIVE_WANDER(ped, vehicle, speed, drivingStyle) end
--- p6 always -1
--- p7 always 10.0
--- p8 always 1
--- @param ped number
--- @param entity number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param movementSpeed number
--- @param timeout number
--- @param stoppingRange number
--- @param persistFollowing boolean
function TASK.TASK_FOLLOW_TO_OFFSET_OF_ENTITY(ped, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param speed number
--- @param timeout number
--- @param targetHeading number
--- @param distanceToSlide number
function TASK.TASK_GO_STRAIGHT_TO_COORD(ped, x, y, z, speed, timeout, targetHeading, distanceToSlide) end
--- @param ped number
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
--- @param moveBlendRatio number
--- @param time number
function TASK.TASK_GO_STRAIGHT_TO_COORD_RELATIVE_TO_ENTITY(ped, entity, x, y, z, moveBlendRatio, time) end
--- Makes the specified ped achieve the specified heading.
--- 
--- pedHandle: The handle of the ped to assign the task to.
--- heading: The desired heading.
--- timeout: The time, in milliseconds, to allow the task to complete. If the task times out, it is cancelled, and the ped will stay at the heading it managed to reach in the time.
--- @param ped number
--- @param heading number
--- @param timeout number
function TASK.TASK_ACHIEVE_HEADING(ped, heading, timeout) end
--- MulleKD19: Clears the current point route. Call this before TASK_EXTEND_ROUTE and TASK_FOLLOW_POINT_ROUTE.
function TASK.TASK_FLUSH_ROUTE() end
--- MulleKD19: Adds a new point to the current point route. Call TASK_FLUSH_ROUTE before the first call to this. Call TASK_FOLLOW_POINT_ROUTE to make the Ped go the route.
--- 
--- A maximum of 8 points can be added.
--- @param x number
--- @param y number
--- @param z number
function TASK.TASK_EXTEND_ROUTE(x, y, z) end
--- MulleKD19: Makes the ped go on the created point route.
--- 
--- ped: The ped to give the task to.
--- speed: The speed to move at in m/s.
--- int: Unknown. Can be 0, 1, 2 or 3.
--- 
--- Example:
--- TASK_FLUSH_ROUTE();
--- TASK_EXTEND_ROUTE(0f, 0f, 70f);
--- TASK_EXTEND_ROUTE(10f, 0f, 70f);
--- TASK_EXTEND_ROUTE(10f, 10f, 70f);
--- TASK_FOLLOW_POINT_ROUTE(GET_PLAYER_PED(), 1f, 0);
--- @param ped number
--- @param speed number
--- @param mode number
function TASK.TASK_FOLLOW_POINT_ROUTE(ped, speed, mode) end
--- The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0
--- 
--- Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet.
--- 
--- Example: TASK::TASK_GO_TO_ENTITY(pedHandle, vehicleHandle, 5000, 4.0, 100, 1073741824, 0)
--- 
--- Ped will run towards the vehicle for 5 seconds and stop when time is over or when he gets 4 meters(?) around the vehicle (with duration = -1, the task duration will be ignored).
--- 
--- enum EGOTO_ENTITY_SCRIPT_FLAGS
--- {
--- EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01,
--- };
--- @param entity number
--- @param target number
--- @param duration number
--- @param distance number
--- @param moveBlendRatio number
--- @param slowDownDistance number
--- @param flags number
function TASK.TASK_GO_TO_ENTITY(entity, target, duration, distance, moveBlendRatio, slowDownDistance, flags) end
--- Makes the specified ped flee the specified distance from the specified position.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param distance number
--- @param time number
--- @param preferPavements boolean
--- @param quitIfOutOfRange boolean
function TASK.TASK_SMART_FLEE_COORD(ped, x, y, z, distance, time, preferPavements, quitIfOutOfRange) end
--- Makes a ped run away from another ped (fleeTarget).
--- 
--- distance = ped will flee this distance.
--- fleeTime = ped will flee for this amount of time, set to "-1" to flee forever
--- @param ped number
--- @param fleeTarget number
--- @param safeDistance number
--- @param fleeTime number
--- @param preferPavements boolean
--- @param updateToNearestHatedPed boolean
function TASK.TASK_SMART_FLEE_PED(ped, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed) end
--- @param ped number
--- @param fleeTarget number
function TASK.TASK_REACT_AND_FLEE_PED(ped, fleeTarget) end
--- @param ped number
--- @param eventHandle number
function TASK.TASK_SHOCKING_EVENT_REACT(ped, eventHandle) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param minimalLength number
--- @param timeBetweenWalks number
function TASK.TASK_WANDER_IN_AREA(ped, x, y, z, radius, minimalLength, timeBetweenWalks) end
--- Makes ped walk around the area.
--- 
--- set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration.
--- @param ped number
--- @param heading number
--- @param flags number
function TASK.TASK_WANDER_STANDARD(ped, heading, flags) end
--- @param ped number
--- @param conditionalAnimGroupStr string
--- @param conditionalAnimStr string
--- @param heading number
function TASK.TASK_WANDER_SPECIFIC(ped, conditionalAnimGroupStr, conditionalAnimStr, heading) end
--- Modes:
--- 0 - ignore heading
--- 1 - park forward
--- 2 - park backwards
--- 
--- Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle.
--- 
--- Radius seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something.
--- @param ped number
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param mode number
--- @param radius number
--- @param keepEngineOn boolean
function TASK.TASK_VEHICLE_PARK(ped, vehicle, x, y, z, heading, mode, radius, keepEngineOn) end
--- known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a".
--- @param killer number
--- @param target number
--- @param stealthKillActionResultHash number
--- @param desiredMoveBlendRatio number
--- @param stealthFlags number
function TASK.TASK_STEALTH_KILL(killer, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
function TASK.TASK_PLANT_BOMB(ped, x, y, z, heading) end
--- If no timeout, set timeout to -1.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param moveBlendRatio number
--- @param time number
--- @param targetRadius number
--- @param flags number
--- @param targetHeading number
function TASK.TASK_FOLLOW_NAV_MESH_TO_COORD(ped, x, y, z, moveBlendRatio, time, targetRadius, flags, targetHeading) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param moveBlendRatio number
--- @param time number
--- @param targetRadius number
--- @param flags number
--- @param slideToCoordHeading number
--- @param maxSlopeNavigable number
--- @param clampMaxSearchDistance number
--- @param targetHeading number
function TASK.TASK_FOLLOW_NAV_MESH_TO_COORD_ADVANCED(ped, x, y, z, moveBlendRatio, time, targetRadius, flags, slideToCoordHeading, maxSlopeNavigable, clampMaxSearchDistance, targetHeading) end
--- @param ped number
--- @param Toggle boolean
function TASK.SET_PED_PATH_CAN_USE_CLIMBOVERS(ped, Toggle) end
--- @param ped number
--- @param Toggle boolean
function TASK.SET_PED_PATH_CAN_USE_LADDERS(ped, Toggle) end
--- @param ped number
--- @param Toggle boolean
function TASK.SET_PED_PATH_CAN_DROP_FROM_HEIGHT(ped, Toggle) end
--- Default modifier is 1.0, minimum is 0.0 and maximum is 10.0.
--- @param ped number
--- @param modifier number
function TASK.SET_PED_PATH_CLIMB_COST_MODIFIER(ped, modifier) end
--- @param ped number
--- @param mayEnterWater boolean
function TASK.SET_PED_PATH_MAY_ENTER_WATER(ped, mayEnterWater) end
--- @param ped number
--- @param avoidWater boolean
function TASK.SET_PED_PATH_PREFER_TO_AVOID_WATER(ped, avoidWater) end
--- @param ped number
--- @param avoidFire boolean
function TASK.SET_PED_PATH_AVOID_FIRE(ped, avoidFire) end
--- Needs to be looped! And yes, it does work and is not a hash collision.
--- Birds will try to reach the given height.
--- @param height number
function TASK.SET_GLOBAL_MIN_BIRD_FLIGHT_HEIGHT(height) end
--- Looks like the last parameter returns true if the path has been calculated, while the first returns the remaining distance to the end of the path.
--- Return value of native is the same as GET_NAVMESH_ROUTE_RESULT
--- Looks like the native returns an int for the path's state:
--- 1 - ???
--- 2 - ???
--- 3 - Finished Generating
--- @param ped number
--- @param distanceRemaining any
--- @param isPathReady any
--- @return number
function TASK.GET_NAVMESH_ROUTE_DISTANCE_REMAINING(ped, distanceRemaining, isPathReady) end
--- See GET_NAVMESH_ROUTE_DISTANCE_REMAINING for more details.
--- @param ped number
--- @return number
function TASK.GET_NAVMESH_ROUTE_RESULT(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_CONTROLLED_VEHICLE_UNABLE_TO_GET_TO_ROAD(ped) end
--- example from fm_mission_controller
--- 
--- TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000);
--- 
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param moveBlendRatio number
--- @param vehicle number
--- @param useLongRangeVehiclePathing boolean
--- @param drivingFlags number
--- @param maxRangeToShootTargets number
function TASK.TASK_GO_TO_COORD_ANY_MEANS(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param moveBlendRatio number
--- @param vehicle number
--- @param useLongRangeVehiclePathing boolean
--- @param drivingFlags number
--- @param maxRangeToShootTargets number
--- @param extraVehToTargetDistToPreferVehicle number
--- @param driveStraightLineDistance number
--- @param extraFlags number
--- @param warpTimerMS number
function TASK.TASK_GO_TO_COORD_ANY_MEANS_EXTRA_PARAMS(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param moveBlendRatio number
--- @param vehicle number
--- @param useLongRangeVehiclePathing boolean
--- @param drivingFlags number
--- @param maxRangeToShootTargets number
--- @param extraVehToTargetDistToPreferVehicle number
--- @param driveStraightLineDistance number
--- @param extraFlags number
--- @param cruiseSpeed number
--- @param targetArriveDist number
function TASK.TASK_GO_TO_COORD_ANY_MEANS_EXTRA_PARAMS_WITH_CRUISE_SPEED(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- 
--- float speed > normal speed is 8.0f
--- ----------------------
--- 
--- float speedMultiplier > multiply the playback speed
--- ----------------------
--- 
--- int duration: time in millisecond
--- ----------------------
--- -1 _ _ _ _ _ _ _> Default (see flag)
--- 0 _ _ _ _ _ _ _ > Not play at all
--- Small value _ _ > Slow down animation speed
--- Other _ _ _ _ _ > freeze player control until specific time (ms) has
--- _ _ _ _ _ _ _ _ _ passed. (No effect if flag is set to be
--- _ _ _ _ _ _ _ _ _ controllable.)
--- 
--- int flag:
--- ----------------------
--- enum eAnimationFlags
--- {
--- ANIM_FLAG_NORMAL = 0,
--- ANIM_FLAG_REPEAT = 1,
--- ANIM_FLAG_STOP_LAST_FRAME = 2,
--- ANIM_FLAG_UPPERBODY = 16,
--- ANIM_FLAG_ENABLE_PLAYER_CONTROL = 32,
--- ANIM_FLAG_CANCELABLE = 120,
--- };
--- Odd number : loop infinitely
--- Even number : Freeze at last frame
--- Multiple of 4: Freeze at last frame but controllable
--- 
--- 01 to 15 > Full body
--- 10 to 31 > Upper body
--- 32 to 47 > Full body > Controllable
--- 48 to 63 > Upper body > Controllable
--- ...
--- 001 to 255 > Normal
--- 256 to 511 > Garbled
--- ...
--- 
--- playbackRate:
--- 
--- values are between 0.0 and 1.0
--- 
--- 
--- lockX:
--- 
--- 0 in most cases 1 for rcmepsilonism8 and rcmpaparazzo_3
--- > 1 for mini@sprunk
--- 
--- 
--- lockY:
--- 
--- 0 in most cases
--- 1 for missfam5_yoga, missfra1mcs_2_crew_react
--- 
--- 
--- lockZ:
--- 
--- 0 for single player
--- Can be 1 but only for MP
--- @param ped number
--- @param animDictionary string
--- @param animationName string
--- @param blendInSpeed number
--- @param blendOutSpeed number
--- @param duration number
--- @param flag number
--- @param playbackRate number
--- @param lockX boolean
--- @param lockY boolean
--- @param lockZ boolean
function TASK.TASK_PLAY_ANIM(ped, animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ) end
--- It's similar to TASK_PLAY_ANIM, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position).
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animDict string
--- @param animName string
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param animEnterSpeed number
--- @param animExitSpeed number
--- @param duration number
--- @param flag number
--- @param animTime number
--- @param rotOrder number
--- @param ikFlags number
function TASK.TASK_PLAY_ANIM_ADVANCED(ped, animDict, animName, posX, posY, posZ, rotX, rotY, rotZ, animEnterSpeed, animExitSpeed, duration, flag, animTime, rotOrder, ikFlags) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param entity number
--- @param animDictionary string
--- @param animationName string
--- @param blendDelta number
function TASK.STOP_ANIM_TASK(entity, animDictionary, animationName, blendDelta) end
--- From fm_mission_controller.c:
--- reserve_network_mission_objects(get_num_reserved_mission_objects(0) + 1);
--- vVar28 = {0.094f, 0.02f, -0.005f};
--- vVar29 = {-92.24f, 63.64f, 150.24f};
--- func_253(&uVar30, joaat("prop_ld_case_01"), Global_1592429.imm_34757[iParam1 <268>], 1, 1, 0, 1);
--- set_entity_lod_dist(net_to_ent(uVar30), 500);
--- attach_entity_to_entity(net_to_ent(uVar30), iParam0, get_ped_bone_index(iParam0, 28422), vVar28, vVar29, 1, 0, 0, 0, 2, 1);
--- Var31.imm_4 = 1065353216;
--- Var31.imm_5 = 1065353216;
--- Var31.imm_9 = 1065353216;
--- Var31.imm_10 = 1065353216;
--- Var31.imm_14 = 1065353216;
--- Var31.imm_15 = 1065353216;
--- Var31.imm_17 = 1040187392;
--- Var31.imm_18 = 1040187392;
--- Var31.imm_19 = -1;
--- Var32.imm_4 = 1065353216;
--- Var32.imm_5 = 1065353216;
--- Var32.imm_9 = 1065353216;
--- Var32.imm_10 = 1065353216;
--- Var32.imm_14 = 1065353216;
--- Var32.imm_15 = 1065353216;
--- Var32.imm_17 = 1040187392;
--- Var32.imm_18 = 1040187392;
--- Var32.imm_19 = -1;
--- Var31 = 1;
--- Var31.imm_1 = "weapons@misc@jerrycan@mp_male";
--- Var31.imm_2 = "idle";
--- Var31.imm_20 = 1048633;
--- Var31.imm_4 = 0.5f;
--- Var31.imm_16 = get_hash_key("BONEMASK_ARMONLY_R");
--- task_scripted_animation(iParam0, &Var31, &Var32, &Var32, 0f, 0.25f);
--- set_model_as_no_longer_needed(joaat("prop_ld_case_01"));
--- remove_anim_dict("anim@heists@biolab@");
--- @param ped number
--- @param priorityLowData any
--- @param priorityMidData any
--- @param priorityHighData any
--- @param blendInDelta number
--- @param blendOutDelta number
function TASK.TASK_SCRIPTED_ANIMATION(ped, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta) end
--- @param entity number
--- @param priorityLowData any
--- @param priorityMidData any
--- @param priorityHighData any
--- @param blendInDelta number
--- @param blendOutDelta number
function TASK.PLAY_ENTITY_SCRIPTED_ANIM(entity, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta) end
--- Looks like p1 may be a flag, still need to do some research, though.
--- @param entity number
--- @param priority number
--- @param secondary boolean
function TASK.STOP_ANIM_PLAYBACK(entity, priority, secondary) end
--- @param entity number
--- @param weight number
--- @param priority number
--- @param index number
--- @param secondary boolean
function TASK.SET_ANIM_WEIGHT(entity, weight, priority, index, secondary) end
--- @param entity number
--- @param phase number
--- @param priority number
--- @param secondary boolean
function TASK.SET_ANIM_PHASE(entity, phase, priority, secondary) end
--- @param entity number
--- @param rate number
--- @param priority number
--- @param secondary boolean
function TASK.SET_ANIM_RATE(entity, rate, priority, secondary) end
--- @param entity number
--- @param looped boolean
--- @param priority number
--- @param secondary boolean
function TASK.SET_ANIM_LOOPED(entity, looped, priority, secondary) end
--- Example from the scripts:
--- TASK::TASK_PLAY_PHONE_GESTURE_ANIMATION(PLAYER::PLAYER_PED_ID(), v_3, v_2, v_4, 0.25, 0.25, 0, 0);
--- 
--- =========================================================
--- ^^ No offense, but Idk how that would really help anyone.
--- 
--- As for the animDict & animation, they're both store in a global in all 5 scripts. So if anyone would be so kind as to read that global and comment what strings they use. Thanks.
--- 
--- Known boneMaskTypes'
--- "BONEMASK_HEADONLY"
--- "BONEMASK_HEAD_NECK_AND_ARMS"
--- "BONEMASK_HEAD_NECK_AND_L_ARM"
--- "BONEMASK_HEAD_NECK_AND_R_ARM"
--- 
--- p4 known args - 0.0f, 0.5f, 0.25f
--- p5 known args - 0.0f, 0.25f
--- p6 known args - 1 if a global if check is passed.
--- p7 known args - 1 if a global if check is passed.
--- 
--- The values found above, I found within the 5 scripts this is ever called in. (fmmc_launcher, fm_deathmatch_controller, fm_impromptu_dm_controller, fm_mission_controller, and freemode).
--- =========================================================
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animDict string
--- @param animation string
--- @param boneMaskType string
--- @param blendInDuration number
--- @param blendOutDuration number
--- @param isLooping boolean
--- @param holdLastFrame boolean
function TASK.TASK_PLAY_PHONE_GESTURE_ANIMATION(ped, animDict, animation, boneMaskType, blendInDuration, blendOutDuration, isLooping, holdLastFrame) end
--- @param ped number
--- @param blendOutOverride number
function TASK.TASK_STOP_PHONE_GESTURE_ANIMATION(ped, blendOutOverride) end
--- @param ped number
--- @return boolean
function TASK.IS_PLAYING_PHONE_GESTURE_ANIM(ped) end
--- @param ped number
--- @return number
function TASK.GET_PHONE_GESTURE_ANIM_CURRENT_TIME(ped) end
--- @param ped number
--- @return number
function TASK.GET_PHONE_GESTURE_ANIM_TOTAL_TIME(ped) end
--- Most probably plays a specific animation on vehicle. For example getting chop out of van etc...
--- 
--- Here's how its used -
--- 
--- TASK::TASK_VEHICLE_PLAY_ANIM(l_325, "rcmnigel1b", "idle_speedo");
--- 
--- TASK::TASK_VEHICLE_PLAY_ANIM(l_556[0/*1*/], "missfra0_chop_drhome", "InCar_GetOutofBack_Speedo");
--- 
--- FYI : Speedo is the name of van in which chop was put in the mission.
--- @param vehicle number
--- @param animationSet string
--- @param animationName string
function TASK.TASK_VEHICLE_PLAY_ANIM(vehicle, animationSet, animationName) end
--- enum eScriptLookatFlags
--- {
--- SLF_SLOW_TURN_RATE            = 1,    // turn the head toward the target slowly
--- SLF_FAST_TURN_RATE            = 2,    // turn the head toward the target quickly
--- SLF_EXTEND_YAW_LIMIT        = 4,    // wide yaw head limits
--- SLF_EXTEND_PITCH_LIMIT        = 8,    // wide pitch head limit
--- SLF_WIDEST_YAW_LIMIT        = 16,   // widest yaw head limit
--- SLF_WIDEST_PITCH_LIMIT        = 32,   // widest pitch head limit
--- SLF_NARROW_YAW_LIMIT        = 64,   // narrow yaw head limits
--- SLF_NARROW_PITCH_LIMIT        = 128,  // narrow pitch head limit
--- SLF_NARROWEST_YAW_LIMIT        = 256,  // narrowest yaw head limit
--- SLF_NARROWEST_PITCH_LIMIT    = 512,  // narrowest pitch head limit
--- SLF_USE_TORSO                = 1024, // use the torso aswell as the neck and head (currently disabled)
--- SLF_WHILE_NOT_IN_FOV        = 2048, // keep tracking the target even if they are not in the hard coded FOV
--- SLF_USE_CAMERA_FOCUS        = 4096, // use the camera as the target
--- SLF_USE_EYES_ONLY            = 8192, // only track the target with the eyes
--- SLF_USE_LOOK_DIR            = 16384, // use information in look dir DOF
--- SLF_FROM_SCRIPT                = 32768, // internal use only
--- SLF_USE_REF_DIR_ABSOLUTE    = 65536  // use absolute reference direction mode for solver
--- };
--- @param entity number
--- @param x number
--- @param y number
--- @param z number
--- @param duration number
--- @param flags number
--- @param priority number
function TASK.TASK_LOOK_AT_COORD(entity, x, y, z, duration, flags, priority) end
--- For flags, please refer to TASK_LOOK_AT_COORD.
--- @param ped number
--- @param lookAt number
--- @param duration number
--- @param flags number
--- @param priority number
function TASK.TASK_LOOK_AT_ENTITY(ped, lookAt, duration, flags, priority) end
--- @param ped number
function TASK.TASK_CLEAR_LOOK_AT(ped) end
--- @param taskSequenceId any
function TASK.OPEN_SEQUENCE_TASK(taskSequenceId) end
--- @param taskSequenceId number
function TASK.CLOSE_SEQUENCE_TASK(taskSequenceId) end
--- @param ped number
--- @param taskSequenceId number
function TASK.TASK_PERFORM_SEQUENCE(ped, taskSequenceId) end
--- @param ped number
--- @param taskSequenceId number
function TASK.TASK_PERFORM_SEQUENCE_LOCALLY(ped, taskSequenceId) end
--- @param taskSequenceId any
function TASK.CLEAR_SEQUENCE_TASK(taskSequenceId) end
--- @param taskSequenceId number
--- @param repeat_ boolean
function TASK.SET_SEQUENCE_TO_REPEAT(taskSequenceId, repeat_) end
--- returned values:
--- 0 to 7 = task that's currently in progress, 0 meaning the first one.
--- -1 no task sequence in progress.
--- @param ped number
--- @return number
function TASK.GET_SEQUENCE_PROGRESS(ped) end
--- Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt
--- @param ped number
--- @param taskIndex number
--- @return boolean
function TASK.GET_IS_TASK_ACTIVE(ped, taskIndex) end
--- Gets the status of a script-assigned task.
--- taskHash: https://alloc8or.re/gta5/doc/enums/eScriptTaskHash.txt
--- @param ped number
--- @param taskHash number
--- @return number
function TASK.GET_SCRIPT_TASK_STATUS(ped, taskHash) end
--- https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt
--- @param vehicle number
--- @return number
function TASK.GET_ACTIVE_VEHICLE_MISSION_TYPE(vehicle) end
--- Flags are the same flags used in TASK_LEAVE_VEHICLE
--- @param ped number
--- @param delayTime number
--- @param flags number
function TASK.TASK_LEAVE_ANY_VEHICLE(ped, delayTime, flags) end
--- @param ped number
--- @param scriptTask number
--- @param disableBlockingClip boolean
--- @param instantBlendToAim boolean
function TASK.TASK_AIM_GUN_SCRIPTED(ped, scriptTask, disableBlockingClip, instantBlendToAim) end
--- @param ped number
--- @param target number
--- @param x number
--- @param y number
--- @param z number
--- @param gunTaskType number
--- @param disableBlockingClip boolean
--- @param forceAim boolean
function TASK.TASK_AIM_GUN_SCRIPTED_WITH_TARGET(ped, target, x, y, z, gunTaskType, disableBlockingClip, forceAim) end
--- @param ped number
--- @param target number
--- @param x number
--- @param y number
--- @param z number
--- @param disableBlockingClip boolean
function TASK.UPDATE_TASK_AIM_GUN_SCRIPTED_TARGET(ped, target, x, y, z, disableBlockingClip) end
--- @param gunTaskType number
--- @return string
function TASK.GET_CLIP_SET_FOR_SCRIPTED_GUN_TASK(gunTaskType) end
--- duration: the amount of time in milliseconds to do the task.  -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped
--- @param ped number
--- @param entity number
--- @param duration number
--- @param instantBlendToAim boolean
function TASK.TASK_AIM_GUN_AT_ENTITY(ped, entity, duration, instantBlendToAim) end
--- duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped
--- @param ped number
--- @param entity number
--- @param duration number
function TASK.TASK_TURN_PED_TO_FACE_ENTITY(ped, entity, duration) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param time number
--- @param instantBlendToAim boolean
--- @param playAnimIntro boolean
function TASK.TASK_AIM_GUN_AT_COORD(ped, x, y, z, time, instantBlendToAim, playAnimIntro) end
--- Firing Pattern Hash Information: https://pastebin.com/Px036isB
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param duration number
--- @param firingPattern number
function TASK.TASK_SHOOT_AT_COORD(ped, x, y, z, duration, firingPattern) end
--- Makes the specified ped shuffle to the next vehicle seat.
--- The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle.
--- @param ped number
--- @param vehicle number
--- @param useAlternateShuffle boolean
function TASK.TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(ped, vehicle, useAlternateShuffle) end
--- @param ped number
function TASK.CLEAR_PED_TASKS(ped) end
--- @param ped number
function TASK.CLEAR_PED_SECONDARY_TASK(ped) end
--- @param vehicle number
function TASK.TASK_EVERYONE_LEAVE_VEHICLE(vehicle) end
--- enum ESEEK_ENTITY_OFFSET_FLAGS
--- {
--- ESEEK_OFFSET_ORIENTATES_WITH_ENTITY = 0x01,
--- ESEEK_KEEP_TO_PAVEMENTS = 0x02
--- };
--- @param ped number
--- @param entity number
--- @param time number
--- @param seekRadius number
--- @param seekAngleDeg number
--- @param moveBlendRatio number
--- @param gotoEntityOffsetFlags number
function TASK.TASK_GOTO_ENTITY_OFFSET(ped, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags) end
--- @param ped number
--- @param entity number
--- @param duration number
--- @param targetRadius number
--- @param offsetX number
--- @param offsetY number
--- @param moveBlendRatio number
--- @param gotoEntityOffsetFlags number
function TASK.TASK_GOTO_ENTITY_OFFSET_XY(ped, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags) end
--- duration in milliseconds
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param duration number
function TASK.TASK_TURN_PED_TO_FACE_COORD(ped, x, y, z, duration) end
--- '1 - brake
--- '3 - brake + reverse
--- '4 - turn left 90 + braking
--- '5 - turn right 90 + braking
--- '6 - brake strong (handbrake?) until time ends
--- '7 - turn left + accelerate
--- '8 - turn right + accelerate
--- '9 - weak acceleration
--- '10 - turn left + restore wheel pos to center in the end
--- '11 - turn right + restore wheel pos to center in the end
--- '13 - turn left + go reverse
--- '14 - turn left + go reverse
--- '16 - crash the game after like 2 seconds :)
--- '17 - keep actual state, game crashed after few tries
--- '18 - game crash
--- '19 - strong brake + turn left/right
--- '20 - weak brake + turn left then turn right
--- '21 - weak brake + turn right then turn left
--- '22 - brake + reverse
--- '23 - accelerate fast
--- '24 - brake
--- '25 - brake turning left then when almost stopping it turns left more
--- '26 - brake turning right then when almost stopping it turns right more
--- '27 - brake until car stop or until time ends
--- '28 - brake + strong reverse acceleration
--- '30 - performs a burnout (brake until stop + brake and accelerate)
--- '31 - accelerate + handbrake
--- '32 - accelerate very strong
--- 
--- Seems to be this:
--- Works on NPCs, but overrides their current task. If inside a task sequence (and not being the last task), "time" will work, otherwise the task will be performed forever until tasked with something else
--- @param driver number
--- @param vehicle number
--- @param action number
--- @param time number
function TASK.TASK_VEHICLE_TEMP_ACTION(driver, vehicle, action, time) end
--- missionType: https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt
--- @param driver number
--- @param vehicle number
--- @param vehicleTarget number
--- @param missionType number
--- @param cruiseSpeed number
--- @param drivingStyle number
--- @param targetReached number
--- @param straightLineDistance number
--- @param DriveAgainstTraffic boolean
function TASK.TASK_VEHICLE_MISSION(driver, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic) end
--- See TASK_VEHICLE_MISSION
--- @param ped number
--- @param vehicle number
--- @param pedTarget number
--- @param missionType number
--- @param maxSpeed number
--- @param drivingStyle number
--- @param minDistance number
--- @param straightLineDistance number
--- @param DriveAgainstTraffic boolean
function TASK.TASK_VEHICLE_MISSION_PED_TARGET(ped, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic) end
--- See TASK_VEHICLE_MISSION
--- @param ped number
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param mission number
--- @param cruiseSpeed number
--- @param drivingStyle number
--- @param targetReached number
--- @param straightLineDistance number
--- @param DriveAgainstTraffic boolean
function TASK.TASK_VEHICLE_MISSION_COORS_TARGET(ped, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic) end
--- Makes a ped follow the targetVehicle with <minDistance> in between.
--- 
--- note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine.
--- 
--- Mode: The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there.
--- -1 = behind
--- 0 = ahead
--- 1 = left
--- 2 = right
--- 3 = back left
--- 4 = back right
--- 
--- if the target is closer than noRoadsDistance, the driver will ignore pathing/roads and follow you directly.
--- 
--- Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/
--- @param ped number
--- @param vehicle number
--- @param targetVehicle number
--- @param mode number
--- @param speed number
--- @param drivingStyle number
--- @param minDistance number
--- @param minHeightAboveTerrain number
--- @param noRoadsDistance number
function TASK.TASK_VEHICLE_ESCORT(ped, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance) end
--- Makes a ped in a vehicle follow an entity (ped, vehicle, etc.)
--- 
--- drivingStyle: http://gtaforums.com/topic/822314-guide-driving-styles/
--- @param driver number
--- @param vehicle number
--- @param targetEntity number
--- @param speed number
--- @param drivingStyle number
--- @param minDistance number
function TASK.TASK_VEHICLE_FOLLOW(driver, vehicle, targetEntity, speed, drivingStyle, minDistance) end
--- chases targetEnt fast and aggressively
--- --
--- Makes ped (needs to be in vehicle) chase targetEnt.
--- @param driver number
--- @param targetEnt number
function TASK.TASK_VEHICLE_CHASE(driver, targetEnt) end
--- pilot, vehicle and altitude are rather self-explanatory.
--- 
--- p4: is unused variable in the function.
--- 
--- entityToFollow: you can provide a Vehicle entity or a Ped entity, the heli will protect them.
--- 
--- 'targetSpeed':  The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE.  As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #.
--- 
--- 'radius' isn't just "stop within radius of X of target" like with ground vehicles.  In this case, the pilot will fly an entire circle around 'radius' and continue to do so.
--- 
--- NOT CONFIRMED:  p7 appears to be a FlyingStyle enum.  Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc.
--- 
--- NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter.
--- @param pilot number
--- @param vehicle number
--- @param entityToFollow number
--- @param targetSpeed number
--- @param drivingFlags number
--- @param radius number
--- @param altitude number
--- @param heliFlags number
function TASK.TASK_VEHICLE_HELI_PROTECT(pilot, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags) end
--- Flag 8: Medium-aggressive boxing tactic with a bit of PIT
--- Flag 1: Aggressive ramming of suspect
--- Flag 2: Ram attempts
--- Flag 32: Stay back from suspect, no tactical contact. Convoy-like.
--- Flag 16: Ramming, seems to be slightly less aggressive than 1-2.
--- @param ped number
--- @param flag number
--- @param set boolean
function TASK.SET_TASK_VEHICLE_CHASE_BEHAVIOR_FLAG(ped, flag, set) end
--- @param ped number
--- @param distance number
function TASK.SET_TASK_VEHICLE_CHASE_IDEAL_PURSUIT_DISTANCE(ped, distance) end
--- Ped pilot should be in a heli.
--- EntityToFollow can be a vehicle or Ped.
--- 
--- x,y,z appear to be how close to the EntityToFollow the heli should be. Scripts use 0.0, 0.0, 80.0. Then the heli tries to position itself 80 units above the EntityToFollow. If you reduce it to -5.0, it tries to go below (if the EntityToFollow is a heli or plane)
--- 
--- 
--- NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given.
--- @param pilot number
--- @param entityToFollow number
--- @param x number
--- @param y number
--- @param z number
function TASK.TASK_HELI_CHASE(pilot, entityToFollow, x, y, z) end
--- @param pilot number
--- @param entityToFollow number
--- @param x number
--- @param y number
--- @param z number
function TASK.TASK_PLANE_CHASE(pilot, entityToFollow, x, y, z) end
--- @param pilot number
--- @param plane number
--- @param runwayStartX number
--- @param runwayStartY number
--- @param runwayStartZ number
--- @param runwayEndX number
--- @param runwayEndY number
--- @param runwayEndZ number
function TASK.TASK_PLANE_LAND(pilot, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ) end
--- @param ped number
function TASK.CLEAR_DEFAULT_PRIMARY_TASK(ped) end
--- This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch.
--- It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches.
--- @param vehicle number
function TASK.CLEAR_PRIMARY_VEHICLE_TASK(vehicle) end
--- @param vehicle number
function TASK.CLEAR_VEHICLE_CRASH_TASK(vehicle) end
--- @param ped number
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param flightHeight number
--- @param minHeightAboveTerrain number
--- @param useDesiredOrientation boolean
--- @param desiredOrientation number
--- @param autopilot boolean
function TASK.TASK_PLANE_GOTO_PRECISE_VTOL(ped, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot) end
--- Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc.
--- 
--- p0 is always 0, p5 is always 1
--- 
--- p1 is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native.
--- 
--- Speed can be set by calling SET_DRIVE_TASK_CRUISE_SPEED after
--- @param ped number
--- @param submarine number
--- @param x number
--- @param y number
--- @param z number
--- @param autopilot boolean
function TASK.TASK_SUBMARINE_GOTO_AND_STOP(ped, submarine, x, y, z, autopilot) end
--- Must have targetVehicle, targetPed, OR destination X/Y/Z set
--- Will follow targeted vehicle/ped, or fly to destination
--- Set whichever is not being used to 0
--- 
--- 
--- Mission mode type:
--- - 4, 7: Forces heli to snap to the heading if set, flies to destination or tracks specified entity (mode 4 only works for coordinates, 7 works for coordinates OR ped/vehicle)
--- - 6: Attacks the target ped/vehicle with mounted weapons. If radius is set, will maintain that distance from target.
--- - 8: Makes the heli flee from the ped/vehicle/coordinate
--- - 9: Circles around target ped/vehicle, snaps to angle if set. Behavior flag (last parameter) of 2048 switches from counter-clockwise to clockwise circling. Does not work with coordinate destination.
--- - 10, 11: Follows ped/vehicle target and imitates target heading. Only works with ped/vehicle target, not coord target
--- - 19: Heli lands at specified coordinate, ignores heading (lands facing whatever direction it is facing when the task is started)
--- - 20: Makes the heli land when near target ped. It won't resume chasing.
--- - 21: Emulates a helicopter crash
--- - 23: makes the heli circle erratically around ped
--- 
--- 
--- Heli will fly at maxSpeed (up to actual maximum speed defined by the model's handling config)
--- You can use SET_DRIVE_TASK_CRUISE_SPEED to modulate the speed based on distance to the target without having to re-invoke the task native. Setting to 8.0 when close to the destination results in a much smoother approach.
--- 
--- If minHeight and maxHeight are set, heli will fly between those specified elevations, relative to ground level and any obstructions/buildings below. You can specify -1 for either if you only want to specify one. Usually it is easiest to leave maxHeight at -1, and specify a reasonable minHeight to ensure clearance over any obstacles. Note this MUST be passed as an INT, not a FLOAT.
--- 
--- Radius affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from
--- 
--- Heading is -1.0 for default behavior, which will point the nose of the helicopter towards the destination. Set a heading and the heli will lock to that direction when near its destination/target, but may still turn towards the destination when flying at higher speed from a further distance.
--- 
--- Behavior Flags is a bitwise value that modifies the AI behavior. Not clear what all flags do, but here are some guesses/notes:
--- 1: Forces heading to face E
--- 2: Unknown
--- 4: Tight circles around coordinate destination
--- 8: Unknown
--- 16: Circles around coordinate destination facing towards destination
--- 32: Flys to normally, then lands at coordinate destination and stays on the ground (using mission type 4)
--- 64: Ignores obstacles when flying, will follow at specified minHeight above ground level but will not avoid buildings, vehicles, etc.
--- 128: Unknown
--- 256: Unknown
--- 512: Unknown
--- 1024: Unknown
--- 2048: Reverses direction of circling (mission type 9) to clockwise
--- 4096: Hugs closer to the ground, maintains minHeight from ground generally, but barely clears buildings and dips down more between buildings instead of taking a more efficient/safe route
--- 8192: Unknown
--- 
--- Unk3 is a float value, you may see -1082130432 for this value in decompiled native scripts, this is the equivalent to -1.0f. Seems to affect acceleration/aggressiveness, but not sure exactly how it works. Higher value seems to result in lower acceleration/less aggressive flying. Almost always -1.0 in native scripts, occasionally 20.0 or 50.0. Setting to 400.0 seems to work well for making the pilot not overshoot the destination when using coordinate destination.
--- 
--- Notes updated by PNWParksFan, May 2021
--- 
--- @param pilot number
--- @param aircraft number
--- @param targetVehicle number
--- @param targetPed number
--- @param destinationX number
--- @param destinationY number
--- @param destinationZ number
--- @param missionFlag number
--- @param maxSpeed number
--- @param radius number
--- @param targetHeading number
--- @param maxHeight number
--- @param minHeight number
--- @param slowDownDistance number
--- @param behaviorFlags number
function TASK.TASK_HELI_MISSION(pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags) end
--- @param pilot number
--- @param heli1 number
--- @param heli2 number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
function TASK.TASK_HELI_ESCORT_HELI(pilot, heli1, heli2, offsetX, offsetY, offsetZ) end
--- EXAMPLE USAGE:
--- 
--- Fly around target (Precautiously, keeps high altitude):
--- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, 200f);
--- 
--- Fly around target (Dangerously, keeps VERY low altitude):
--- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -500f);
--- 
--- Fly directly into target:
--- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -5000f);
--- 
--- EXPANDED INFORMATION FOR ADVANCED USAGE (custom pilot)
--- 
--- 'physicsSpeed': (THIS IS NOT YOUR ORDINARY SPEED PARAMETER: READ!!)
--- Think of this -first- as a radius value, not a true speed value.  The ACTUAL effective speed of the plane will be that of the maximum speed permissible to successfully fly in a -circle- with a radius of 'physicsSpeed'.  This also means that the plane must complete a circle before it can begin its "bombing run", its straight line pass towards the target.  p9 appears to influence the angle at which a "bombing run" begins, although I can't confirm yet.
--- 
--- VERY IMPORTANT: A "bombing run" will only occur if a plane can successfully determine a possible navigable route (the slower the value of 'physicsSpeed', the more precise the pilot can be due to less influence of physics on flightpath).  Otherwise, the pilot will continue to patrol around Destination (be it a dynamic Entity position vector or a fixed world coordinate vector.)
--- 
--- 0 = Plane's physics are almost entirely frozen, plane appears to "orbit" around precise destination point
--- 1-299 = Blend of "frozen, small radius" vs. normal vs. "accelerated, hyperfast, large radius"
--- 300+ =  Vehicle behaves entirely like a normal gameplay plane.
--- 
--- 'patrolBlend' (The lower the value, the more the Destination is treated as a "fly AT" rather than a "fly AROUND point".)
--- 
--- Scenario: Destination is an Entity on ground level, wide open field
--- -5000 = Pilot kamikazes directly into Entity
--- -1000 = Pilot flies extremely low -around- Entity, very prone to crashing
--- -200 = Pilot flies lower than average around Entity.
--- 0 = Pilot flies around Entity, normal altitude
--- 200 = Pilot flies an extra eighty units or so higher than 0 while flying around Destination (this doesn't seem to correlate directly into distance units.)
--- 
--- -- Valid mission types found in the exe: --
--- 
--- 0 = None
--- 1 = Unk
--- 2 = CTaskVehicleRam
--- 3 = CTaskVehicleBlock
--- 4 = CTaskVehicleGoToPlane
--- 5 = CTaskVehicleStop
--- 6 = CTaskVehicleAttack
--- 7 = CTaskVehicleFollow
--- 8 = CTaskVehicleFleeAirborne
--- 9= CTaskVehicleCircle
--- 10 = CTaskVehicleEscort
--- 15 = CTaskVehicleFollowRecording
--- 16 = CTaskVehiclePoliceBehaviour
--- 17 = CTaskVehicleCrash
--- @param pilot number
--- @param aircraft number
--- @param targetVehicle number
--- @param targetPed number
--- @param destinationX number
--- @param destinationY number
--- @param destinationZ number
--- @param missionFlag number
--- @param angularDrag number
--- @param targetReached number
--- @param targetHeading number
--- @param maxZ number
--- @param minZ number
--- @param precise boolean
function TASK.TASK_PLANE_MISSION(pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise) end
--- @param pilot number
--- @param aircraft number
--- @param x number
--- @param y number
--- @param z number
--- @param cruiseSpeed number
--- @param targetReached number
function TASK.TASK_PLANE_TAXI(pilot, aircraft, x, y, z, cruiseSpeed, targetReached) end
--- You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute.
--- 
--- Working example
--- float vehicleMaxSpeed = VEHICLE::GET_VEHICLE_ESTIMATED_MAX_SPEED(ENTITY::GET_ENTITY_MODEL(pedVehicle));
--- TASK::TASK_BOAT_MISSION(pedDriver, pedVehicle, 0, 0, waypointCoord.x, waypointCoord.y, waypointCoord.z, 4, vehicleMaxSpeed, 786469, -1.0, 7);
--- PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1);
--- 
--- P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation
--- @param pedDriver number
--- @param vehicle number
--- @param targetVehicle number
--- @param targetPed number
--- @param x number
--- @param y number
--- @param z number
--- @param mission number
--- @param maxSpeed number
--- @param drivingStyle number
--- @param targetReached number
--- @param boatFlags number
function TASK.TASK_BOAT_MISSION(pedDriver, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags) end
--- Example:
--- 
--- TASK::TASK_DRIVE_BY(l_467[1/*22*/], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby});
--- 
--- 
--- 
--- 
--- Needs working example. Doesn't seem to do anything.
--- 
--- I marked p2 as targetVehicle as all these shooting related tasks seem to have that in common.
--- I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target.
--- I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not.
--- @param driverPed number
--- @param targetPed number
--- @param targetVehicle number
--- @param targetX number
--- @param targetY number
--- @param targetZ number
--- @param distanceToShoot number
--- @param pedAccuracy number
--- @param pushUnderneathDrivingTaskIfDriving boolean
--- @param firingPattern number
function TASK.TASK_DRIVE_BY(driverPed, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern) end
--- For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives.
--- @param shootingPed number
--- @param targetPed number
--- @param targetVehicle number
--- @param x number
--- @param y number
--- @param z number
function TASK.SET_DRIVEBY_TASK_TARGET(shootingPed, targetPed, targetVehicle, x, y, z) end
--- @param ped number
function TASK.CLEAR_DRIVEBY_TASK_UNDERNEATH_DRIVING_TASK(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_DRIVEBY_TASK_UNDERNEATH_DRIVING_TASK(ped) end
--- Forces the ped to use the mounted weapon.
--- Returns false if task is not possible.
--- @param ped number
--- @return boolean
function TASK.CONTROL_MOUNTED_WEAPON(ped) end
--- Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa.
--- @param shootingPed number
--- @param targetPed number
--- @param targetVehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param taskMode number
--- @param ignoreTargetVehDeadCheck boolean
function TASK.SET_MOUNTED_WEAPON_TARGET(shootingPed, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck) end
--- @param ped number
--- @return boolean
function TASK.IS_MOUNTED_WEAPON_TASK_UNDERNEATH_DRIVING_TASK(ped) end
--- Actually has 3 params, not 2.
--- 
--- p0: Ped
--- p1: int (or bool?)
--- p2: int
--- @param ped number
--- @param usePhone boolean
--- @param desiredPhoneMode number
function TASK.TASK_USE_MOBILE_PHONE(ped, usePhone, desiredPhoneMode) end
--- @param ped number
--- @param duration number
function TASK.TASK_USE_MOBILE_PHONE_TIMED(ped, duration) end
--- p2 tend to be 16, 17 or 1
--- p3 to p7 tend to be 0.0
--- @param ped number
--- @param target number
--- @param flags number
--- @param goToLocationX number
--- @param goToLocationY number
--- @param goToLocationZ number
--- @param headingDegs number
--- @param idleTime number
function TASK.TASK_CHAT_TO_PED(ped, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime) end
--- Seat Numbers
--- -------------------------------
--- Driver = -1
--- Any = -2
--- Left-Rear = 1
--- Right-Front = 0
--- Right-Rear = 2
--- Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear)
--- @param ped number
--- @param vehicle number
--- @param seat number
function TASK.TASK_WARP_PED_INTO_VEHICLE(ped, vehicle, seat) end
--- //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds
--- Entity aimedentity;
--- Player player = PLAYER::PLAYER_ID();
--- PLAYER::_GET_AIMED_ENTITY(player, &aimedentity);
--- 
--- //bg is an array of peds
--- TASK::TASK_SHOOT_AT_ENTITY(bg[i], aimedentity, 5000, MISC::GET_HASH_KEY("FIRING_PATTERN_FULL_AUTO"));
--- 
--- in practical usage, getting the entity the player is aiming at and then task the peds to shoot at the entity, at a button press event would be better.
--- 
--- Firing Pattern Hash Information: https://pastebin.com/Px036isB
--- @param entity number
--- @param target number
--- @param duration number
--- @param firingPattern number
function TASK.TASK_SHOOT_AT_ENTITY(entity, target, duration, firingPattern) end
--- Climbs or vaults the nearest thing.
--- usePlayerLaunchForce is unused.
--- @param ped number
--- @param usePlayerLaunchForce boolean
function TASK.TASK_CLIMB(ped, usePlayerLaunchForce) end
--- @param ped number
--- @param fast boolean
function TASK.TASK_CLIMB_LADDER(ped, fast) end
--- Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope.
--- p10: Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with ADD_ROPE
--- @param ped number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param minZ number
--- @param ropeHandle number
--- @param clipSet string
--- @param p10 number
--- @param p11 number
function TASK.TASK_RAPPEL_DOWN_WALL_USING_CLIPSET_OVERRIDE(ped, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10, p11) end
--- @param ped number
--- @return number
function TASK.GET_TASK_RAPPEL_DOWN_WALL_STATE(ped) end
--- Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing.
--- @param ped number
function TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) end
--- @param ped number
--- @param taskIndex number
--- @param progress1 number
--- @param progress2 number
function TASK.TASK_PERFORM_SEQUENCE_FROM_PROGRESS(ped, taskIndex, progress1, progress2) end
--- This native does absolutely nothing, just a nullsub
--- 
--- R* Comment:
--- SET_NEXT_DESIRED_MOVE_STATE - Function is deprecated - do not use anymore
--- @param nextMoveState number
function TASK.SET_NEXT_DESIRED_MOVE_STATE(nextMoveState) end
--- @param ped number
--- @param newMoveBlendRatio number
function TASK.SET_PED_DESIRED_MOVE_BLEND_RATIO(ped, newMoveBlendRatio) end
--- @param ped number
--- @return number
function TASK.GET_PED_DESIRED_MOVE_BLEND_RATIO(ped) end
--- eg
--- 
--- TASK::TASK_GOTO_ENTITY_AIMING(v_2, PLAYER::PLAYER_PED_ID(), 5.0, 25.0);
--- 
--- ped = Ped you want to perform this task.
--- target = the Entity they should aim at.
--- distanceToStopAt = distance from the target, where the ped should stop to aim.
--- StartAimingDist = distance where the ped should start to aim.
--- @param ped number
--- @param target number
--- @param distanceToStopAt number
--- @param StartAimingDist number
function TASK.TASK_GOTO_ENTITY_AIMING(ped, target, distanceToStopAt, StartAimingDist) end
--- p1 is always GET_HASH_KEY("empty") in scripts, for the rare times this is used
--- @param ped number
--- @param decisionMakerId number
function TASK.TASK_SET_DECISION_MAKER(ped, decisionMakerId) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function TASK.TASK_SET_SPHERE_DEFENSIVE_AREA(ped, x, y, z, radius) end
--- @param ped number
function TASK.TASK_CLEAR_DEFENSIVE_AREA(ped) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param speed number
function TASK.TASK_PED_SLIDE_TO_COORD(ped, x, y, z, heading, speed) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param speed number
--- @param headingChangeRate number
function TASK.TASK_PED_SLIDE_TO_COORD_HDG_RATE(ped, x, y, z, heading, speed, headingChangeRate) end
--- @param x number
--- @param y number
--- @param z number
--- @param direction number
--- @param usage number
--- @param height number
--- @param arc number
--- @param isPriority boolean
--- @return number
function TASK.ADD_COVER_POINT(x, y, z, direction, usage, height, arc, isPriority) end
--- @param coverpoint number
function TASK.REMOVE_COVER_POINT(coverpoint) end
--- Checks if there is a cover point at position
--- @param x number
--- @param y number
--- @param z number
--- @return boolean
function TASK.DOES_SCRIPTED_COVER_POINT_EXIST_AT_COORDS(x, y, z) end
--- @param coverpoint number
--- @return { x: number, y: number, z: number }
function TASK.GET_SCRIPTED_COVER_POINT_COORDS(coverpoint) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function TASK.ADD_SCRIPTED_COVER_AREA(x, y, z, radius) end
--- Makes the specified ped attack the target ped.
--- p2 should be 0
--- p3 should be 16
--- @param ped number
--- @param targetPed number
--- @param combatFlags number
--- @param threatResponseFlags number
function TASK.TASK_COMBAT_PED(ped, targetPed, combatFlags, threatResponseFlags) end
--- @param ped number
--- @param target number
--- @param time number
--- @param flags number
function TASK.TASK_COMBAT_PED_TIMED(ped, target, time, flags) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param duration number
--- @param allowPeekingAndFiring boolean
function TASK.TASK_SEEK_COVER_FROM_POS(ped, x, y, z, duration, allowPeekingAndFiring) end
--- @param ped number
--- @param target number
--- @param duration number
--- @param allowPeekingAndFiring boolean
function TASK.TASK_SEEK_COVER_FROM_PED(ped, target, duration, allowPeekingAndFiring) end
--- p5 is always -1
--- @param ped number
--- @param coverpoint number
--- @param x number
--- @param y number
--- @param z number
--- @param time number
--- @param allowPeekingAndFiring boolean
function TASK.TASK_SEEK_COVER_TO_COVER_POINT(ped, coverpoint, x, y, z, time, allowPeekingAndFiring) end
--- p8 causes the ped to take the shortest route to the cover position. It may have something to do with navmesh or pathfinding mechanics.
--- 
--- from michael2:
--- TASK::TASK_SEEK_COVER_TO_COORDS(ped, 967.5164794921875, -2121.603515625, 30.479299545288086, 978.94677734375, -2125.84130859375, 29.4752, -1, 1);
--- 
--- 
--- appears to be shorter variation
--- from michael3:
--- TASK::TASK_SEEK_COVER_TO_COORDS(ped, -2231.011474609375, 263.6326599121094, 173.60195922851562, -1, 0);
--- @param ped number
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param timeout number
--- @param shortRoute boolean
function TASK.TASK_SEEK_COVER_TO_COORDS(ped, x1, y1, z1, x2, y2, z2, timeout, shortRoute) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param time number
--- @param allowPeekingAndFiring boolean
--- @param blendInDuration number
--- @param forceInitialFacingDirection boolean
--- @param forceFaceLeft boolean
--- @param identifier number
--- @param doEntry boolean
function TASK.TASK_PUT_PED_DIRECTLY_INTO_COVER(ped, x, y, z, time, allowPeekingAndFiring, blendInDuration, forceInitialFacingDirection, forceFaceLeft, identifier, doEntry) end
--- @param ped number
--- @param time number
--- @param allowPeekingAndFiring boolean
--- @param forceInitialFacingDirection boolean
--- @param forceFaceLeft boolean
--- @param identifier number
function TASK.TASK_WARP_PED_DIRECTLY_INTO_COVER(ped, time, allowPeekingAndFiring, forceInitialFacingDirection, forceFaceLeft, identifier) end
--- p1 is 1, 2, or 3 in scripts
--- @param ped number
--- @param exitType number
--- @param x number
--- @param y number
--- @param z number
function TASK.TASK_EXIT_COVER(ped, exitType, x, y, z) end
--- from armenian3.c4
--- 
--- TASK::TASK_PUT_PED_DIRECTLY_INTO_MELEE(PlayerPed, armenianPed, 0.0, -1.0, 0.0, 0);
--- 
--- @param ped number
--- @param meleeTarget number
--- @param blendInDuration number
--- @param timeInMelee number
--- @param strafePhaseSync number
--- @param aiCombatFlags number
function TASK.TASK_PUT_PED_DIRECTLY_INTO_MELEE(ped, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags) end
--- used in sequence task
--- 
--- both parameters seems to be always 0
--- @param ped number
--- @param toggleType number
function TASK.TASK_TOGGLE_DUCK(ped, toggleType) end
--- From re_prisonvanbreak:
--- 
--- TASK::TASK_GUARD_CURRENT_POSITION(l_DD, 35.0, 35.0, 1);
--- @param ped number
--- @param maxPatrolProximity number
--- @param defensiveAreaRadius number
--- @param setDefensiveArea boolean
function TASK.TASK_GUARD_CURRENT_POSITION(ped, maxPatrolProximity, defensiveAreaRadius, setDefensiveArea) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param maxPatrolProximity number
--- @param timer number
function TASK.TASK_GUARD_ASSIGNED_DEFENSIVE_AREA(ped, x, y, z, heading, maxPatrolProximity, timer) end
--- @param ped number
--- @param defendPositionX number
--- @param defendPositionY number
--- @param defendPositionZ number
--- @param heading number
--- @param maxPatrolProximity number
--- @param time number
--- @param x number
--- @param y number
--- @param z number
--- @param defensiveAreaRadius number
function TASK.TASK_GUARD_SPHERE_DEFENSIVE_AREA(ped, defendPositionX, defendPositionY, defendPositionZ, heading, maxPatrolProximity, time, x, y, z, defensiveAreaRadius) end
--- scenarioName example: "WORLD_HUMAN_GUARD_STAND"
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param scenarioName string
function TASK.TASK_STAND_GUARD(ped, x, y, z, heading, scenarioName) end
--- @param driver number
--- @param cruiseSpeed number
function TASK.SET_DRIVE_TASK_CRUISE_SPEED(driver, cruiseSpeed) end
--- @param ped number
--- @param speed number
function TASK.SET_DRIVE_TASK_MAX_CRUISE_SPEED(ped, speed) end
--- This native is used to set the driving style for specific ped.
--- 
--- Driving styles id seems to be:
--- 786468
--- 262144
--- 786469
--- 
--- http://gtaforums.com/topic/822314-guide-driving-styles/
--- @param ped number
--- @param drivingStyle number
function TASK.SET_DRIVE_TASK_DRIVING_STYLE(ped, drivingStyle) end
--- @param startX number
--- @param startY number
--- @param startZ number
--- @param endX number
--- @param endY number
--- @param endZ number
--- @param blockObjects boolean
--- @param blockVehicles boolean
--- @param blockMap boolean
--- @param blockPlayer boolean
function TASK.ADD_COVER_BLOCKING_AREA(startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer) end
function TASK.REMOVE_ALL_COVER_BLOCKING_AREAS() end
--- @param x number
--- @param y number
--- @param z number
function TASK.REMOVE_COVER_BLOCKING_AREAS_AT_POSITION(x, y, z) end
--- @param startX number
--- @param startY number
--- @param startZ number
--- @param endX number
--- @param endY number
--- @param endZ number
--- @param blockObjects boolean
--- @param blockVehicles boolean
--- @param blockMap boolean
--- @param blockPlayer boolean
function TASK.REMOVE_SPECIFIC_COVER_BLOCKING_AREAS(startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer) end
--- Plays a scenario on a Ped at their current location.
--- 
--- unkDelay - Usually 0 or -1, doesn't seem to have any effect. Might be a delay between sequences.
--- playEnterAnim - Plays the "Enter" anim if true, otherwise plays the "Exit" anim. Scenarios that don't have any "Enter" anims won't play if this is set to true.
--- 
--- ----
--- 
--- From "am_hold_up.ysc.c4" at line 339:
--- 
--- TASK::TASK_START_SCENARIO_IN_PLACE(NETWORK::NET_TO_PED(l_8D._f4), sub_adf(), 0, 1);
--- 
--- I'm unsure of what the last two parameters are, however sub_adf() randomly returns 1 of 3 scenarios, those being:
--- WORLD_HUMAN_SMOKING
--- WORLD_HUMAN_HANG_OUT_STREET
--- WORLD_HUMAN_STAND_MOBILE
--- 
--- This makes sense, as these are what I commonly see when going by a liquor store.
--- -------------------------
--- List of scenarioNames: https://pastebin.com/6mrYTdQv
--- (^ Thank you so fucking much for this)
--- 
--- Also these:
--- WORLD_FISH_FLEE
--- DRIVE
--- WORLD_HUMAN_HIKER
--- WORLD_VEHICLE_ATTRACTOR
--- WORLD_VEHICLE_BICYCLE_MOUNTAIN
--- WORLD_VEHICLE_BIKE_OFF_ROAD_RACE
--- WORLD_VEHICLE_BIKER
--- WORLD_VEHICLE_CONSTRUCTION_PASSENGERS
--- WORLD_VEHICLE_CONSTRUCTION_SOLO
--- WORLD_VEHICLE_DRIVE_PASSENGERS
--- WORLD_VEHICLE_DRIVE_SOLO
--- WORLD_VEHICLE_EMPTY
--- WORLD_VEHICLE_PARK_PARALLEL
--- WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN
--- WORLD_VEHICLE_POLICE_BIKE
--- WORLD_VEHICLE_POLICE_CAR
--- WORLD_VEHICLE_POLICE_NEXT_TO_CAR
--- WORLD_VEHICLE_SALTON_DIRT_BIKE
--- WORLD_VEHICLE_TRUCK_LOGS
--- 
--- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json
--- @param ped number
--- @param scenarioName string
--- @param unkDelay number
--- @param playEnterAnim boolean
function TASK.TASK_START_SCENARIO_IN_PLACE(ped, scenarioName, unkDelay, playEnterAnim) end
--- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json
--- 
--- Also a few more listed at TASK::TASK_START_SCENARIO_IN_PLACE just above.
--- ---------------
--- The first parameter in every scenario has always been a Ped of some sort. The second like TASK_START_SCENARIO_IN_PLACE is the name of the scenario.
--- 
--- The next 4 parameters were harder to decipher. After viewing "hairdo_shop_mp.ysc.c4", and being confused from seeing the case in other scripts, they passed the first three of the arguments as one array from a function, and it looked like it was obviously x, y, and z.
--- 
--- I haven't seen the sixth parameter go to or over 360, making me believe that it is rotation, but I really can't confirm anything.
--- 
--- I have no idea what the last 3 parameters are, but I'll try to find out.
--- 
--- -going on the last 3 parameters, they appear to always be "0, 0, 1"
--- 
--- p6 -1 also used in scrips
--- 
--- p7 used for sitting scenarios
--- 
--- p8 teleports ped to position
--- @param ped number
--- @param scenarioName string
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param duration number
--- @param sittingScenario boolean
--- @param teleport boolean
function TASK.TASK_START_SCENARIO_AT_POSITION(ped, scenarioName, x, y, z, heading, duration, sittingScenario, teleport) end
--- Updated variables
--- 
--- An alternative to TASK::TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP. Makes the ped walk to the scenario instead.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param distance number
--- @param duration number
function TASK.TASK_USE_NEAREST_SCENARIO_TO_COORD(ped, x, y, z, distance, duration) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param timeToLeave number
function TASK.TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP(ped, x, y, z, radius, timeToLeave) end
--- p5 is always 0 in scripts
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param maxRange number
--- @param timeToLeave number
function TASK.TASK_USE_NEAREST_SCENARIO_CHAIN_TO_COORD(ped, x, y, z, maxRange, timeToLeave) end
--- p5 is always -1 or 0 in scripts
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param timeToLeave number
function TASK.TASK_USE_NEAREST_SCENARIO_CHAIN_TO_COORD_WARP(ped, x, y, z, radius, timeToLeave) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param mustBeFree boolean
--- @return boolean
function TASK.DOES_SCENARIO_EXIST_IN_AREA(x, y, z, radius, mustBeFree) end
--- @param x number
--- @param y number
--- @param z number
--- @param scenarioName string
--- @param radius number
--- @param mustBeFree boolean
--- @return boolean
function TASK.DOES_SCENARIO_OF_TYPE_EXIST_IN_AREA(x, y, z, scenarioName, radius, mustBeFree) end
--- @param x number
--- @param y number
--- @param z number
--- @param maxRange number
--- @param onlyUsersActuallyAtScenario boolean
--- @return boolean
function TASK.IS_SCENARIO_OCCUPIED(x, y, z, maxRange, onlyUsersActuallyAtScenario) end
--- @param ped number
--- @return boolean
function TASK.PED_HAS_USE_SCENARIO_TASK(ped) end
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param animDict string
--- @param animName string
function TASK.PLAY_ANIM_ON_RUNNING_SCENARIO(ped, animDict, animName) end
--- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json
--- Occurrences in the b617d scripts:
--- 
--- "ARMY_GUARD",
--- "ARMY_HELI",
--- "Cinema_Downtown",
--- "Cinema_Morningwood",
--- "Cinema_Textile",
--- "City_Banks",
--- "Countryside_Banks",
--- "DEALERSHIP",
--- "GRAPESEED_PLANES",
--- "KORTZ_SECURITY",
--- "LOST_BIKERS",
--- "LSA_Planes",
--- "LSA_Planes",
--- "MP_POLICE",
--- "Observatory_Bikers",
--- "POLICE_POUND1",
--- "POLICE_POUND2",
--- "POLICE_POUND3",
--- "POLICE_POUND4",
--- "POLICE_POUND5"
--- "QUARRY",
--- "SANDY_PLANES",
--- "SCRAP_SECURITY",
--- "SEW_MACHINE",
--- "SOLOMON_GATE",
--- "Triathlon_1_Start",
--- "Triathlon_2_Start",
--- "Triathlon_3_Start"
--- 
--- Sometimes used with IS_SCENARIO_GROUP_ENABLED:
--- if (TASK::DOES_SCENARIO_GROUP_EXIST("Observatory_Bikers") && (!TASK::IS_SCENARIO_GROUP_ENABLED("Observatory_Bikers"))) {
--- else if (TASK::IS_SCENARIO_GROUP_ENABLED("BLIMP")) {
--- 
--- @param scenarioGroup string
--- @return boolean
function TASK.DOES_SCENARIO_GROUP_EXIST(scenarioGroup) end
--- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json
--- Occurrences in the b617d scripts:
--- 
--- "ARMY_GUARD",
--- "ARMY_HELI",
--- "BLIMP",
--- "Cinema_Downtown",
--- "Cinema_Morningwood",
--- "Cinema_Textile",
--- "City_Banks",
--- "Countryside_Banks",
--- "DEALERSHIP",
--- "KORTZ_SECURITY",
--- "LSA_Planes",
--- "MP_POLICE",
--- "Observatory_Bikers",
--- "POLICE_POUND1",
--- "POLICE_POUND2",
--- "POLICE_POUND3",
--- "POLICE_POUND4",
--- "POLICE_POUND5",
--- "Rampage1",
--- "SANDY_PLANES",
--- "SCRAP_SECURITY",
--- "SEW_MACHINE",
--- "SOLOMON_GATE"
--- 
--- Sometimes used with DOES_SCENARIO_GROUP_EXIST:
--- if (TASK::DOES_SCENARIO_GROUP_EXIST("Observatory_Bikers") &&   (!TASK::IS_SCENARIO_GROUP_ENABLED("Observatory_Bikers"))) {
--- else if (TASK::IS_SCENARIO_GROUP_ENABLED("BLIMP")) {
--- @param scenarioGroup string
--- @return boolean
function TASK.IS_SCENARIO_GROUP_ENABLED(scenarioGroup) end
--- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json
--- Occurrences in the b617d scripts: https://pastebin.com/Tvg2PRHU
--- @param scenarioGroup string
--- @param enabled boolean
function TASK.SET_SCENARIO_GROUP_ENABLED(scenarioGroup, enabled) end
function TASK.RESET_SCENARIO_GROUPS_ENABLED() end
--- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json
--- Groups found in the scripts used with this native:
--- 
--- "AMMUNATION",
--- "QUARRY",
--- "Triathlon_1",
--- "Triathlon_2",
--- "Triathlon_3"
--- @param scenarioGroup string
function TASK.SET_EXCLUSIVE_SCENARIO_GROUP(scenarioGroup) end
function TASK.RESET_EXCLUSIVE_SCENARIO_GROUP() end
--- Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json
--- Occurrences in the b617d scripts:
--- "PROP_HUMAN_SEAT_CHAIR",
--- "WORLD_HUMAN_DRINKING",
--- "WORLD_HUMAN_HANG_OUT_STREET",
--- "WORLD_HUMAN_SMOKING",
--- "WORLD_MOUNTAIN_LION_WANDER",
--- "WORLD_HUMAN_DRINKING"
--- 
--- Sometimes used together with MISC::IS_STRING_NULL_OR_EMPTY in the scripts.
--- 
--- scenarioType could be the same as scenarioName, used in for example TASK::TASK_START_SCENARIO_AT_POSITION.
--- 
--- @param scenarioType string
--- @return boolean
function TASK.IS_SCENARIO_TYPE_ENABLED(scenarioType) end
--- Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json
--- seems to enable/disable specific scenario-types from happening in the game world.
--- 
--- Here are some scenario types from the scripts:
--- "WORLD_MOUNTAIN_LION_REST"
--- "WORLD_MOUNTAIN_LION_WANDER"
--- "DRIVE"
--- "WORLD_VEHICLE_POLICE_BIKE"
--- "WORLD_VEHICLE_POLICE_CAR"
--- "WORLD_VEHICLE_POLICE_NEXT_TO_CAR"
--- "WORLD_VEHICLE_DRIVE_SOLO"
--- "WORLD_VEHICLE_BIKER"
--- "WORLD_VEHICLE_DRIVE_PASSENGERS"
--- "WORLD_VEHICLE_SALTON_DIRT_BIKE"
--- "WORLD_VEHICLE_BICYCLE_MOUNTAIN"
--- "PROP_HUMAN_SEAT_CHAIR"
--- "WORLD_VEHICLE_ATTRACTOR"
--- "WORLD_HUMAN_LEANING"
--- "WORLD_HUMAN_HANG_OUT_STREET"
--- "WORLD_HUMAN_DRINKING"
--- "WORLD_HUMAN_SMOKING"
--- "WORLD_HUMAN_GUARD_STAND"
--- "WORLD_HUMAN_CLIPBOARD"
--- "WORLD_HUMAN_HIKER"
--- "WORLD_VEHICLE_EMPTY"
--- "WORLD_VEHICLE_BIKE_OFF_ROAD_RACE"
--- "WORLD_HUMAN_PAPARAZZI"
--- "WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN"
--- "WORLD_VEHICLE_PARK_PARALLEL"
--- "WORLD_VEHICLE_CONSTRUCTION_SOLO"
--- "WORLD_VEHICLE_CONSTRUCTION_PASSENGERS"
--- "WORLD_VEHICLE_TRUCK_LOGS"
--- 
--- scenarioType could be the same as scenarioName, used in for example TASK::TASK_START_SCENARIO_AT_POSITION.
--- @param scenarioType string
--- @param toggle boolean
function TASK.SET_SCENARIO_TYPE_ENABLED(scenarioType, toggle) end
function TASK.RESET_SCENARIO_TYPES_ENABLED() end
--- @param ped number
--- @return boolean
function TASK.IS_PED_ACTIVE_IN_SCENARIO(ped) end
--- Used only once (am_mp_property_int)
--- 
--- ped was PLAYER_PED_ID()
--- 
--- Related to CTaskAmbientClips.
--- @param ped number
--- @return boolean
function TASK.IS_PED_PLAYING_BASE_CLIP_IN_SCENARIO(ped) end
--- Appears only in fm_mission_controller and used only 3 times.
--- 
--- ped was always PLAYER_PED_ID()
--- p1 was always true
--- p2 was always true
--- @param ped number
--- @param blockIdleClips boolean
--- @param removeIdleClipIfPlaying boolean
function TASK.SET_PED_CAN_PLAY_AMBIENT_IDLES(ped, blockIdleClips, removeIdleClipIfPlaying) end
--- Despite its name, it only attacks ONE hated target. The one closest to the specified position.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param combatFlags number
function TASK.TASK_COMBAT_HATED_TARGETS_IN_AREA(ped, x, y, z, radius, combatFlags) end
--- Despite its name, it only attacks ONE hated target. The one closest hated target.
--- 
--- p2 seems to be always 0
--- @param ped number
--- @param radius number
--- @param combatFlags number
function TASK.TASK_COMBAT_HATED_TARGETS_AROUND_PED(ped, radius, combatFlags) end
--- @param ped number
--- @param radius number
--- @param time number
--- @param combatFlags number
function TASK.TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED(ped, radius, time, combatFlags) end
--- In every case of this native, I've only seen the first parameter passed as 0, although I believe it's a Ped after seeing tasks around it using 0. That's because it's used in a Sequence Task.
--- 
--- The last 3 parameters are definitely coordinates after seeing them passed in other scripts, and even being used straight from the player's coordinates.
--- ---
--- It seems that - in the decompiled scripts - this native was used on a ped who was in a vehicle to throw a projectile out the window at the player. This is something any ped will naturally do if they have a throwable and they are doing driveby-combat (although not very accurately).
--- It is possible, however, that this is how SWAT throws smoke grenades at the player when in cover.
--- ----------------------------------------------------
--- The first comment is right it definately is the ped as if you look in script finale_heist2b.c line 59628 in Xbox Scripts atleast you will see task_throw_projectile and the first param is Local_559[2 <14>] if you look above it a little bit line 59622 give_weapon_to_ped uses the same exact param Local_559[2 <14>] and we all know the first param of that native is ped. So it guaranteed has to be ped. 0 just may mean to use your ped by default for some reason.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param ignoreCollisionEntityIndex number
--- @param createInvincibleProjectile boolean
function TASK.TASK_THROW_PROJECTILE(ped, x, y, z, ignoreCollisionEntityIndex, createInvincibleProjectile) end
--- @param ped number
--- @param drawWeapon boolean
function TASK.TASK_SWAP_WEAPON(ped, drawWeapon) end
--- The 2nd param (drawWeapon) is not implemented.
--- 
--- -----------------------------------------------------------------------
--- 
--- The only occurrence I found in a R* script ("assassin_construction.ysc.c4"):
--- 
--- if (((v_3 < v_4) && (TASK::GET_SCRIPT_TASK_STATUS(PLAYER::PLAYER_PED_ID(), 0x6a67a5cc) != 1)) && (v_5 > v_3)) {
--- TASK::TASK_RELOAD_WEAPON(PLAYER::PLAYER_PED_ID(), 1);
--- }
--- @param ped number
--- @param drawWeapon boolean
function TASK.TASK_RELOAD_WEAPON(ped, drawWeapon) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_GETTING_UP(ped) end
--- EX: Function.Call(Ped1, Ped2, Time, 0);
--- 
--- The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point.
--- 
--- 
--- 
--- Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value).
--- @param ped number
--- @param target number
--- @param minFireLoops number
--- @param startState number
--- @param forceShootOnGround boolean
--- @param shootFromGroundTimer number
function TASK.TASK_WRITHE(ped, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer) end
--- This native checks if a ped is on the ground, in pain from a (gunshot) wound.
--- Returns `true` if the ped is in writhe, `false` otherwise.
--- @param ped number
--- @return boolean
function TASK.IS_PED_IN_WRITHE(ped) end
--- patrolRoutes found in the b617d scripts:
--- "miss_Ass0",
--- "miss_Ass1",
--- "miss_Ass2",
--- "miss_Ass3",
--- "miss_Ass4",
--- "miss_Ass5",
--- "miss_Ass6",
--- "MISS_PATROL_6",
--- "MISS_PATROL_7",
--- "MISS_PATROL_8",
--- "MISS_PATROL_9",
--- "miss_Tower_01",
--- "miss_Tower_02",
--- "miss_Tower_03",
--- "miss_Tower_04",
--- "miss_Tower_05",
--- "miss_Tower_06",
--- "miss_Tower_07",
--- "miss_Tower_08",
--- "miss_Tower_10"
--- @param patrolRoute string
function TASK.OPEN_PATROL_ROUTE(patrolRoute) end
function TASK.CLOSE_PATROL_ROUTE() end
--- Example:
--- TASK::ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND", -193.4915, -2378.864990234375, 10.9719, -193.4915, -2378.864990234375, 10.9719, 3000);
--- 
--- p0 is between 0 and 4 in the scripts.
--- 
--- p1 is "WORLD_HUMAN_GUARD_STAND" or "StandGuard".
--- 
--- p2, p3 and p4 is only one parameter sometimes in the scripts. Most likely a Vector3 hence p2, p3 and p4 are coordinates.
--- Examples:
--- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_739[7/*3*/], 0.0, 0.0, 0.0, 0);
--- 
--- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_B0[17/*44*/]._f3, l_B0[17/*44*/]._f3, 2000);
--- 
--- p5, p6 and p7 are for example set to: 1599.0406494140625, 2713.392578125, 44.4309.
--- 
--- p8 is an int, often random set to for example: MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000).
--- @param nodeId number
--- @param nodeType string
--- @param posX number
--- @param posY number
--- @param posZ number
--- @param headingX number
--- @param headingY number
--- @param headingZ number
--- @param duration number
function TASK.ADD_PATROL_ROUTE_NODE(nodeId, nodeType, posX, posY, posZ, headingX, headingY, headingZ, duration) end
--- @param nodeId1 number
--- @param nodeId2 number
function TASK.ADD_PATROL_ROUTE_LINK(nodeId1, nodeId2) end
function TASK.CREATE_PATROL_ROUTE() end
--- From the b617d scripts:
--- 
--- TASK::DELETE_PATROL_ROUTE("miss_merc0");
--- TASK::DELETE_PATROL_ROUTE("miss_merc1");
--- TASK::DELETE_PATROL_ROUTE("miss_merc2");
--- TASK::DELETE_PATROL_ROUTE("miss_dock");
--- @param patrolRoute string
function TASK.DELETE_PATROL_ROUTE(patrolRoute) end
--- @param ped number
--- @param timeLeftAtNode any
--- @param nodeId any
--- @return boolean
function TASK.GET_PATROL_TASK_INFO(ped, timeLeftAtNode, nodeId) end
--- After looking at some scripts the second parameter seems to be an id of some kind. Here are some I found from some R* scripts:
--- 
--- "miss_Tower_01" (this went from 01 - 10)
--- "miss_Ass0" (0, 4, 6, 3)
--- "MISS_PATROL_8"
--- 
--- I think they're patrol routes, but I'm not sure. And I believe the 3rd parameter is a BOOL, but I can't confirm other than only seeing 0 and 1 being passed.
--- 
--- 
--- As far as I can see the patrol routes names such as "miss_Ass0" have been defined earlier in the scripts. This leads me to believe we can defined our own new patrol routes by following the same approach.
--- From the scripts
--- 
--- TASK::OPEN_PATROL_ROUTE("miss_Ass0");
--- TASK::ADD_PATROL_ROUTE_NODE(0, "WORLD_HUMAN_GUARD_STAND", l_738[0/*3*/], -139.4076690673828, -993.4732055664062, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000));
--- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_738[1/*3*/], -116.1391830444336, -987.4984130859375, 26.38541030883789, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000));
--- TASK::ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND", l_738[2/*3*/], -128.46847534179688, -979.0340576171875, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000));
--- TASK::ADD_PATROL_ROUTE_LINK(0, 1);
--- TASK::ADD_PATROL_ROUTE_LINK(1, 2);
--- TASK::ADD_PATROL_ROUTE_LINK(2, 0);
--- TASK::CLOSE_PATROL_ROUTE();
--- TASK::CREATE_PATROL_ROUTE();
--- 
--- 
--- @param ped number
--- @param patrolRouteName string
--- @param alertState number
--- @param canChatToPeds boolean
--- @param useHeadLookAt boolean
function TASK.TASK_PATROL(ped, patrolRouteName, alertState, canChatToPeds, useHeadLookAt) end
--- Makes the ped run to take cover
--- @param ped number
function TASK.TASK_STAY_IN_COVER(ped) end
--- x, y, z: offset in world coords from some entity.
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
function TASK.ADD_VEHICLE_SUBTASK_ATTACK_COORD(ped, x, y, z) end
--- @param ped number
--- @param target number
function TASK.ADD_VEHICLE_SUBTASK_ATTACK_PED(ped, target) end
--- @param ped number
--- @param target number
--- @param fireTolerance number
function TASK.TASK_VEHICLE_SHOOT_AT_PED(ped, target, fireTolerance) end
--- @param ped number
--- @param target number
function TASK.TASK_VEHICLE_AIM_AT_PED(ped, target) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param fireTolerance number
function TASK.TASK_VEHICLE_SHOOT_AT_COORD(ped, x, y, z, fireTolerance) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
function TASK.TASK_VEHICLE_AIM_AT_COORD(ped, x, y, z) end
--- Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration.
--- 
--- WARNING:
--- A behaviorFlag value of 0 will result in a clunky, stupid driver!
--- 
--- Recommended settings:
--- speed = 30.0f,
--- behaviorFlag = 156,
--- stoppingRange = 5.0f;
--- 
--- If you simply want to have your driver move to a fixed location, call it only once, or, when necessary in the event of interruption.
--- 
--- If using this to continually follow a Ped who is on foot:  You will need to run this in a tick loop.  Call it in with the Ped's updated coordinates every 20 ticks or so and you will have one hell of a smart, fast-reacting NPC driver -- provided he doesn't get stuck.  If your update frequency is too fast, the Ped may not have enough time to figure his way out of being stuck, and thus, remain stuck.  One way around this would be to implement an "anti-stuck" mechanism, which allows the driver to realize he's stuck, temporarily pause the tick, unstuck, then resume the tick.
--- 
--- EDIT:  This is being discussed in more detail at http://gtaforums.com/topic/818504-any-idea-on-how-to-make-peds-clever-and-insanely-fast-c/
--- @param ped number
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param speed number
--- @param behaviorFlag number
--- @param stoppingRange number
function TASK.TASK_VEHICLE_GOTO_NAVMESH(ped, vehicle, x, y, z, speed, behaviorFlag, stoppingRange) end
--- movement_speed: mostly 2f, but also 1/1.2f, etc.
--- p8: always false
--- p9: 2f
--- p10: 0.5f
--- p11: true
--- p12: 0 / 512 / 513, etc.
--- p13: 0
--- firing_pattern: ${firing_pattern_full_auto}, 0xC6EE6B4C
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param aimAtX number
--- @param aimAtY number
--- @param aimAtZ number
--- @param moveBlendRatio number
--- @param shoot boolean
--- @param targetRadius number
--- @param slowDistance number
--- @param useNavMesh boolean
--- @param navFlags number
--- @param instantBlendToAim boolean
--- @param firingPattern number
function TASK.TASK_GO_TO_COORD_WHILE_AIMING_AT_COORD(ped, x, y, z, aimAtX, aimAtY, aimAtZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param aimAtID number
--- @param moveBlendRatio number
--- @param shoot boolean
--- @param targetRadius number
--- @param slowDistance number
--- @param useNavMesh boolean
--- @param navFlags number
--- @param instantBlendToAim boolean
--- @param firingPattern number
--- @param time number
function TASK.TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(ped, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time) end
--- The ped will walk or run towards goToLocation, aiming towards goToLocation or focusLocation (depending on the aimingFlag) and shooting if shootAtEnemies = true to any enemy in his path.
--- 
--- If the ped is closer than noRoadsDistance, the ped will ignore pathing/navmesh and go towards goToLocation directly. This could cause the ped to get stuck behind tall walls if the goToLocation is on the other side. To avoid this, use 0.0f and the ped will always use pathing/navmesh to reach his destination.
--- 
--- If the speed is set to 0.0f, the ped will just stand there while aiming, if set to 1.0f he will walk while aiming, 2.0f will run while aiming.
--- 
--- The ped will stop aiming when he is closer than distanceToStopAt to goToLocation.
--- 
--- I still can't figure out what unkTrue is used for. I don't notice any difference if I set it to false but in the decompiled scripts is always true.
--- 
--- I think that unkFlag, like the driving styles, could be a flag that "work as a list of 32 bits converted to a decimal integer. Each bit acts as a flag, and enables or disables a function". What leads me to this conclusion is the fact that in the decompiled scripts, unkFlag takes values like: 0, 1, 5 (101 in binary) and 4097 (4096 + 1 or 1000000000001 in binary). For now, I don't know what behavior enable or disable this possible flag so I leave it at 0.
--- 
--- Note: After some testing, using unkFlag = 16 (0x10) enables the use of sidewalks while moving towards goToLocation.
--- 
--- The aimingFlag takes 2 values: 0 to aim at the focusLocation, 1 to aim at where the ped is heading (goToLocation).
--- 
--- Example:
--- 
--- enum AimFlag
--- {
--- AimAtFocusLocation,
--- AimAtGoToLocation
--- };
--- 
--- Vector3 goToLocation1 = { 996.2867f, 0, -2143.044f, 0, 28.4763f, 0 }; // remember the padding.
--- 
--- Vector3 goToLocation2 = { 990.2867f, 0, -2140.044f, 0, 28.4763f, 0 }; // remember the padding.
--- 
--- Vector3 focusLocation = { 994.3478f, 0, -2136.118f, 0, 29.2463f, 0 }; // the coord z should be a little higher, around +1.0f to avoid aiming at the ground
--- 
--- // 1st example
--- TASK::TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocation1.x, goToLocation1.y, goToLocation1.z, focusLocation.x, focusLocation.y, focusLocation.z, 2.0f /*run*/, true /*shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtGoToLocation, -957453492 /*FullAuto pattern*/);
--- 
--- // 2nd example
--- TASK::TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocation2.x, goToLocation2.y, goToLocation2.z, focusLocation.x, focusLocation.y, focusLocation.z, 1.0f /*walk*/, false /*don't shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtFocusLocation, -957453492 /*FullAuto pattern*/);
--- 
--- 
--- 1st example: The ped (pedhandle) will run towards goToLocation1. While running and aiming towards goToLocation1, the ped will shoot on sight to any enemy in his path, using "FullAuto" firing pattern. The ped will stop once he is closer than distanceToStopAt to goToLocation1.
--- 
--- 2nd example: The ped will walk towards goToLocation2. This time, while walking towards goToLocation2 and aiming at focusLocation, the ped will point his weapon on sight to any enemy in his path without shooting. The ped will stop once he is closer than distanceToStopAt to goToLocation2.
--- @param pedHandle number
--- @param goToLocationX number
--- @param goToLocationY number
--- @param goToLocationZ number
--- @param focusLocationX number
--- @param focusLocationY number
--- @param focusLocationZ number
--- @param speed number
--- @param shootAtEnemies boolean
--- @param distanceToStopAt number
--- @param noRoadsDistance number
--- @param useNavMesh boolean
--- @param navFlags number
--- @param taskFlags number
--- @param firingPattern number
function TASK.TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocationX, goToLocationY, goToLocationZ, focusLocationX, focusLocationY, focusLocationZ, speed, shootAtEnemies, distanceToStopAt, noRoadsDistance, useNavMesh, navFlags, taskFlags, firingPattern) end
--- @param ped number
--- @param entity number
--- @param aimX number
--- @param aimY number
--- @param aimZ number
--- @param moveBlendRatio number
--- @param shoot boolean
--- @param targetRadius number
--- @param slowDistance number
--- @param useNavMesh boolean
--- @param instantBlendToAim boolean
--- @param firingPattern number
function TASK.TASK_GO_TO_ENTITY_WHILE_AIMING_AT_COORD(ped, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern) end
--- shootatEntity:
--- If true, peds will shoot at Entity till it is dead.
--- If false, peds will just walk till they reach the entity and will cease shooting.
--- @param ped number
--- @param entityToWalkTo number
--- @param entityToAimAt number
--- @param speed number
--- @param shootatEntity boolean
--- @param targetRadius number
--- @param slowDistance number
--- @param useNavMesh boolean
--- @param instantBlendToAim boolean
--- @param firingPattern number
function TASK.TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(ped, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern) end
--- Makes the ped ragdoll like when falling from a great height
--- @param ped number
--- @param minTime number
--- @param maxTime number
--- @param entryType number
function TASK.SET_HIGH_FALL_TASK(ped, minTime, maxTime, entryType) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- For a full list of the points, see here: goo.gl/wIH0vn
--- 
--- Max number of loaded recordings is 32.
--- @param name string
function TASK.REQUEST_WAYPOINT_RECORDING(name) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- @param name string
--- @return boolean
function TASK.GET_IS_WAYPOINT_RECORDING_LOADED(name) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- @param name string
function TASK.REMOVE_WAYPOINT_RECORDING(name) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- For a full list of the points, see here: goo.gl/wIH0vn
--- @param name string
--- @param points any
--- @return boolean
function TASK.WAYPOINT_RECORDING_GET_NUM_POINTS(name, points) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- For a full list of the points, see here: goo.gl/wIH0vn
--- @param name string
--- @param point number
--- @param coord number
--- @return boolean
function TASK.WAYPOINT_RECORDING_GET_COORD(name, point, coord) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- @param name string
--- @param point number
--- @return number
function TASK.WAYPOINT_RECORDING_GET_SPEED_AT_POINT(name, point) end
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- For a full list of the points, see here: goo.gl/wIH0vn
--- @param name string
--- @param x number
--- @param y number
--- @param z number
--- @param point any
--- @return boolean
function TASK.WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT(name, x, y, z, point) end
--- @param ped number
--- @param name string
--- @param p2 number
--- @param p3 number
--- @param p4 number
function TASK.TASK_FOLLOW_WAYPOINT_RECORDING(ped, name, p2, p3, p4) end
--- @param ped number
--- @return boolean
function TASK.IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(ped) end
--- @param ped number
--- @return number
function TASK.GET_PED_WAYPOINT_PROGRESS(ped) end
--- @param p0 number
--- @return number
function TASK.GET_PED_WAYPOINT_DISTANCE(p0) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @return boolean
function TASK.SET_PED_WAYPOINT_ROUTE_OFFSET(ped, x, y, z) end
--- @param name string
--- @param point number
--- @return number
function TASK.GET_WAYPOINT_DISTANCE_ALONG_ROUTE(name, point) end
--- @param p0 number
--- @return boolean
function TASK.WAYPOINT_PLAYBACK_GET_IS_PAUSED(p0) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
function TASK.WAYPOINT_PLAYBACK_PAUSE(p0, p1, p2) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 number
--- @param p3 number
function TASK.WAYPOINT_PLAYBACK_RESUME(p0, p1, p2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 boolean
function TASK.WAYPOINT_PLAYBACK_OVERRIDE_SPEED(p0, p1, p2) end
--- @param p0 number
function TASK.WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED(p0) end
--- @param name string
--- @param p1 boolean
--- @param p2 number
--- @param p3 number
function TASK.USE_WAYPOINT_RECORDING_AS_ASSISTED_MOVEMENT_ROUTE(name, p1, p2, p3) end
--- @param ped number
--- @param target number
--- @param p2 boolean
function TASK.WAYPOINT_PLAYBACK_START_AIMING_AT_PED(ped, target, p2) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 boolean
function TASK.WAYPOINT_PLAYBACK_START_AIMING_AT_COORD(ped, x, y, z, p4) end
--- @param ped number
--- @param ped2 number
--- @param p2 boolean
--- @param p3 boolean
function TASK.WAYPOINT_PLAYBACK_START_SHOOTING_AT_PED(ped, ped2, p2, p3) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 boolean
--- @param firingPattern number
function TASK.WAYPOINT_PLAYBACK_START_SHOOTING_AT_COORD(ped, x, y, z, p4, firingPattern) end
--- @param ped number
function TASK.WAYPOINT_PLAYBACK_STOP_AIMING_OR_SHOOTING(ped) end
--- Routes: "1_FIBStairs", "2_FIBStairs", "3_FIBStairs", "4_FIBStairs", "5_FIBStairs", "5_TowardsFire", "6a_FIBStairs", "7_FIBStairs", "8_FIBStairs", "Aprtmnt_1", "AssAfterLift", "ATM_1", "coroner2", "coroner_stairs", "f5_jimmy1", "fame1", "family5b", "family5c", "Family5d", "family5d", "FIB_Glass1", "FIB_Glass2", "FIB_Glass3", "finaBroute1A", "finalb1st", "finalB1sta", "finalbround", "finalbroute2", "Hairdresser1", "jan_foyet_ft_door", "Jo_3", "Lemar1", "Lemar2", "mansion_1", "Mansion_1", "pols_1", "pols_2", "pols_3", "pols_4", "pols_5", "pols_6", "pols_7", "pols_8", "Pro_S1", "Pro_S1a", "Pro_S2", "Towards_case", "trev_steps", "tunrs1", "tunrs2", "tunrs3", "Wave01457s"
--- @param route string
function TASK.ASSISTED_MOVEMENT_REQUEST_ROUTE(route) end
--- @param route string
function TASK.ASSISTED_MOVEMENT_REMOVE_ROUTE(route) end
--- @param route string
--- @return boolean
function TASK.ASSISTED_MOVEMENT_IS_ROUTE_LOADED(route) end
--- @param route string
--- @param props number
function TASK.ASSISTED_MOVEMENT_SET_ROUTE_PROPERTIES(route, props) end
--- @param dist number
function TASK.ASSISTED_MOVEMENT_OVERRIDE_LOAD_DISTANCE_THIS_FRAME(dist) end
--- 
--- 
--- p2 = Waypoint recording string (found in update\update.rpf\x64\levels\gta5\waypointrec.rpf
--- p3 = 786468
--- p4 = 0
--- p5 = 16
--- p6 = -1 (angle?)
--- p7/8/9 = usually v3.zero
--- p10 = bool (repeat?)
--- p11 = 1073741824
--- 
--- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json
--- @param ped number
--- @param vehicle number
--- @param WPRecording string
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 boolean
--- @param p9 number
function TASK.TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(ped, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9) end
--- @param vehicle number
--- @return boolean
function TASK.IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehicle) end
--- @param vehicle number
--- @return number
function TASK.GET_VEHICLE_WAYPOINT_PROGRESS(vehicle) end
--- @param vehicle number
--- @return number
function TASK.GET_VEHICLE_WAYPOINT_TARGET_POINT(vehicle) end
--- @param vehicle number
function TASK.VEHICLE_WAYPOINT_PLAYBACK_PAUSE(vehicle) end
--- @param vehicle number
function TASK.VEHICLE_WAYPOINT_PLAYBACK_RESUME(vehicle) end
--- @param vehicle number
function TASK.VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED(vehicle) end
--- @param vehicle number
--- @param speed number
function TASK.VEHICLE_WAYPOINT_PLAYBACK_OVERRIDE_SPEED(vehicle, speed) end
--- I cant believe I have to define this, this is one of the best natives.
--- 
--- It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee.
--- 
--- Since it is a task, every time the native is called the ped will stop for a moment.
--- @param ped number
--- @param toggle boolean
function TASK.TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(ped, toggle) end
--- p2 always false
--- 
--- [30/03/2017] ins1de :
--- 
--- See FORCE_PED_MOTION_STATE
--- @param ped number
--- @param state number
--- @param forceRestart boolean
function TASK.TASK_FORCE_MOTION_STATE(ped, state, forceRestart) end
--- Example:
--- TASK::TASK_MOVE_NETWORK_BY_NAME(PLAYER::PLAYER_PED_ID(), "arm_wrestling_sweep_paired_a_rev3", 0.0f, true, "mini@arm_wrestling", 0);
--- @param ped number
--- @param task string
--- @param multiplier number
--- @param allowOverrideCloneUpdate boolean
--- @param animDict string
--- @param flags number
function TASK.TASK_MOVE_NETWORK_BY_NAME(ped, task, multiplier, allowOverrideCloneUpdate, animDict, flags) end
--- Example:
--- TASK::TASK_MOVE_NETWORK_ADVANCED_BY_NAME(PLAYER::PLAYER_PED_ID(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0);
--- @param ped number
--- @param network string
--- @param x number
--- @param y number
--- @param z number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param rotOrder number
--- @param blendDuration number
--- @param allowOverrideCloneUpdate boolean
--- @param animDict string
--- @param flags number
function TASK.TASK_MOVE_NETWORK_ADVANCED_BY_NAME(ped, network, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, animDict, flags) end
--- Used only once in the scripts (am_mp_nightclub)
--- @param ped number
--- @param network string
--- @param initialParameters any
--- @param blendDuration number
--- @param allowOverrideCloneUpdate boolean
--- @param animDict string
--- @param flags number
function TASK.TASK_MOVE_NETWORK_BY_NAME_WITH_INIT_PARAMS(ped, network, initialParameters, blendDuration, allowOverrideCloneUpdate, animDict, flags) end
--- @param ped number
--- @param network string
--- @param initialParameters any
--- @param x number
--- @param y number
--- @param z number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param rotOrder number
--- @param blendDuration number
--- @param allowOverrideCloneUpdate boolean
--- @param dictionary string
--- @param flags number
function TASK.TASK_MOVE_NETWORK_ADVANCED_BY_NAME_WITH_INIT_PARAMS(ped, network, initialParameters, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, dictionary, flags) end
--- @param ped number
--- @return boolean
function TASK.IS_TASK_MOVE_NETWORK_ACTIVE(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_TASK_MOVE_NETWORK_READY_FOR_TRANSITION(ped) end
--- @param ped number
--- @param name string
--- @return boolean
function TASK.REQUEST_TASK_MOVE_NETWORK_STATE_TRANSITION(ped, name) end
--- Used only once in the scripts (fm_mission_controller) like so:
--- 
--- TASK::SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE(iLocal_3160, "Cutting");
--- @param ped number
--- @param state string
--- @return boolean
function TASK.SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE(ped, state) end
--- @param ped number
--- @return string
function TASK.GET_TASK_MOVE_NETWORK_STATE(ped) end
--- @param ped number
--- @param clipSet number
--- @param variableClipSet number
function TASK.SET_TASK_MOVE_NETWORK_ANIM_SET(ped, clipSet, variableClipSet) end
--- signalName - "Phase", "Wobble", "x_axis","y_axis","introphase","speed".
--- p2 - From what i can see it goes up to 1f (maybe).
--- 
--- Example: TASK::SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(PLAYER::PLAYER_PED_ID(), "Phase", 0.5);
--- @param ped number
--- @param signalName string
--- @param value number
function TASK.SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(ped, signalName, value) end
--- @param ped number
--- @param signalName string
--- @param value number
function TASK.SET_TASK_MOVE_NETWORK_SIGNAL_LOCAL_FLOAT(ped, signalName, value) end
--- @param ped number
--- @param signalName string
--- @param value number
function TASK.SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT_LERP_RATE(ped, signalName, value) end
--- @param ped number
--- @param signalName string
--- @param value boolean
function TASK.SET_TASK_MOVE_NETWORK_SIGNAL_BOOL(ped, signalName, value) end
--- @param ped number
--- @param signalName string
--- @return number
function TASK.GET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(ped, signalName) end
--- @param ped number
--- @param signalName string
--- @return boolean
function TASK.GET_TASK_MOVE_NETWORK_SIGNAL_BOOL(ped, signalName) end
--- @param ped number
--- @param eventName string
--- @return boolean
function TASK.GET_TASK_MOVE_NETWORK_EVENT(ped, eventName) end
--- Doesn't actually return anything.
--- @param ped number
--- @param enable boolean
--- @return boolean
function TASK.SET_TASK_MOVE_NETWORK_ENABLE_COLLISION_ON_NETWORK_CLONE_WHEN_FIXED(ped, enable) end
--- @param ped number
--- @param enable boolean
function TASK._SET_SCRIPT_TASK_ENABLE_COLLISION_ON_NETWORK_CLONE_WHEN_FIXED(ped, enable) end
--- @param ped number
--- @return boolean
function TASK.IS_MOVE_BLEND_RATIO_STILL(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_MOVE_BLEND_RATIO_WALKING(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_MOVE_BLEND_RATIO_RUNNING(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_MOVE_BLEND_RATIO_SPRINTING(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_STILL(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_WALKING(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_RUNNING(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_SPRINTING(ped) end
--- What's strafing?
--- @param ped number
--- @return boolean
function TASK.IS_PED_STRAFING(ped) end
--- TASK::TASK_SYNCHRONIZED_SCENE(ped, scene, "creatures@rottweiler@in_vehicle@std_car", "get_in", 1000.0, -8.0, 4, 0, 0x447a0000, 0);
--- 
--- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json
--- @param ped number
--- @param scene number
--- @param animDictionary string
--- @param animationName string
--- @param blendIn number
--- @param blendOut number
--- @param flags number
--- @param ragdollBlockingFlags number
--- @param moverBlendDelta number
--- @param ikFlags number
function TASK.TASK_SYNCHRONIZED_SCENE(ped, scene, animDictionary, animationName, blendIn, blendOut, flags, ragdollBlockingFlags, moverBlendDelta, ikFlags) end
--- @param ped number
--- @param ped2 number
function TASK.TASK_AGITATED_ACTION_CONFRONT_RESPONSE(ped, ped2) end
--- This function is called on peds in vehicles.
--- 
--- anim: animation name
--- p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high"
--- p5: no idea what it does but is usually -1
--- @param ped number
--- @param animDict string
--- @param lowAnimName string
--- @param medAnimName string
--- @param hiAnimName string
--- @param runtime number
--- @param targetEntity number
--- @param turnRate number
--- @param blendInDuration number
function TASK.TASK_SWEEP_AIM_ENTITY(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration) end
--- @param ped number
--- @param entity number
function TASK.UPDATE_TASK_SWEEP_AIM_ENTITY(ped, entity) end
--- @param ped number
--- @param animDict string
--- @param lowAnimName string
--- @param medAnimName string
--- @param hiAnimName string
--- @param runtime number
--- @param x number
--- @param y number
--- @param z number
--- @param turnRate number
--- @param blendInDuration number
function TASK.TASK_SWEEP_AIM_POSITION(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, x, y, z, turnRate, blendInDuration) end
--- @param ped number
--- @param x number
--- @param y number
--- @param z number
function TASK.UPDATE_TASK_SWEEP_AIM_POSITION(ped, x, y, z) end
--- Example from "me_amanda1.ysc.c4":
--- TASK::TASK_ARREST_PED(l_19F /* This is a Ped */ , PLAYER::PLAYER_PED_ID());
--- 
--- Example from "armenian1.ysc.c4":
--- if (!PED::IS_PED_INJURED(l_B18[0/*1*/])) {
--- TASK::TASK_ARREST_PED(l_B18[0/*1*/], PLAYER::PLAYER_PED_ID());
--- }
--- 
--- I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod.
--- 
--- 
--- Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped.
--- @param ped number
--- @param target number
function TASK.TASK_ARREST_PED(ped, target) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_RUNNING_ARREST_TASK(ped) end
--- This function is hard-coded to always return 0.
--- @param ped number
--- @return boolean
function TASK.IS_PED_BEING_ARRESTED(ped) end
--- @param ped number
function TASK.UNCUFF_PED(ped) end
--- @param ped number
--- @return boolean
function TASK.IS_PED_CUFFED(ped) end

VEHICLE = {}

--- p7 when set to true allows you to spawn vehicles under -100 z.
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param isNetwork boolean
--- @param bScriptHostVeh boolean
--- @param p7 boolean
--- @return number
function VEHICLE.CREATE_VEHICLE(modelHash, x, y, z, heading, isNetwork, bScriptHostVeh, p7) end
--- Deletes a vehicle.
--- The vehicle must be a mission entity to delete, so call this before deleting: SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true);
--- 
--- eg how to use:
--- SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true);
--- DELETE_VEHICLE(&vehicle);
--- 
--- Deletes the specified vehicle, then sets the handle pointed to by the pointer to NULL.
--- @param vehicle number
function VEHICLE.DELETE_VEHICLE(vehicle) end
--- @param vehicle number
--- @param toggle boolean
--- @param p2 boolean
function VEHICLE.SET_VEHICLE_ALLOW_HOMING_MISSLE_LOCKON(vehicle, toggle, p2) end
--- @param vehicle number
--- @param canBeLockedOn boolean
--- @param p2 boolean
function VEHICLE.SET_VEHICLE_ALLOW_HOMING_MISSLE_LOCKON_SYNCED(vehicle, canBeLockedOn, p2) end
--- Makes the vehicle accept no passengers.
--- @param veh number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_ALLOW_NO_PASSENGERS_LOCKON(veh, toggle) end
--- Returns a value depending on the lock-on state of vehicle weapons.
--- 0: not locked on
--- 1: locking on
--- 2: locked on
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_HOMING_LOCKON_STATE(vehicle) end
--- @param p0 number
--- @return number
function VEHICLE.GET_VEHICLE_HOMING_LOCKEDONTO_STATE(p0) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_VEHICLE_HOMING_LOCKEDONTO_STATE(p0, p1) end
--- @param vehicle number
--- @param model number
--- @return boolean
function VEHICLE.IS_VEHICLE_MODEL(vehicle, model) end
--- @param vehicleGenerator number
--- @return boolean
function VEHICLE.DOES_SCRIPT_VEHICLE_GENERATOR_EXIST(vehicleGenerator) end
--- Creates a script vehicle generator at the given coordinates. Most parameters after the model hash are unknown.
--- 
--- Parameters:
--- x/y/z - Generator position
--- heading - Generator heading
--- p4 - Unknown (always 5.0)
--- p5 - Unknown (always 3.0)
--- modelHash - Vehicle model hash
--- p7/8/9/10 - Unknown (always -1)
--- p11 - Unknown (usually TRUE, only one instance of FALSE)
--- p12/13 - Unknown (always FALSE)
--- p14 - Unknown (usally FALSE, only two instances of TRUE)
--- p15 - Unknown (always TRUE)
--- p16 - Unknown (always -1)
--- 
--- Vector3 coords = GET_ENTITY_COORDS(PLAYER_PED_ID(), 0);    CREATE_SCRIPT_VEHICLE_GENERATOR(coords.x, coords.y, coords.z, 1.0f, 5.0f, 3.0f, GET_HASH_KEY("adder"), -1. -1, -1, -1, -1, true, false, false, false, true, -1);
--- @param x number
--- @param y number
--- @param z number
--- @param heading number
--- @param p4 number
--- @param p5 number
--- @param modelHash number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @param p10 number
--- @param p11 boolean
--- @param p12 boolean
--- @param p13 boolean
--- @param p14 boolean
--- @param p15 boolean
--- @param p16 number
--- @return number
function VEHICLE.CREATE_SCRIPT_VEHICLE_GENERATOR(x, y, z, heading, p4, p5, modelHash, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) end
--- @param vehicleGenerator number
function VEHICLE.DELETE_SCRIPT_VEHICLE_GENERATOR(vehicleGenerator) end
--- Only called once in the decompiled scripts. Presumably activates the specified generator.
--- @param vehicleGenerator number
--- @param enabled boolean
function VEHICLE.SET_SCRIPT_VEHICLE_GENERATOR(vehicleGenerator, enabled) end
--- When p6 is true, vehicle generators are active.
--- p7 seems to always be true in story mode scripts, but it's sometimes false in online scripts.
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param toggle boolean
--- @param p7 boolean
function VEHICLE.SET_ALL_VEHICLE_GENERATORS_ACTIVE_IN_AREA(x1, y1, z1, x2, y2, z2, toggle, p7) end
function VEHICLE.SET_ALL_VEHICLE_GENERATORS_ACTIVE() end
--- @param active boolean
function VEHICLE.SET_ALL_LOW_PRIORITY_VEHICLE_GENERATORS_ACTIVE(active) end
--- Related to car generators & CPlayerSwitchMgrLong
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
function VEHICLE.SET_VEHICLE_GENERATOR_AREA_OF_INTEREST(x, y, z, radius) end
function VEHICLE.CLEAR_VEHICLE_GENERATOR_AREA_OF_INTEREST() end
--- Sets a vehicle on the ground on all wheels.  Returns whether or not the operation was successful.
--- 
--- sfink: This has an additional param(Vehicle vehicle, float p1) which is always set to 5.0f in the b944 scripts.
--- @param vehicle number
--- @param p1 number
--- @return boolean
function VEHICLE.SET_VEHICLE_ON_GROUND_PROPERLY(vehicle, p1) end
--- @param p0 number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @return boolean
function VEHICLE.SET_VEHICLE_USE_CUTSCENE_WHEEL_COMPRESSION(p0, p1, p2, p3) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_STUCK_ON_ROOF(vehicle) end
--- @param vehicle number
function VEHICLE.ADD_VEHICLE_UPSIDEDOWN_CHECK(vehicle) end
--- @param vehicle number
function VEHICLE.REMOVE_VEHICLE_UPSIDEDOWN_CHECK(vehicle) end
--- Returns true if the vehicle's current speed is less than, or equal to 0.0025f.
--- 
--- For some vehicles it returns true if the current speed is <= 0.00039999999.
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_STOPPED(vehicle) end
--- Gets the number of passengers.
--- 
--- This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers.
--- 
--- To keep it working like before b2545, set includeDriver to false and includeDeadOccupants to true.
--- @param vehicle number
--- @param includeDriver boolean
--- @param includeDeadOccupants boolean
--- @return number
function VEHICLE.GET_VEHICLE_NUMBER_OF_PASSENGERS(vehicle, includeDriver, includeDeadOccupants) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) end
--- Returns max number of passengers (including the driver) for the specified vehicle model.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_NUMBER_OF_SEATS(modelHash) end
--- @param vehicle number
--- @param seatIndex number
--- @return boolean
function VEHICLE.IS_SEAT_WARP_ONLY(vehicle, seatIndex) end
--- @param vehicle number
--- @param seatIndex number
--- @return boolean
function VEHICLE.IS_TURRET_SEAT(vehicle, seatIndex) end
--- Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set.
--- @param vehicle number
--- @return boolean
function VEHICLE.DOES_VEHICLE_ALLOW_RAPPEL(vehicle) end
--- Use this native inside a looped function.
--- Values:
--- - `0.0` = no vehicles on streets
--- - `1.0` = normal vehicles on streets
--- @param multiplier number
function VEHICLE.SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(multiplier) end
--- @param multiplier number
function VEHICLE.SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(multiplier) end
--- @param multiplier number
function VEHICLE.SET_PARKED_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(multiplier) end
--- @param toggle boolean
function VEHICLE.SET_DISABLE_RANDOM_TRAINS_THIS_FRAME(toggle) end
--- @param value number
function VEHICLE.SET_AMBIENT_VEHICLE_RANGE_MULTIPLIER_THIS_FRAME(value) end
--- @param toggle boolean
function VEHICLE.SET_FAR_DRAW_VEHICLES(toggle) end
--- @param value number
function VEHICLE.SET_NUMBER_OF_PARKED_VEHICLES(value) end
--- enum eVehicleLockState
--- {
--- VEHICLELOCK_NONE,
--- VEHICLELOCK_UNLOCKED,
--- VEHICLELOCK_LOCKED,
--- VEHICLELOCK_LOCKOUT_PLAYER_ONLY,
--- VEHICLELOCK_LOCKED_PLAYER_INSIDE,
--- VEHICLELOCK_LOCKED_INITIALLY,
--- VEHICLELOCK_FORCE_SHUT_DOORS,
--- VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED,
--- VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED,
--- VEHICLELOCK_LOCKED_NO_PASSENGERS,
--- VEHICLELOCK_CANNOT_ENTER
--- };
--- @param vehicle number
--- @param doorLockStatus number
function VEHICLE.SET_VEHICLE_DOORS_LOCKED(vehicle, doorLockStatus) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @param doorLockStatus number
function VEHICLE.SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED(vehicle, doorId, doorLockStatus) end
--- If set to true, prevents vehicle sirens from having sound, leaving only the lights.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_HAS_MUTED_SIRENS(vehicle, toggle) end
--- @param vehicle number
--- @param player number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_PLAYER(vehicle, player, toggle) end
--- @param vehicle number
--- @param player number
--- @return boolean
function VEHICLE.GET_VEHICLE_DOORS_LOCKED_FOR_PLAYER(vehicle, player) end
--- After some analysis, I've decided that these are what the parameters are.
--- 
--- We can see this being used in R* scripts such as "am_mp_property_int.ysc.c4":
--- l_11A1 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1);
--- ...
--- VEHICLE::SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(l_11A1, 1);
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_NON_SCRIPT_PLAYERS(vehicle, toggle) end
--- @param vehicle number
--- @param team number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_TEAM(vehicle, team, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS(vehicle, toggle) end
--- @param vehicle number
function VEHICLE.SET_VEHICLE_DONT_TERMINATE_TASK_WHEN_ACHIEVED(vehicle) end
--- 0.0f = engine rev minimum
--- 1.0f = engine rev limit
--- @param vehicle number
--- @param modifier number
function VEHICLE._SET_VEHICLE_MAX_LAUNCH_ENGINE_REVS(vehicle, modifier) end
--- @param vehicle number
--- @return number
function VEHICLE._GET_VEHICLE_THROTTLE(vehicle) end
--- Explodes a selected vehicle.
--- 
--- Vehicle vehicle = Vehicle you want to explode.
--- BOOL isAudible = If explosion makes a sound.
--- BOOL isInvisible = If the explosion is invisible or not.
--- 
--- First BOOL does not give any visual explosion, the vehicle just falls apart completely but slowly and starts to burn.
--- @param vehicle number
--- @param isAudible boolean
--- @param isInvisible boolean
function VEHICLE.EXPLODE_VEHICLE(vehicle, isAudible, isInvisible) end
--- Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom.
--- @param vehicle number
--- @param killDriver boolean
--- @param explodeOnImpact boolean
function VEHICLE.SET_VEHICLE_OUT_OF_CONTROL(vehicle, killDriver, explodeOnImpact) end
--- @param vehicle number
--- @param ped number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_TIMED_EXPLOSION(vehicle, ped, toggle) end
--- @param vehicle number
function VEHICLE.ADD_VEHICLE_PHONE_EXPLOSIVE_DEVICE(vehicle) end
function VEHICLE.CLEAR_VEHICLE_PHONE_EXPLOSIVE_DEVICE() end
--- @return boolean
function VEHICLE.HAS_VEHICLE_PHONE_EXPLOSIVE_DEVICE() end
function VEHICLE.DETONATE_VEHICLE_PHONE_EXPLOSIVE_DEVICE() end
--- @param vehicle number
--- @return boolean
function VEHICLE.HAVE_VEHICLE_REAR_DOORS_BEEN_BLOWN_OPEN_BY_STICKYBOMB(vehicle) end
--- This is not tested - it's just an assumption.
--- - Nac
--- 
--- Doesn't seem to work.  I'll try with an int instead. --JT
--- 
--- Read the scripts, im dumpass.
--- 
--- if (!VEHICLE::IS_TAXI_LIGHT_ON(l_115)) {
--- VEHICLE::SET_TAXI_LIGHTS(l_115, 1);
--- }
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_TAXI_LIGHTS(vehicle, state) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_TAXI_LIGHT_ON(vehicle) end
--- garageName example "Michael - Beverly Hills"
--- 
--- Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json
--- @param garageName string
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_IN_GARAGE_AREA(garageName, vehicle) end
--- colorPrimary & colorSecondary are the paint index for the vehicle.
--- For a list of valid paint indexes, view: https://pastebin.com/pwHci0xK
--- -------------------------------------------------------------------------
--- Note: minimum color index is 0, maximum color index is (numColorIndices - 1)
--- 
--- Full list of vehicle colors by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json
--- @param vehicle number
--- @param colorPrimary number
--- @param colorSecondary number
function VEHICLE.SET_VEHICLE_COLOURS(vehicle, colorPrimary, colorSecondary) end
--- It switch to highbeam when p1 is set to true.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_FULLBEAM(vehicle, toggle) end
--- p1 (toggle) was always 1 (true) except in one case in the b678 scripts.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_IS_RACING(vehicle, toggle) end
--- p1, p2, p3 are RGB values for color (255,0,0 for Red, ect)
--- @param vehicle number
--- @param r number
--- @param g number
--- @param b number
function VEHICLE.SET_VEHICLE_CUSTOM_PRIMARY_COLOUR(vehicle, r, g, b) end
--- @param vehicle number
--- @param r any
--- @param g any
--- @param b any
function VEHICLE.GET_VEHICLE_CUSTOM_PRIMARY_COLOUR(vehicle, r, g, b) end
--- @param vehicle number
function VEHICLE.CLEAR_VEHICLE_CUSTOM_PRIMARY_COLOUR(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM(vehicle) end
--- p1, p2, p3 are RGB values for color (255,0,0 for Red, ect)
--- @param vehicle number
--- @param r number
--- @param g number
--- @param b number
function VEHICLE.SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehicle, r, g, b) end
--- @param vehicle number
--- @param r any
--- @param g any
--- @param b any
function VEHICLE.GET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehicle, r, g, b) end
--- @param vehicle number
function VEHICLE.CLEAR_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehicle) end
--- Check if Vehicle Secondary is avaliable for customize
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM(vehicle) end
--- The parameter fade is a value from 0-1, where 0 is fresh paint.
--- @param vehicle number
--- @param fade number
function VEHICLE.SET_VEHICLE_ENVEFF_SCALE(vehicle, fade) end
--- The result is a value from 0-1, where 0 is fresh paint.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_ENVEFF_SCALE(vehicle) end
--- Hardcoded to not work in multiplayer.
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_CAN_RESPRAY_VEHICLE(vehicle, state) end
--- Used for GTAO CEO/Associate spawned vehicles.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_GOON_BOSS_VEHICLE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_OPEN_REAR_DOORS_ON_EXPLOSION(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.FORCE_SUBMARINE_SURFACE_MODE(vehicle, toggle) end
--- @param p0 number
--- @param p1 number
function VEHICLE.FORCE_SUBMARINE_NEURTAL_BUOYANCY(p0, p1) end
--- @param vehicle number
--- @param p1 boolean
--- @param depth1 number
--- @param depth2 number
--- @param depth3 number
function VEHICLE.SET_SUBMARINE_CRUSH_DEPTHS(vehicle, p1, depth1, depth2, depth3) end
--- @param submarine number
--- @return boolean
function VEHICLE.GET_SUBMARINE_IS_UNDER_DESIGN_DEPTH(submarine) end
--- @param submarine number
--- @return number
function VEHICLE.GET_SUBMARINE_NUMBER_OF_AIR_LEAKS(submarine) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_BOAT_IGNORE_LAND_PROBES(p0, p1) end
--- Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks
--- @param vehicle number
--- @param toggle boolean
function VEHICLE._SET_BOUNDS_AFFECT_WATER_PROBES(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_BOAT_ANCHOR(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.CAN_ANCHOR_BOAT_HERE(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.CAN_ANCHOR_BOAT_HERE_IGNORE_PLAYERS(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_BOAT_REMAINS_ANCHORED_WHILE_PLAYER_IS_DRIVER(vehicle, toggle) end
--- No observed effect.
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_FORCE_LOW_LOD_ANCHOR_MODE(vehicle, p1) end
--- @param vehicle number
--- @param value number
function VEHICLE.SET_BOAT_LOW_LOD_ANCHOR_DISTANCE(vehicle, value) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_BOAT_ANCHORED(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_BOAT_SINKS_WHEN_WRECKED(vehicle, toggle) end
--- @param vehicle number
function VEHICLE.SET_BOAT_WRECKED(vehicle) end
--- Activate siren on vehicle (Only works if the vehicle has a siren).
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_SIREN(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_SIREN_ON(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_SIREN_AUDIO_ON(vehicle) end
--- If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_STRONG(vehicle, toggle) end
--- @param vehicle number
function VEHICLE.REMOVE_VEHICLE_STUCK_CHECK(vehicle) end
--- @param vehicle number
--- @param colorPrimary any
--- @param colorSecondary any
function VEHICLE.GET_VEHICLE_COLOURS(vehicle, colorPrimary, colorSecondary) end
--- Check if a vehicle seat is free.
--- 
--- seatIndex  = -1 being the driver seat.
--- Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index.
--- isTaskRunning = on true the function returns already false while a task on the target seat is running (TASK_ENTER_VEHICLE/TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT) - on false only when a ped is finally sitting in the seat.
--- @param vehicle number
--- @param seatIndex number
--- @param isTaskRunning boolean
--- @return boolean
function VEHICLE.IS_VEHICLE_SEAT_FREE(vehicle, seatIndex, isTaskRunning) end
--- If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity.
--- 
--- Seat indexes:
--- -1 = Driver
--- 0 = Front Right Passenger
--- 1 = Back Left Passenger
--- 2 = Back Right Passenger
--- 3 = Further Back Left Passenger (vehicles > 4 seats)
--- 4 = Further Back Right Passenger (vehicles > 4 seats)
--- etc.
--- 
--- If p2 is true it uses a different GetOccupant function.
--- @param vehicle number
--- @param seatIndex number
--- @param p2 boolean
--- @return number
function VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, seatIndex, p2) end
--- @param vehicle number
--- @param seatIndex number
--- @return number
function VEHICLE.GET_LAST_PED_IN_VEHICLE_SEAT(vehicle, seatIndex) end
--- @param vehicle number
--- @param lightsOn any
--- @param highbeamsOn any
--- @return boolean
function VEHICLE.GET_VEHICLE_LIGHTS_STATE(vehicle, lightsOn, highbeamsOn) end
--- wheelID used for 4 wheelers seem to be (0, 1, 4, 5)
--- completely - is to check if tire completely gone from rim.
--- 
--- '0 = wheel_lf / bike, plane or jet front
--- '1 = wheel_rf
--- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left
--- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right
--- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left
--- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right
--- '45 = 6 wheels trailer mid wheel left
--- '47 = 6 wheels trailer mid wheel right
--- @param vehicle number
--- @param wheelID number
--- @param completely boolean
--- @return boolean
function VEHICLE.IS_VEHICLE_TYRE_BURST(vehicle, wheelID, completely) end
--- SCALE: Setting the speed to 30 would result in a speed of roughly 60mph, according to speedometer.
--- 
--- Speed is in meters per second
--- You can convert meters/s to mph here:
--- http://www.calculateme.com/Speed/MetersperSecond/ToMilesperHour.htm
--- @param vehicle number
--- @param speed number
function VEHICLE.SET_VEHICLE_FORWARD_SPEED(vehicle, speed) end
--- Seems to be identical to SET_VEHICLE_FORWARD_SPEED
--- @param vehicle number
--- @param speed number
function VEHICLE.SET_VEHICLE_FORWARD_SPEED_XY(vehicle, speed) end
--- This native makes the vehicle stop immediately, as happens when we enter a MP garage.
--- 
--- . distance defines how far it will travel until stopping. Garage doors use 3.0.
--- 
--- . If killEngine is set to 1, you cannot resume driving the vehicle once it stops. This looks like is a bitmapped integer.
--- @param vehicle number
--- @param distance number
--- @param duration number
--- @param p3 boolean
function VEHICLE.BRING_VEHICLE_TO_HALT(vehicle, distance, duration, p3) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_VEHICLE_STEER_FOR_BUILDINGS(vehicle, p1) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAUSES_SWERVING(vehicle, toggle) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_IGNORE_PLANES_SMALL_PITCH_CHANGE(p0, p1) end
--- Stops CTaskBringVehicleToHalt
--- @param vehicle number
function VEHICLE.STOP_BRINGING_VEHICLE_TO_HALT(vehicle) end
--- Returns true if vehicle is halted by BRING_VEHICLE_TO_HALT
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_BEING_BROUGHT_TO_HALT(vehicle) end
--- @param forklift number
function VEHICLE.LOWER_FORKLIFT_FORKS(forklift) end
--- 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol
--- @param vehicle number
--- @param height number
function VEHICLE.SET_FORKLIFT_FORK_HEIGHT(vehicle, height) end
--- @param vehicle number
--- @param entity number
--- @return boolean
function VEHICLE.IS_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehicle, entity) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehicle) end
--- Finds the vehicle that is carrying this entity with a handler frame.
--- The model of the entity must be prop_contr_03b_ld or the function will return 0.
--- @param entity number
--- @return number
function VEHICLE.FIND_HANDLER_VEHICLE_CONTAINER_IS_ATTACHED_TO(entity) end
--- @param vehicle number
--- @param entity number
--- @return boolean
function VEHICLE.IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehicle, entity) end
--- @param vehicle number
--- @param entity number
function VEHICLE.ATTACH_CONTAINER_TO_HANDLER_FRAME_WHEN_LINED_UP(vehicle, entity) end
--- @param vehicle number
function VEHICLE.DETACH_CONTAINER_FROM_HANDLER_FRAME(vehicle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_DISABLE_HEIGHT_MAP_AVOIDANCE(vehicle, p1) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_BOAT_DISABLE_AVOIDANCE(vehicle, p1) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_HELI_LANDING_AREA_BLOCKED(vehicle) end
--- Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f
--- @param vehicle number
function VEHICLE.SET_SHORT_SLOWDOWN_FOR_LANDING(vehicle) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_HELI_TURBULENCE_SCALAR(vehicle, p1) end
--- Initially used in Max Payne 3, that's why we know the name.
--- @param vehicle number
function VEHICLE.SET_CAR_BOOT_OPEN(vehicle) end
--- "To burst tyres VEHICLE::SET_VEHICLE_TYRE_BURST(vehicle, 0, true, 1000.0)
--- to burst all tyres type it 8 times where p1 = 0 to 7.
--- 
--- p3 seems to be how much damage it has taken. 0 doesn't deflate them, 1000 completely deflates them.
--- 
--- '0 = wheel_lf / bike, plane or jet front
--- '1 = wheel_rf
--- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left
--- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right
--- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left
--- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right
--- '45 = 6 wheels trailer mid wheel left
--- '47 = 6 wheels trailer mid wheel right
--- @param vehicle number
--- @param index number
--- @param onRim boolean
--- @param p3 number
function VEHICLE.SET_VEHICLE_TYRE_BURST(vehicle, index, onRim, p3) end
--- Closes all doors of a vehicle:
--- @param vehicle number
--- @param closeInstantly boolean
function VEHICLE.SET_VEHICLE_DOORS_SHUT(vehicle, closeInstantly) end
--- Allows you to toggle bulletproof tires.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_TYRES_CAN_BURST(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_VEHICLE_TYRES_CAN_BURST(vehicle) end
--- @param vehicle number
--- @param enabled boolean
function VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK(vehicle, enabled) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @param loose boolean
--- @param openInstantly boolean
function VEHICLE.SET_VEHICLE_DOOR_OPEN(vehicle, doorId, loose, openInstantly) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- 
--- Usually used alongside other vehicle door natives.
--- @param vehicle number
--- @param doorId number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DOOR_AUTO_LOCK(vehicle, doorId, toggle) end
--- @param p0 number
function VEHICLE.SET_FLEEING_VEHICLES_USE_SWITCHED_OFF_NODES(p0) end
--- windowIndex:
--- 0 = Front Right Window
--- 1 = Front Left Window
--- 2 = Back Right Window
--- 3 = Back Left Window
--- 4 = Unknown
--- 5 = Unknown
--- 6 = Windscreen
--- 7 = Rear Windscreen
--- @param vehicle number
--- @param windowIndex number
function VEHICLE.REMOVE_VEHICLE_WINDOW(vehicle, windowIndex) end
--- Roll down all the windows of the vehicle passed through the first parameter.
--- @param vehicle number
function VEHICLE.ROLL_DOWN_WINDOWS(vehicle) end
--- windowIndex:
--- 0 = Front Left Window
--- 1 = Front Right Window
--- 2 = Rear Left Window
--- 3 = Rear Right Window
--- 4 = Front Windscreen
--- 5 = Rear Windscreen
--- 6 = Mid Left
--- 7 = Mid Right
--- 8 = Invalid
--- @param vehicle number
--- @param windowIndex number
function VEHICLE.ROLL_DOWN_WINDOW(vehicle, windowIndex) end
--- windowIndex:
--- 0 = Front Left Window
--- 1 = Front Right Window
--- 2 = Rear Left Window
--- 3 = Rear Right Window
--- 4 = Front Windscreen
--- 5 = Rear Windscreen
--- 6 = Mid Left
--- 7 = Mid Right
--- 8 = Invalid
--- @param vehicle number
--- @param windowIndex number
function VEHICLE.ROLL_UP_WINDOW(vehicle, windowIndex) end
--- windowIndex:
--- 0 = Front Left Window
--- 1 = Front Right Window
--- 2 = Rear Left Window
--- 3 = Rear Right Window
--- 4 = Front Windscreen
--- 5 = Rear Windscreen
--- 6 = Mid Left
--- 7 = Mid Right
--- 8 = Invalid
--- @param vehicle number
--- @param windowIndex number
function VEHICLE.SMASH_VEHICLE_WINDOW(vehicle, windowIndex) end
--- windowIndex:
--- 0 = Front Left Window
--- 1 = Front Right Window
--- 2 = Rear Left Window
--- 3 = Rear Right Window
--- 4 = Front Windscreen
--- 5 = Rear Windscreen
--- 6 = Mid Left
--- 7 = Mid Right
--- 8 = Invalid
--- 
--- Additional information: FIX_VEHICLE_WINDOW (0x140D0BB88) references an array of bone vehicle indices (0x141D4B3E0) { 2Ah, 2Bh, 2Ch, 2Dh, 2Eh, 2Fh, 28h, 29h } that correspond to: window_lf, window_rf, window_lr, window_rr, window_lm, window_rm, windscreen, windscreen_r. This array is used by most vehwindow natives.
--- 
--- Also, this function is coded to not work on vehicles of type: CBike, Bmx, CBoat, CTrain, and CSubmarine.
--- @param vehicle number
--- @param windowIndex number
function VEHICLE.FIX_VEHICLE_WINDOW(vehicle, windowIndex) end
--- Detaches the vehicle's windscreen.
--- For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566
--- @param vehicle number
function VEHICLE.POP_OUT_VEHICLE_WINDSCREEN(vehicle) end
--- Pops off the "roof" bone in the direction of the specified offset from the vehicle.
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
function VEHICLE.POP_OFF_VEHICLE_ROOF_WITH_IMPULSE(vehicle, x, y, z) end
--- set's if the vehicle has lights or not.
--- not an on off toggle.
--- p1 = 0 ;vehicle normal lights, off then lowbeams, then highbeams
--- p1 = 1 ;vehicle doesn't have lights, always off
--- p1 = 2 ;vehicle has always on lights
--- p1 = 3 ;or even larger like 4,5,... normal lights like =1
--- note1: when using =2 on day it's lowbeam,highbeam
--- but at night it's lowbeam,lowbeam,highbeam
--- note2: when using =0 it's affected by day or night for highbeams don't exist in daytime.
--- @param vehicle number
--- @param state number
function VEHICLE.SET_VEHICLE_LIGHTS(vehicle, state) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_USE_PLAYER_LIGHT_SETTINGS(vehicle, toggle) end
--- p1 can be either 0, 1 or 2.
--- 
--- Determines how vehicle lights behave when toggled.
--- 
--- 0 = Default (Lights can be toggled between off, normal and high beams)
--- 1 = Lights Disabled (Lights are fully disabled, cannot be toggled)
--- 2 = Always On (Lights can be toggled between normal and high beams)
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_VEHICLE_HEADLIGHT_SHADOWS(vehicle, p1) end
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_VEHICLE_ALARM(vehicle, state) end
--- @param vehicle number
function VEHICLE.START_VEHICLE_ALARM(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_ALARM_ACTIVATED(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_INTERIORLIGHT(vehicle, toggle) end
--- Sets some bit of vehicle
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_FORCE_INTERIORLIGHT(vehicle, toggle) end
--- multiplier = brightness of head lights.
--- this value isn't capped afaik.
--- 
--- multiplier = 0.0 no lights
--- multiplier = 1.0 default game value
--- 
--- @param vehicle number
--- @param multiplier number
function VEHICLE.SET_VEHICLE_LIGHT_MULTIPLIER(vehicle, multiplier) end
--- @param vehicle number
--- @param trailer number
--- @param radius number
function VEHICLE.ATTACH_VEHICLE_TO_TRAILER(vehicle, trailer, radius) end
--- This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo
--- @param vehicle number
--- @param trailer number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @param coordsX number
--- @param coordsY number
--- @param coordsZ number
--- @param rotationX number
--- @param rotationY number
--- @param rotationZ number
--- @param disableCollisions number
function VEHICLE.ATTACH_VEHICLE_ON_TO_TRAILER(vehicle, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions) end
--- @param vehicle number
--- @param entity number
--- @param p2 number
function VEHICLE.STABILISE_ENTITY_ATTACHED_TO_HELI(vehicle, entity, p2) end
--- @param vehicle number
function VEHICLE.DETACH_VEHICLE_FROM_TRAILER(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_ATTACHED_TO_TRAILER(vehicle) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_TRAILER_INVERSE_MASS_SCALE(vehicle, p1) end
--- in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer.
--- @param vehicle number
function VEHICLE.SET_TRAILER_LEGS_RAISED(vehicle) end
--- @param vehicle number
function VEHICLE.SET_TRAILER_LEGS_LOWERED(vehicle) end
--- tyreIndex = 0 to 4 on normal vehicles
--- 
--- '0 = wheel_lf / bike, plane or jet front
--- '1 = wheel_rf
--- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left
--- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right
--- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left
--- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right
--- '45 = 6 wheels trailer mid wheel left
--- '47 = 6 wheels trailer mid wheel right
--- @param vehicle number
--- @param tyreIndex number
function VEHICLE.SET_VEHICLE_TYRE_FIXED(vehicle, tyreIndex) end
--- Sets a vehicle's license plate text.  8 chars maximum.
--- 
--- Example:
--- Ped playerPed = PLAYER::PLAYER_PED_ID();
--- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
--- char *plateText = "KING";
--- VEHICLE::SET_VEHICLE_NUMBER_PLATE_TEXT(veh, plateText);
--- @param vehicle number
--- @param plateText string
function VEHICLE.SET_VEHICLE_NUMBER_PLATE_TEXT(vehicle, plateText) end
--- Returns the license plate text from a vehicle. 8 chars maximum.
--- @param vehicle number
--- @return string
function VEHICLE.GET_VEHICLE_NUMBER_PLATE_TEXT(vehicle) end
--- Returns the number of *types* of licence plates, enumerated below in SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX.
--- @return number
function VEHICLE.GET_NUMBER_OF_VEHICLE_NUMBER_PLATES() end
--- Plates:
--- Blue/White - 0
--- Yellow/black - 1
--- Yellow/Blue - 2
--- Blue/White2 - 3
--- Blue/White3 - 4
--- Yankton - 5
--- @param vehicle number
--- @param plateIndex number
function VEHICLE.SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehicle, plateIndex) end
--- Returns the PlateType of a vehicle
--- Blue_on_White_1 = 3,
--- Blue_on_White_2 = 0,
--- Blue_on_White_3 = 4,
--- Yellow_on_Blue = 2,
--- Yellow_on_Black = 1,
--- North_Yankton = 5,
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehicle) end
--- @param toggle boolean
function VEHICLE.SET_RANDOM_TRAINS(toggle) end
--- Train models HAVE TO be loaded (requested) before you use this.
--- For variation 15 - request:
--- 
--- freight
--- freightcar
--- freightgrain
--- freightcont1
--- freightcont2
--- freighttrailer
--- 
--- 
--- @param variation number
--- @param x number
--- @param y number
--- @param z number
--- @param direction boolean
--- @param p5 number
--- @param p6 number
--- @return number
function VEHICLE.CREATE_MISSION_TRAIN(variation, x, y, z, direction, p5, p6) end
--- Toggles whether ambient trains can spawn on the specified track or not
--- 
--- `trackId` is the internal id of the train track to switch.
--- `state` is whether ambient trains can spawn or not
--- 
--- trackIds
--- 0 (`trains1.dat`) Main track around SA
--- 1 (`trains2.dat`) Davis Quartz Quarry branch
--- 2 (`trains3.dat`) Second track alongside live track along Roy Lewenstein Blv.
--- 3 (`trains4.dat`) Metro track circuit
--- 4 (`trains5.dat`) Branch in Mirror Park Railyard
--- 5 (`trains6.dat`) Branch in Mirror Park Railyard
--- 6 (`trains7.dat`) LS branch to Mirror Park Railyard
--- 7 (`trains8.dat`) Overground part of metro track along Forum Dr.
--- 8 (`trains9.dat`) Branch to Mirror Park Railyard
--- 9 (`trains10.dat`) Yankton train
--- 10 (`trains11.dat`) Part of metro track near mission row
--- 11 (`trains12.dat`) Yankton prologue mission train
--- Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json
--- @param trackId number
--- @param state boolean
function VEHICLE.SWITCH_TRAIN_TRACK(trackId, state) end
--- Only called once inside main_persitant with the parameters p0 = 0, p1 = 120000
--- 
--- trackIndex: 0 - 26
--- Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json
--- @param trackIndex number
--- @param frequency number
function VEHICLE.SET_TRAIN_TRACK_SPAWN_FREQUENCY(trackIndex, frequency) end
--- @param p0 number
function VEHICLE.ALLOW_TRAIN_TO_BE_REMOVED_BY_POPULATION(p0) end
function VEHICLE.DELETE_ALL_TRAINS() end
--- @param train number
--- @param speed number
function VEHICLE.SET_TRAIN_SPEED(train, speed) end
--- @param train number
--- @param speed number
function VEHICLE.SET_TRAIN_CRUISE_SPEED(train, speed) end
--- @param toggle boolean
function VEHICLE.SET_RANDOM_BOATS(toggle) end
--- @param toggle boolean
function VEHICLE.SET_RANDOM_BOATS_MP(toggle) end
--- @param toggle boolean
function VEHICLE.SET_GARBAGE_TRUCKS(toggle) end
--- Maximum amount of vehicles with vehicle stuck check appears to be 16.
--- @param vehicle number
--- @return boolean
function VEHICLE.DOES_VEHICLE_HAVE_STUCK_VEHICLE_CHECK(vehicle) end
--- See REQUEST_VEHICLE_RECORDING
--- @param recording number
--- @param script string
--- @return number
function VEHICLE.GET_VEHICLE_RECORDING_ID(recording, script) end
--- Request the vehicle recording defined by the lowercase format string "%s%03d.yvr". For example, REQUEST_VEHICLE_RECORDING(1, "FBIs1UBER") corresponds to fbis1uber001.yvr.
--- For all vehicle recording/playback natives, "script" is a common prefix that usually corresponds to the script/mission the recording is used in, "recording" is its int suffix, and "id" (e.g., in native GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID) corresponds to a unique identifier within the recording streaming module.
--- Note that only 24 recordings (hardcoded in multiple places) can ever active at a given time before clobbering begins.
--- @param recording number
--- @param script string
function VEHICLE.REQUEST_VEHICLE_RECORDING(recording, script) end
--- See REQUEST_VEHICLE_RECORDING
--- @param recording number
--- @param script string
--- @return boolean
function VEHICLE.HAS_VEHICLE_RECORDING_BEEN_LOADED(recording, script) end
--- See REQUEST_VEHICLE_RECORDING
--- @param recording number
--- @param script string
function VEHICLE.REMOVE_VEHICLE_RECORDING(recording, script) end
--- @param id number
--- @param time number
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_POSITION_OF_VEHICLE_RECORDING_ID_AT_TIME(id, time) end
--- This native does no interpolation between pathpoints. The same position will be returned for all times up to the next pathpoint in the recording.
--- 
--- See REQUEST_VEHICLE_RECORDING
--- @param recording number
--- @param time number
--- @param script string
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_POSITION_OF_VEHICLE_RECORDING_AT_TIME(recording, time, script) end
--- @param id number
--- @param time number
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_ROTATION_OF_VEHICLE_RECORDING_ID_AT_TIME(id, time) end
--- This native does no interpolation between pathpoints. The same rotation will be returned for all times up to the next pathpoint in the recording.
--- 
--- See REQUEST_VEHICLE_RECORDING
--- @param recording number
--- @param time number
--- @param script string
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_ROTATION_OF_VEHICLE_RECORDING_AT_TIME(recording, time, script) end
--- @param id number
--- @return number
function VEHICLE.GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID(id) end
--- See REQUEST_VEHICLE_RECORDING
--- @param recording number
--- @param script string
--- @return number
function VEHICLE.GET_TOTAL_DURATION_OF_VEHICLE_RECORDING(recording, script) end
--- Distance traveled in the vehicles current recording.
--- @param vehicle number
--- @return number
function VEHICLE.GET_POSITION_IN_RECORDING(vehicle) end
--- Can be used with GET_TOTAL_DURATION_OF_VEHICLE_RECORDING{_ID} to compute a percentage.
--- @param vehicle number
--- @return number
function VEHICLE.GET_TIME_POSITION_IN_RECORDING(vehicle) end
--- p3 is some flag related to 'trailers' (invokes CVehicle::GetTrailer).
--- 
--- See REQUEST_VEHICLE_RECORDING
--- @param vehicle number
--- @param recording number
--- @param script string
--- @param p3 boolean
function VEHICLE.START_PLAYBACK_RECORDED_VEHICLE(vehicle, recording, script, p3) end
--- flags requires further research, e.g., 0x4/0x8 are related to the AI driving task and 0x20 is internally set and interacts with dynamic entity components.
--- 
--- time, often zero and capped at 500, is related to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER
--- @param vehicle number
--- @param recording number
--- @param script string
--- @param flags number
--- @param time number
--- @param drivingStyle number
function VEHICLE.START_PLAYBACK_RECORDED_VEHICLE_WITH_FLAGS(vehicle, recording, script, flags, time, drivingStyle) end
--- Often called after START_PLAYBACK_RECORDED_VEHICLE and SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE; similar in use to FORCE_ENTITY_AI_AND_ANIMATION_UPDATE.
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE(vehicle, p1) end
--- @param vehicle number
function VEHICLE.STOP_PLAYBACK_RECORDED_VEHICLE(vehicle) end
--- @param vehicle number
function VEHICLE.PAUSE_PLAYBACK_RECORDED_VEHICLE(vehicle) end
--- @param vehicle number
function VEHICLE.UNPAUSE_PLAYBACK_RECORDED_VEHICLE(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_PLAYBACK_USING_AI_GOING_ON_FOR_VEHICLE(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_CURRENT_PLAYBACK_FOR_VEHICLE(vehicle) end
--- @param vehicle number
function VEHICLE.SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE(vehicle) end
--- @param vehicle number
--- @param speed number
function VEHICLE.SET_PLAYBACK_SPEED(vehicle, speed) end
--- AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording.
--- 
--- FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE is a related native that deals with the AI physics for such recordings.
--- @param vehicle number
--- @param recording number
--- @param script string
--- @param speed number
--- @param drivingStyle number
function VEHICLE.START_PLAYBACK_RECORDED_VEHICLE_USING_AI(vehicle, recording, script, speed, drivingStyle) end
--- SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GET_TIME_POSITION_IN_RECORDING(vehicle)
--- @param vehicle number
--- @param time number
function VEHICLE.SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehicle, time) end
--- Identical to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER with 0 as arguments for p1 and p3.
--- @param vehicle number
--- @param drivingStyle number
function VEHICLE.SET_PLAYBACK_TO_USE_AI(vehicle, drivingStyle) end
--- Time is number of milliseconds before reverting, zero for indefinitely.
--- @param vehicle number
--- @param time number
--- @param drivingStyle number
--- @param p3 boolean
function VEHICLE.SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER(vehicle, time, drivingStyle, p3) end
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 number
function VEHICLE.SET_ADDITIONAL_ROTATION_FOR_RECORDED_VEHICLE_PLAYBACK(vehicle, x, y, z, p4) end
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
function VEHICLE.SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(vehicle, x, y, z) end
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
function VEHICLE.SET_GLOBAL_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(vehicle, x, y, z) end
--- A vehicle recording playback flag only used in jewelry_heist
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_SHOULD_LERP_FROM_AI_TO_FULL_RECORDING(vehicle, p1) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.EXPLODE_VEHICLE_IN_CUTSCENE(vehicle, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 boolean
--- @param p4 boolean
--- @param p5 boolean
--- @param p6 number
function VEHICLE.ADD_VEHICLE_STUCK_CHECK_WITH_WARP(p0, p1, p2, p3, p4, p5, p6) end
--- Makes the vehicle stop spawning naturally in traffic. Here's an essential example:
--- 
--- VEHICLE::SET_VEHICLE_MODEL_IS_SUPPRESSED(MISC::GET_HASH_KEY("taco"), true);
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param model number
--- @param suppressed boolean
function VEHICLE.SET_VEHICLE_MODEL_IS_SUPPRESSED(model, suppressed) end
--- Gets a random vehicle in a sphere at the specified position, of the specified radius.
--- 
--- x: The X-component of the position of the sphere.
--- y: The Y-component of the position of the sphere.
--- z: The Z-component of the position of the sphere.
--- radius: The radius of the sphere. Max is 9999.9004.
--- modelHash: The vehicle model to limit the selection to. Pass 0 for any model.
--- flags: The bitwise flags that modifies the behaviour of this function.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param flags number
--- @return number
function VEHICLE.GET_RANDOM_VEHICLE_IN_SPHERE(x, y, z, radius, modelHash, flags) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return number
function VEHICLE.GET_RANDOM_VEHICLE_FRONT_BUMPER_IN_SPHERE(p0, p1, p2, p3, p4, p5, p6) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return number
function VEHICLE.GET_RANDOM_VEHICLE_BACK_BUMPER_IN_SPHERE(p0, p1, p2, p3, p4, p5, p6) end
--- Example usage
--- VEHICLE::GET_CLOSEST_VEHICLE(x, y, z, radius, hash, unknown leave at 70)
--- 
--- x, y, z: Position to get closest vehicle to.
--- radius: Max radius to get a vehicle.
--- modelHash: Limit to vehicles with this model. 0 for any.
--- flags: The bitwise flags altering the function's behaviour.
--- 
--- Does not return police cars or helicopters.
--- 
--- It seems to return police cars for me, does not seem to return helicopters, planes or boats for some reason
--- 
--- Only returns non police cars and motorbikes with the flag set to 70 and modelHash to 0. ModelHash seems to always be 0 when not a modelHash in the scripts, as stated above.
--- 
--- These flags were found in the b617d scripts: 0,2,4,6,7,23,127,260,2146,2175,12294,16384,16386,20503,32768,67590,67711,98309,100359.
--- Converted to binary, each bit probably represents a flag as explained regarding another native here: gtaforums.com/topic/822314-guide-driving-styles
--- 
--- Conversion of found flags to binary: https://pastebin.com/kghNFkRi
--- 
--- At exactly 16384 which is 0100000000000000 in binary and 4000 in hexadecimal only planes are returned.
--- 
--- It's probably more convenient to use worldGetAllVehicles(int *arr, int arrSize) and check the shortest distance yourself and sort if you want by checking the vehicle type with for example VEHICLE::IS_THIS_MODEL_A_BOAT
--- 
--- -------------------------------------------------------------------------
--- 
--- Conclusion: This native is not worth trying to use. Use something like this instead: https://pastebin.com/xiFdXa7h
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param modelHash number
--- @param flags number
--- @return number
function VEHICLE.GET_CLOSEST_VEHICLE(x, y, z, radius, modelHash, flags) end
--- Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3.
--- @param train number
--- @param trailerNumber number
--- @return number
function VEHICLE.GET_TRAIN_CARRIAGE(train, trailerNumber) end
--- @param train number
--- @return boolean
function VEHICLE.IS_MISSION_TRAIN(train) end
--- @param train number
function VEHICLE.DELETE_MISSION_TRAIN(train) end
--- p1 is always 0
--- @param train number
--- @param p1 boolean
function VEHICLE.SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED(train, p1) end
--- @param train number
--- @param x number
--- @param y number
--- @param z number
function VEHICLE.SET_MISSION_TRAIN_COORDS(train, x, y, z) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_BOAT(model) end
--- Checks if model is a boat, then checks for FLAG_IS_JETSKI.
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_JETSKI(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_PLANE(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_HELI(model) end
--- To check if the model is an amphibious car, use IS_THIS_MODEL_AN_AMPHIBIOUS_CAR.
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_CAR(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_TRAIN(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_BIKE(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_BICYCLE(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_A_QUADBIKE(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_AN_AMPHIBIOUS_CAR(model) end
--- @param model number
--- @return boolean
function VEHICLE.IS_THIS_MODEL_AN_AMPHIBIOUS_QUADBIKE(model) end
--- Equivalent of SET_HELI_BLADES_SPEED(vehicleHandle, 1.0f);
--- 
--- this native works on planes to?
--- @param vehicle number
function VEHICLE.SET_HELI_BLADES_FULL_SPEED(vehicle) end
--- Sets the speed of the helicopter blades in percentage of the full speed.
--- 
--- vehicleHandle: The helicopter.
--- speed: The speed in percentage, 0.0f being 0% and 1.0f being 100%.
--- @param vehicle number
--- @param speed number
function VEHICLE.SET_HELI_BLADES_SPEED(vehicle, speed) end
--- @param vehicle number
--- @param p1 number
--- @param p2 number
function VEHICLE.FORCE_SUB_THROTTLE_FOR_TIME(vehicle, p1, p2) end
--- This has not yet been tested - it's just an assumption of what the types could be.
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_VEHICLE_CAN_BE_TARGETTED(vehicle, state) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_DONT_ALLOW_PLAYER_TO_ENTER_VEHICLE_IF_LOCKED_FOR_PLAYER(vehicle, p1) end
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_VEHICLE_CAN_BE_VISIBLY_DAMAGED(vehicle, state) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_RESPECTS_LOCKS_WHEN_HAS_DRIVER(vehicle, p1) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_VEHICLE_CAN_EJECT_PASSENGERS_IF_LOCKED(p0, p1) end
--- Dirt level does not become greater than 15.0
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_DIRT_LEVEL(vehicle) end
--- You can't use values greater than 15.0
--- Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle.
--- @param vehicle number
--- @param dirtLevel number
function VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, dirtLevel) end
--- Appears to return true if the vehicle has any damage, including cosmetically.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_DOES_VEHICLE_HAVE_DAMAGE_DECALS(vehicle) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @return boolean
function VEHICLE.IS_VEHICLE_DOOR_FULLY_OPEN(vehicle, doorId) end
--- Starts or stops the engine on the specified vehicle.
--- 
--- vehicle: The vehicle to start or stop the engine on.
--- value: true to turn the vehicle on; false to turn it off.
--- instantly: if true, the vehicle will be set to the state immediately; otherwise, the current driver will physically turn on or off the engine.
--- disableAutoStart: If true, the system will prevent the engine from starting when the player got into it.
--- 
--- from what I've tested when I do this to a helicopter the propellers turn off after the engine has started. so is there any way to keep the heli propellers on?
--- @param vehicle number
--- @param value boolean
--- @param instantly boolean
--- @param disableAutoStart boolean
function VEHICLE.SET_VEHICLE_ENGINE_ON(vehicle, value, instantly, disableAutoStart) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_UNDRIVEABLE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_PROVIDES_COVER(vehicle, toggle) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @param speed number
--- @param angle number
function VEHICLE.SET_VEHICLE_DOOR_CONTROL(vehicle, doorId, speed, angle) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @param p2 boolean
--- @param p3 boolean
--- @param p4 boolean
function VEHICLE.SET_VEHICLE_DOOR_LATCHED(vehicle, doorId, p2, p3, p4) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @return number
function VEHICLE.GET_VEHICLE_DOOR_ANGLE_RATIO(vehicle, doorId) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doord number
--- @return number
function VEHICLE.GET_PED_USING_VEHICLE_DOOR(vehicle, doord) end
--- enum eDoorId
--- {
--- VEH_EXT_DOOR_INVALID_ID = -1,
--- VEH_EXT_DOOR_DSIDE_F,
--- VEH_EXT_DOOR_DSIDE_R,
--- VEH_EXT_DOOR_PSIDE_F,
--- VEH_EXT_DOOR_PSIDE_R,
--- VEH_EXT_BONNET,
--- VEH_EXT_BOOT
--- };
--- @param vehicle number
--- @param doorId number
--- @param closeInstantly boolean
function VEHICLE.SET_VEHICLE_DOOR_SHUT(vehicle, doorId, closeInstantly) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @param deleteDoor boolean
function VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, doorId, deleteDoor) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_BREAK(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.DOES_VEHICLE_HAVE_ROOF(vehicle) end
--- @param p0 number
function VEHICLE.SET_VEHICLE_REMOVE_AGGRESSIVE_CARJACK_MISSION(p0) end
--- @param p0 number
function VEHICLE.SET_VEHICLE_AVOID_PLAYER_VEHICLE_RIOT_VAN_MISSION(p0) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_CARJACK_MISSION_REMOVAL_PARAMETERS(p0, p1) end
--- Returns true if MF_IS_BIG (strModelFlags 0x8) handling model flag is set.
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_BIG_VEHICLE(vehicle) end
--- Returns the total amount of color combinations found in the vehicle's carvariations.meta entry.
--- @param vehicle number
--- @return number
function VEHICLE.GET_NUMBER_OF_VEHICLE_COLOURS(vehicle) end
--- Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry.
--- @param vehicle number
--- @param colorCombination number
function VEHICLE.SET_VEHICLE_COLOUR_COMBINATION(vehicle, colorCombination) end
--- Returns the index of the color combination found in the vehicle's carvariations.meta entry.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_COLOUR_COMBINATION(vehicle) end
--- `color`: is the paint index for the vehicle.
--- Paint index goes from 0 to 12.
--- Be aware that it only works on xenon lights. Example: https://i.imgur.com/yV3cpG9.png
--- Full list of all vehicle xenon lights by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json
--- @param vehicle number
--- @param colorIndex number
function VEHICLE.SET_VEHICLE_XENON_LIGHT_COLOR_INDEX(vehicle, colorIndex) end
--- Returns the headlight color index from the vehicle. Value between 0, 12.
--- Use SET_VEHICLE_XENON_LIGHT_COLOR_INDEX to set the headlights color for the vehicle.
--- Must enable xenon headlights before it'll take affect.
--- 
--- Returns an int, value between 0-12 or 255 if no color is set.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_XENON_LIGHT_COLOR_INDEX(vehicle) end
--- Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_ACT_AS_IF_HAS_SIREN_ON(vehicle, p1) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_USE_MORE_RESTRICTIVE_SPAWN_CHECKS(vehicle, p1) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_MAY_BE_USED_BY_GOTO_POINT_ANY_MEANS(vehicle, p1) end
--- Not present in the retail version! It's just a nullsub.
--- 
--- p0 always true (except in one case)
--- successIndicator: 0 if success, -1 if failed
--- @param p0 boolean
--- @param modelHash any
--- @param successIndicator any
function VEHICLE.GET_RANDOM_VEHICLE_MODEL_IN_MEMORY(p0, modelHash, successIndicator) end
--- enum VehicleLockStatus = {
--- None = 0,
--- Unlocked = 1,
--- Locked = 2,
--- LockedForPlayer = 3,
--- StickPlayerInside = 4, -- Doesn't allow players to exit the vehicle with the exit vehicle key.
--- CanBeBrokenInto = 7, -- Can be broken into the car. If the glass is broken, the value will be set to 1
--- CanBeBrokenIntoPersist = 8, -- Can be broken into persist
--- CannotBeTriedToEnter = 10, -- Cannot be tried to enter (Nothing happens when you press the vehicle enter key).
--- }
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_DOOR_LOCK_STATUS(vehicle) end
--- Returns vehicle door lock state previously set with SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED
--- @param vehicle number
--- @param doorId number
--- @return number
function VEHICLE.GET_VEHICLE_INDIVIDUAL_DOOR_LOCK_STATUS(vehicle, doorId) end
--- doorID starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3.
--- @param veh number
--- @param doorID number
--- @return boolean
function VEHICLE.IS_VEHICLE_DOOR_DAMAGED(veh, doorID) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @param isBreakable boolean
function VEHICLE.SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehicle, doorId, isBreakable) end
--- @param vehicle number
--- @param frontBumper boolean
--- @return boolean
function VEHICLE.IS_VEHICLE_BUMPER_BOUNCING(vehicle, frontBumper) end
--- @param vehicle number
--- @param frontBumper boolean
--- @return boolean
function VEHICLE.IS_VEHICLE_BUMPER_BROKEN_OFF(vehicle, frontBumper) end
--- Usage:
--- 
--- public bool isCopInRange(Vector3 Location, float Range)
--- {
--- return Function.Call<bool>(Hash.IS_COP_PED_IN_AREA_3D, Location.X - Range, Location.Y - Range, Location.Z - Range, Location.X + Range, Location.Y + Range, Location.Z + Range);
--- }
--- @param x1 number
--- @param x2 number
--- @param y1 number
--- @param y2 number
--- @param z1 number
--- @param z2 number
--- @return boolean
function VEHICLE.IS_COP_VEHICLE_IN_AREA_3D(x1, x2, y1, y2, z1, z2) end
--- Public Function isVehicleOnAllWheels(vh As Vehicle) As Boolean
--- Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_ON_ALL_WHEELS, vh)
--- End Function
--- 
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_ON_ALL_WHEELS(vehicle) end
--- Returns `nMonetaryValue` from handling.meta for specific model.
--- @param vehicleModel number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_VALUE(vehicleModel) end
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_LAYOUT_HASH(vehicle) end
--- @param vehicle number
--- @param p1 number
--- @return number
function VEHICLE.GET_IN_VEHICLE_CLIPSET_HASH_FOR_SEAT(vehicle, p1) end
--- Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations)
--- @param train number
--- @param toggle boolean
function VEHICLE.SET_RENDER_TRAIN_AS_DERAILED(train, toggle) end
--- They use the same color indexs as SET_VEHICLE_COLOURS.
--- @param vehicle number
--- @param pearlescentColor number
--- @param wheelColor number
function VEHICLE.SET_VEHICLE_EXTRA_COLOURS(vehicle, pearlescentColor, wheelColor) end
--- @param vehicle number
--- @param pearlescentColor any
--- @param wheelColor any
function VEHICLE.GET_VEHICLE_EXTRA_COLOURS(vehicle, pearlescentColor, wheelColor) end
--- @param vehicle number
--- @param color number
function VEHICLE.SET_VEHICLE_EXTRA_COLOUR_5(vehicle, color) end
--- @param vehicle number
--- @param color any
function VEHICLE.GET_VEHICLE_EXTRA_COLOUR_5(vehicle, color) end
--- @param vehicle number
--- @param color number
function VEHICLE.SET_VEHICLE_EXTRA_COLOUR_6(vehicle, color) end
--- @param vehicle number
--- @param color any
function VEHICLE.GET_VEHICLE_EXTRA_COLOUR_6(vehicle, color) end
function VEHICLE.STOP_ALL_GARAGE_ACTIVITY() end
--- This fixes a vehicle.
--- If the vehicle's engine's broken then you cannot fix it with this native.
--- @param vehicle number
function VEHICLE.SET_VEHICLE_FIXED(vehicle) end
--- This fixes the deformation of a vehicle but the vehicle health doesn't improve
--- @param vehicle number
function VEHICLE.SET_VEHICLE_DEFORMATION_FIXED(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_ENGINE_MISSFIRE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_LEAK_OIL(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_LEAK_PETROL(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_FIRES(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_VEHICLE_ENGINE_FIRES(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_LIMIT_SPEED_WHEN_PLAYER_INACTIVE(vehicle, toggle) end
--- sfink: sets bit in vehicle's structure, used by maintransition, fm_mission_controller, mission_race and a couple of other scripts. see dissassembly:
--- CVehicle *__fastcall sub_140CDAA10(signed int a1, char a2)
--- {
--- CVehicle *result; // rax@1
--- 
--- result = EntityAsCVehicle(a1);
--- if ( result )
--- {
--- result->field_886 &= 0xEFu;
--- result->field_886 |= 16 * (a2 & 1);
--- }
--- return result;
--- }
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_STOP_INSTANTLY_WHEN_PLAYER_INACTIVE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_PRETEND_OCCUPANTS(vehicle, toggle) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param p6 number
function VEHICLE.REMOVE_VEHICLES_FROM_GENERATORS_IN_AREA(x1, y1, z1, x2, y2, z2, p6) end
--- Locks the vehicle's steering to the desired angle, explained below.
--- 
--- Requires to be called onTick. Steering is unlocked the moment the function stops being called on the vehicle.
--- 
--- Steer bias:
--- -1.0 = full right
--- 0.0 = centered steering
--- 1.0 = full left
--- @param vehicle number
--- @param value number
function VEHICLE.SET_VEHICLE_STEER_BIAS(vehicle, value) end
--- @param vehicle number
--- @param extraId number
--- @return boolean
function VEHICLE.IS_VEHICLE_EXTRA_TURNED_ON(vehicle, extraId) end
--- Available extraIds are 1-14, however none of the vehicles have extras above 12.
--- @param vehicle number
--- @param extraId number
--- @param disable boolean
function VEHICLE.SET_VEHICLE_EXTRA(vehicle, extraId, disable) end
--- Checks via CVehicleModelInfo
--- @param vehicle number
--- @param extraId number
--- @return boolean
function VEHICLE.DOES_EXTRA_EXIST(vehicle, extraId) end
--- Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script.
--- @param vehicle number
--- @param extraId number
--- @return boolean
function VEHICLE.IS_EXTRA_BROKEN_OFF(vehicle, extraId) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_CONVERTIBLE_ROOF(vehicle, p1) end
--- @param vehicle number
--- @param instantlyLower boolean
function VEHICLE.LOWER_CONVERTIBLE_ROOF(vehicle, instantlyLower) end
--- @param vehicle number
--- @param instantlyRaise boolean
function VEHICLE.RAISE_CONVERTIBLE_ROOF(vehicle, instantlyRaise) end
--- 0 -> up
--- 1 -> lowering down
--- 2 -> down
--- 3 -> raising up
--- @param vehicle number
--- @return number
function VEHICLE.GET_CONVERTIBLE_ROOF_STATE(vehicle) end
--- Returns true if the vehicle has a convertible roof.
--- 
--- p1 is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DOES_VEHICLE_HAVE_ROOF. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible.
--- @param vehicle number
--- @param p1 boolean
--- @return boolean
function VEHICLE.IS_VEHICLE_A_CONVERTIBLE(vehicle, p1) end
--- Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all.
--- @param vehicle number
--- @param noAnimation boolean
--- @return boolean
function VEHICLE.TRANSFORM_TO_SUBMARINE(vehicle, noAnimation) end
--- Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all.
--- @param vehicle number
--- @param noAnimation boolean
function VEHICLE.TRANSFORM_TO_CAR(vehicle, noAnimation) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_IN_SUBMARINE_MODE(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_STOPPED_AT_TRAFFIC_LIGHTS(vehicle) end
--- Apply damage to vehicle at a location. Location is relative to vehicle model (not world).
--- 
--- Radius of effect damage applied in a sphere at impact location
--- When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact
--- @param vehicle number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param damage number
--- @param radius number
--- @param focusOnModel boolean
function VEHICLE.SET_VEHICLE_DAMAGE(vehicle, xOffset, yOffset, zOffset, damage, radius, focusOnModel) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_OCCUPANTS_TAKE_EXPLOSIVE_DAMAGE(vehicle, toggle) end
--- Returns 1000.0 if the function is unable to get the address of the specified vehicle or if it's not a vehicle.
--- 
--- Minimum: -4000
--- Maximum: 1000
--- 
--- -4000: Engine is destroyed
--- 0 and below: Engine catches fire and health rapidly declines
--- 300: Engine is smoking and losing functionality
--- 1000: Engine is perfect
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_ENGINE_HEALTH(vehicle) end
--- 1000 is max health
--- Begins leaking gas at around 650 health
--- Minimum: -4000
--- Maximum: 1000
--- 
--- -4000: Engine is destroyed
--- 0 and below: Engine catches fire and health rapidly declines
--- 300: Engine is smoking and losing functionality
--- 1000: Engine is perfect
--- @param vehicle number
--- @param health number
function VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, health) end
--- Works just like SET_VEHICLE_ENGINE_HEALTH, but only for planes.
--- @param vehicle number
--- @param health number
function VEHICLE.SET_PLANE_ENGINE_HEALTH(vehicle, health) end
--- 1000 is max health
--- Begins leaking gas at around 650 health
--- -999.90002441406 appears to be minimum health, although nothing special occurs
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_PETROL_TANK_HEALTH(vehicle) end
--- 1000 is max health
--- Begins leaking gas at around 650 health
--- -999.90002441406 appears to be minimum health, although nothing special occurs
--- @param vehicle number
--- @param health number
function VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, health) end
--- p1 can be anywhere from 0 to 3 in the scripts.
--- p2 being how long in milliseconds the vehicle has been stuck
--- @param vehicle number
--- @param p1 number
--- @param ms number
--- @return boolean
function VEHICLE.IS_VEHICLE_STUCK_TIMER_UP(vehicle, p1, ms) end
--- The inner function has a switch on the second parameter. It's the stuck timer index.
--- 
--- Here's some pseudo code I wrote for the inner function:
--- void __fastcall NATIVE_RESET_VEHICLE_STUCK_TIMER_INNER(CUnknown* unknownClassInVehicle, int timerIndex)
--- {
--- switch (timerIndex)
--- {
--- case 0:
--- unknownClassInVehicle->FirstStuckTimer = (WORD)0u;
--- case 1:
--- unknownClassInVehicle->SecondStuckTimer = (WORD)0u;
--- case 2:
--- unknownClassInVehicle->ThirdStuckTimer = (WORD)0u;
--- case 3:
--- unknownClassInVehicle->FourthStuckTimer = (WORD)0u;
--- case 4:
--- unknownClassInVehicle->FirstStuckTimer = (WORD)0u;
--- unknownClassInVehicle->SecondStuckTimer = (WORD)0u;
--- unknownClassInVehicle->ThirdStuckTimer = (WORD)0u;
--- unknownClassInVehicle->FourthStuckTimer = (WORD)0u;
--- break;
--- };
--- }
--- @param vehicle number
--- @param nullAttributes number
function VEHICLE.RESET_VEHICLE_STUCK_TIMER(vehicle, nullAttributes) end
--- p1 is always 0 in the scripts.
--- 
--- p1 = check if vehicle is on fire
--- @param vehicle number
--- @param isOnFireCheck boolean
--- @return boolean
function VEHICLE.IS_VEHICLE_DRIVEABLE(vehicle, isOnFireCheck) end
--- @param vehicle number
--- @param owned boolean
function VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(vehicle, owned) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_NEEDS_TO_BE_HOTWIRED(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_BLIP_THROTTLE_RANDOMLY(vehicle, p1) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_POLICE_FOCUS_WILL_TRACK_VEHICLE(vehicle, toggle) end
--- Sounds the horn for the specified vehicle.
--- 
--- vehicle: The vehicle to activate the horn for.
--- mode: The hash of "NORMAL" or "HELDDOWN". Can be 0.
--- duration: The duration to sound the horn, in milliseconds.
--- 
--- Note: If a player is in the vehicle, it will only sound briefly.
--- @param vehicle number
--- @param duration number
--- @param mode number
--- @param forever boolean
function VEHICLE.START_VEHICLE_HORN(vehicle, duration, mode, forever) end
--- If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_IN_CAR_MOD_SHOP(vehicle, toggle) end
--- if true, axles won't bend.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_HAS_STRONG_AXLES(vehicle, toggle) end
--- Returns model name of vehicle in all caps. Needs to be displayed through localizing text natives to get proper display name.
--- -----------------------------------------------------------------------------------------------------------------------------------------
--- While often the case, this does not simply return the model name of the vehicle (which could be hashed to return the model hash). Variations of the same vehicle may also use the same display name.
--- -----------------------------------------------------------------------------------------------------------------------------------------
--- 
--- Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash.
--- 
--- Using HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION, you can get the localized name.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return string
function VEHICLE.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(modelHash) end
--- Will return a vehicle's manufacturer display label.
--- Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return string
function VEHICLE.GET_MAKE_NAME_FROM_VEHICLE_MODEL(modelHash) end
--- The only example I can find of this function in the scripts, is this:
--- 
--- struct _s = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(rPtr((A_0) + 4), 1.21f, 6.15f, 0.3f);
--- 
--- -----------------------------------------------------------------------------------------------------------------------------------------
--- PC scripts:
--- 
--- v_5/*{3}*/ = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(a_0._f1, 1.21, 6.15, 0.3);
--- @param vehicle number
--- @param offsetX number
--- @param offsetY number
--- @param offsetZ number
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_VEHICLE_DEFORMATION_AT_POS(vehicle, offsetX, offsetY, offsetZ) end
--- @param vehicle number
--- @param livery number
function VEHICLE.SET_VEHICLE_LIVERY(vehicle, livery) end
--- -1 = no livery
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_LIVERY(vehicle) end
--- Returns -1 if the vehicle has no livery
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_LIVERY_COUNT(vehicle) end
--- Used to set the secondary livery (the roof on Tornado Custom being one such example.)
--- 
--- Livery value is dependent on the amount of liveries present in the vehicle's texture dictionary, for Tornado Custom this would be 0-6.
--- @param vehicle number
--- @param livery number
function VEHICLE.SET_VEHICLE_LIVERY2(vehicle, livery) end
--- Returns index of the current vehicle's secondary livery. A getter for SET_VEHICLE_LIVERY2.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_LIVERY2(vehicle) end
--- Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_LIVERY2_COUNT(vehicle) end
--- This will return false if the window is broken, or rolled down.
--- Window indexes:
--- 0 = Front Right Window
--- 1 = Front Left Window
--- 2 = Back Right Window
--- 3 = Back Left Window
--- 
--- 
--- Those numbers go on for vehicles that have more than 4 doors with windows.
--- @param vehicle number
--- @param windowIndex number
--- @return boolean
function VEHICLE.IS_VEHICLE_WINDOW_INTACT(vehicle, windowIndex) end
--- Appears to return false if any window is broken.
--- @param vehicle number
--- @return boolean
function VEHICLE.ARE_ALL_VEHICLE_WINDOWS_INTACT(vehicle) end
--- Returns false if every seat is occupied.
--- @param vehicle number
--- @return boolean
function VEHICLE.ARE_ANY_VEHICLE_SEATS_FREE(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.RESET_VEHICLE_WHEELS(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
--- @param p2 boolean
--- @param p3 boolean
--- @return boolean
function VEHICLE.IS_HELI_PART_BROKEN(vehicle, p1, p2, p3) end
--- Max 1000.
--- At 0 the main rotor will stall.
--- @param vehicle number
--- @return number
function VEHICLE.GET_HELI_MAIN_ROTOR_HEALTH(vehicle) end
--- Max 1000.
--- At 0 the tail rotor will stall.
--- @param vehicle number
--- @return number
function VEHICLE.GET_HELI_TAIL_ROTOR_HEALTH(vehicle) end
--- Max 1000.
--- At -100 both helicopter rotors will stall.
--- @param vehicle number
--- @return number
function VEHICLE.GET_HELI_TAIL_BOOM_HEALTH(vehicle) end
--- @param vehicle number
--- @param health number
function VEHICLE.SET_HELI_MAIN_ROTOR_HEALTH(vehicle, health) end
--- @param vehicle number
--- @param health number
function VEHICLE.SET_HELI_TAIL_ROTOR_HEALTH(vehicle, health) end
--- @param vehicle number
--- @param toggle boolean
--- @return boolean
function VEHICLE.SET_HELI_TAIL_BOOM_CAN_BREAK_OFF(vehicle, toggle) end
--- NOTE: Debugging functions are not present in the retail version of the game.
--- @param vehicle number
--- @param name string
function VEHICLE.SET_VEHICLE_NAME_DEBUG(vehicle, name) end
--- Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_ALLOW_VEHICLE_EXPLODES_ON_CONTACT(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DISABLE_TOWING(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_VEHICLE_HAS_LANDING_GEAR(vehicle) end
--- Works for vehicles with a retractable landing gear
--- 
--- Landing gear states:
--- 
--- 0: Deployed
--- 1: Closing
--- 2: Opening
--- 3: Retracted
--- @param vehicle number
--- @param state number
function VEHICLE.CONTROL_LANDING_GEAR(vehicle, state) end
--- Landing gear states:
--- 
--- 0: Deployed
--- 1: Closing (Retracting)
--- 2: (Landing gear state 2 is never used.)
--- 3: Opening (Deploying)
--- 4: Retracted
--- 
--- Returns the current state of the vehicles landing gear.
--- @param vehicle number
--- @return number
function VEHICLE.GET_LANDING_GEAR_STATE(vehicle) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @return boolean
function VEHICLE.IS_ANY_VEHICLE_NEAR_POINT(x, y, z, radius) end
--- @param vehicle number
function VEHICLE.REQUEST_VEHICLE_HIGH_DETAIL_MODEL(vehicle) end
--- @param vehicleModel number
--- @return number
function VEHICLE._GET_VEHICLE_MODEL_NUM_DRIVE_GEARS(vehicleModel) end
--- @param vehicle number
--- @return number
function VEHICLE._GET_VEHICLE_MAX_DRIVE_GEAR_COUNT(vehicle) end
--- @param vehicleModel number
--- @return boolean
function VEHICLE._GET_IS_VEHICLE_ELECTRIC(vehicleModel) end
--- Returns the vehicle's drivetrain type.
--- 
--- enum eVehicleDrivetrainType
--- {
--- VehicleDrivetrainType_INVALID,
--- VehicleDrivetrainType_FWD,
--- VehicleDrivetrainType_RWD,
--- VehicleDrivetrainType_AWD
--- };
--- 
--- _GET_VEHICLE_DE* - _GET_VEHICLE_DI*
--- @param vehicleModel number
--- @return number
function VEHICLE._GET_VEHICLE_DRIVETRAIN_TYPE(vehicleModel) end
--- @param vehicle number
--- @return number
function VEHICLE._GET_VEHICLE_CURRENT_DRIVE_GEAR(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE._GET_VEHICLE_CURRENT_REV_RATIO(vehicle) end
--- @param vehicle number
function VEHICLE.REMOVE_VEHICLE_HIGH_DETAIL_MODEL(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_HIGH_DETAIL(vehicle) end
--- REQUEST_VEHICLE_ASSET(GET_HASH_KEY(cargobob3), 3);
--- 
--- vehicle found that have asset's:
--- cargobob3
--- submersible
--- blazer
--- @param vehicleHash number
--- @param vehicleAsset number
function VEHICLE.REQUEST_VEHICLE_ASSET(vehicleHash, vehicleAsset) end
--- @param vehicleAsset number
--- @return boolean
function VEHICLE.HAS_VEHICLE_ASSET_LOADED(vehicleAsset) end
--- @param vehicleAsset number
function VEHICLE.REMOVE_VEHICLE_ASSET(vehicleAsset) end
--- Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised.
--- @param vehicle number
--- @param position number
function VEHICLE.SET_VEHICLE_TOW_TRUCK_ARM_POSITION(vehicle, position) end
--- @param towTruck number
--- @param vehicle number
function VEHICLE._SET_ATTACHED_VEHICLE_TO_TOW_TRUCK_ARM(towTruck, vehicle) end
--- HookOffset defines where the hook is attached. leave at 0 for default attachment.
--- @param towTruck number
--- @param vehicle number
--- @param rear boolean
--- @param hookOffsetX number
--- @param hookOffsetY number
--- @param hookOffsetZ number
function VEHICLE.ATTACH_VEHICLE_TO_TOW_TRUCK(towTruck, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ) end
--- First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second.
--- @param towTruck number
--- @param vehicle number
function VEHICLE.DETACH_VEHICLE_FROM_TOW_TRUCK(towTruck, vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.DETACH_VEHICLE_FROM_ANY_TOW_TRUCK(vehicle) end
--- Scripts verify that towTruck is the first parameter, not the second.
--- @param towTruck number
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_ATTACHED_TO_TOW_TRUCK(towTruck, vehicle) end
--- @param towTruck number
--- @return number
function VEHICLE.GET_ENTITY_ATTACHED_TO_TOW_TRUCK(towTruck) end
--- @param vehicle number
--- @param p1 boolean
--- @param p2 number
--- @return number
function VEHICLE.SET_VEHICLE_AUTOMATICALLY_ATTACHES(vehicle, p1, p2) end
--- Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%).
--- @param vehicle number
--- @param position number
--- @param p2 boolean
function VEHICLE.SET_VEHICLE_BULLDOZER_ARM_POSITION(vehicle, position, p2) end
--- @param vehicle number
--- @param position number
--- @param p2 boolean
function VEHICLE.SET_VEHICLE_TANK_TURRET_POSITION(vehicle, position, p2) end
--- @param vehicle number
--- @param p1 boolean
--- @param x number
--- @param y number
--- @param z number
--- @param p5 boolean
function VEHICLE.SET_VEHICLE_TURRET_TARGET(vehicle, p1, x, y, z, p5) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_TANK_STATIONARY(vehicle, p1) end
--- @param vehicle number
--- @param speed number
function VEHICLE.SET_VEHICLE_TURRET_SPEED_THIS_FRAME(vehicle, speed) end
--- @param vehicle number
function VEHICLE.DISABLE_VEHICLE_TURRET_MOVEMENT_THIS_FRAME(vehicle) end
--- @param vehicle number
--- @param angleRatio number
function VEHICLE.SET_VEHICLE_FLIGHT_NOZZLE_POSITION(vehicle, angleRatio) end
--- @param vehicle number
--- @param angle number
function VEHICLE.SET_VEHICLE_FLIGHT_NOZZLE_POSITION_IMMEDIATE(vehicle, angle) end
--- @param plane number
--- @return number
function VEHICLE.GET_VEHICLE_FLIGHT_NOZZLE_POSITION(plane) end
--- True stops vtols from switching modes. Doesn't stop the sound though.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_VERTICAL_FLIGHT_MODE_TRANSITION(vehicle, toggle) end
--- @param outVec number
--- @param p1 number
--- @param outVec1 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @return boolean
function VEHICLE.GENERATE_VEHICLE_CREATION_POS_FROM_PATHS(outVec, p1, outVec1, p3, p4, p5, p6, p7, p8) end
--- On accelerating, spins the driven wheels with the others braked, so you don't go anywhere.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_BURNOUT(vehicle, toggle) end
--- Returns whether the specified vehicle is currently in a burnout.
--- 
--- 
--- vb.net
--- Public Function isVehicleInBurnout(vh As Vehicle) As Boolean
--- Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_IN_BURNOUT, vh)
--- End Function
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_IN_BURNOUT(vehicle) end
--- Reduces grip significantly so it's hard to go anywhere.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_REDUCE_GRIP(vehicle, toggle) end
--- val is 0-3
--- Often used in conjunction with: SET_VEHICLE_REDUCE_GRIP
--- @param vehicle number
--- @param val number
function VEHICLE.SET_VEHICLE_REDUCE_GRIP_LEVEL(vehicle, val) end
--- Sets the turn signal enabled for a vehicle.
--- Set turnSignal to 1 for left light, 0 for right light.
--- @param vehicle number
--- @param turnSignal number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_INDICATOR_LIGHTS(vehicle, turnSignal, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_BRAKE_LIGHTS(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_TAIL_LIGHTS(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_HANDBRAKE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_BRAKE(vehicle, toggle) end
function VEHICLE.INSTANTLY_FILL_VEHICLE_POPULATION() end
--- @return boolean
function VEHICLE.HAS_INSTANT_FILL_VEHICLE_POPULATION_FINISHED() end
--- @param toggle boolean
function VEHICLE.NETWORK_ENABLE_EMPTY_CROWDING_VEHICLES_REMOVAL(toggle) end
--- Default:1000||This sets a value which is used when NETWORK_ENABLE_EMPTY_CROWDING_VEHICLES_REMOVAL(true) is called each frame.
--- @param p0 number
function VEHICLE.NETWORK_CAP_EMPTY_CROWDING_VEHICLES_REMOVAL(p0) end
--- Gets the trailer of a vehicle and puts it into the trailer parameter.
--- @param vehicle number
--- @param trailer number
--- @return boolean
function VEHICLE.GET_VEHICLE_TRAILER_VEHICLE(vehicle, trailer) end
--- @param trailer number
--- @return number
function VEHICLE._GET_VEHICLE_TRAILER_PARENT_VEHICLE(trailer) end
--- vehicle must be a plane
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_USES_LARGE_REAR_RAMP(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_RUDDER_BROKEN(vehicle, toggle) end
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_CONVERTIBLE_ROOF_LATCH_STATE(vehicle, state) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_ESTIMATED_MAX_SPEED(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_MAX_BRAKING(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_MAX_TRACTION(vehicle) end
--- static - max acceleration
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_ACCELERATION(vehicle) end
--- Returns max speed (without mods) of the specified vehicle model in m/s.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED(modelHash) end
--- Returns max braking of the specified vehicle model.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_MAX_BRAKING(modelHash) end
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_MAX_BRAKING_MAX_MODS(modelHash) end
--- Returns max traction of the specified vehicle model.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_MAX_TRACTION(modelHash) end
--- Returns the acceleration of the specified model.
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_ACCELERATION(modelHash) end
--- 9.8 * thrust if air vehicle, else 0.38 + drive force?
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_MODEL_ACCELERATION_MAX_MODS(modelHash) end
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_FLYING_VEHICLE_MODEL_AGILITY(modelHash) end
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_BOAT_VEHICLE_MODEL_AGILITY(modelHash) end
--- @param vehicleClass number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED(vehicleClass) end
--- @param vehicleClass number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS_MAX_TRACTION(vehicleClass) end
--- @param vehicleClass number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS_MAX_AGILITY(vehicleClass) end
--- @param vehicleClass number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS_MAX_ACCELERATION(vehicleClass) end
--- @param vehicleClass number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS_MAX_BRAKING(vehicleClass) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param speed number
--- @param p5 boolean
--- @return number
function VEHICLE.ADD_ROAD_NODE_SPEED_ZONE(x, y, z, radius, speed, p5) end
--- @param speedzone number
--- @return boolean
function VEHICLE.REMOVE_ROAD_NODE_SPEED_ZONE(speedzone) end
--- @param vehicle number
function VEHICLE.OPEN_BOMB_BAY_DOORS(vehicle) end
--- @param vehicle number
function VEHICLE.CLOSE_BOMB_BAY_DOORS(vehicle) end
--- Returns true when the bomb bay doors of this plane are open. False if they're closed.
--- @param aircraft number
--- @return boolean
function VEHICLE.GET_ARE_BOMB_BAY_DOORS_OPEN(aircraft) end
--- Possibly: Returns whether the searchlight (found on police vehicles) is toggled on.
--- 
--- @Author Nac
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_SEARCHLIGHT_ON(vehicle) end
--- Only works during nighttime.
--- @param heli number
--- @param toggle boolean
--- @param canBeUsedByAI boolean
function VEHICLE.SET_VEHICLE_SEARCHLIGHT(heli, toggle, canBeUsedByAI) end
--- @param vehicle number
--- @return boolean
function VEHICLE.DOES_VEHICLE_HAVE_SEARCHLIGHT(vehicle) end
--- Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked).
--- 
--- seatIndex  = -1 being the driver seat.
--- Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index.
--- side = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked.
--- onEnter = check if you can enter (true) or exit (false) a vehicle.
--- @param ped number
--- @param vehicle number
--- @param seatIndex number
--- @param side boolean
--- @param onEnter boolean
--- @return boolean
function VEHICLE.IS_ENTRY_POINT_FOR_SEAT_CLEAR(ped, vehicle, seatIndex, side, onEnter) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_ENTRY_POINT_POSITION(vehicle, doorId) end
--- @param vehicle number
--- @param seatIndex number
--- @return boolean
function VEHICLE.CAN_SHUFFLE_SEAT(vehicle, seatIndex) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_NUM_MOD_KITS(vehicle) end
--- Set modKit to 0 if you plan to call SET_VEHICLE_MOD. That's what the game does. Most body modifications through SET_VEHICLE_MOD will not take effect until this is set to 0.
--- 
--- Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json
--- @param vehicle number
--- @param modKit number
function VEHICLE.SET_VEHICLE_MOD_KIT(vehicle, modKit) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_MOD_KIT(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_MOD_KIT_TYPE(vehicle) end
--- Returns an int
--- 
--- Wheel Types:
--- 0: Sport
--- 1: Muscle
--- 2: Lowrider
--- 3: SUV
--- 4: Offroad
--- 5: Tuner
--- 6: Bike Wheels
--- 7: High End
--- 8: Benny's Originals
--- 9: Benny's Bespoke
--- 10: Racing
--- 11: Street
--- 12: Track
--- 
--- Tested in Los Santos Customs
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_WHEEL_TYPE(vehicle) end
--- 0: Sport
--- 1: Muscle
--- 2: Lowrider
--- 3: SUV
--- 4: Offroad
--- 5: Tuner
--- 6: Bike Wheels
--- 7: High End
--- 8: Benny's Originals
--- 9: Benny's Bespoke
--- 10: Racing
--- 11: Street
--- 12: Track
--- @param vehicle number
--- @param WheelType number
function VEHICLE.SET_VEHICLE_WHEEL_TYPE(vehicle, WheelType) end
--- paintType:
--- 0: Normal
--- 1: Metallic
--- 2: Pearl
--- 3: Matte
--- 4: Metal
--- 5: Chrome
--- 6: Chameleon
--- @param paintType number
--- @param p1 boolean
--- @return number
function VEHICLE.GET_NUM_MOD_COLORS(paintType, p1) end
--- paintType:
--- 0: Normal
--- 1: Metallic
--- 2: Pearl
--- 3: Matte
--- 4: Metal
--- 5: Chrome
--- 6: Chameleon
--- 
--- color: number of the color.
--- 
--- p3 seems to always be 0.
--- 
--- Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json
--- @param vehicle number
--- @param paintType number
--- @param color number
--- @param pearlescentColor number
function VEHICLE.SET_VEHICLE_MOD_COLOR_1(vehicle, paintType, color, pearlescentColor) end
--- Changes the secondary paint type and color
--- paintType:
--- 0: Normal
--- 1: Metallic
--- 2: Pearl
--- 3: Matte
--- 4: Metal
--- 5: Chrome
--- 6: Chameleon
--- 
--- color: number of the color
--- 
--- Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json
--- @param vehicle number
--- @param paintType number
--- @param color number
function VEHICLE.SET_VEHICLE_MOD_COLOR_2(vehicle, paintType, color) end
--- @param vehicle number
--- @param paintType any
--- @param color any
--- @param pearlescentColor any
function VEHICLE.GET_VEHICLE_MOD_COLOR_1(vehicle, paintType, color, pearlescentColor) end
--- @param vehicle number
--- @param paintType any
--- @param color any
function VEHICLE.GET_VEHICLE_MOD_COLOR_2(vehicle, paintType, color) end
--- Returns a string which is the codename of the vehicle's currently selected primary color
--- 
--- p1 is always 0
--- @param vehicle number
--- @param p1 boolean
--- @return string
function VEHICLE.GET_VEHICLE_MOD_COLOR_1_NAME(vehicle, p1) end
--- Returns a string which is the codename of the vehicle's currently selected secondary color
--- @param vehicle number
--- @return string
function VEHICLE.GET_VEHICLE_MOD_COLOR_2_NAME(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.HAVE_VEHICLE_MODS_STREAMED_IN(vehicle) end
--- Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE.
--- @param vehicle number
--- @param modType number
--- @param modIndex number
--- @return boolean
function VEHICLE.IS_VEHICLE_MOD_GEN9_EXCLUSIVE(vehicle, modType, modIndex) end
--- In b944, there are 50 (0 - 49) mod types.
--- 
--- Sets the vehicle mod.
--- The vehicle must have a mod kit first.
--- 
--- Any out of range ModIndex is stock.
--- 
--- #Mod Type
--- Spoilers - 0
--- Front Bumper - 1
--- Rear Bumper - 2
--- Side Skirt - 3
--- Exhaust - 4
--- Frame - 5
--- Grille - 6
--- Hood - 7
--- Fender - 8
--- Right Fender - 9
--- Roof - 10
--- Engine - 11
--- Brakes - 12
--- Transmission - 13
--- Horns - 14 (modIndex from 0 to 51)
--- Suspension - 15
--- Armor - 16
--- Front Wheels - 23
--- Back Wheels - 24 //only for motocycles
--- Plate holders - 25
--- Trim Design - 27
--- Ornaments - 28
--- Dial Design - 30
--- Steering Wheel - 33
--- Shifter Leavers - 34
--- Plaques - 35
--- Hydraulics - 38
--- Livery - 48
--- 
--- ENUMS: https://pastebin.com/QzEAn02v
--- @param vehicle number
--- @param modType number
--- @param modIndex number
--- @param customTires boolean
function VEHICLE.SET_VEHICLE_MOD(vehicle, modType, modIndex, customTires) end
--- In b944, there are 50 (0 - 49) mod types. See SET_VEHICLE_MOD for the list.
--- 
--- Returns -1 if the vehicle mod is stock
--- @param vehicle number
--- @param modType number
--- @return number
function VEHICLE.GET_VEHICLE_MOD(vehicle, modType) end
--- Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels
--- @param vehicle number
--- @param modType number
--- @return number
function VEHICLE.GET_VEHICLE_MOD_VARIATION(vehicle, modType) end
--- Returns how many possible mods a vehicle has for a given mod type
--- @param vehicle number
--- @param modType number
--- @return number
function VEHICLE.GET_NUM_VEHICLE_MODS(vehicle, modType) end
--- @param vehicle number
--- @param modType number
function VEHICLE.REMOVE_VEHICLE_MOD(vehicle, modType) end
--- Toggles:
--- UNK17 - 17
--- Turbo - 18
--- UNK19 - 19
--- Tire Smoke - 20
--- UNK21 - 21
--- Xenon Headlights - 22
--- @param vehicle number
--- @param modType number
--- @param toggle boolean
function VEHICLE.TOGGLE_VEHICLE_MOD(vehicle, modType, toggle) end
--- @param vehicle number
--- @param modType number
--- @return boolean
function VEHICLE.IS_TOGGLE_MOD_ON(vehicle, modType) end
--- Returns the text label of a mod type for a given vehicle
--- 
--- Use GET_FILENAME_FOR_AUDIO_CONVERSATION to get the part name in the game's language
--- @param vehicle number
--- @param modType number
--- @param modValue number
--- @return string
function VEHICLE.GET_MOD_TEXT_LABEL(vehicle, modType, modValue) end
--- Returns the name for the type of vehicle mod(Armour, engine etc)
--- 
--- @param vehicle number
--- @param modType number
--- @return string
function VEHICLE.GET_MOD_SLOT_NAME(vehicle, modType) end
--- Returns the text label of the vehicle's liveryIndex, as specified by the liveryNames section of the vehicle's modkit data in the carcols file.
--- 
--- example
--- 
--- int count = VEHICLE::GET_VEHICLE_LIVERY_COUNT(veh);
--- for (int i = 0; i < count; i++)
--- {
--- const char* LiveryName = VEHICLE::GET_LIVERY_NAME(veh, i);
--- }
--- 
--- 
--- this example will work fine to fetch all names
--- for example for Sanchez we get
--- 
--- SANC_LV1
--- SANC_LV2
--- SANC_LV3
--- SANC_LV4
--- SANC_LV5
--- 
--- 
--- Use GET_FILENAME_FOR_AUDIO_CONVERSATION, to get the localized livery name.
--- 
--- Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json
--- @param vehicle number
--- @param liveryIndex number
--- @return string
function VEHICLE.GET_LIVERY_NAME(vehicle, liveryIndex) end
--- @param vehicle number
--- @param modType number
--- @param modIndex number
--- @return number
function VEHICLE.GET_VEHICLE_MOD_MODIFIER_VALUE(vehicle, modType, modIndex) end
--- Can be used for IS_DLC_VEHICLE_MOD and GET_DLC_VEHICLE_MOD_LOCK_HASH
--- @param vehicle number
--- @param modType number
--- @param modIndex number
--- @return number
function VEHICLE.GET_VEHICLE_MOD_IDENTIFIER_HASH(vehicle, modType, modIndex) end
--- @param vehicle number
--- @param modType number
--- @param modIndex number
function VEHICLE.PRELOAD_VEHICLE_MOD(vehicle, modType, modIndex) end
--- @param vehicle number
--- @return boolean
function VEHICLE.HAS_PRELOAD_MODS_FINISHED(vehicle) end
--- @param vehicle number
function VEHICLE.RELEASE_PRELOAD_MODS(vehicle) end
--- Sets the tire smoke's color of this vehicle.
--- 
--- vehicle: The vehicle that is the target of this method.
--- r: The red level in the RGB color code.
--- g: The green level in the RGB color code.
--- b: The blue level in the RGB color code.
--- 
--- Note: setting r,g,b to 0 will give the car the "Patriot" tire smoke.
--- @param vehicle number
--- @param r number
--- @param g number
--- @param b number
function VEHICLE.SET_VEHICLE_TYRE_SMOKE_COLOR(vehicle, r, g, b) end
--- @param vehicle number
--- @param r any
--- @param g any
--- @param b any
function VEHICLE.GET_VEHICLE_TYRE_SMOKE_COLOR(vehicle, r, g, b) end
--- enum WindowTints
--- {
--- WINDOWTINT_NONE,
--- WINDOWTINT_PURE_BLACK,
--- WINDOWTINT_DARKSMOKE,
--- WINDOWTINT_LIGHTSMOKE,
--- WINDOWTINT_STOCK,
--- WINDOWTINT_LIMO,
--- WINDOWTINT_GREEN
--- };
--- Full list of all vehicle window tints by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json
--- @param vehicle number
--- @param tint number
function VEHICLE.SET_VEHICLE_WINDOW_TINT(vehicle, tint) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_WINDOW_TINT(vehicle) end
--- @return number
function VEHICLE.GET_NUM_VEHICLE_WINDOW_TINTS() end
--- What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific.
--- @param vehicle number
--- @param r any
--- @param g any
--- @param b any
function VEHICLE.GET_VEHICLE_COLOR(vehicle, r, g, b) end
--- Some kind of flags.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_COLOURS_WHICH_CAN_BE_SET(vehicle) end
--- iVar3 = get_vehicle_cause_of_destruction(uLocal_248[iVar2]);
--- if (iVar3 == joaat("weapon_stickybomb"))
--- {
--- func_171(726);
--- iLocal_260 = 1;
--- }
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_CAUSE_OF_DESTRUCTION(vehicle) end
--- Used for helis.
--- @param vehicle number
--- @param health number
function VEHICLE.OVERRIDE_PLANE_DAMAGE_THREHSOLD(vehicle, health) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE._SET_TRANSMISSION_REDUCED_GEAR_RATIO(vehicle, toggle) end
--- @param vehicle number
--- @return number
function VEHICLE._GET_VEHICLE_DESIRED_DRIVE_GEAR(vehicle) end
--- From the driver's perspective, is the left headlight broken.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_LEFT_VEHICLE_HEADLIGHT_DAMAGED(vehicle) end
--- From the driver's perspective, is the right headlight broken.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_RIGHT_VEHICLE_HEADLIGHT_DAMAGED(vehicle) end
--- Returns true when both headlights are broken. This does not include extralights.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_BOTH_VEHICLE_HEADLIGHTS_DAMAGED(vehicle) end
--- @param vehicle number
--- @param value number
function VEHICLE.MODIFY_VEHICLE_TOP_SPEED(vehicle, value) end
--- To reset the max speed, set the `speed` value to `0.0` or lower.
--- @param vehicle number
--- @param speed number
function VEHICLE.SET_VEHICLE_MAX_SPEED(vehicle, speed) end
--- Has something to do with trains. Always precedes SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED.
--- May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_STAYS_FROZEN_WHEN_CLEANED_UP(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_ACT_AS_IF_HIGH_SPEED_FOR_FRAG_SMASHING(vehicle, p1) end
--- Sets some bit and float of vehicle. float is >= 0
--- @param vehicle number
--- @param toggle boolean
--- @param p2 number
function VEHICLE.SET_PEDS_CAN_FALL_OFF_THIS_VEHICLE_FROM_LARGE_FALL_DAMAGE(vehicle, toggle, p2) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @return number
function VEHICLE.ADD_VEHICLE_COMBAT_ANGLED_AVOIDANCE_AREA(p0, p1, p2, p3, p4, p5, p6) end
--- @param p0 number
function VEHICLE.REMOVE_VEHICLE_COMBAT_AVOIDANCE_AREA(p0) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_ANY_PED_RAPPELLING_FROM_HELI(vehicle) end
--- <1.0 - Decreased torque
--- =1.0 - Default torque
--- >1.0 - Increased torque
--- 
--- Negative values will cause the vehicle to go backwards instead of forwards while accelerating.
--- 
--- value - is between 0.2 and 1.8 in the decompiled scripts.
--- 
--- This needs to be called every frame to take effect.
--- @param vehicle number
--- @param value number
function VEHICLE.SET_VEHICLE_CHEAT_POWER_INCREASE(vehicle, value) end
--- @param p0 number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_INFLUENCES_WANTED_LEVEL(p0, p1) end
--- Sets the wanted state of this vehicle.
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_VEHICLE_IS_WANTED(vehicle, state) end
--- Sets the boat boom position for the `TR3` trailer.
--- Ratio value is between `0.0` and `1.0`, where `0.0` is 90 degrees to the left of the boat, and `1.0` is just slightly to the right/back of the boat.
--- To get the current boom position ratio, use GET_BOAT_BOOM_POSITION_RATIO
--- @param vehicle number
--- @param ratio number
function VEHICLE.SWING_BOAT_BOOM_TO_RATIO(vehicle, ratio) end
--- Same call as ALLOW_BOAT_BOOM_TO_ANIMATE
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SWING_BOAT_BOOM_FREELY(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.ALLOW_BOAT_BOOM_TO_ANIMATE(vehicle, toggle) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_BOAT_BOOM_POSITION_RATIO(vehicle) end
--- @param vehicle number
--- @param p1 boolean
--- @param p2 boolean
function VEHICLE.DISABLE_PLANE_AILERON(vehicle, p1, p2) end
--- Returns true when in a vehicle, false whilst entering/exiting.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_VEHICLE_ENGINE_RUNNING(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_USE_ALTERNATE_HANDLING(vehicle, toggle) end
--- Only works on bikes, both X and Y work in the -1 - 1 range.
--- 
--- X forces the bike to turn left or right (-1, 1)
--- Y forces the bike to lean to the left or to the right (-1, 1)
--- 
--- Example with X -1/Y 1
--- http://i.imgur.com/TgIuAPJ.jpg
--- @param vehicle number
--- @param x number
--- @param y number
function VEHICLE.SET_BIKE_ON_STAND(vehicle, x, y) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_NOT_STEALABLE_AMBIENTLY(vehicle, p1) end
--- @param vehicle number
function VEHICLE.LOCK_DOORS_WHEN_NO_LONGER_NEEDED(vehicle) end
--- @param vehicle number
function VEHICLE.SET_LAST_DRIVEN_VEHICLE(vehicle) end
--- @return number
function VEHICLE.GET_LAST_DRIVEN_VEHICLE() end
function VEHICLE.CLEAR_LAST_DRIVEN_VEHICLE() end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_HAS_BEEN_DRIVEN_FLAG(vehicle, toggle) end
--- @param plane number
--- @param height number
function VEHICLE.SET_TASK_VEHICLE_GOTO_PLANE_MIN_HEIGHT_ABOVE_TERRAIN(plane, height) end
--- @param vehicle number
--- @param multiplier number
function VEHICLE.SET_VEHICLE_LOD_MULTIPLIER(vehicle, multiplier) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_SAVE_IN_GARAGE(vehicle, toggle) end
--- Also includes some "turnOffBones" when vehicle mods are installed.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_NUM_OF_BROKEN_OFF_PARTS(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_NUM_OF_BROKEN_LOOSEN_PARTS(vehicle) end
--- @param p0 number
--- @param p1 boolean
function VEHICLE.SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET(p0, p1) end
--- Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_GENERATES_ENGINE_SHOCKING_EVENTS(vehicle, toggle) end
--- Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle.
--- @param sourceVehicle number
--- @param targetVehicle number
function VEHICLE.COPY_VEHICLE_DAMAGES(sourceVehicle, targetVehicle) end
function VEHICLE.DISABLE_VEHICLE_EXPLOSION_BREAK_OFF_PARTS() end
--- @param distance number
function VEHICLE.SET_LIGHTS_CUTOFF_DISTANCE_TWEAK(distance) end
--- Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example:
--- 
--- WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET"));                        VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z);
--- @param driver number
--- @param entity number
--- @param xTarget number
--- @param yTarget number
--- @param zTarget number
function VEHICLE.SET_VEHICLE_SHOOT_AT_TARGET(driver, entity, xTarget, yTarget, zTarget) end
--- @param vehicle number
--- @param entity number
--- @return boolean
function VEHICLE.GET_VEHICLE_LOCK_ON_TARGET(vehicle, entity) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_FORCE_HD_VEHICLE(vehicle, toggle) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_VEHICLE_CUSTOM_PATH_NODE_STREAMING_RADIUS(vehicle, p1) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_PLATE_TYPE(vehicle) end
--- in script hook .net
--- 
--- Vehicle v = ...;
--- Function.Call(Hash.TRACK_VEHICLE_VISIBILITY, v.Handle);
--- @param vehicle number
function VEHICLE.TRACK_VEHICLE_VISIBILITY(vehicle) end
--- must be called after TRACK_VEHICLE_VISIBILITY
--- 
--- it's not instant so probabilly must pass an 'update' to see correct result.
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_VISIBLE(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_GRAVITY(vehicle, toggle) end
--- Enable/Disables global slipstream physics
--- @param toggle boolean
function VEHICLE.SET_ENABLE_VEHICLE_SLIPSTREAMING(toggle) end
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_SLIPSTREAMING_SHOULD_TIME_OUT(toggle) end
--- Returns a float value between 0.0 and 3.0 related to its slipstream draft (boost/speedup).
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_CURRENT_TIME_IN_SLIP_STREAM(vehicle) end
--- Returns true if the vehicle is being slipstreamed by another vehicle
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_PRODUCING_SLIP_STREAM(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_INACTIVE_DURING_PLAYBACK(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_ACTIVE_DURING_PLAYBACK(vehicle, toggle) end
--- Returns false if the vehicle has the FLAG_NO_RESPRAY flag set.
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_SPRAYABLE(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_ENGINE_CAN_DEGRADE(vehicle, toggle) end
--- Adds some kind of shadow to the vehicle.
--- 
--- p1 and p2 use values from 0-255 and both make the shadow darker the lower the value is. -1 disables the effect.
--- @param vehicle number
--- @param p1 number
--- @param p2 number
function VEHICLE.DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES(vehicle, p1, p2) end
--- Remove the weird shadow applied by DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES.
--- @param vehicle number
function VEHICLE.ENABLE_VEHICLE_DYNAMIC_AMBIENT_SCALES(vehicle) end
--- @param plane number
--- @return boolean
function VEHICLE.IS_PLANE_LANDING_GEAR_INTACT(plane) end
--- @param plane number
--- @return boolean
function VEHICLE.ARE_PLANE_PROPELLERS_INTACT(plane) end
--- @param plane number
--- @param health number
--- @return boolean
function VEHICLE.SET_PLANE_PROPELLER_HEALTH(plane, health) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_DEFORM_WHEELS(vehicle, toggle) end
--- Only returns true if the vehicle was marked as stolen with SET_VEHICLE_IS_STOLEN.
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_STOLEN(vehicle) end
--- @param vehicle number
--- @param isStolen boolean
function VEHICLE.SET_VEHICLE_IS_STOLEN(vehicle, isStolen) end
--- This native sets the turbulence multiplier. It only works for planes.
--- 0.0 = no turbulence at all.
--- 1.0 = heavy turbulence.
--- Works by just calling it once, does not need to be called every tick.
--- @param vehicle number
--- @param multiplier number
function VEHICLE.SET_PLANE_TURBULENCE_MULTIPLIER(vehicle, multiplier) end
--- @param plane number
--- @return boolean
function VEHICLE.ARE_WINGS_OF_PLANE_INTACT(plane) end
--- This native doesn't seem to do anything, might be a debug-only native.
--- 
--- Confirmed, it is a debug native.
--- @param vehicle number
function VEHICLE.ALLOW_AMBIENT_VEHICLES_TO_AVOID_ADVERSE_CONDITIONS(vehicle) end
--- @param vehicle number
--- @param cargobob number
function VEHICLE.DETACH_VEHICLE_FROM_CARGOBOB(vehicle, cargobob) end
--- @param vehicle number
--- @return boolean
function VEHICLE.DETACH_VEHICLE_FROM_ANY_CARGOBOB(vehicle) end
--- @param cargobob number
--- @param entity number
--- @return boolean
function VEHICLE.DETACH_ENTITY_FROM_CARGOBOB(cargobob, entity) end
--- @param cargobob number
--- @param vehicleAttached number
--- @return boolean
function VEHICLE.IS_VEHICLE_ATTACHED_TO_CARGOBOB(cargobob, vehicleAttached) end
--- Returns attached vehicle (Vehicle in parameter must be cargobob)
--- @param cargobob number
--- @return number
function VEHICLE.GET_VEHICLE_ATTACHED_TO_CARGOBOB(cargobob) end
--- @param p0 number
--- @return number
function VEHICLE.GET_ENTITY_ATTACHED_TO_CARGOBOB(p0) end
--- @param cargobob number
--- @param vehicle number
--- @param p2 number
--- @param x number
--- @param y number
--- @param z number
function VEHICLE.ATTACH_VEHICLE_TO_CARGOBOB(cargobob, vehicle, p2, x, y, z) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
function VEHICLE.ATTACH_ENTITY_TO_CARGOBOB(p0, p1, p2, p3, p4, p5) end
--- Stops cargobob from being able to detach the attached vehicle.
--- @param cargobob number
--- @param toggle boolean
function VEHICLE.SET_CARGOBOB_FORCE_DONT_DETACH_VEHICLE(cargobob, toggle) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_EXCLUDE_FROM_PICKUP_ENTITY(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function VEHICLE.CAN_CARGOBOB_PICK_UP_ENTITY(p0, p1) end
--- Gets the position of the cargobob hook, in world coords.
--- @param cargobob number
--- @return { x: number, y: number, z: number }
function VEHICLE.GET_ATTACHED_PICK_UP_HOOK_POSITION(cargobob) end
--- Returns true only when the hook is active, will return false if the magnet is active
--- @param cargobob number
--- @return boolean
function VEHICLE.DOES_CARGOBOB_HAVE_PICK_UP_ROPE(cargobob) end
--- Drops the Hook/Magnet on a cargobob
--- 
--- state
--- enum eCargobobHook
--- {
--- CARGOBOB_HOOK = 0,
--- CARGOBOB_MAGNET = 1,
--- };
--- @param cargobob number
--- @param state number
function VEHICLE.CREATE_PICK_UP_ROPE_FOR_CARGOBOB(cargobob, state) end
--- Retracts the hook on the cargobob.
--- 
--- Note: after you retract it the natives for dropping the hook no longer work
--- @param cargobob number
function VEHICLE.REMOVE_PICK_UP_ROPE_FOR_CARGOBOB(cargobob) end
--- min: 1.9f, max: 100.0f
--- @param cargobob number
--- @param length1 number
--- @param length2 number
--- @param p3 boolean
function VEHICLE.SET_PICKUP_ROPE_LENGTH_FOR_CARGOBOB(cargobob, length1, length2, p3) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function VEHICLE.SET_PICKUP_ROPE_LENGTH_WITHOUT_CREATING_ROPE_FOR_CARGOBOB(p0, p1, p2) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_ROPE_DAMPING_MULTIPLIER(p0, p1) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_ROPE_TYPE(p0, p1) end
--- Returns true only when the magnet is active, will return false if the hook is active
--- @param cargobob number
--- @return boolean
function VEHICLE.DOES_CARGOBOB_HAVE_PICKUP_MAGNET(cargobob) end
--- Won't attract or magnetize to any helicopters or planes of course, but that's common sense.
--- @param cargobob number
--- @param isActive boolean
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_ACTIVE(cargobob, isActive) end
--- @param cargobob number
--- @param strength number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_STRENGTH(cargobob, strength) end
--- @param cargobob number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_FALLOFF(cargobob, p1) end
--- @param cargobob number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_REDUCED_STRENGTH(cargobob, p1) end
--- @param cargobob number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_REDUCED_FALLOFF(cargobob, p1) end
--- @param cargobob number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_PULL_STRENGTH(cargobob, p1) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_PULL_ROPE_LENGTH(vehicle, p1) end
--- @param vehicle number
--- @param cargobob number
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_SET_TARGETED_MODE(vehicle, cargobob) end
--- @param vehicle number
--- @param p1 boolean
--- @param p2 boolean
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_SET_AMBIENT_MODE(vehicle, p1, p2) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_CARGOBOB_PICKUP_MAGNET_ENSURE_PICKUP_ENTITY_UPRIGHT(vehicle, p1) end
--- @param vehicle number
--- @return boolean
function VEHICLE.DOES_VEHICLE_HAVE_WEAPONS(vehicle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_WILL_TELL_OTHERS_TO_HURRY(vehicle, p1) end
--- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param disabled boolean
--- @param weaponHash number
--- @param vehicle number
--- @param owner number
function VEHICLE.DISABLE_VEHICLE_WEAPON(disabled, weaponHash, vehicle, owner) end
--- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @param vehicle number
--- @param owner number
--- @return boolean
function VEHICLE.IS_VEHICLE_WEAPON_DISABLED(weaponHash, vehicle, owner) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_USED_FOR_PILOT_SCHOOL(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_ACTIVE_FOR_PED_NAVIGATION(vehicle, toggle) end
--- Returns an int
--- 
--- Vehicle Classes:
--- 0: Compacts
--- 1: Sedans
--- 2: SUVs
--- 3: Coupes
--- 4: Muscle
--- 5: Sports Classics
--- 6: Sports
--- 7: Super
--- 8: Motorcycles
--- 9: Off-road
--- 10: Industrial
--- 11: Utility
--- 12: Vans
--- 13: Cycles
--- 14: Boats
--- 15: Helicopters
--- 16: Planes
--- 17: Service
--- 18: Emergency
--- 19: Military
--- 20: Commercial
--- 21: Trains
--- 
--- char buffer[128];
--- std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS(vehicle));
--- 
--- const char* className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer);
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS(vehicle) end
--- char buffer[128];
--- std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS_FROM_NAME (hash));
--- 
--- const char* className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer);
--- 
--- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json
--- @param modelHash number
--- @return number
function VEHICLE.GET_VEHICLE_CLASS_FROM_NAME(modelHash) end
--- @param vehicle number
function VEHICLE.SET_PLAYERS_LAST_VEHICLE(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_CAN_BE_USED_BY_FLEEING_PEDS(vehicle, toggle) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_AIRCRAFT_PILOT_SKILL_NOISE_SCALAR(vehicle, p1) end
--- Money pickups are created around cars when they explode. Only works when the vehicle model is a car. A single pickup is between 1 and 18 dollars in size. All car models seem to give the same amount of money.
--- 
--- youtu.be/3arlUxzHl5Y
--- i.imgur.com/WrNpYFs.jpg
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DROPS_MONEY_WHEN_BLOWN_UP(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_KEEP_ENGINE_ON_WHEN_ABANDONED(vehicle, toggle) end
--- Seems to copy some values in vehicle
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_VEHICLE_IMPATIENCE_TIMER(vehicle, p1) end
--- Use the "AIHandling" string found in handling.meta
--- @param vehicle number
--- @param hash number
function VEHICLE.SET_VEHICLE_HANDLING_OVERRIDE(vehicle, hash) end
--- Max value is 32767
--- @param vehicle number
--- @param range number
function VEHICLE.SET_VEHICLE_EXTENDED_REMOVAL_RANGE(vehicle, range) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_VEHICLE_STEERING_BIAS_SCALAR(p0, p1) end
--- value between 0.0 and 1.0
--- @param helicopter number
--- @param multiplier number
function VEHICLE.SET_HELI_CONTROL_LAGGING_RATE_SCALAR(helicopter, multiplier) end
--- Seems to be related to the metal parts, not tyres (like i was expecting lol)
--- @param vehicle number
--- @param friction number
function VEHICLE.SET_VEHICLE_FRICTION_OVERRIDE(vehicle, friction) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK_OFF_WHEN_BLOW_UP(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
--- @return boolean
function VEHICLE.ARE_PLANE_CONTROL_PANELS_INTACT(vehicle, p1) end
--- @param vehicle number
--- @param height number
function VEHICLE.SET_VEHICLE_CEILING_HEIGHT(vehicle, height) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER(vehicle, toggle) end
--- @param vehicle number
function VEHICLE.CLEAR_VEHICLE_ROUTE_HISTORY(vehicle) end
--- @param decorator string
--- @return number
function VEHICLE.DOES_VEHICLE_EXIST_WITH_DECORATOR(decorator) end
--- Used to be incorrectly named SET_VEHICLE_EXCLUSIVE_DRIVER
--- Toggles a flag related to SET_VEHICLE_EXCLUSIVE_DRIVER, however, doesn't enable that feature (or trigger script events related to it).
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_AI_CAN_USE_EXCLUSIVE_SEATS(vehicle, toggle) end
--- index: 0 - 1
--- 
--- Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2
--- @param vehicle number
--- @param ped number
--- @param index number
function VEHICLE.SET_VEHICLE_EXCLUSIVE_DRIVER(vehicle, ped, index) end
--- @param ped number
--- @param vehicle number
--- @param outIndex any
--- @return boolean
function VEHICLE.IS_PED_EXCLUSIVE_DRIVER_OF_VEHICLE(ped, vehicle, outIndex) end
--- @param vehicle number
--- @param propeller number
function VEHICLE.DISABLE_INDIVIDUAL_PLANE_PROPELLER(vehicle, propeller) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_FORCE_AFTERBURNER(vehicle, toggle) end
--- R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc)
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DONT_PROCESS_VEHICLE_GLASS(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_WANTED_CONES_RESPONSE(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_USE_DESIRED_Z_CRUISE_SPEED_FOR_LANDING(vehicle, toggle) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_ARRIVE_DISTANCE_OVERRIDE_FOR_VEHICLE_PERSUIT_ATTACK(vehicle, p1) end
--- @param p0 number
function VEHICLE.SET_VEHICLE_READY_FOR_CLEANUP(p0) end
--- Toggles to render distant vehicles. They may not be vehicles but images to look like vehicles.
--- @param toggle boolean
function VEHICLE.SET_DISTANT_CARS_ENABLED(toggle) end
--- Sets the color of the neon lights of the specified vehicle.
--- @param vehicle number
--- @param r number
--- @param g number
--- @param b number
function VEHICLE.SET_VEHICLE_NEON_COLOUR(vehicle, r, g, b) end
--- Index references CVehicleModelColor
--- @param vehicle number
--- @param index number
function VEHICLE.SET_VEHICLE_NEON_INDEX_COLOUR(vehicle, index) end
--- Gets the color of the neon lights of the specified vehicle.
--- 
--- See SET_VEHICLE_NEON_COLOUR (0x8E0A582209A62695) for more information
--- @param vehicle number
--- @param r any
--- @param g any
--- @param b any
function VEHICLE.GET_VEHICLE_NEON_COLOUR(vehicle, r, g, b) end
--- Sets the neon lights of the specified vehicle on/off.
--- 
--- Indices:
--- 0 = Left
--- 1 = Right
--- 2 = Front
--- 3 = Back
--- @param vehicle number
--- @param index number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_NEON_ENABLED(vehicle, index, toggle) end
--- indices:
--- 0 = Left
--- 1 = Right
--- 2 = Front
--- 3 = Back
--- @param vehicle number
--- @param index number
--- @return boolean
function VEHICLE.GET_VEHICLE_NEON_ENABLED(vehicle, index) end
--- @param p0 boolean
function VEHICLE.SET_AMBIENT_VEHICLE_NEON_ENABLED(p0) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SUPPRESS_NEONS_ON_VEHICLE(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_DISABLE_SUPERDUMMY(vehicle, p1) end
--- @param vehicle number
function VEHICLE.REQUEST_VEHICLE_DIAL(vehicle) end
--- Seems related to vehicle health, like the one in IV.
--- Max 1000, min 0.
--- Vehicle does not necessarily explode or become undrivable at 0.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_BODY_HEALTH(vehicle) end
--- p2 often set to 1000.0 in the decompiled scripts.
--- @param vehicle number
--- @param value number
function VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, value) end
--- Outputs 2 Vector3's.
--- Scripts check if out2.x - out1.x > someshit.x
--- Could be suspension related, as in max suspension height and min suspension height, considering the natives location.
--- @param vehicle number
--- @param out1 number
--- @param out2 number
function VEHICLE.GET_VEHICLE_SIZE(vehicle, out1, out2) end
--- Gets the height of the vehicle's suspension.
--- The higher the value the lower the suspension. Each 0.002 corresponds with one more level lowered.
--- 0.000 is the stock suspension.
--- 0.008 is Ultra Suspension.
--- @param vehicle number
--- @return number
function VEHICLE.GET_FAKE_SUSPENSION_LOWERING_AMOUNT(vehicle) end
--- @param multiplier number
function VEHICLE.SET_CAR_HIGH_SPEED_BUMP_SEVERITY_MULTIPLIER(multiplier) end
--- @param vehicle number
--- @return number
function VEHICLE.GET_NUMBER_OF_VEHICLE_DOORS(vehicle) end
--- If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls.
--- 
--- Only used once in each carmod script, on a car that does not have hydraulics to begin with.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_HYDRAULICS_CONTROL(vehicle, toggle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_CAN_ADJUST_GROUND_CLEARANCE(vehicle, p1) end
--- 0 min 100 max
--- starts at 100
--- Seams to have health zones
--- Front of vehicle when damaged goes from 100-50 and stops at 50.
--- Rear can be damaged from 100-0
--- Only tested with two cars.
--- 
--- any idea how this differs from the first one?
--- 
--- --
--- May return the vehicle health on a scale of 0.0 - 100.0 (needs to be confirmed)
--- 
--- example:
--- 
--- v_F = ENTITY::GET_ENTITY_MODEL(v_3);
--- if (((v_F == ${tanker}) || (v_F == ${armytanker})) || (v_F == ${tanker2})) {
--- if (VEHICLE::GET_VEHICLE_HEALTH_PERCENTAGE(v_3) <= 1.0) {
--- NETWORK::NETWORK_EXPLODE_VEHICLE(v_3, 1, 1, -1);
--- }
--- }
--- @param vehicle number
--- @param maxEngineHealth number
--- @param maxPetrolTankHealth number
--- @param maxBodyHealth number
--- @param maxMainRotorHealth number
--- @param maxTailRotorHealth number
--- @param maxUnkHealth number
--- @return number
function VEHICLE.GET_VEHICLE_HEALTH_PERCENTAGE(vehicle, maxEngineHealth, maxPetrolTankHealth, maxBodyHealth, maxMainRotorHealth, maxTailRotorHealth, maxUnkHealth) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_VEHICLE_IS_MERCENARY(vehicle) end
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_VEHICLE_BROKEN_PARTS_DONT_AFFECT_AI_HANDLING(vehicle, p1) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_KERS_ALLOWED(vehicle, toggle) end
--- Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_VEHICLE_HAS_KERS(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_PLANE_RESIST_TO_EXPLOSION(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_HELI_RESIST_TO_EXPLOSION(vehicle, toggle) end
--- @param p0 number
function VEHICLE.SET_DISABLE_BMX_EXTRA_TRICK_FORCES(p0) end
--- Works only on vehicles that support hydraulics.
--- @param vehicle number
--- @param wheelId number
--- @param value number
function VEHICLE.SET_HYDRAULIC_SUSPENSION_RAISE_FACTOR(vehicle, wheelId, value) end
--- @param vehicle number
--- @param wheelId number
--- @return number
function VEHICLE.GET_HYDRAULIC_SUSPENSION_RAISE_FACTOR(vehicle, wheelId) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_CAN_USE_HYDRAULICS(vehicle, toggle) end
--- States:
--- 4 = raise
--- 5 = lower
--- 6 = jump
--- @param vehicle number
--- @param state number
function VEHICLE.SET_HYDRAULIC_VEHICLE_STATE(vehicle, state) end
--- Sets vehicle wheel hydraulic states transition. Known states:
--- 0 - reset
--- 1 - raise wheel (uses value arg, works just like _SET_VEHICLE_HYDRAULIC_WHEEL_VALUE)
--- 2 - jump using wheel
--- @param vehicle number
--- @param wheelId number
--- @param state number
--- @param value number
--- @param p4 number
function VEHICLE.SET_HYDRAULIC_WHEEL_STATE(vehicle, wheelId, state, value, p4) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function VEHICLE.HAS_VEHICLE_PETROLTANK_SET_ON_FIRE_BY_ENTITY(p0, p1) end
--- @param vehicle number
function VEHICLE.CLEAR_VEHICLE_PETROLTANK_FIRE_CULPRIT(vehicle) end
--- Controls how fast bobbleheads and tsurikawas move on each axis.
--- 
--- p2 is probably z, but changing that value didn't seem to have a noticeable effect.
--- @param x number
--- @param y number
--- @param p2 number
function VEHICLE.SET_VEHICLE_BOBBLEHEAD_VELOCITY(x, y, p2) end
--- @param p0 number
--- @return boolean
function VEHICLE.GET_VEHICLE_IS_DUMMY(p0) end
--- @param vehicle number
--- @param p1 number
--- @return boolean
function VEHICLE.SET_VEHICLE_DAMAGE_SCALE(vehicle, p1) end
--- @param vehicle number
--- @param multiplier number
--- @return boolean
function VEHICLE.SET_VEHICLE_WEAPON_DAMAGE_SCALE(vehicle, multiplier) end
--- @param p0 number
--- @param p1 number
--- @return boolean
function VEHICLE.SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY(p0, p1) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER(p0, p1) end
--- When enabled, the player won't fall off the bike when landing from large heights.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_BIKE_EASY_TO_LAND(vehicle, toggle) end
--- Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls)
--- Doesn't work for planes/helis.
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_INVERT_VEHICLE_CONTROLS(vehicle, state) end
--- Disables the screen effects and sound effects when driving over a speed boost pad.
--- @param disabled boolean
function VEHICLE.SET_SPEED_BOOST_EFFECT_DISABLED(disabled) end
--- Disables the screen effects and sound effects when driving over a slowdown pad.
--- @param disabled boolean
function VEHICLE.SET_SLOW_DOWN_EFFECT_DISABLED(disabled) end
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param p4 number
function VEHICLE.SET_FORMATION_LEADER(vehicle, x, y, z, p4) end
--- Resets the effect of SET_FORMATION_LEADER
function VEHICLE.RESET_FORMATION_LEADER() end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_BOAT_CAPSIZED(vehicle) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_ALLOW_RAMMING_SOOP_OR_RAMP(p0, p1) end
--- @param vehicle number
--- @param impulseScale number
function VEHICLE.SET_SCRIPT_RAMP_IMPULSE_SCALE(vehicle, impulseScale) end
--- doorId: see SET_VEHICLE_DOOR_SHUT
--- @param vehicle number
--- @param doorId number
--- @return boolean
function VEHICLE.GET_IS_DOOR_VALID(vehicle, doorId) end
--- @param vehicle number
--- @param seconds number
function VEHICLE.SET_SCRIPT_ROCKET_BOOST_RECHARGE_TIME(vehicle, seconds) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_HAS_ROCKET_BOOST(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_ROCKET_BOOST_ACTIVE(vehicle) end
--- @param vehicle number
--- @param active boolean
function VEHICLE.SET_ROCKET_BOOST_ACTIVE(vehicle, active) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_HAS_RETRACTABLE_WHEELS(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_WHEELS_RETRACTED(vehicle) end
--- @param vehicle number
function VEHICLE.SET_WHEELS_EXTENDED_INSTANTLY(vehicle) end
--- @param vehicle number
function VEHICLE.SET_WHEELS_RETRACTED_INSTANTLY(vehicle) end
--- Returns true if the vehicle has the FLAG_JUMPING_CAR flag set.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_CAR_HAS_JUMP(vehicle) end
--- Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000).
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_USE_HIGHER_CAR_JUMP(vehicle, toggle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_CLEAR_FREEZE_WAITING_ON_COLLISION_ONCE_PLAYER_ENTERS(vehicle, toggle) end
--- Set vehicle's primary mounted weapon 2 ammo. For example, use it on APC.
--- For example, you can "remove" any vehicle weapon from any vehicle.
--- ammoAmount -1 = infinite ammo (default value for any spawned vehicle tho)
--- @param vehicle number
--- @param weaponIndex number
--- @param capacity number
function VEHICLE.SET_VEHICLE_WEAPON_RESTRICTED_AMMO(vehicle, weaponIndex, capacity) end
--- @param vehicle number
--- @param weaponIndex number
--- @return number
function VEHICLE.GET_VEHICLE_WEAPON_RESTRICTED_AMMO(vehicle, weaponIndex) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_VEHICLE_HAS_PARACHUTE(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_VEHICLE_CAN_DEPLOY_PARACHUTE(vehicle) end
--- @param vehicle number
--- @param active boolean
function VEHICLE.VEHICLE_START_PARACHUTING(vehicle, active) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_VEHICLE_PARACHUTE_DEPLOYED(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE(vehicle, toggle) end
--- @param p0 number
--- @param p1 number
function VEHICLE.VEHICLE_SET_ENABLE_RAMP_CAR_SIDE_IMPULSE(p0, p1) end
--- @param p0 number
--- @param p1 number
function VEHICLE.VEHICLE_SET_ENABLE_NORMALISE_RAMP_CAR_VERTICAL_VELOCTIY(p0, p1) end
--- @param p0 number
function VEHICLE.VEHICLE_SET_JET_WASH_FORCE_ENABLED(p0) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_WEAPON_CAN_TARGET_OBJECTS(vehicle, toggle) end
--- Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.)
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_USE_BOOST_BUTTON_FOR_WHEEL_RETRACT(toggle) end
--- @param toggle boolean
function VEHICLE._SET_VEHICLE_USE_HORN_BUTTON_FOR_NITROUS(toggle) end
--- Parachute models:
--- - sr_prop_specraces_para_s_01
--- - imp_prop_impexp_para_s (SecuroServ; Default)
--- Plus, many more props can be used as vehicle parachutes, like umbrellas (prop_beach_parasol_03), and unlike SET_PLAYER_PARACHUTE_MODEL_OVERRIDE, you won't get stuck mid-air when using an umbrella.
--- @param vehicle number
--- @param modelHash number
function VEHICLE.VEHICLE_SET_PARACHUTE_MODEL_OVERRIDE(vehicle, modelHash) end
--- Variations available for the generic parachute (sr_prop_specraces_para_s_01):
--- - 0: Rainbow
--- - 1: Red
--- - 2: White, blue, yellow
--- - 3: Black, red, white
--- - 4: Red, white, blue
--- - 5: Blue
--- - 6: Black
--- - 7: Black, yellow
--- @param vehicle number
--- @param textureVariation number
function VEHICLE.VEHICLE_SET_PARACHUTE_MODEL_TINT_INDEX(vehicle, textureVariation) end
--- @param p0 number
--- @param p1 number
--- @return number
function VEHICLE.VEHICLE_SET_OVERRIDE_EXTENABLE_SIDE_RATIO(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function VEHICLE.VEHICLE_SET_EXTENABLE_SIDE_TARGET_RATIO(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @return number
function VEHICLE.VEHICLE_SET_OVERRIDE_SIDE_RATIO(p0, p1) end
--- @param vehsStruct number
--- @return number
function VEHICLE.GET_ALL_VEHICLES(vehsStruct) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_CARGOBOB_EXTA_PICKUP_RANGE(p0, p1) end
--- @param p0 number
--- @param p1 number
--- @param p2 number
function VEHICLE.SET_OVERRIDE_VEHICLE_DOOR_TORQUE(p0, p1, p2) end
--- Enables/disables the ability to wheelie on motorcycles.
--- @param vehicle number
--- @param enabled boolean
function VEHICLE.SET_WHEELIE_ENABLED(vehicle, enabled) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE(p0, p1) end
--- @param vehicle number
--- @param value number
function VEHICLE.SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION(vehicle, value) end
--- @param p0 number
--- @param p1 number
function VEHICLE.SET_TRAILER_ATTACHMENT_ENABLED(p0, p1) end
--- @param vehicle number
--- @param percentage number
function VEHICLE.SET_ROCKET_BOOST_FILL(vehicle, percentage) end
--- Set state to true to extend the wings, false to retract them.
--- @param vehicle number
--- @param state boolean
function VEHICLE.SET_GLIDER_ACTIVE(vehicle, state) end
--- Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped.
--- @param vehicle number
--- @param shouldReset boolean
function VEHICLE.SET_SHOULD_RESET_TURRET_IN_SCRIPTED_CAMERAS(vehicle, shouldReset) end
--- @param vehicle number
--- @param disable boolean
function VEHICLE.SET_VEHICLE_DISABLE_COLLISION_UPON_CREATION(vehicle, disable) end
--- @param toggle boolean
function VEHICLE.SET_GROUND_EFFECT_REDUCES_DRAG(toggle) end
--- Disables collision for this vehicle (maybe it also supports other entities, not sure).
--- Only world/building/fixed world objects will have their collisions disabled, props, peds, or any other entity still collides with the vehicle.
--- Example: https://streamable.com/6n45d5
--- Not sure if there is a native (and if so, which one) that resets the collisions.
--- @param vehicle number
function VEHICLE.SET_DISABLE_MAP_COLLISION(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_PED_STAND_ON_TOP(vehicle, toggle) end
--- @param vehicle number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
function VEHICLE.SET_VEHICLE_DAMAGE_SCALES(vehicle, p1, p2, p3, p4) end
--- @param vehicle number
--- @param p1 number
--- @param p2 number
function VEHICLE.SET_PLANE_SECTION_DAMAGE_SCALE(vehicle, p1, p2) end
--- Stops the cargobob from being able to attach any vehicle
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_HELI_CAN_PICKUP_ENTITY_THAT_HAS_PICK_UP_DISABLED(vehicle, toggle) end
--- Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane.
--- @param vehicle number
--- @param bombCount number
function VEHICLE.SET_VEHICLE_BOMB_AMMO(vehicle, bombCount) end
--- Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_BOMB_AMMO(vehicle) end
--- Similar to SET_VEHICLE_BOMB_AMMO, this sets the amount of countermeasures that are present on this vehicle.
--- Use GET_VEHICLE_BOMB_AMMO to get the current amount.
--- @param vehicle number
--- @param counterMeasureCount number
function VEHICLE.SET_VEHICLE_COUNTERMEASURE_AMMO(vehicle, counterMeasureCount) end
--- Similar to `GET_VEHICLE_BOMB_AMMO`, this gets the amount of countermeasures that are present on this vehicle.
--- Use SET_VEHICLE_COUNTERMEASURE_AMMO to set the current amount.
--- @param vehicle number
--- @return number
function VEHICLE.GET_VEHICLE_COUNTERMEASURE_AMMO(vehicle) end
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
function VEHICLE.SET_HELI_COMBAT_OFFSET(vehicle, x, y, z) end
--- Used in decompiled scripts in combination with GET_VEHICLE_SIZE
--- p7 is usually 2
--- p8 is usually 1
--- @param vehicle number
--- @param x number
--- @param y number
--- @param z number
--- @param rotX number
--- @param rotY number
--- @param rotZ number
--- @param p7 number
--- @param p8 number
--- @return boolean
function VEHICLE.GET_CAN_VEHICLE_BE_PLACED_HERE(vehicle, x, y, z, rotX, rotY, rotZ, p7, p8) end
--- Sets a flag on heli and another vehicle type.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_AUTOMATIC_CRASH_TASK(vehicle, toggle) end
--- Used in conjunction with SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, in Rockstar's scripts. Using this will instantly transform the vehicle into hover mode starting from the given ratio (ranging from 0.0 to 1.0, values greater than 1.0 will put the vehicle into a glitched state.) If this is not used alongside SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, the vehicle will automatically transform back into car mode.
--- 
--- Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2.
--- 
--- Example:
--- Ped playerPed = PLAYER::PLAYER_PED_ID();
--- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
--- VEHICLE::SET_SPECIAL_FLIGHT_MODE_RATIO(veh, 0.7f);
--- VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f);
--- @param vehicle number
--- @param ratio number
function VEHICLE.SET_SPECIAL_FLIGHT_MODE_RATIO(vehicle, ratio) end
--- Used in conjunction with SET_SPECIAL_FLIGHT_MODE_RATIO, in Rockstar's scripts. The vehicle will transform into the given targetRatio, starting from the vehicle's current hover mode transform ratio (which can also be manually set by SET_SPECIAL_FLIGHT_MODE_RATIO,) i.e. setting targetRatio to 0.0 while the vehicle is in hover mode will transform the vehicle into car mode, likewise setting targetRatio to 1.0 while the vehicle is in car mode will transform the vehicle into hover mode, and if the current transform ratio is set to 0.7 while targetRatio is 1.0 the vehicle will transform into hover mode starting from being already partially transformed.
--- 
--- targetRatio is recommended to always be 0.0 or 1.0, otherwise the vehicle will transform into a glitched state.
--- 
--- Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2.
--- 
--- Example:
--- Ped playerPed = PLAYER::PLAYER_PED_ID();
--- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
--- VEHICLE::SET_SPECIAL_FLIGHT_MODE_RATIO(veh, 0.7f);
--- VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f);
--- @param vehicle number
--- @param targetRatio number
function VEHICLE.SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(vehicle, targetRatio) end
--- It will override the ability to transform deluxo. For oppressor it will work just like SET_DISABLE_HOVER_MODE_FLIGHT
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_SPECIAL_FLIGHT_MODE_ALLOWED(vehicle, toggle) end
--- Disables "wings" for some flying vehicles. Works only for oppressor _2_ and deluxo.
--- For deluxo it just immediately removes vehicle's "wings" and you will be not able to fly up.
--- For oppressor 2 it will remove wings right after you land. And you will not able to fly up anymore too.
--- But for opressor 2 you still can fly if you somehow get back in the air.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DISABLE_HOVER_MODE_FLIGHT(vehicle, toggle) end
--- Checks if Chernobog's stabilizers are deployed or not.
--- These are the metal supports that allow it to fire.
--- This native only applies to the Chernobog.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_OUTRIGGERS_DEPLOYED(vehicle) end
--- Native is significantly more complicated than simply generating a random vector & length.
--- The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible
--- @param ped number
--- @return { x: number, y: number, z: number }
function VEHICLE.FIND_SPAWN_COORDINATES_FOR_HELI(ped) end
--- Only used with the "akula" and "annihilator2" in the decompiled native scripts.
--- @param vehicle number
--- @param deploy boolean
--- @param p2 boolean
function VEHICLE.SET_DEPLOY_FOLDING_WINGS(vehicle, deploy, p2) end
--- Only used with the "akula" and "annihilator2" in the decompiled native scripts.
--- @param vehicle number
--- @return boolean
function VEHICLE.ARE_FOLDING_WINGS_DEPLOYED(vehicle) end
--- @param vehicle number
--- @param deploy boolean
function VEHICLE._SET_DEPLOY_MISSILE_BAYS(vehicle, deploy) end
--- @param vehicle number
--- @return boolean
function VEHICLE._ARE_MISSILE_BAYS_DEPLOYED(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DIP_STRAIGHT_DOWN_WHEN_CRASHING_PLANE(vehicle, toggle) end
--- Toggles specific flag on turret
--- @param vehicle number
--- @param index number
--- @param toggle boolean
function VEHICLE.SET_TURRET_HIDDEN(vehicle, index, toggle) end
--- @param vehicle number
--- @param ratio number
function VEHICLE.SET_HOVER_MODE_WING_RATIO(vehicle, ratio) end
--- Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though.
--- @param vehicle number
--- @param turretId number
function VEHICLE.SET_DISABLE_TURRET_MOVEMENT(vehicle, turretId) end
--- @param vehicle number
function VEHICLE.SET_FORCE_FIX_LINK_MATRICES(vehicle) end
--- Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted.
--- @param vehicle number
--- @param transformRate number
function VEHICLE.SET_TRANSFORM_RATE_FOR_ANIMATION(vehicle, transformRate) end
--- When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.)
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_TRANSFORM_TO_SUBMARINE_USES_ALTERNATE_INPUT(vehicle, toggle) end
--- Does nothing. It's a nullsub.
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_COMBAT_MODE(toggle) end
--- Does nothing. It's a nullsub.
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_DETONATION_MODE(toggle) end
--- Does nothing. It's a nullsub.
--- @param toggle boolean
function VEHICLE.SET_VEHICLE_SHUNT_ON_STICK(toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_VEHICLE_SHUNTING(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_HAS_VEHICLE_BEEN_HIT_BY_SHUNT(vehicle) end
--- Returns last vehicle that was rammed by the given vehicle using the shunt boost.
--- @param vehicle number
--- @return number
function VEHICLE.GET_LAST_SHUNT_VEHICLE(vehicle) end
--- @param toggle boolean
function VEHICLE.SET_DISABLE_VEHICLE_EXPLOSIONS_DAMAGE(toggle) end
--- @param vehicle number
--- @param toggle boolean
--- @param level number
--- @param power number
--- @param rechargeTime number
--- @param disableSound boolean
function VEHICLE.SET_OVERRIDE_NITROUS_LEVEL(vehicle, toggle, level, power, rechargeTime, disableSound) end
--- @param vehicle number
--- @param enabled boolean
function VEHICLE.SET_NITROUS_IS_ACTIVE(vehicle, enabled) end
--- @param vehicle number
--- @param modifier number
function VEHICLE._SET_OVERRIDE_TRACTION_LOSS_MULTIPLIER(vehicle, modifier) end
--- First two floats relate to rumble, the last is a threshold
--- @param vehicle number
--- @param durationScalar number
--- @param amplitudeScalar number
--- @param slipAngleLimit number
function VEHICLE._SET_DRIFT_SLIP_ANGLE_LIMITS(vehicle, durationScalar, amplitudeScalar, slipAngleLimit) end
--- @param vehicle number
--- @param time number
function VEHICLE._SET_MINIMUM_TIME_BETWEEN_GEAR_SHIFTS(vehicle, time) end
--- @param vehicle number
function VEHICLE.FULLY_CHARGE_NITROUS(vehicle) end
--- @param vehicle number
--- @return number
function VEHICLE._GET_REMAINING_NITROUS_DURATION(vehicle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.IS_NITROUS_ACTIVE(vehicle) end
--- @param vehicle number
function VEHICLE.CLEAR_NITROUS(vehicle) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_INCREASE_WHEEL_CRUSH_DAMAGE(vehicle, toggle) end
--- Sets some global vehicle related bool
--- @param toggle boolean
function VEHICLE.SET_DISABLE_WEAPON_BLADE_FORCES(toggle) end
--- Changes the car jump control to require a double-tap to activate.
--- @param toggle boolean
function VEHICLE.SET_USE_DOUBLE_CLICK_FOR_CAR_JUMP(toggle) end
--- Returns true only if the "tombstone" bone is attached to the vehicle, irrespective of "FLAG_HAS_TOMBSTONE" being present or not. Detaching the tombstone will return false.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_DOES_VEHICLE_HAVE_TOMBSTONE(vehicle) end
--- Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.HIDE_TOMBSTONE(vehicle, toggle) end
--- @param vehicle number
function VEHICLE.APPLY_EMP_EFFECT(vehicle) end
--- Returns whether this vehicle is currently disabled by an EMP mine.
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_IS_VEHICLE_DISABLED_BY_EMP(vehicle) end
--- @param toggle boolean
function VEHICLE.SET_DISABLE_RETRACTING_WEAPON_BLADES(toggle) end
--- Usable wheels:
--- 0: wheel_lf
--- 1: wheel_rf
--- 2: wheel_lm1
--- 3: wheel_rm1
--- 4: wheel_lr
--- 5: wheel_rr
--- @param vehicle number
--- @param wheelIndex number
--- @return number
function VEHICLE.GET_TYRE_HEALTH(vehicle, wheelIndex) end
--- SET_TYRE_WEAR_RATE must be active, otherwise values set to <1000.0f will default to 350.0f
--- 
--- Usable wheels:
--- 0: wheel_lf
--- 1: wheel_rf
--- 2: wheel_lm1
--- 3: wheel_rm1
--- 4: wheel_lr
--- 5: wheel_rr
--- @param vehicle number
--- @param wheelIndex number
--- @param health number
function VEHICLE.SET_TYRE_HEALTH(vehicle, wheelIndex, health) end
--- Returns the multiplier value from SET_TYRE_WEAR_RATE
--- 
--- Usable wheels:
--- 0: wheel_lf
--- 1: wheel_rf
--- 2: wheel_lm1
--- 3: wheel_rm1
--- 4: wheel_lr
--- 5: wheel_rr
--- @param vehicle number
--- @param wheelIndex number
--- @return number
function VEHICLE.GET_TYRE_WEAR_RATE(vehicle, wheelIndex) end
--- Needs to be run for tire wear to work. Multiplier affects the downforce and how fast the tires will wear out, higher values essentially make the vehicle slower on straights and its tires will wear down quicker when cornering. Value must be >0f.
--- Default value in Rockstar's Open Wheel Race JSON's ("owrtws", "owrtwm", "owrtwh") is 1.0
--- 
--- Usable wheels:
--- 0: wheel_lf
--- 1: wheel_rf
--- 2: wheel_lm1
--- 3: wheel_rm1
--- 4: wheel_lr
--- 5: wheel_rr
--- @param vehicle number
--- @param wheelIndex number
--- @param multiplier number
function VEHICLE.SET_TYRE_WEAR_RATE(vehicle, wheelIndex, multiplier) end
--- Controls how fast the tires wear out.
--- 
--- Default values from Rockstar's Open Wheel Race JSON's:
--- "owrtss" (Soft): 2.2
--- "owrtsm" (Medium): 1.7
--- "owrtsh" (Hard): 1.2
--- 
--- Usable wheels:
--- 0: wheel_lf
--- 1: wheel_rf
--- 2: wheel_lm1
--- 3: wheel_rm1
--- 4: wheel_lr
--- 5: wheel_rr
--- @param vehicle number
--- @param wheelIndex number
--- @param multiplier number
function VEHICLE.SET_TYRE_WEAR_RATE_SCALE(vehicle, wheelIndex, multiplier) end
--- Controls how much traction the wheel loses.
--- 
--- Default values from Rockstar's Open Wheel Race JSON's:
--- "owrtds" (Soft): 0.05
--- "owrtdm" (Medium): 0.45
--- "owrtdh" (Hard): 0.8
--- 
--- Usable wheels:
--- 0: wheel_lf
--- 1: wheel_rf
--- 2: wheel_lm1
--- 3: wheel_rm1
--- 4: wheel_lr
--- 5: wheel_rr
--- @param vehicle number
--- @param wheelIndex number
--- @param multiplier number
function VEHICLE.SET_TYRE_MAXIMUM_GRIP_DIFFERENCE_DUE_TO_WEAR_RATE(vehicle, wheelIndex, multiplier) end
--- @param vehicle number
--- @param p1 number
function VEHICLE.SET_AIRCRAFT_IGNORE_HIGHTMAP_OPTIMISATION(vehicle, p1) end
--- Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set.
--- @param vehicle number
--- @param enable boolean
function VEHICLE.SET_REDUCED_SUSPENSION_FORCE(vehicle, enable) end
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.SET_DRIFT_TYRES(vehicle, toggle) end
--- @param vehicle number
--- @return boolean
function VEHICLE.GET_DRIFT_TYRES_SET(vehicle) end
--- Implemented only for trains.
--- @param vehicle number
--- @param toggle boolean
function VEHICLE.NETWORK_USE_HIGH_PRECISION_TRAIN_BLENDING(vehicle, toggle) end
--- Only used in R* Script fm_content_cargo
--- @param vehicle number
--- @param p1 boolean
function VEHICLE.SET_CHECK_FOR_ENOUGH_ROOM_FOR_PED(vehicle, p1) end
--- _SET_ALLOW_R* - _SET_ALLOW_V*
--- @param vehicle number
--- @param toggle boolean
function VEHICLE._SET_ALLOW_COLLISION_WHEN_IN_VEHICLE(vehicle, toggle) end
--- @param vehicleModel number
--- @return boolean
function VEHICLE._IS_VEHICLE_GEN9_EXCLUSIVE_MODEL(vehicleModel) end
--- @return number
function VEHICLE._GET_VEHICLE_MAX_EXHAUST_BONE_COUNT() end
--- @param vehicle number
--- @param index number
--- @param boneIndex any
--- @param axisX any
--- @return boolean
function VEHICLE._GET_VEHICLE_EXHAUST_BONE(vehicle, index, boneIndex, axisX) end

WATER = {}

--- This function set height to the value of z-axis of the water surface.
--- 
--- This function works with sea and lake. However it does not work with shallow rivers (e.g. raton canyon will return -100000.0f)
--- 
--- note: seems to return true when you are in water
--- @param x number
--- @param y number
--- @param z number
--- @param height any
--- @return boolean
function WATER.GET_WATER_HEIGHT(x, y, z, height) end
--- @param x number
--- @param y number
--- @param z number
--- @param height any
--- @return boolean
function WATER.GET_WATER_HEIGHT_NO_WAVES(x, y, z, height) end
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param result number
--- @return boolean
function WATER.TEST_PROBE_AGAINST_WATER(x1, y1, z1, x2, y2, z2, result) end
--- enum eScriptWaterTestResult
--- {
--- SCRIPT_WATER_TEST_RESULT_NONE,
--- SCRIPT_WATER_TEST_RESULT_WATER,
--- SCRIPT_WATER_TEST_RESULT_BLOCKED,
--- };
--- @param x1 number
--- @param y1 number
--- @param z1 number
--- @param x2 number
--- @param y2 number
--- @param z2 number
--- @param flags number
--- @param waterHeight any
--- @return number
function WATER.TEST_PROBE_AGAINST_ALL_WATER(x1, y1, z1, x2, y2, z2, flags, waterHeight) end
--- See TEST_PROBE_AGAINST_ALL_WATER.
--- @param x number
--- @param y number
--- @param z number
--- @param flags number
--- @param waterHeight any
--- @return number
function WATER.TEST_VERTICAL_PROBE_AGAINST_ALL_WATER(x, y, z, flags, waterHeight) end
--- Sets the water height for a given position and radius.
--- 
--- @param x number
--- @param y number
--- @param radius number
--- @param height number
function WATER.MODIFY_WATER(x, y, radius, height) end
--- @param xLow number
--- @param yLow number
--- @param xHigh number
--- @param yHigh number
--- @param height number
--- @return number
function WATER.ADD_EXTRA_CALMING_QUAD(xLow, yLow, xHigh, yHigh, height) end
--- p0 is the handle returned from ADD_EXTRA_CALMING_QUAD
--- @param calmingQuad number
function WATER.REMOVE_EXTRA_CALMING_QUAD(calmingQuad) end
--- Sets a value that determines how aggressive the ocean waves will be. Values of 2.0 or more make for very aggressive waves like you see during a thunderstorm.
--- 
--- Works only ~200 meters around the player.
--- @param intensity number
function WATER.SET_DEEP_OCEAN_SCALER(intensity) end
--- Gets the aggressiveness factor of the ocean waves.
--- @return number
function WATER.GET_DEEP_OCEAN_SCALER() end
--- @param height number
function WATER.SET_CALMED_WAVE_HEIGHT_SCALER(height) end
--- Sets the waves intensity back to original (1.0 in most cases).
function WATER.RESET_DEEP_OCEAN_SCALER() end

WEAPON = {}

--- Enables laser sight on any weapon.
--- 
--- It doesn't work. Neither on tick nor OnKeyDown
--- @param toggle boolean
function WEAPON.ENABLE_LASER_SIGHT_RENDERING(toggle) end
--- @param componentHash number
--- @return number
function WEAPON.GET_WEAPON_COMPONENT_TYPE_MODEL(componentHash) end
--- Returns the model of any weapon.
--- 
--- Can also take an ammo hash?
--- sub_6663a(&l_115B, WEAPON::GET_WEAPONTYPE_MODEL(${ammo_rpg}));
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPONTYPE_MODEL(weaponHash) end
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPONTYPE_SLOT(weaponHash) end
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPONTYPE_GROUP(weaponHash) end
--- Returns the amount of extra components the specified component has.
--- Returns -1 if the component isn't of type CWeaponComponentVariantModel.
--- @param componentHash number
--- @return number
function WEAPON.GET_WEAPON_COMPONENT_VARIANT_EXTRA_COUNT(componentHash) end
--- Returns the model hash of the extra component at specified index.
--- @param componentHash number
--- @param extraComponentIndex number
--- @return number
function WEAPON.GET_WEAPON_COMPONENT_VARIANT_EXTRA_MODEL(componentHash, extraComponentIndex) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param bForceInHand boolean
function WEAPON.SET_CURRENT_PED_WEAPON(ped, weaponHash, bForceInHand) end
--- The return value seems to indicate returns true if the hash of the weapon object weapon equals the weapon hash.
--- p2 seems to be 1 most of the time.
--- 
--- 
--- 
--- 
--- 
--- p2 is not implemented
--- 
--- disassembly said that?
--- 
--- @param ped number
--- @param weaponHash any
--- @param p2 boolean
--- @return boolean
function WEAPON.GET_CURRENT_PED_WEAPON(ped, weaponHash, p2) end
--- @param ped number
--- @param p1 number
--- @return number
function WEAPON.GET_CURRENT_PED_WEAPON_ENTITY_INDEX(ped, p1) end
--- p1 is always 0 in the scripts.
--- @param ped number
--- @param p1 boolean
--- @return number
function WEAPON.GET_BEST_PED_WEAPON(ped, p1) end
--- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @return boolean
function WEAPON.SET_CURRENT_PED_VEHICLE_WEAPON(ped, weaponHash) end
--- Example in VB
--- 
--- Public Shared Function GetVehicleCurrentWeapon(Ped As Ped) As Integer
--- Dim arg As New OutputArgument()
--- Native.Function.Call(Hash.GET_CURRENT_PED_VEHICLE_WEAPON, Ped, arg)
--- Return arg.GetResult(Of Integer)()
--- End Function
--- 
--- Usage:
--- If GetVehicleCurrentWeapon(Game.Player.Character) = -821520672 Then ...Do something
--- Note: -821520672 = VEHICLE_WEAPON_PLANE_ROCKET
--- @param ped number
--- @param weaponHash any
--- @return boolean
function WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(ped, weaponHash) end
--- @param ped number
function WEAPON.SET_PED_CYCLE_VEHICLE_WEAPONS_ONLY(ped) end
--- Checks if the ped is currently equipped with a weapon matching a bit specified using a bitwise-or in typeFlags.
--- 
--- Type flag bit values:
--- 1 = Melee weapons
--- 2 = Explosive weapons
--- 4 = Any other weapons
--- 
--- Not specifying any bit will lead to the native *always* returning 'false', and for example specifying '4 | 2' will check for any weapon except fists and melee weapons.
--- 7 returns true if you are equipped with any weapon except your fists.
--- 6 returns true if you are equipped with any weapon except melee weapons.
--- 5 returns true if you are equipped with any weapon except the Explosives weapon group.
--- 4 returns true if you are equipped with any weapon except Explosives weapon group AND melee weapons.
--- 3 returns true if you are equipped with either Explosives or Melee weapons (the exact opposite of 4).
--- 2 returns true only if you are equipped with any weapon from the Explosives weapon group.
--- 1 returns true only if you are equipped with any Melee weapon.
--- 0 never returns true.
--- 
--- Note: When I say "Explosives weapon group", it does not include the Jerry can and Fire Extinguisher.
--- @param ped number
--- @param typeFlags number
--- @return boolean
function WEAPON.IS_PED_ARMED(ped, typeFlags) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @return boolean
function WEAPON.IS_WEAPON_VALID(weaponHash) end
--- p2 should be FALSE, otherwise it seems to always return FALSE
--- 
--- Bool does not check if the weapon is current equipped, unfortunately.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param p2 boolean
--- @return boolean
function WEAPON.HAS_PED_GOT_WEAPON(ped, weaponHash, p2) end
--- @param ped number
--- @return boolean
function WEAPON.IS_PED_WEAPON_READY_TO_SHOOT(ped) end
--- @param ped number
--- @param weaponSlot number
--- @return number
function WEAPON.GET_PED_WEAPONTYPE_IN_SLOT(ped, weaponSlot) end
--- WEAPON::GET_AMMO_IN_PED_WEAPON(PLAYER::PLAYER_PED_ID(), a_0)
--- 
--- From decompiled scripts
--- Returns total ammo in weapon
--- 
--- GTALua Example :
--- natives.WEAPON.GET_AMMO_IN_PED_WEAPON(plyPed, WeaponHash)
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponhash number
--- @return number
function WEAPON.GET_AMMO_IN_PED_WEAPON(ped, weaponhash) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammo number
function WEAPON.ADD_AMMO_TO_PED(ped, weaponHash, ammo) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammo number
--- @param p3 boolean
function WEAPON.SET_PED_AMMO(ped, weaponHash, ammo, p3) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param toggle boolean
--- @param weaponHash number
function WEAPON.SET_PED_INFINITE_AMMO(ped, toggle, weaponHash) end
--- @param ped number
--- @param toggle boolean
function WEAPON.SET_PED_INFINITE_AMMO_CLIP(ped, toggle) end
--- @param p0 number
--- @param p1 number
function WEAPON.SET_PED_STUN_GUN_FINITE_AMMO(p0, p1) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammoCount number
--- @param isHidden boolean
--- @param bForceInHand boolean
function WEAPON.GIVE_WEAPON_TO_PED(ped, weaponHash, ammoCount, isHidden, bForceInHand) end
--- Gives a weapon to PED with a delay, example:
--- 
--- WEAPON::GIVE_DELAYED_WEAPON_TO_PED(PED::PLAYER_PED_ID(), MISC::GET_HASH_KEY("WEAPON_PISTOL"), 1000, false)
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammoCount number
--- @param bForceInHand boolean
function WEAPON.GIVE_DELAYED_WEAPON_TO_PED(ped, weaponHash, ammoCount, bForceInHand) end
--- setting the last params to false it does that same so I would suggest its not a toggle
--- @param ped number
--- @param p1 boolean
function WEAPON.REMOVE_ALL_PED_WEAPONS(ped, p1) end
--- This native removes a specified weapon from your selected ped.
--- 
--- Example:
--- C#:
--- Function.Call(Hash.REMOVE_WEAPON_FROM_PED, Game.Player.Character, 0x99B507EA);
--- 
--- C++:
--- WEAPON::REMOVE_WEAPON_FROM_PED(PLAYER::PLAYER_PED_ID(), 0x99B507EA);
--- 
--- The code above removes the knife from the player.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
function WEAPON.REMOVE_WEAPON_FROM_PED(ped, weaponHash) end
--- Hides the players weapon during a cutscene.
--- @param ped number
--- @param toggle boolean
function WEAPON.HIDE_PED_WEAPON_FOR_SCRIPTED_CUTSCENE(ped, toggle) end
--- Has 5 parameters since latest patches.
--- @param ped number
--- @param visible boolean
--- @param deselectWeapon boolean
--- @param p3 boolean
--- @param p4 boolean
function WEAPON.SET_PED_CURRENT_WEAPON_VISIBLE(ped, visible, deselectWeapon, p3, p4) end
--- @param ped number
--- @param toggle boolean
function WEAPON.SET_PED_DROPS_WEAPONS_WHEN_DEAD(ped, toggle) end
--- It determines what weapons caused damage:
--- 
--- If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0
--- If you want to define any melee weapon, second parameter=0, third parameter=1.
--- If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param weaponType number
--- @return boolean
function WEAPON.HAS_PED_BEEN_DAMAGED_BY_WEAPON(ped, weaponHash, weaponType) end
--- Does NOT seem to work with HAS_PED_BEEN_DAMAGED_BY_WEAPON. Use CLEAR_ENTITY_LAST_WEAPON_DAMAGE and HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON instead.
--- @param ped number
function WEAPON.CLEAR_PED_LAST_WEAPON_DAMAGE(ped) end
--- It determines what weapons caused damage:
--- 
--- If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0
--- If you want to define any melee weapon, second parameter=0, third parameter=1.
--- If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param entity number
--- @param weaponHash number
--- @param weaponType number
--- @return boolean
function WEAPON.HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(entity, weaponHash, weaponType) end
--- @param entity number
function WEAPON.CLEAR_ENTITY_LAST_WEAPON_DAMAGE(entity) end
--- @param ped number
function WEAPON.SET_PED_DROPS_WEAPON(ped) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param xOffset number
--- @param yOffset number
--- @param zOffset number
--- @param ammoCount number
function WEAPON.SET_PED_DROPS_INVENTORY_WEAPON(ped, weaponHash, xOffset, yOffset, zOffset, ammoCount) end
--- p2 is mostly 1 in the scripts.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param p2 boolean
--- @return number
function WEAPON.GET_MAX_AMMO_IN_CLIP(ped, weaponHash, p2) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammo any
--- @return boolean
function WEAPON.GET_AMMO_IN_CLIP(ped, weaponHash, ammo) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammo number
--- @return boolean
function WEAPON.SET_AMMO_IN_CLIP(ped, weaponHash, ammo) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param ammo any
--- @return boolean
function WEAPON.GET_MAX_AMMO(ped, weaponHash, ammo) end
--- Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1
--- @param ped number
--- @param ammoTypeHash number
--- @param ammo any
--- @return boolean
function WEAPON.GET_MAX_AMMO_BY_TYPE(ped, ammoTypeHash, ammo) end
--- Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1
--- @param ped number
--- @param ammoTypeHash number
--- @param ammo number
function WEAPON.ADD_PED_AMMO_BY_TYPE(ped, ammoTypeHash, ammo) end
--- Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1
--- @param ped number
--- @param ammoTypeHash number
--- @param ammo number
function WEAPON.SET_PED_AMMO_BY_TYPE(ped, ammoTypeHash, ammo) end
--- @param ped number
--- @param ammoTypeHash number
--- @return number
function WEAPON.GET_PED_AMMO_BY_TYPE(ped, ammoTypeHash) end
--- @param ped number
--- @param p1 number
function WEAPON.SET_PED_AMMO_TO_DROP(ped, p1) end
--- @param p0 number
function WEAPON.SET_PICKUP_AMMO_AMOUNT_SCALER(p0) end
--- Returns the current ammo type of the specified ped's specified weapon.
--- MkII magazines will change the return value, like Pistol MkII returning AMMO_PISTOL without any components and returning AMMO_PISTOL_TRACER after Tracer Rounds component is attached.
--- Use 0xF489B44DD5AF4BD9 if you always want AMMO_PISTOL.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @return number
function WEAPON.GET_PED_AMMO_TYPE_FROM_WEAPON(ped, weaponHash) end
--- Returns the base/default ammo type of the specified ped's specified weapon.
--- Use GET_PED_AMMO_TYPE_FROM_WEAPON if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG)
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @return number
function WEAPON.GET_PED_ORIGINAL_AMMO_TYPE_FROM_WEAPON(ped, weaponHash) end
--- Pass ped. Pass address of Vector3.
--- The coord will be put into the Vector3.
--- The return will determine whether there was a coord found or not.
--- @param ped number
--- @param coords number
--- @return boolean
function WEAPON.GET_PED_LAST_WEAPON_IMPACT_COORD(ped, coords) end
--- p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE").
--- p2 is always true.
--- @param ped number
--- @param gadgetHash number
--- @param p2 boolean
function WEAPON.SET_PED_GADGET(ped, gadgetHash, p2) end
--- gadgetHash - was always 0xFBAB5776 ("GADGET_PARACHUTE").
--- @param ped number
--- @param gadgetHash number
--- @return boolean
function WEAPON.GET_IS_PED_GADGET_EQUIPPED(ped, gadgetHash) end
--- Returns the hash of the weapon.
--- 
--- var num7 = WEAPON::GET_SELECTED_PED_WEAPON(num4);
--- sub_27D3(num7);
--- switch (num7)
--- {
--- case 0x24B17070:
--- 
--- Also see WEAPON::GET_CURRENT_PED_WEAPON. Difference?
--- 
--- -------------------------------------------------------------------------
--- 
--- The difference is that GET_SELECTED_PED_WEAPON simply returns the ped's current weapon hash but GET_CURRENT_PED_WEAPON also checks the weapon object and returns true if the hash of the weapon object equals the weapon hash
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @return number
function WEAPON.GET_SELECTED_PED_WEAPON(ped) end
--- WEAPON::EXPLODE_PROJECTILES(PLAYER::PLAYER_PED_ID(), func_221(0x00000003), 0x00000001);
--- @param ped number
--- @param weaponHash number
--- @param p2 boolean
function WEAPON.EXPLODE_PROJECTILES(ped, weaponHash, p2) end
--- If `explode` true, then removal is done through exploding the projectile. Basically the same as EXPLODE_PROJECTILES but without defining the owner ped.
--- @param weaponHash number
--- @param explode boolean
function WEAPON.REMOVE_ALL_PROJECTILES_OF_TYPE(weaponHash, explode) end
--- @param ped number
--- @return number
function WEAPON.GET_LOCKON_DISTANCE_OF_CURRENT_PED_WEAPON(ped) end
--- @param ped number
--- @return number
function WEAPON.GET_MAX_RANGE_OF_CURRENT_PED_WEAPON(ped) end
--- Fourth Parameter = unsure, almost always -1
--- @param driver number
--- @param vehicle number
--- @param weaponHash number
--- @param p3 number
--- @return boolean
function WEAPON.HAS_VEHICLE_GOT_PROJECTILE_ATTACHED(driver, vehicle, weaponHash, p3) end
--- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param componentHash number
function WEAPON.GIVE_WEAPON_COMPONENT_TO_PED(ped, weaponHash, componentHash) end
--- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param componentHash number
function WEAPON.REMOVE_WEAPON_COMPONENT_FROM_PED(ped, weaponHash, componentHash) end
--- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param componentHash number
--- @return boolean
function WEAPON.HAS_PED_GOT_WEAPON_COMPONENT(ped, weaponHash, componentHash) end
--- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param componentHash number
--- @return boolean
function WEAPON.IS_PED_WEAPON_COMPONENT_ACTIVE(ped, weaponHash, componentHash) end
--- @param ped number
--- @return boolean
function WEAPON.REFILL_AMMO_INSTANTLY(ped) end
--- Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload.
--- @param ped number
--- @return boolean
function WEAPON.MAKE_PED_RELOAD(ped) end
--- Nearly every instance of p1 I found was 31. Nearly every instance of p2 I found was 0.
--- 
--- REQUEST_WEAPON_ASSET(iLocal_1888, 31, 26);
--- @param weaponHash number
--- @param p1 number
--- @param p2 number
function WEAPON.REQUEST_WEAPON_ASSET(weaponHash, p1, p2) end
--- @param weaponHash number
--- @return boolean
function WEAPON.HAS_WEAPON_ASSET_LOADED(weaponHash) end
--- @param weaponHash number
function WEAPON.REMOVE_WEAPON_ASSET(weaponHash) end
--- Now has 8 params.
--- @param weaponHash number
--- @param ammoCount number
--- @param x number
--- @param y number
--- @param z number
--- @param showWorldModel boolean
--- @param scale number
--- @param p7 number
--- @param p8 number
--- @param p9 number
--- @return number
function WEAPON.CREATE_WEAPON_OBJECT(weaponHash, ammoCount, x, y, z, showWorldModel, scale, p7, p8, p9) end
--- componentHash:
--- (use WEAPON::GET_WEAPON_COMPONENT_TYPE_MODEL() to get hash value)
--- ${component_at_ar_flsh}, ${component_at_ar_supp}, ${component_at_pi_flsh}, ${component_at_scope_large}, ${component_at_ar_supp_02}
--- @param weaponObject number
--- @param componentHash number
function WEAPON.GIVE_WEAPON_COMPONENT_TO_WEAPON_OBJECT(weaponObject, componentHash) end
--- see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components
--- @param object number
--- @param componentHash number
function WEAPON.REMOVE_WEAPON_COMPONENT_FROM_WEAPON_OBJECT(object, componentHash) end
--- see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components
--- @param weapon number
--- @param componentHash number
--- @return boolean
function WEAPON.HAS_WEAPON_GOT_WEAPON_COMPONENT(weapon, componentHash) end
--- @param weaponObject number
--- @param ped number
function WEAPON.GIVE_WEAPON_OBJECT_TO_PED(weaponObject, ped) end
--- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @param componentHash number
--- @return boolean
function WEAPON.DOES_WEAPON_TAKE_WEAPON_COMPONENT(weaponHash, componentHash) end
--- Drops the current weapon and returns the object
--- 
--- Unknown behavior when unarmed.
--- @param ped number
--- @param p1 boolean
--- @return number
function WEAPON.GET_WEAPON_OBJECT_FROM_PED(ped, p1) end
--- Gives the specified loadout to the specified ped.
--- Loadouts are defined in common.rpf\data\ai\loadouts.meta
--- @param ped number
--- @param loadoutHash number
function WEAPON.GIVE_LOADOUT_TO_PED(ped, loadoutHash) end
--- tintIndex can be the following:
--- 
--- 0 - Normal
--- 1 - Green
--- 2 - Gold
--- 3 - Pink
--- 4 - Army
--- 5 - LSPD
--- 6 - Orange
--- 7 - Platinum
--- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param tintIndex number
function WEAPON.SET_PED_WEAPON_TINT_INDEX(ped, weaponHash, tintIndex) end
--- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @return number
function WEAPON.GET_PED_WEAPON_TINT_INDEX(ped, weaponHash) end
--- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weapon number
--- @param tintIndex number
function WEAPON.SET_WEAPON_OBJECT_TINT_INDEX(weapon, tintIndex) end
--- @param weapon number
--- @return number
function WEAPON.GET_WEAPON_OBJECT_TINT_INDEX(weapon) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPON_TINT_COUNT(weaponHash) end
--- Colors:
--- 0 = Gray
--- 1 = Dark Gray
--- 2 = Black
--- 3 = White
--- 4 = Blue
--- 5 = Cyan
--- 6 = Aqua
--- 7 = Cool Blue
--- 8 = Dark Blue
--- 9 = Royal Blue
--- 10 = Plum
--- 11 = Dark Purple
--- 12 = Purple
--- 13 = Red
--- 14 = Wine Red
--- 15 = Magenta
--- 16 = Pink
--- 17 = Salmon
--- 18 = Hot Pink
--- 19 = Rust Orange
--- 20 = Brown
--- 21 = Earth
--- 22 = Orange
--- 23 = Light Orange
--- 24 = Dark Yellow
--- 25 = Yellow
--- 26 = Light Brown
--- 27 = Lime Green
--- 28 = Olive
--- 29 = Moss
--- 30 = Turquoise
--- 31 = Dark Green
--- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param camoComponentHash number
--- @param colorIndex number
function WEAPON.SET_PED_WEAPON_COMPONENT_TINT_INDEX(ped, weaponHash, camoComponentHash, colorIndex) end
--- Returns -1 if camoComponentHash is invalid/not attached to the weapon.
--- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param camoComponentHash number
--- @return number
function WEAPON.GET_PED_WEAPON_COMPONENT_TINT_INDEX(ped, weaponHash, camoComponentHash) end
--- Colors:
--- 0 = Gray
--- 1 = Dark Gray
--- 2 = Black
--- 3 = White
--- 4 = Blue
--- 5 = Cyan
--- 6 = Aqua
--- 7 = Cool Blue
--- 8 = Dark Blue
--- 9 = Royal Blue
--- 10 = Plum
--- 11 = Dark Purple
--- 12 = Purple
--- 13 = Red
--- 14 = Wine Red
--- 15 = Magenta
--- 16 = Pink
--- 17 = Salmon
--- 18 = Hot Pink
--- 19 = Rust Orange
--- 20 = Brown
--- 21 = Earth
--- 22 = Orange
--- 23 = Light Orange
--- 24 = Dark Yellow
--- 25 = Yellow
--- 26 = Light Brown
--- 27 = Lime Green
--- 28 = Olive
--- 29 = Moss
--- 30 = Turquoise
--- 31 = Dark Green
--- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponObject number
--- @param camoComponentHash number
--- @param colorIndex number
function WEAPON.SET_WEAPON_OBJECT_COMPONENT_TINT_INDEX(weaponObject, camoComponentHash, colorIndex) end
--- Returns -1 if camoComponentHash is invalid/not attached to the weapon object.
--- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponObject number
--- @param camoComponentHash number
--- @return number
function WEAPON.GET_WEAPON_OBJECT_COMPONENT_TINT_INDEX(weaponObject, camoComponentHash) end
--- @param ped number
--- @param weaponHash number
--- @return number
function WEAPON.GET_PED_WEAPON_CAMO_INDEX(ped, weaponHash) end
--- @param weaponObject number
--- @param p1 number
function WEAPON.SET_WEAPON_OBJECT_CAMO_INDEX(weaponObject, p1) end
--- struct WeaponHudStatsData
--- {
--- BYTE hudDamage; // 0x0000
--- char _0x0001[0x7]; // 0x0001
--- BYTE hudSpeed; // 0x0008
--- char _0x0009[0x7]; // 0x0009
--- BYTE hudCapacity; // 0x0010
--- char _0x0011[0x7]; // 0x0011
--- BYTE hudAccuracy; // 0x0018
--- char _0x0019[0x7]; // 0x0019
--- BYTE hudRange; // 0x0020
--- };
--- 
--- Usage:
--- 
--- WeaponHudStatsData data;
--- if (GET_WEAPON_HUD_STATS(weaponHash, (int *)&data))
--- {
--- // BYTE damagePercentage = data.hudDamage and so on
--- }
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @param outData number
--- @return boolean
function WEAPON.GET_WEAPON_HUD_STATS(weaponHash, outData) end
--- @param componentHash number
--- @param outData number
--- @return boolean
function WEAPON.GET_WEAPON_COMPONENT_HUD_STATS(componentHash, outData) end
--- This native does not return damages of weapons from the melee and explosive group.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @param componentHash number
--- @return number
function WEAPON.GET_WEAPON_DAMAGE(weaponHash, componentHash) end
--- // Returns the size of the default weapon component clip.
--- 
--- Use it like this:
--- 
--- char cClipSize[32];
--- Hash cur;
--- if (WEAPON::GET_CURRENT_PED_WEAPON(playerPed, &cur, 1))
--- {
--- if (WEAPON::IS_WEAPON_VALID(cur))
--- {
--- int iClipSize = WEAPON::GET_WEAPON_CLIP_SIZE(cur);
--- sprintf_s(cClipSize, "ClipSize: %.d", iClipSize);
--- vDrawString(cClipSize, 0.5f, 0.5f);
--- }
--- }
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPON_CLIP_SIZE(weaponHash) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPON_TIME_BETWEEN_SHOTS(weaponHash) end
--- @param ped number
--- @param xBias number
--- @param yBias number
function WEAPON.SET_PED_CHANCE_OF_FIRING_BLANKS(ped, xBias, yBias) end
--- Returns handle of the projectile.
--- @param ped number
--- @param p1 number
--- @return number
function WEAPON.SET_PED_SHOOT_ORDNANCE_WEAPON(ped, p1) end
--- @param weaponObject number
function WEAPON.REQUEST_WEAPON_HIGH_DETAIL_MODEL(weaponObject) end
--- @param weapon number
--- @param damageModifier number
function WEAPON._SET_WEAPON_PED_DAMAGE_MODIFIER(weapon, damageModifier) end
--- Changes the weapon damage output by the given multiplier value. Must be run every frame.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @param damageMultiplier number
function WEAPON.SET_WEAPON_DAMAGE_MODIFIER(weaponHash, damageMultiplier) end
--- @param weaponHash number
--- @param multiplier number
function WEAPON.SET_WEAPON_AOE_MODIFIER(weaponHash, multiplier) end
--- ex, WEAPON::SET_WEAPON_EFFECT_DURATION_MODIFIER(joaat("vehicle_weapon_mine_slick"), 1.0);
--- @param p0 number
--- @param p1 number
function WEAPON.SET_WEAPON_EFFECT_DURATION_MODIFIER(p0, p1) end
--- This native returns a true or false value.
--- 
--- Ped ped = The ped whose weapon you want to check.
--- @param ped number
--- @return boolean
function WEAPON.IS_PED_CURRENT_WEAPON_SILENCED(ped) end
--- @param ped number
--- @return boolean
function WEAPON.IS_FLASH_LIGHT_ON(ped) end
--- @param distance number
--- @return boolean
function WEAPON.SET_FLASH_LIGHT_FADE_DISTANCE(distance) end
--- Enables/disables flashlight on ped's weapon.
--- @param ped number
--- @param toggle boolean
function WEAPON.SET_FLASH_LIGHT_ACTIVE_HISTORY(ped, toggle) end
--- Changes the selected ped aiming animation style.
--- Note : You must use GET_HASH_KEY!
--- 
--- Strings to use with GET_HASH_KEY :
--- 
--- "Ballistic",
--- "Default",
--- "Fat",
--- "Female",
--- "FirstPerson",
--- "FirstPersonAiming",
--- "FirstPersonFranklin",
--- "FirstPersonFranklinAiming",
--- "FirstPersonFranklinRNG",
--- "FirstPersonFranklinScope",
--- "FirstPersonMPFemale",
--- "FirstPersonMichael",
--- "FirstPersonMichaelAiming",
--- "FirstPersonMichaelRNG",
--- "FirstPersonMichaelScope",
--- "FirstPersonRNG",
--- "FirstPersonScope",
--- "FirstPersonTrevor",
--- "FirstPersonTrevorAiming",
--- "FirstPersonTrevorRNG",
--- "FirstPersonTrevorScope",
--- "Franklin",
--- "Gang",
--- "Gang1H",
--- "GangFemale",
--- "Hillbilly",
--- "MP_F_Freemode",
--- "Michael",
--- "SuperFat",
--- "Trevor"
--- @param ped number
--- @param animStyle number
function WEAPON.SET_WEAPON_ANIMATION_OVERRIDE(ped, animStyle) end
--- enum class eDamageType
--- {
--- UNKNOWN = 0,
--- NONE = 1,
--- MELEE = 2,
--- BULLET = 3,
--- BULLET_RUBBER = 4,
--- EXPLOSIVE = 5,
--- FIRE = 6,
--- COLLISION = 7,
--- FALL = 8,
--- DROWN = 9,
--- ELECTRIC = 10,
--- BARBED_WIRE = 11,
--- FIRE_EXTINGUISHER = 12,
--- SMOKE = 13,
--- WATER_CANNON = 14,
--- TRANQUILIZER = 15,
--- };
--- 
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @return number
function WEAPON.GET_WEAPON_DAMAGE_TYPE(weaponHash) end
--- @param ped number
function WEAPON.SET_EQIPPED_WEAPON_START_SPINNING_AT_FULL_SPEED(ped) end
--- this returns if you can use the weapon while using a parachute
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param weaponHash number
--- @return boolean
function WEAPON.CAN_USE_WEAPON_ON_PARACHUTE(weaponHash) end
--- Both coordinates are from objects in the decompiled scripts. Native related to 0xECDC202B25E5CF48 p1 value. The only weapon hash used in the decompiled scripts is weapon_air_defence_gun. These two natives are used by the yacht script, decompiled scripts suggest it and the weapon hash used (valkyrie's rockets) are also used by yachts.
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param weaponHash number
--- @return number
function WEAPON.CREATE_AIR_DEFENCE_SPHERE(x, y, z, radius, p4, p5, p6, weaponHash) end
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param p0 number
--- @param p1 number
--- @param p2 number
--- @param p3 number
--- @param p4 number
--- @param p5 number
--- @param p6 number
--- @param p7 number
--- @param p8 number
--- @param radius number
--- @param weaponHash number
--- @return number
function WEAPON.CREATE_AIR_DEFENCE_ANGLED_AREA(p0, p1, p2, p3, p4, p5, p6, p7, p8, radius, weaponHash) end
--- @param zoneId number
--- @return boolean
function WEAPON.REMOVE_AIR_DEFENCE_SPHERE(zoneId) end
function WEAPON.REMOVE_ALL_AIR_DEFENCE_SPHERES() end
--- @param player number
--- @param zoneId number
--- @param enable boolean
function WEAPON.SET_PLAYER_TARGETTABLE_FOR_AIR_DEFENCE_SPHERE(player, zoneId, enable) end
--- @param x number
--- @param y number
--- @param z number
--- @param radius number
--- @param outZoneId any
--- @return boolean
function WEAPON.IS_AIR_DEFENCE_SPHERE_IN_AREA(x, y, z, radius, outZoneId) end
--- @param zoneId number
--- @param x number
--- @param y number
--- @param z number
function WEAPON.FIRE_AIR_DEFENCE_SPHERE_WEAPON_AT_POSITION(zoneId, x, y, z) end
--- @param zoneId number
--- @return boolean
function WEAPON.DOES_AIR_DEFENCE_SPHERE_EXIST(zoneId) end
--- Disables selecting the given weapon. Ped isn't forced to put the gun away. However you can't reselect the weapon if you holster then unholster. Weapon is also grayed out on the weapon wheel.
--- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json
--- @param ped number
--- @param weaponHash number
--- @param toggle boolean
function WEAPON.SET_CAN_PED_SELECT_INVENTORY_WEAPON(ped, weaponHash, toggle) end
--- Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons.
--- @param ped number
--- @param toggle boolean
function WEAPON.SET_CAN_PED_SELECT_ALL_WEAPONS(ped, toggle) end

ZONE = {}

--- @param x number
--- @param y number
--- @param z number
--- @return number
function ZONE.GET_ZONE_AT_COORDS(x, y, z) end
--- 'zoneName' corresponds to an entry in 'popzone.ipl'.
--- 
--- AIRP = Los Santos International Airport
--- ALAMO = Alamo Sea
--- ALTA = Alta
--- ARMYB = Fort Zancudo
--- BANHAMC = Banham Canyon Dr
--- BANNING = Banning
--- BEACH = Vespucci Beach
--- BHAMCA = Banham Canyon
--- BRADP = Braddock Pass
--- BRADT = Braddock Tunnel
--- BURTON = Burton
--- CALAFB = Calafia Bridge
--- CANNY = Raton Canyon
--- CCREAK = Cassidy Creek
--- CHAMH = Chamberlain Hills
--- CHIL = Vinewood Hills
--- CHU = Chumash
--- CMSW = Chiliad Mountain State Wilderness
--- CYPRE = Cypress Flats
--- DAVIS = Davis
--- DELBE = Del Perro Beach
--- DELPE = Del Perro
--- DELSOL = La Puerta
--- DESRT = Grand Senora Desert
--- DOWNT = Downtown
--- DTVINE = Downtown Vinewood
--- EAST_V = East Vinewood
--- EBURO = El Burro Heights
--- ELGORL = El Gordo Lighthouse
--- ELYSIAN = Elysian Island
--- GALFISH = Galilee
--- GOLF = GWC and Golfing Society
--- GRAPES = Grapeseed
--- GREATC = Great Chaparral
--- HARMO = Harmony
--- HAWICK = Hawick
--- HORS = Vinewood Racetrack
--- HUMLAB = Humane Labs and Research
--- JAIL = Bolingbroke Penitentiary
--- KOREAT = Little Seoul
--- LACT = Land Act Reservoir
--- LAGO = Lago Zancudo
--- LDAM = Land Act Dam
--- LEGSQU = Legion Square
--- LMESA = La Mesa
--- LOSPUER = La Puerta
--- MIRR = Mirror Park
--- MORN = Morningwood
--- MOVIE = Richards Majestic
--- MTCHIL = Mount Chiliad
--- MTGORDO = Mount Gordo
--- MTJOSE = Mount Josiah
--- MURRI = Murrieta Heights
--- NCHU = North Chumash
--- NOOSE = N.O.O.S.E
--- OCEANA = Pacific Ocean
--- PALCOV = Paleto Cove
--- PALETO = Paleto Bay
--- PALFOR = Paleto Forest
--- PALHIGH = Palomino Highlands
--- PALMPOW = Palmer-Taylor Power Station
--- PBLUFF = Pacific Bluffs
--- PBOX = Pillbox Hill
--- PROCOB = Procopio Beach
--- RANCHO = Rancho
--- RGLEN = Richman Glen
--- RICHM = Richman
--- ROCKF = Rockford Hills
--- RTRAK = Redwood Lights Track
--- SANAND = San Andreas
--- SANCHIA = San Chianski Mountain Range
--- SANDY = Sandy Shores
--- SKID = Mission Row
--- SLAB = Stab City
--- STAD = Maze Bank Arena
--- STRAW = Strawberry
--- TATAMO = Tataviam Mountains
--- TERMINA = Terminal
--- TEXTI = Textile City
--- TONGVAH = Tongva Hills
--- TONGVAV = Tongva Valley
--- VCANA = Vespucci Canals
--- VESP = Vespucci
--- VINE = Vinewood
--- WINDF = Ron Alternates Wind Farm
--- WVINE = West Vinewood
--- ZANCUDO = Zancudo River
--- ZP_ORT = Port of South Los Santos
--- ZQ_UAR = Davis Quartz
--- 
--- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json
--- @param zoneName string
--- @return number
function ZONE.GET_ZONE_FROM_NAME_ID(zoneName) end
--- @param zoneId number
--- @return number
function ZONE.GET_ZONE_POPSCHEDULE(zoneId) end
--- AIRP = Los Santos International Airport
--- ALAMO = Alamo Sea
--- ALTA = Alta
--- ARMYB = Fort Zancudo
--- BANHAMC = Banham Canyon Dr
--- BANNING = Banning
--- BEACH = Vespucci Beach
--- BHAMCA = Banham Canyon
--- BRADP = Braddock Pass
--- BRADT = Braddock Tunnel
--- BURTON = Burton
--- CALAFB = Calafia Bridge
--- CANNY = Raton Canyon
--- CCREAK = Cassidy Creek
--- CHAMH = Chamberlain Hills
--- CHIL = Vinewood Hills
--- CHU = Chumash
--- CMSW = Chiliad Mountain State Wilderness
--- CYPRE = Cypress Flats
--- DAVIS = Davis
--- DELBE = Del Perro Beach
--- DELPE = Del Perro
--- DELSOL = La Puerta
--- DESRT = Grand Senora Desert
--- DOWNT = Downtown
--- DTVINE = Downtown Vinewood
--- EAST_V = East Vinewood
--- EBURO = El Burro Heights
--- ELGORL = El Gordo Lighthouse
--- ELYSIAN = Elysian Island
--- GALFISH = Galilee
--- GOLF = GWC and Golfing Society
--- GRAPES = Grapeseed
--- GREATC = Great Chaparral
--- HARMO = Harmony
--- HAWICK = Hawick
--- HORS = Vinewood Racetrack
--- HUMLAB = Humane Labs and Research
--- JAIL = Bolingbroke Penitentiary
--- KOREAT = Little Seoul
--- LACT = Land Act Reservoir
--- LAGO = Lago Zancudo
--- LDAM = Land Act Dam
--- LEGSQU = Legion Square
--- LMESA = La Mesa
--- LOSPUER = La Puerta
--- MIRR = Mirror Park
--- MORN = Morningwood
--- MOVIE = Richards Majestic
--- MTCHIL = Mount Chiliad
--- MTGORDO = Mount Gordo
--- MTJOSE = Mount Josiah
--- MURRI = Murrieta Heights
--- NCHU = North Chumash
--- NOOSE = N.O.O.S.E
--- OCEANA = Pacific Ocean
--- PALCOV = Paleto Cove
--- PALETO = Paleto Bay
--- PALFOR = Paleto Forest
--- PALHIGH = Palomino Highlands
--- PALMPOW = Palmer-Taylor Power Station
--- PBLUFF = Pacific Bluffs
--- PBOX = Pillbox Hill
--- PROCOB = Procopio Beach
--- RANCHO = Rancho
--- RGLEN = Richman Glen
--- RICHM = Richman
--- ROCKF = Rockford Hills
--- RTRAK = Redwood Lights Track
--- SANAND = San Andreas
--- SANCHIA = San Chianski Mountain Range
--- SANDY = Sandy Shores
--- SKID = Mission Row
--- SLAB = Stab City
--- STAD = Maze Bank Arena
--- STRAW = Strawberry
--- TATAMO = Tataviam Mountains
--- TERMINA = Terminal
--- TEXTI = Textile City
--- TONGVAH = Tongva Hills
--- TONGVAV = Tongva Valley
--- VCANA = Vespucci Canals
--- VESP = Vespucci
--- VINE = Vinewood
--- WINDF = Ron Alternates Wind Farm
--- WVINE = West Vinewood
--- ZANCUDO = Zancudo River
--- ZP_ORT = Port of South Los Santos
--- ZQ_UAR = Davis Quartz
--- 
--- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json
--- @param x number
--- @param y number
--- @param z number
--- @return string
function ZONE.GET_NAME_OF_ZONE(x, y, z) end
--- @param zoneId number
--- @param toggle boolean
function ZONE.SET_ZONE_ENABLED(zoneId, toggle) end
--- cellphone range 1- 5 used for signal bar in iFruit phone
--- @param zoneId number
--- @return number
function ZONE.GET_ZONE_SCUMMINESS(zoneId) end
--- Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators.
--- 
--- Modified example from "am_imp_exp.c4", line 6406:
--- /* popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1));
--- etc.
--- */
--- ZONE::OVERRIDE_POPSCHEDULE_VEHICLE_MODEL(popSchedules[index], vehicleHash);
--- STREAMING::REQUEST_MODEL(vehicleHash);
--- @param scheduleId number
--- @param vehicleHash number
function ZONE.OVERRIDE_POPSCHEDULE_VEHICLE_MODEL(scheduleId, vehicleHash) end
--- Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators.
--- 
--- Modified example from "am_imp_exp.c4", line 6418:
--- /* popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1));
--- etc.
--- */
--- STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(vehicleHash);
--- ZONE::CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL(popSchedules[index]);
--- @param scheduleId number
function ZONE.CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL(scheduleId) end
--- Returns a hash representing which part of the map the given coords are located.
--- 
--- Possible return values:
--- (Hash of) city -> -289320599
--- (Hash of) countryside -> 2072609373
--- 
--- C# Example :
--- 
--- Ped player = Game.Player.Character;
--- Hash h = Function.Call<Hash>(Hash.GET_HASH_OF_MAP_AREA_AT_COORDS, player.Position.X, player.Position.Y, player.Position.Z);
--- @param x number
--- @param y number
--- @param z number
--- @return number
function ZONE.GET_HASH_OF_MAP_AREA_AT_COORDS(x, y, z) end
