TROLL MENU
an anonymous user
·
Lua
local natives = require("this_is_needed\\natives")
require("this_is_needed\\npc_functions")
require("this_is_needed\\outfit_functions")
require("this_is_needed\\other_functions")
require("this_is_needed\\scaleform_lib")
require("this_is_needed\\ped_list")
local fun_menu_pages = {}
fun_menu_pages["main_menu"] = menu.add_feature("Fun Menu", "parent", 0)
fun_menu_pages["festive"] = menu.add_feature("Festive Stuff", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["ptfx_stuff"] = menu.add_feature("PTFX Stuff", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["alert_screens"] = menu.add_feature("Alert Screens", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["vehicle_stuff"] = menu.add_feature("Vehicle Stuff", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["ozark_text"] = menu.add_feature("Øzark Text", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["self_options"] = menu.add_feature("Self Options", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["npc_stuff"] = menu.add_feature("NPC Stuff", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["pet_menu"] = menu.add_feature("Pets", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["miscellaneous"] = menu.add_feature("Miscellaneous", "parent", fun_menu_pages["main_menu"].id)
fun_menu_pages["player_fun_menu"] = menu.add_player_feature("Fun Menu", "parent", 0)
local settings = {
"wandering_pet",
"wandering_follower",
"walk_style",
"uppercase_ozark_text",
"wandering_driver",
"team_chat?"
}
local fun_menu_threads = {
"clumsy_thread",
"play_dead_thread",
"animation",
"vehicle_launch"
}
local scaleforms = {}
local blips = {}
local entities = {}
local fun_menu_ver = "Fun Menu v0.5.1"
if (not menu.is_trusted_mode_enabled(1 << 2)) then
menu.notify("Enable the Natives trusted mode flag before using Fun Menu.")
end
event.add_event_listener('exit', function()
for i = 1, #blipsTable do
ui.remove_blip(blipsTable[i])
end
for i = 1, #entities do
entity.set_entity_as_mission_entity(entities[i], true, true)
entity.delete_entity(entities[i])
end
menu.notify("Cleaning up spawned entities and blips... Cleanup Successful. Bye!", fun_menu_ver)
end)
-- ______ ______ _____ ______ ____ _ __ ______ _____ ______ __ __ ______ ______
-- / ____// ____// ___//_ __// _/| | / // ____/ / ___//_ __// / / // ____// ____/
-- / /_ / __/ \__ \ / / / / | | / // __/ \__ \ / / / / / // /_ / /_
-- / __/ / /___ ___/ / / / _/ / | |/ // /___ ___/ / / / / /_/ // __/ / __/
--/_/ /_____/ /____/ /_/ /___/ |___//_____/ /____/ /_/ \____//_/ /_/
function spawn_firework_1(x, y, z, rot_z)
if (settings["silent_fireworks"]) then
gameplay.shoot_single_bullet_between_coords(v3(-1950, -960, 2) + v3(x, y, z), v3(-1950, -960, 2) + v3(0, 0, rot_z), 0, 0x7F7497E5, player.player_id(), false, false, 100)
else
gameplay.shoot_single_bullet_between_coords(v3(-1950, -960, 2) + v3(x, y, z), v3(-1950, -960, 2) + v3(0, 0, rot_z), 0, 0x7F7497E5, player.player_id(), true, false, 100)
end
end
local num_table = {100, 100, 200, 200, 300, 300}
menu.add_feature("Vespucci Beach Firework Show", "toggle", fun_menu_pages["festive"].id, function(feat_toggle)
while feat_toggle.on do
gameplay.shoot_single_bullet_between_coords(v3(-1950, -960, 2) + v3(math.random(-10, 10), math.random(-10, 10), 0), v3(-1950, -960, 2) + v3(0, 0, 20), 0, 0x7F7497E5, player.player_id(), true, false, num_table[math.random(1, #num_table)])
if (math.random(1, 100) == 56) then
spawn_firework_1(8, 8, 0, 300)
spawn_firework_1(-8, 8, 0, 300)
spawn_firework_1(8, -8, 0, 300)
spawn_firework_1(-8, -8, 0, 300)
end
if (math.random(1, 100) == 39) then
for i = 1, 4 do
system.wait(100)
spawn_firework_1(8, i + 8, 0, 300)
spawn_firework_1(8, -i - 8, 0, 300)
end
end
system.wait(math.random(2, 8) * 100)
end
end)
menu.add_feature("Horsetrack Firework Show", "toggle", fun_menu_pages["festive"].id, function(feat_toggle)
while feat_toggle.on do
gameplay.shoot_single_bullet_between_coords(v3(1139, 130, 80) + v3(math.random(-10, 10), math.random(-10, 10), 0), v3(1139, 130, 80) + v3(0, 0, 20), 0, 0x7F7497E5, player.player_id(), true, false, num_table[math.random(1, #num_table)])
if (math.random(1, 50) == 27) then
spawn_firework_1(8, 8, 0, 300)
spawn_firework_1(-8, 8, 0, 300)
spawn_firework_1(8, -8, 0, 300)
spawn_firework_1(-8, -8, 0, 300)
end
if (math.random(1, 150) == 67) then
for i = 1, 4 do
system.wait(100)
spawn_firework_1(8, i + 8, 0, 300)
spawn_firework_1(8, -i - 8, 0, 300)
end
end
system.wait(math.random(2, 8) * 100)
end
end)
menu.add_feature("Create a Firework Show", "toggle", fun_menu_pages["festive"].id, function(feat_toggle)
local firework_coords = player.get_player_coords(player.player_id())
while feat_toggle.on do
gameplay.shoot_single_bullet_between_coords(firework_coords + v3(math.random(-10, 10), math.random(-10, 10), 0), firework_coords + v3(0, 0, 20), 0, 0x7F7497E5, player.player_id(), true, false, num_table[math.random(1, #num_table)])
if (math.random(1, 50) == 27) then
spawn_firework_1(8, 8, 0, 300)
spawn_firework_1(-8, 8, 0, 300)
spawn_firework_1(8, -8, 0, 300)
spawn_firework_1(-8, -8, 0, 300)
end
if (math.random(1, 150) == 67) then
for i = 1, 4 do
system.wait(100)
spawn_firework_1(8, i + 8, 0, 300)
spawn_firework_1(8, -i - 8, 0, 300)
end
end
system.wait(math.random(2, 8) * 100)
end
end)
menu.add_feature("Give Firework Launchers to Everyone", "action", fun_menu_pages["festive"].id, function(feat_toggle)
menu.notify("Gave everyone in current session a firework launcher.", fun_menu_ver)
for i = 0, 31 do
weapon.give_delayed_weapon_to_ped(player.get_player_ped(i), 0x7F7497E5, 0, true) -- Gives a firework launcher in 10ms and equips it right away
weapon.set_ped_ammo(player.get_player_ped(i), 0x7F7497E5, 20)
system.wait(150)
end
end)
menu.add_feature("Give Snowballs to Everyone", "action", fun_menu_pages["festive"].id, function(feat_toggle)
menu.notify("Gave everyone in current session snowballs.", fun_menu_ver)
for i = 0, 31 do
weapon.give_delayed_weapon_to_ped(player.get_player_ped(i), 0x787F0BB, 0, true) -- Gives snowballs in 10ms and equips it right away
weapon.set_ped_ammo(player.get_player_ped(i), 0x787F0BB, 20)
system.wait(150)
end
end)
-- ____ ______ ______ _ __ _____ ______ __ __ ______ ______
-- / __ \/_ __// ____/| |/ / / ___//_ __// / / // ____// ____/
-- / /_/ / / / / /_ | / \__ \ / / / / / // /_ / /_
-- / ____/ / / / __/ / | ___/ / / / / /_/ // __/ / __/
--/_/ /_/ /_/ /_/|_| /____/ /_/ \____//_/ /_/
--[[local ptfx_color = {
R = 255,
G = 100,
B = 100
}
function hex2RGB(hex)
hex = hex:gsub("#","")
ptfx_color = {
R = tonumber("0x"..hex:sub(1, 2)..".0"),
G = tonumber("0x"..hex:sub(3, 4)..".0"),
B = tonumber("0x"..hex:sub(5, 6)..".0"),
}
end
menu.add_feature("PTFX Color", "action", fun_menu_pages["ptfx_stuff"].id, function(feat)
local _input, k = input.get("Type in a hex color code.", "ffffff", 6, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
return HANDLER_POP
end
menu.notify("PTFX color set to " .. k, fun_menu_ver)
hex2RGB(k)zt
end)]]--
local ptfx_loaded = false
local ptfx_executed = false
menu.add_feature("Cosmetic Bleed Out", "toggle", fun_menu_pages["ptfx_stuff"].id, function(feat_toggle)
while (feat_toggle.on) do
graphics.set_next_ptfx_asset("core")
if (ptfx_loaded == false or ptfx_executed == false) then
ptfx_loaded = requestPTFX("core")
ptfx_executed = true
end
graphics.start_networked_ptfx_non_looped_on_entity("blood_stab", player.get_player_ped(player.player_id()), v3(0, 0.07, 0.3), v3(-50, 0, 0), 2)
fire.add_explosion(player.get_player_coords(player.player_id()), 39, false, true, 0, player.player_id())
system.wait(1000)
end
if (not feat_toggle.on) then
graphics.remove_named_ptfx_asset("core")
ptfx_loaded = false
ptfx_executed = false
end
end)
menu.add_feature("Bloody Mess", "toggle", fun_menu_pages["ptfx_stuff"].id, function(feat_toggle)
while (feat_toggle.on) do
graphics.set_next_ptfx_asset("scr_solomon3")
if (ptfx_loaded == false or ptfx_executed == false) then
ptfx_loaded = requestPTFX("scr_solomon3")
ptfx_executed = true
end
graphics.start_networked_ptfx_non_looped_on_entity("scr_trev4_747_blood_impact", player.get_player_ped(player.player_id()), v3(0, 0, 1), v3(-90, 0, 0), 1)
system.wait(1000)
end
if (not feat_toggle.on) then
graphics.remove_named_ptfx_asset("scr_solomon3")
ptfx_loaded = false
ptfx_executed = false
end
end)
menu.add_feature("Dragon Breath", "value_str", fun_menu_pages["ptfx_stuff"].id, function(feat_toggle_val)
menu.notify("You will probably want to use godmode for this PTFX.", fun_menu_ver)
local breath_scale = 0
if (feat_toggle_val.value == 0) then
breath_scale = 0.5
elseif (feat_toggle_val.value == 1) then
breath_scale = 2
end
while (feat_toggle_val.on) do
graphics.set_next_ptfx_asset("core")
if (ptfx_loaded == false or ptfx_executed == false) then
ptfx_loaded = requestPTFX("core")
ptfx_executed = true;
end
graphics.start_networked_ptfx_non_looped_on_entity("ent_sht_flame", player.get_player_ped(player.player_id()), v3(0, 0.07, 0.625), v3(-90, 0, 0), breath_scale)
system.wait(7700)
end
if (not feat_toggle_val.on) then
graphics.remove_named_ptfx_asset("core")
ptfx_loaded = false
ptfx_executed = false
end
end):set_str_data({"Little Breath", "Big Breath"})
menu.add_feature("Trails", "toggle", fun_menu_pages["ptfx_stuff"].id, function(feat_toggle)
while (feat_toggle.on) do
local success, head_pos = ped.get_ped_bone_coords(player.get_player_ped(player.player_id()), 31086, v3())
while not success do
success, head_pos = ped.get_ped_bone_coords(player.get_player_ped(player.player_id()), 31086, v3())
system.wait(10)
end
graphics.set_next_ptfx_asset("scr_powerplay")
if (ptfx_loaded == false or ptfx_executed == false) then
ptfx_loaded = requestPTFX("scr_powerplay")
ptfx_executed = true
end --v3(0, 0.07, 0.625)
graphics.start_networked_ptfx_non_looped_on_entity("sp_powerplay_beast_appear_trails", player.get_player_ped(player.player_id()), v3(0, 0.07, 0.625), v3(-90, 0, 0), 1.5)
--graphics.start_networked_ptfx_non_looped_at_coord("sp_powerplay_beast_appear_trails", head_pos, v3(), 1.5, false, false, false)
system.wait(500)
end
if (not feat_toggle.on) then
graphics.remove_named_ptfx_asset("scr_powerplay")
ptfx_loaded = false
ptfx_executed = false
end
end)
-- ___ __ ______ ____ ______ _____ ______ ____ ______ ______ _ __ _____
-- / | / / / ____// __ \/_ __/ / ___/ / ____// __ \ / ____// ____// | / // ___/
-- / /| | / / / __/ / /_/ / / / \__ \ / / / /_/ // __/ / __/ / |/ / \__ \
-- / ___ | / /___ / /___ / _, _/ / / ___/ // /___ / _, _// /___ / /___ / /| / ___/ /
--/_/ |_|/_____//_____//_/ |_| /_/ /____/ \____//_/ |_|/_____//_____//_/ |_/ /____/
menu.add_feature("Alert Screen", 'value_str', fun_menu_pages["alert_screens"].id, function(feat_toggle_val)
local screens = {
"You have been banned from Grand Theft Auto Online permanently.",
"You're attempting to access GTA Online servers with an altered version of the game.",
"There has been an error with this session.",
"You have been suspended from Grand Theft Auto Online Online until ".. os.date("%m/%d/%Y", os.time() + 2700000) ..". \nIn addition, your Grand Theft Auto Online characters(s) will be reset."
}
scaleforms["alert_screen"] = graphics.request_scaleform_movie("POPUP_WARNING")
while feat_toggle_val.on do
show_alert_screen(scaleforms["alert_screen"], 500.0, "alert", screens[feat_toggle_val.value+1], "Return to Grand Theft Auto V.", true, 0, "")
graphics.draw_scaleform_movie_fullscreen(scaleforms["alert_screen"], 255, 255, 255, 255, 0)
system.wait(0)
end
if (not feat_toggle_val.on) then
graphics.set_scaleform_movie_as_no_longer_needed(scaleforms["alert_screen"])
end
end):set_str_data({"Banned", "Altered Game", "Session Error", "Suspended"})
menu.add_feature("Set # Value for Alert", 'value_str', fun_menu_pages["alert_screens"].id, function(feat_toggle_val)
local _input, k = input.get("Type in custom number value for use in some alert screens.", "-9999", 999, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
feat_toggle_val.on = false
return HANDLER_POP
end
local numerical_screens = {
"Rockstar Game Services have corrected your GTA Dollars by $".. k .. ".",
"Congratulations, you have been awarded $ " .. k .. ".",
"Rockstar Game Services have corrected your RP levels to " .. k .. "RP.",
}
scaleforms["alert_screen"] = graphics.request_scaleform_movie("POPUP_WARNING")
while feat_toggle_val.on do
show_alert_screen(scaleforms["alert_screen"], 500.0, "alert", numerical_screens[feat_toggle_val.value+1], "", true, 0, "")
graphics.draw_scaleform_movie_fullscreen(scaleforms["alert_screen"], 255, 255, 255, 255, 0)
system.wait(0)
end
if (not feat_toggle_val.on) then
graphics.set_scaleform_movie_as_no_longer_needed(scaleforms["alert_screen"])
end
end):set_str_data({"Money Correct", "Money Awarded", "RP Correct"})
menu.add_feature("Custom Alert Screen", 'toggle', fun_menu_pages["alert_screens"].id, function(feat_toggle)
local _input, k = input.get("Type in alert screen text", "", 999, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
feat_toggle.on = false
return HANDLER_POP
end
scaleforms["alert_screen"] = graphics.request_scaleform_movie("POPUP_WARNING")
while feat_toggle.on do
show_alert_screen(scaleforms["alert_screen"], 500.0, "alert", k, "", true, 0, "")
graphics.draw_scaleform_movie_fullscreen(scaleforms["alert_screen"], 255, 255, 255, 255, 0)
system.wait(0)
end
if (not feat_toggle.on) then
graphics.set_scaleform_movie_as_no_longer_needed(scaleforms["alert_screen"])
end
end)
menu.add_feature("Ban Screen with Custom Reason", 'toggle', fun_menu_pages["alert_screens"].id, function(feat_toggle)
local _input, k = input.get("Type in ban reason text", "", 999, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
feat_toggle.on = false
return HANDLER_POP
end
scaleforms["alert_screen"] = graphics.request_scaleform_movie("POPUP_WARNING")
while feat_toggle.on do
show_alert_screen(scaleforms["alert_screen"], 500.0, "alert", "You have been banned from Grand Theft Auto Online permanently.", "Reason: " .. k .. "\nReturn to Grand Theft Auto V.", true, 0, "")
graphics.draw_scaleform_movie_fullscreen(scaleforms["alert_screen"], 255, 255, 255, 255, 0)
system.wait(0)
end
if (not feat_toggle.on) then
graphics.set_scaleform_movie_as_no_longer_needed(scaleforms["alert_screen"])
end
end)
menu.add_feature("Get Color Codes", "action", fun_menu_pages["alert_screens"].id, function(feat)
menu.notify("~r~ = Red\n~o~ = Orange\n~y~ = Yellow\n~g~ = Green\n~b~ = Blue\n~p~ = Purple\n~q~ = Pink\n~w~ or ~s~ = White\n~c~ or ~t~ = Gray\n~m~ = Dark Gray\n~u~ or ~l~ = Black\n\n\z
Type the color codes into the input boxes for the alert screens and you will get colored text.", fun_menu_ver.. " | Color Codes")
end)
-- _ __ ______ __ __ ____ ______ __ ______ _____ ______ __ __ ______ ______
--| | / // ____// / / // _// ____// / / ____/ / ___//_ __// / / // ____// ____/
--| | / // __/ / /_/ / / / / / / / / __/ \__ \ / / / / / // /_ / /_
--| |/ // /___ / __ /_/ / / /___ / /___ / /___ ___/ / / / / /_/ // __/ / __/
--|___//_____//_/ /_//___/ \____//_____//_____/ /____/ /_/ \____//_/ /_/
fun_menu_pages["angry_vehicles_stuff"] = menu.add_feature("Angry Vehicles", "parent", fun_menu_pages["vehicle_stuff"].id)
fun_menu_pages["ai_flying_stuff"] = menu.add_feature("Airplane Chauffer", "parent", fun_menu_pages["vehicle_stuff"].id)
fun_menu_pages["ai_driving_stuff"] = menu.add_feature("Limo Chauffer", "parent", fun_menu_pages["vehicle_stuff"].id)
fun_menu_pages["personal_vehicle_stuff"] = menu.add_feature("Player Vehicle Mods", "parent", fun_menu_pages["vehicle_stuff"].id)
-- /// ANGRY PLANES /// --
local planes = {}
local angry_vehicles_count = menu.add_feature("Angry Vehicle Count", 'autoaction_value_i', fun_menu_pages["angry_vehicles_stuff"].id)
angry_vehicles_count.min = 1
angry_vehicles_count.max = 50
angry_vehicles_count.mod = 1
angry_vehicles_count.value = 10
menu.add_feature("Angry Planes", "toggle", fun_menu_pages["angry_vehicles_stuff"].id, function(feat_toggle)
local spawned_planes = {}
local spawned_pilots = {}
local player_coords
local plane
local pilot
local planes = {
"alphaz1", "howard", "molotok", "starling", "velum2", "vestra", "velum", "tula", "stunt", "strikeforce",
"seabreeze", "rogue", "pyro", "nokota", "mammatus", "duster", "dodo", "cuban800", "besra"
}
for i = 1, #planes do
requestModel(gameplay.get_hash_key(planes[i]))
end
requestModel(gameplay.get_hash_key("s_m_y_blackops_01"))
if (feat_toggle.on) then
local pos = player.get_player_coords(player.player_id()) + v3(math.random(-100, 100), math.random(-100, 100), 150 + math.random(0, 20))
fun_menu_threads["update_coords"] = menu.create_thread(function()
while (feat_toggle.on) do
player_coords = player.get_player_coords(player.player_id())
system.wait(100)
end
end, nil)
for i = 1, angry_vehicles_count.value do
if (#spawned_planes < angry_vehicles_count.value) then
random_plane = math.random(1, #planes)
system.wait(500)
plane = vehicle.create_vehicle(gameplay.get_hash_key(planes[random_plane]), pos, math.random(-180, 180), true, false)
pilot = ped.create_ped(5, gameplay.get_hash_key("s_m_y_blackops_01"), pos, 165, true, false)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key(planes[random_plane]))
spawned_planes[#spawned_planes + 1] = plane
spawned_pilots[#spawned_pilots + 1] = pilot
entities[#entities + 1] = spawned_planes[i]
entities[#entities + 1] = spawned_pilots[i]
ped.set_ped_into_vehicle(pilot, plane, -1)
vehicle.set_vehicle_engine_on(plane, true, true, false)
vehicle.set_vehicle_forward_speed(plane, 50.0)
vehicle.control_landing_gear(plane, 3)
ped.set_ped_combat_attributes(pilot, 1, true)
ai.task_vehicle_drive_to_coord(pilot, plane, player_coords + v3(0, 0, math.random(0, 50)), 100.0, -1, gameplay.get_hash_key(planes[random_plane]), 0, 0.0, 1.0)
--ai.task_vehicle_follow(pilot, plane, player.get_player_ped(player.player_id()), 30, 786859, 30)
end
end
end
if (not feat_toggle.on) then
for i = 1, #spawned_planes do
requestControl(spawned_planes[i])
entity.delete_entity(spawned_planes[i])
end
for i = 1, #spawned_pilots do
requestControl(spawned_pilots[i])
entity.delete_entity(spawned_pilots[i])
end
for i = 1, #planes do
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key(planes[i]))
end
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("s_m_y_blackops_01"))
menu.delete_thread(fun_menu_threads["update_coords"])
spawned_planes = {}
spawned_pilots = {}
end
end)
menu.add_feature("Helicopter Madness", "toggle", fun_menu_pages["angry_vehicles_stuff"].id, function(feat_toggle)
local spawned_helicopters = {}
local spawned_pilots = {}
local helicopter
local pilot
local helicopters = {
"seasparrow2", "supervolito", "volatus", "annihilator2", "swift2", "swift", "supervolito2", "frogger", "havok", "hunter",
"maverick", "savage", "akula", "buzzard", "annihilator"
}
for i = 1, #helicopters do
requestModel(gameplay.get_hash_key(helicopters[i]))
end
requestModel(gameplay.get_hash_key("s_m_y_blackops_01"))
if (feat_toggle.on) then
local pos = player.get_player_coords(player.player_id()) + v3(math.random(-100, 100), math.random(-100, 100), 150 + math.random(0, 20))
for i = 1, angry_vehicles_count.value do
if (#spawned_helicopters < angry_vehicles_count.value) then
random_helicopter = math.random(1, #helicopters)
system.wait(500)
helicopter = vehicle.create_vehicle(gameplay.get_hash_key(helicopters[random_helicopter]), pos, math.random(-180, 180), true, false)
entity.set_entity_god_mode(helicopter, true)
pilot = ped.create_ped(5, gameplay.get_hash_key("s_m_y_blackops_01"), pos, 165, true, false)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key(helicopters[random_helicopter]))
spawned_helicopters[#spawned_helicopters + 1] = helicopter
spawned_pilots[#spawned_pilots + 1] = pilot
ped.set_ped_into_vehicle(pilot, helicopter, -1)
vehicle.set_vehicle_engine_on(helicopter, true, true, false)
vehicle.set_vehicle_forward_speed(helicopter, 50.0)
vehicle.control_landing_gear(helicopter, 3)
ped.set_ped_combat_attributes(pilot, 1, true)
--ai.task_vehicle_drive_to_coord(pilot, helicopter, player.get_player_coords(player.player_id()) + v3(0, 0, math.random(0, 50)), 100.0, -1, gameplay.get_hash_key(helicopters[random_helicopter]), 0, 0.0, 1.0)
ai.task_vehicle_follow(pilot, helicopter, player.get_player_ped(player.player_id()), 30, 786859, 30)
entities[#entities + 1] = spawned_helicopters[i]
entities[#entities + 1] = spawned_pilots[i]
end
end
end
if (not feat_toggle.on) then
for i = 1, #spawned_helicopters do
requestControl(spawned_helicopters[i])
entity.delete_entity(spawned_helicopters[i])
end
for i = 1, #spawned_pilots do
requestControl(spawned_pilots[i])
entity.delete_entity(spawned_pilots[i])
end
for i = 1, #helicopters do
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key(helicopters[i]))
end
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("s_m_y_blackops_01"))
spawned_helicopters = {}
spawned_pilots = {}
end
end)
local player_plane = player.get_player_vehicle(player.player_id())
local waypoint
local pilot1
local pilot2
local coords
menu.add_feature("Repair Current Plane", "toggle", fun_menu_pages["ai_flying_stuff"].id, function(feat_toggle)
vehicle.set_vehicle_fixed(player_plane)
vehicle.set_vehicle_engine_health(player_plane, 1000.0)
system.wait(10000)
end)
menu.add_feature("Auto Reroute to Current Waypoint", "toggle", fun_menu_pages["ai_flying_stuff"].id, function(feat_toggle)
while (feat_toggle.on) do
waypoint = ui.get_waypoint_coord()
menu.notify("Rerouting to...\nX = " .. waypoint.x .. "\nY = " .. waypoint.y, fun_menu_ver)
coords = v3(waypoint.x, waypoint.y, 100)
system.wait(10000)
end
end)
menu.add_feature("Manually Reroute to Current Waypoint", "action", fun_menu_pages["ai_flying_stuff"].id, function(feat)
if (not player.is_player_in_any_vehicle(player.player_id()) and not vehicle.is_vehicle_model(player_plane, 0xB2CF7250)) then -- nimbus
menu.notify("Wrong vehicle type.", fun_menu_ver)
else
waypoint = ui.get_waypoint_coord()
menu.notify("Rerouting to...\nX = " .. waypoint.x .. "\nY = " .. waypoint.y, fun_menu_ver)
coords = v3(waypoint.x, waypoint.y, 100)
end
end)
local height_above_waypoint = menu.add_feature("Flying Height", 'autoaction_value_i', fun_menu_pages["ai_flying_stuff"].id)
height_above_waypoint.min = 100
height_above_waypoint.max = 300
height_above_waypoint.mod = 10
height_above_waypoint.value = 200
local destinations = menu.add_feature("Destinations", 'parent', fun_menu_pages["ai_flying_stuff"].id)
menu.add_feature("Diamond Casino & Resort", "action", destinations.id, function(feat)
waypoint = ui.set_new_waypoint(v2(1038.944, 64.978))
menu.notify("Destination: Diamond Casino & Resort", fun_menu_ver)
end)
menu.add_feature("Los Santos International Airport", "action", destinations.id, function(feat)
waypoint = ui.set_new_waypoint(v2(-1187.151, -3039.150))
menu.notify("Destination: Los Santos International Airport", fun_menu_ver)
end)
menu.add_feature("Start Flying", "toggle", fun_menu_pages["ai_flying_stuff"].id, function(feat_toggle)
waypoint = ui.get_waypoint_coord()
player_plane = player.get_player_vehicle(player.player_id())
coords = v3(waypoint.x, waypoint.y, 100)
if (not vehicle.is_vehicle_model(player_plane, 0xB2CF7250)) then -- nimbus
menu.notify("Wrong vehicle type.", fun_menu_ver)
feat_toggle.on = false
elseif (vehicle.is_vehicle_model(player_plane, 0xB2CF7250)) then
requestControl(player_plane)
ped.set_ped_into_vehicle(player.get_player_ped(player.player_id()), player_plane, math.random(1, 6))
requestModel(gameplay.get_hash_key("s_m_y_blackops_01"))
pilot1 = ped.create_ped(5, gameplay.get_hash_key("s_m_y_blackops_01"), player.get_player_coords(player.player_id()), 165, true, false)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("s_m_y_blackops_01"))
requestControl(pilot1)
ped.set_ped_into_vehicle(pilot1, player_plane, -1)
pilot2 = ped.create_ped(5, gameplay.get_hash_key("s_m_y_blackops_01"), player.get_player_coords(player.player_id()), 165, true, false)
ped.set_ped_into_vehicle(pilot2, player_plane, 0)
entity.set_entity_coords_no_offset(player_plane, player.get_player_coords(player.player_id()) + v3(0, 0, 200))
vehicle.set_vehicle_engine_on(player_plane, true, true, false)
vehicle.set_vehicle_forward_speed(player_plane, 50.0)
vehicle.control_landing_gear(player_plane, 3)
while(feat_toggle.on) do
ai.task_vehicle_drive_to_coord(pilot1, player_plane, coords + v3(0, 0, height_above_waypoint.value or 200), 35.0, -1, player_plane, 0, 0.0, 1.0)
system.wait(500)
end
end
if (not feat_toggle.on) then
if (not vehicle.is_vehicle_model(player_plane, 0xB2CF7250)) then -- nimbus
menu.notify("Wrong vehicle type.", fun_menu_ver)
elseif (vehicle.is_vehicle_model(player_plane, 0xB2CF7250)) then
entity.set_entity_as_mission_entity(pilot1, true, true)
entity.delete_entity(pilot1)
entity.set_entity_as_mission_entity(pilot2, true, true)
entity.delete_entity(pilot2)
ped.set_ped_into_vehicle(player.get_player_ped(player.player_id()), player_plane, -1)
end
end
end)
local player_vehicle
local driver
local coords2
menu.add_feature("Auto Reroute to Current Waypoint", "toggle", fun_menu_pages["ai_driving_stuff"].id, function(feat_toggle)
while (feat_toggle.on) do
waypoint = ui.get_waypoint_coord()
menu.notify("Rerouting to...\nX = " .. waypoint.x .. "\nY = " .. waypoint.y, fun_menu_ver)
coords2 = v3(waypoint.x, waypoint.y, 100)
system.wait(10000)
end
end)
menu.add_feature("Manually Reroute to Current Waypoint", "action", fun_menu_pages["ai_driving_stuff"].id, function(feat)
if (not player.is_player_in_any_vehicle(player.player_id()) and not vehicle.is_vehicle_model(player_vehicle, 0xE6E967F8)) then -- nimbus
menu.notify("Wrong vehicle type.", fun_menu_ver)
else
waypoint = ui.get_waypoint_coord()
menu.notify("Rerouting to...\nX = " .. waypoint.x .. "\nY = " .. waypoint.y, fun_menu_ver)
coords2 = v3(waypoint.x, waypoint.y, 100)
end
end)
menu.add_feature("Wandering Driver", "toggle", fun_menu_pages["ai_driving_stuff"].id, function(feat_toggle)
settings["wandering_driver"] = feat_toggle.on
end)
menu.add_feature("Start Driving", "toggle", fun_menu_pages["ai_driving_stuff"].id, function(feat_toggle)
waypoint = ui.get_waypoint_coord()
player_vehicle = player.get_player_vehicle(player.player_id())
coords2 = v3(waypoint.x, waypoint.y, 100)
if (not vehicle.is_vehicle_model(player_vehicle, 0xE6E967F8)) then -- nimbus
menu.notify("Wrong vehicle type.", fun_menu_ver)
feat_toggle.on = false
elseif (vehicle.is_vehicle_model(player_vehicle, 0xE6E967F8)) then
requestControl(player_vehicle)
ped.set_ped_into_vehicle(player.get_player_ped(player.player_id()), player_vehicle, math.random(1, 4))
requestModel(gameplay.get_hash_key("s_m_y_blackops_01"))
driver = ped.create_ped(5, gameplay.get_hash_key("s_m_y_blackops_01"), player.get_player_coords(player.player_id()), 165, true, false)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("s_m_y_blackops_01"))
requestControl(driver)
ped.set_ped_into_vehicle(driver, player_vehicle, -1)
vehicle.set_vehicle_engine_on(player_vehicle, true, true, false)
while(feat_toggle.on) do
if (settings["wandering_driver"]) then
ai.task_vehicle_drive_wander(driver, player_vehicle, 25.0, 786859)
else
ai.task_vehicle_drive_to_coord(driver, player_vehicle, coords2, 25.0, -1, player_vehicle, 786859, 1, 1.0)
end
system.wait(500)
end
end
if (not feat_toggle.on) then
if (not vehicle.is_vehicle_model(player_vehicle, 0xE6E967F8)) then -- nimbus
menu.notify("Wrong vehicle type.", fun_menu_ver)
elseif (vehicle.is_vehicle_model(player_vehicle, 0xE6E967F8)) then
entity.set_entity_as_mission_entity(driver, true, true)
entity.delete_entity(driver)
ped.set_ped_into_vehicle(player.get_player_ped(player.player_id()), player_vehicle, -1)
end
end
end)
menu.add_feature("No Traction", "toggle", fun_menu_pages["personal_vehicle_stuff"].id, function(feat_toggle)
local player_veh = ped.get_vehicle_ped_is_using(player.get_player_ped(player.player_id()))
while (feat_toggle.on) do
if (not player.is_player_in_any_vehicle(player.player_id())) then
menu.notify("You need to be in a vehicle to use \"No Traction\".", fun_menu_ver)
feat_toggle.on = false
end
vehicle.set_vehicle_reduce_grip(player_veh, true)
system.wait(1000)
end
if (not feat_toggle.on) then
vehicle.set_vehicle_reduce_grip(player_veh, false)
end
end)
menu.add_feature("Custom Vehicle Color", "action", fun_menu_pages["personal_vehicle_stuff"].id, function(feat)
local _input, k = input.get("Type in a hex color code.", "ffffff", 6, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
return HANDLER_POP
end
local player_veh = player.get_player_vehicle(player.player_id())
requestControl(player_veh)
menu.notify("Vehicle color set to " .. k:sub(1, 6), fun_menu_ver, 10, "0x"..k:sub(5, 6)..k:sub(3, 4)..k:sub(1, 2))
vehicle.set_vehicle_custom_primary_colour(player_veh, tonumber("0x" .. k))
vehicle.set_vehicle_custom_secondary_colour(player_veh, tonumber("0x" .. k))
--vehicle.set_vehicle_custom_pearlescent_colour(vehicles[i], RGBToInt(255, 70, 160))
--vehicle.set_vehicle_custom_wheel_colour(Vehicle veh, uint32_t color)
end)
--[[menu.add_feature("Get Vehicle Colors", "action", fun_menu_pages["personal_vehicle_stuff"].id, function(feat)
local player_veh = player.get_player_vehicle(player.player_id())
local veh_colors = {
color_primary = vehicle.get_vehicle_primary_color(player_veh)
color_secondary = vehicle.get_vehicle_secondary_color(player_veh)
color_pearl = vehicle.get_vehicle_pearlecent_color(player_veh)
color_wheel = vehicle.get_vehicle_wheel_color(player_veh)
}
menu.notify("Primary: " .. tostring(veh_colors["color_primary"]) .. "\nSecondary: " .. tostring(veh_colors["color_secondary"]) .. "\nPearlescent: " .. tostring(veh_colors["color_pearl"]) .. "\nWheel: " .. tostring(veh_colors["color_wheel"]))
end)]]--
menu.add_feature("Modded Chrome Color", "action", fun_menu_pages["personal_vehicle_stuff"].id, function(feat)
local player_veh = player.get_player_vehicle(player.player_id())
local _input, k = input.get("Type in a hex color code.", "ffffff", 6, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
return HANDLER_POP
end
vehicle.set_vehicle_colors(player_veh, 120, 120)
vehicle.set_vehicle_extra_colors(player_veh, 120, 120)
system.wait(200)
menu.notify("Vehicle color set to " .. k:sub(1, 6), fun_menu_ver, 10, "0x"..k:sub(5, 6)..k:sub(3, 4)..k:sub(1, 2))
vehicle.set_vehicle_custom_primary_colour(player_veh, tonumber("0x" .. k))
vehicle.set_vehicle_custom_secondary_colour(player_veh, tonumber("0x" .. k))
vehicle.set_vehicle_custom_pearlescent_colour(player_veh, tonumber("0x" .. k))
vehicle.set_vehicle_custom_wheel_colour(player_veh, tonumber("0x" .. k))
end)
menu.add_feature("Unchrome Vehicle", "action", fun_menu_pages["personal_vehicle_stuff"].id, function(feat)
local player_veh = player.get_player_vehicle(player.player_id())
vehicle.set_vehicle_colors(player_veh, 0, 0)
vehicle.set_vehicle_extra_colors(player_veh, 0, 0)
end)
menu.add_feature("Fast Rainbow", "toggle", fun_menu_pages["personal_vehicle_stuff"].id, function(feat_toggle)
local player_veh = player.get_player_vehicle(player.player_id())
while feat_toggle.on do
local speed = math.floor(entity.get_entity_speed(player_veh)) * 2.23694
ui.draw_text(speed, v2(0.2, 0.2))
local r, g, b = rainbowRGB(speed / 10)
vehicle.set_vehicle_custom_primary_colour(player_veh, RGBToInt(r, g, b))
system.wait()
end
end)
menu.add_feature("Jump", "action_value_str", fun_menu_pages["personal_vehicle_stuff"].id, function(feat_val)
local jump_heights = {3, 6, 10}
local player_veh = player.get_player_vehicle(player.player_id())
requestControl(player_veh)
local existing_velocity = entity.get_entity_velocity(player_veh)
entity.set_entity_velocity(player_veh, v3(existing_velocity.x, existing_velocity.y, jump_heights[feat_val.value+1]))
end):set_str_data({"Low Jump", "Medium Jump", "High Jump"})
menu.add_feature("Spin", "toggle", fun_menu_pages["personal_vehicle_stuff"].id, function(feat_toggle)
local player_veh = player.get_player_vehicle(player.player_id())
requestControl(player_veh)
while (feat_toggle.on) do
if (not player.is_player_in_any_vehicle(player.player_id())) then
menu.notify("You need to be in a vehicle to use \"Spin\".", fun_menu_ver)
feat_toggle.on = false
end
for i = -180, 180 do
entity.set_entity_heading(player_veh, i)
system.wait(0)
end
end
end)
seat_swapping = menu.add_feature("Change Vehicle Seat", "autoaction_value_i", fun_menu_pages["personal_vehicle_stuff"].id, function(feat)
if (player.is_player_in_any_vehicle(player.player_id())) then
ped.set_ped_into_vehicle(player.get_player_ped(player.player_id()), player.get_player_vehicle(player.player_id()), feat.value)
seat_swapping.max = vehicle.get_vehicle_model_number_of_seats(entity.get_entity_model_hash(player.get_player_vehicle(player.player_id()))) - 2
else
menu.notify("You're not in a vehicle!", "")
end
end)
seat_swapping.max = -1
seat_swapping.min = -1
seat_swapping.value = -1
menu.add_feature("Alter Traffic Color", "value_str", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle_val)
local vehicles
while (feat_toggle_val.on) do
vehicles = vehicle.get_all_vehicles()
fun_menu_threads["alter_traffic_color"] = menu.create_thread(function()
while (feat_toggle_val.on) do
for i = 1, #vehicles do
requestControl(vehicles[i])
if (feat_toggle_val.value == 0) then
vehicle.set_vehicle_custom_primary_colour(vehicles[i], RGBToInt(255, 70, 160))
vehicle.set_vehicle_custom_secondary_colour(vehicles[i], RGBToInt(255, 70, 160))
vehicle.set_vehicle_custom_pearlescent_colour(vehicles[i], RGBToInt(255, 70, 160))
elseif (feat_toggle_val.value == 1) then
vehicle.set_vehicle_custom_primary_colour(vehicles[i], RGBToInt(0, 0, 0))
vehicle.set_vehicle_custom_secondary_colour(vehicles[i], RGBToInt(0, 0, 0))
vehicle.set_vehicle_custom_pearlescent_colour(vehicles[i], RGBToInt(0, 0, 0))
end
end
system.wait(500)
end
end, nil)
system.wait(500)
menu.delete_thread(fun_menu_threads["alter_traffic_color"])
end
if (not feat_toggle_val.on) then
if fun_menu_threads["alter_traffic_color"] then
menu.delete_thread(fun_menu_threads["alter_traffic_color"])
end
end
end):set_str_data({"AHAIRDRESSERSCAR", "IWANTITPAINTEDBLACK"})
menu.add_feature("Custom Traffic Color", "toggle", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle)
local vehicles
local _input, k = input.get("Type in a hex color code.", "ffffff", 6, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
feat_toggle.on = false
return HANDLER_POP
end
while (feat_toggle.on) do
vehicles = vehicle.get_all_vehicles()
fun_menu_threads["custom_traffic_color"] = menu.create_thread(function()
while (feat_toggle.on) do
for i = 1, #vehicles do
requestControl(vehicles[i])
vehicle.set_vehicle_custom_primary_colour(vehicles[i], tonumber("0x" .. k))
vehicle.set_vehicle_custom_secondary_colour(vehicles[i], tonumber("0x" .. k))
end
system.wait(500)
end
end, nil)
system.wait(500)
menu.delete_thread(fun_menu_threads["custom_traffic_color"])
end
if (not feat_toggle.on) then
if fun_menu_threads["custom_traffic_color"] then
menu.delete_thread(fun_menu_threads["custom_traffic_color"])
end
end
end)
menu.add_feature("Crazy Vehicles", "value_str", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle_val)
local vehicles
while (feat_toggle_val.on) do
vehicles = vehicle.get_all_vehicles()
for i = 1, #vehicles do
if (vehicles[i] ~= ped.get_vehicle_ped_is_using(player.get_player_ped(player.player_id()))) then
requestControl(vehicles[i])
local driver = vehicle.get_ped_in_vehicle_seat(vehicles[i], -1)
requestControl(driver)
if (feat_toggle_val.value == 0) then
ai.task_vehicle_drive_wander(driver, vehicles[i], 50.0, 1024)
elseif (feat_toggle_val.value == 1) then
vehicle.set_vehicle_reduce_grip(vehicles[i], true)
ai.task_vehicle_drive_wander(driver, vehicles[i], 100.0, 4981308)
end
end
end
system.wait(10)
end
if (not feat_toggle_val.on) then
for i = 1, #vehicles do
vehicle.set_vehicle_reduce_grip(vehicles[i], false)
end
end
end):set_str_data({"v1", "v2"})
menu.add_feature("Vehicles Leak Oil", "toggle", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle_val)
local vehicles
while (feat_toggle_val.on) do
vehicles = vehicle.get_all_vehicles()
for i = 1, #vehicles do
requestControl(vehicles[i])
vehicle.set_vehicle_engine_torque_multiplier_this_frame(vehicles[i], math.random(1.0, 10.0))
fire.add_explosion(entity.get_entity_coords(vehicles[i]), 67, false, false, 0, player.player_id())
system.wait(10)
end
end
end)
menu.add_feature("Launch Random Vehicles", "toggle", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle)
local vehicles
while (feat_toggle.on) do
vehicles = vehicle.get_all_vehicles()
fun_menu_threads["launch_random_vehicles_req_control"] = menu.create_thread(function()
while (feat_toggle.on) do
for i = 1, #vehicles do
requestControl(vehicles[i])
entity.set_entity_velocity(vehicles[i], v3(math.random(-180, 180), math.random(-180, 180), math.random(-180, 180)))
end
system.wait(500)
end
end, nil)
system.wait(500)
menu.delete_thread(fun_menu_threads["launch_random_vehicles_req_control"])
end
if (not feat_toggle.on) then
if fun_menu_threads["launch_random_vehicles_req_control"] then
menu.delete_thread(fun_menu_threads["launch_random_vehicles_req_control"])
end
end
end)
menu.add_feature("Anti-Gravity Vehicles", "toggle", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle)
local vehicles
while (feat_toggle.on) do
vehicles = vehicle.get_all_vehicles()
fun_menu_threads["anti_gravity_vehicles"] = menu.create_thread(function()
while (feat_toggle.on) do
for i = 1, #vehicles do
requestControl(vehicles[i])
vehicle.set_vehicle_gravity_amount(vehicles[i], 0.0)
entity.set_entity_velocity(vehicles[i], v3(0, 0, 1))
end
system.wait(500)
end
end, nil)
system.wait(500)
menu.delete_thread(fun_menu_threads["anti_gravity_vehicles"])
end
if (not feat_toggle.on) then
if fun_menu_threads["anti_gravity_vehicles"] then
menu.delete_thread(fun_menu_threads["anti_gravity_vehicles"])
end
end
end)
menu.add_feature("Bouncing Vehicles", "value_str", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle_val)
local jump_heights = {3, 6, 10}
local vehicles
while (feat_toggle_val.on) do
vehicles = vehicle.get_all_vehicles()
for i = 1, #vehicles do
requestControl(vehicles[i])
local existing_velocity = entity.get_entity_velocity(vehicles[i])
entity.set_entity_velocity(vehicles[i], v3(existing_velocity.x, existing_velocity.y, jump_heights[feat_toggle_val.value+1]))
system.wait(25)
end
end
end):set_str_data({"Low Jump", "Medium Jump", "High Jump"})
-- Thanks Proddy
menu.add_feature("Vehicle Magnet Gun", "toggle", fun_menu_pages["vehicle_stuff"].id, function(feat_toggle)
while feat_toggle.on do
if player.is_player_free_aiming(player.player_id()) then
local offset = getOffsetFromCam(30)
local vehicles = getAllVehiclesInPlayerRange(player.player_id(), 140)
local r, g, b = rainbowRGB(10)
graphics.draw_marker(28, offset, v3(0, 90, 0), v3(0, 90, 0), v3(0.5, 0.5, 0.5), r, g, b, 35, false, false, 2, false, nil, "MarkerTypeDebugSphere", false)
local myVeh = ped.get_vehicle_ped_is_using(player.get_player_ped(player.player_id()))
for i = 1, #vehicles do
local veh = vehicles[i]
if veh ~= myVeh and requestControl(veh) then
local vehPos = entity.get_entity_coords(veh)
local vect = v3(offset.x, offset.y, offset.z)
vect = vect - vehPos
vect = vect * 1
entity.apply_force_to_entity(veh, 1, vect.x, vect.y, vect.z, 0, 0, 0.5, false, true)
end
end
end
system.wait()
end
end)
-- ____ _____ ___ ____ __ __ ______ ______ _ __ ______
-- / __ \/__ / / | / __ \ / //_/ /_ __// ____/| |/ //_ __/
-- / / / / / / / /| | / /_/ // ,< / / / __/ | / / /
--/ /_/ / / /__ / ___ | / _, _// /| | / / / /___ / | / /
--\____/ /____//_/ |_|/_/ |_|/_/ |_| /_/ /_____/ /_/|_| /_/
local oz_txt_color = {
R1 = 255,
G1 = 100,
B1 = 100,
A1 = 255
}
local oz_txt_color_F4 = {
R2 = 255,
G2 = 255,
B2 = 255,
A2 = 175
}
function ozarkTextRGB(hex)
hex = hex:gsub("#","")
oz_txt_color = {
R1 = tonumber("0x"..hex:sub(1, 2)),
G1 = tonumber("0x"..hex:sub(3, 4)),
B1 = tonumber("0x"..hex:sub(5, 6)),
A1 = hex:sub(8, 10)
}
end
function ozarkTextRGB_F4(hex)
hex = hex:gsub("#","")
oz_txt_color_F4 = {
R2 = tonumber("0x"..hex:sub(1, 2)),
G2 = tonumber("0x"..hex:sub(3, 4)),
B2 = tonumber("0x"..hex:sub(5, 6)),
A2 = hex:sub(8, 10)
}
end
menu.add_feature("Øzark Text Color", "action", fun_menu_pages["ozark_text"].id, function(feat)
local _input, k = input.get("Type in a hex color code.", "ffffff 175", 10, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
return HANDLER_POP
end
menu.notify("Color set to " .. k:sub(1, 6) .. " with alpha value of " .. k:sub(8, 10), fun_menu_ver, 10, "0x"..k:sub(5, 6)..k:sub(3, 4)..k:sub(1, 2))
ozarkTextRGB_F4(k)
end)
menu.add_feature("Øzark F4 Text Color", "action", fun_menu_pages["ozark_text"].id, function(feat)
local _input, k = input.get("Type in a hex color code.", "ff6464 255", 10, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
return HANDLER_POP
end
menu.notify("Color set to " .. k:sub(1, 6) .. " with alpha value of " .. k:sub(8, 10), fun_menu_ver, 10, "0x"..k:sub(5, 6)..k:sub(3, 4)..k:sub(1, 2))
ozarkTextRGB(k)
end)
local ozark_texts = {
"Hello we did an exit scam lol",
"Put me in coach.",
"We partnered with other cheat providers after we exit scammed for more monies.",
"BTC miner activated!",
"Øzark v27 is out now!",
"Dear beloved Øzark users, READ THIS MESSAGE IN ITS ENTIRETY.",
"ØzArK oN tOp!!!!!!1111!one!!111",
"2take1 on top!!!!!",
"blah blah blah we exit scammed you suckers!!!!!11!!!one111!!",
"We aRe BetTer ThAn 2TaKE1!!!!111!!one!!!1111!!",
"We took months to do a menu UI rewrite when it should have taken 1 month at the most lmao",
"We added a money drop option after the patch just so you can get banned faster.",
"Øzark exit scam lmao",
"exit scammed ya suckers",
"Øzark on bottom lol",
"We totally got a CnD from TakeTwo lmaoooooo"
}
function displayOzarkText(R1, G1, B1, A1, R2, G2, B2, A2, value)
ui.set_text_scale(0.4)
ui.set_text_font(0)
ui.set_text_centre(0)
ui.set_text_color(R1, G1, B1, A1)
if (value == 0) then
ui.draw_text('F4', v2(0.5, 0.1))
elseif (value == 1) then
ui.draw_text('NUMPAD -', v2(0.5, 0.1))
end
ui.set_text_scale(0.4)
ui.set_text_font(0)
ui.set_text_centre(0)
ui.set_text_color(R2, G2, B2, A2)
end
local uppercase_ozark_text = menu.add_feature("Use UPPERCASE TEXT", "toggle", fun_menu_pages["ozark_text"].id, function(feat_toggle)
settings["uppercase_ozark_text"] = feat_toggle.on
end)
uppercase_ozark_text.on = settings["uppercase_ozark_text"]
menu.add_feature("Random Øzark F4 Text", 'value_str', fun_menu_pages["ozark_text"].id, function(feat_toggle_val)
local x = math.random(1, #ozark_texts)
while (feat_toggle_val.on) do
system.wait(0)
displayOzarkText(oz_txt_color["R1"], oz_txt_color["G1"], oz_txt_color["B1"], oz_txt_color["A1"], oz_txt_color_F4["R2"], oz_txt_color_F4["G2"], oz_txt_color_F4["B2"], oz_txt_color_F4["A2"], feat_toggle_val.value)
if (settings["uppercase_ozark_text"]) then
ui.draw_text(ozark_texts[x]:upper(), v2(0.5, 0.075))
elseif (not settings["uppercase_ozark_text"]) then
ui.draw_text(ozark_texts[x], v2(0.5, 0.075))
end
end
end):set_str_data({"F4", "NUMPAD minus"})
menu.add_feature("Put Me in Coach Text", 'value_str', fun_menu_pages["ozark_text"].id, function(feat_toggle_val)
while (feat_toggle_val.on) do
system.wait(0)
if (oz_txt_color["R1"] and oz_txt_color["G1"] and oz_txt_color["B1"] and oz_txt_color["A1"] and oz_txt_color_F4["R2"] and oz_txt_color_F4["G2"] and oz_txt_color_F4["B2"] and oz_txt_color_F4["A2"] ~= nil) then
displayOzarkText(oz_txt_color["R1"], oz_txt_color["G1"], oz_txt_color["B1"], oz_txt_color["A1"], oz_txt_color_F4["R2"], oz_txt_color_F4["G2"], oz_txt_color_F4["B2"], oz_txt_color_F4["A2"], feat_toggle_val.value)
if (settings["uppercase_ozark_text"]) then
ui.draw_text("PUT ME IN COACH", v2(0.5, 0.075))
elseif (not settings["uppercase_ozark_text"]) then
ui.draw_text("Put Me in Coach", v2(0.5, 0.075))
end
else
feat_toggle_val.on = false
menu.notify("Your forgot to set \"Øzark Text Color\" and \"Øzark F4 Text Color\"", fun_menu_ver)
end
end
end):set_str_data({"F4", "NUMPAD minus"})
-- ______ __ __ ___ ____ ___ ______ ______ ______ ____ __ ____ ____ __ __ _____
-- / ____// / / // | / __ \ / | / ____//_ __// ____// __ \ / / / __ \ / __ \ / //_// ___/
-- / / / /_/ // /| | / /_/ // /| | / / / / / __/ / /_/ / / / / / / // / / // ,< \__ \
--/ /___ / __ // ___ | / _, _// ___ |/ /___ / / / /___ / _, _/ / /___/ /_/ // /_/ // /| | ___/ /
--\____//_/ /_//_/ |_|/_/ |_|/_/ |_|\____/ /_/ /_____//_/ |_| /_____/\____/ \____//_/ |_|/____/
fun_menu_pages["random_outfits"] = menu.add_feature("Random Outfits", "parent", fun_menu_pages["self_options"].id)
menu.add_feature("Random Tux Outfit", "action", fun_menu_pages["random_outfits"].id, function(feat)
wipeOutfitsClean(player.get_player_ped(player.player_id()))
randomTuxedoOutfit(player.get_player_ped(player.player_id()))
end)
menu.add_feature("Random Tropical Outfit", "action", fun_menu_pages["random_outfits"].id, function(feat)
wipeOutfitsClean(player.get_player_ped(player.player_id()))
randomTropicalOutfit(player.get_player_ped(player.player_id()))
end)
menu.add_feature("Random Beach Outfit", "action", fun_menu_pages["random_outfits"].id, function(feat)
wipeOutfitsClean(player.get_player_ped(player.player_id()))
randomBeachOutfit(player.get_player_ped(player.player_id()))
end)
menu.add_feature("Random Golf Outfit", "action", fun_menu_pages["random_outfits"].id, function(feat)
wipeOutfitsClean(player.get_player_ped(player.player_id()))
randomGolferOutfit(player.get_player_ped(player.player_id()))
end)
menu.add_feature("Make Self Barefoot", "action", fun_menu_pages["self_options"].id, function(feat)
if (player.is_player_female(player.player_id())) then
ped.set_ped_component_variation(player.get_player_ped(player.player_id()), 6, 35, 0, 0) -- feet
else
ped.set_ped_component_variation(player.get_player_ped(player.player_id()), 6, 34, 0, 0) -- feet
end
end)
menu.add_feature("Make Self Shirtless", "action", fun_menu_pages["self_options"].id, function(feat)
ped.set_ped_component_variation(player.get_player_ped(player.player_id()), 3, 15, 0, 0)
ped.set_ped_component_variation(player.get_player_ped(player.player_id()), 11, 15, 0, 0)
ped.set_ped_component_variation(player.get_player_ped(player.player_id()), 8, 15, 0, 0)
ped.set_ped_component_variation(player.get_player_ped(player.player_id()), 7, 0, 0, 0)
end)
menu.add_feature("Make Self an Old Codger", "action", fun_menu_pages["self_options"].id, function(feat)
local codger_colors = {
hair_color = select(math.random(1, 3), 26, 27, 28),
hair_highlight_color = select(math.random(1, 3), 26, 27, 28)
}
ped.set_ped_head_overlay(player.get_player_ped(player.player_id()), 3, 14, 1.0)
ped.set_ped_hair_colors(player.get_player_ped(player.player_id()), codger_colors["hair_color"], codger_colors["hair_highlight_color"]) -- hair colors
ped.set_ped_head_overlay_color(player.get_player_ped(player.player_id()), 1, 1, codger_colors["hair_color"], codger_colors["hair_highlight_color"]) -- facial hair colors
end)
menu.add_feature("Random Face Features", "action_value_str", fun_menu_pages["self_options"].id, function(feat_val)
if (feat_val.value == 0) then
extraFaceFeatures(player.get_player_ped(player.player_id()))
elseif (feat_val.value == 1) then
extraFaceFeatures(player.get_player_ped(player.player_id()))
evenMoreExtraFeatures(player.get_player_ped(player.player_id()))
end
end):set_str_data({"Base Face Features", "Extra Face Features"})
menu.add_feature("Random Headblend", "action_value_str", fun_menu_pages["self_options"].id, function(feat_val)
wipeHeadBlend(player.get_player_ped(player.player_id()))
if (feat_val.value == 0) then
randomizeHeadBlend(player.get_player_ped(player.player_id()))
elseif (feat_val.value == 1) then
randomizeHeadBlend(player.get_player_ped(player.player_id()))
extraFaceFeatures(player.get_player_ped(player.player_id()))
elseif (feat_val.value == 2) then
randomizeHeadBlend(player.get_player_ped(player.player_id()))
extraFaceFeatures(player.get_player_ped(player.player_id()))
evenMoreExtraFeatures(player.get_player_ped(player.player_id()))
end
end):set_str_data({"Base Face Shape", "w/ Face Features", "w/ More Face Features"})
menu.add_feature("Random Skin Tone", "action", fun_menu_pages["self_options"].id, function(feat)
randomizeSkinTone(player.get_player_ped(player.player_id()))
end)
menu.add_feature("Wipe Headblend", "action", fun_menu_pages["self_options"].id, function(feat)
wipeHeadBlend(player.get_player_ped(player.player_id()))
end)
menu.add_feature("Random Funky Hair Color", "action", fun_menu_pages["self_options"].id, function(feat_val)
local funky_hair = math.random(30, 54)
ped.set_ped_hair_colors(player.get_player_ped(player.player_id()), funky_hair, funky_hair) -- hair colors
ped.set_ped_head_overlay_color(player.get_player_ped(player.player_id()), 1, 1, funky_hair, funky_hair) -- facial hair colors
end)
menu.add_feature("Hairy Disco", "toggle", fun_menu_pages["self_options"].id, function(feat_toggle)
while (feat_toggle.on) do
ped.set_ped_hair_colors(player.get_player_ped(player.player_id()), math.random(30, 54), math.random(30, 54)) -- hair colors
ped.set_ped_head_overlay_color(player.get_player_ped(player.player_id()), 1, 1, math.random(30, 54), math.random(30, 54)) -- facial hair colors
system.wait(50)
end
end)
local wetness = menu.add_feature("Wetness", "slider", fun_menu_pages["self_options"].id, function(feat_slider)
if (feat_slider.on) then
natives.SET_PED_WETNESS_HEIGHT(player.get_player_ped(player.player_id()), feat_slider.value)
else
natives.CLEAR_PED_WETNESS(player.get_player_ped(player.player_id()))
end
end)
wetness.max = 1.0
wetness.min = -1.0
wetness.mod = 0.05
wetness.value = -1.0
local KeyW = MenuKey()
KeyW:push_vk(0x57)
menu.add_feature("Spin", "toggle", fun_menu_pages["self_options"].id, function(feat_toggle)
while (feat_toggle.on) do
if (not KeyW:is_down()) then
entity.set_entity_heading(player.get_player_ped(player.player_id()), math.random(-180, 180))
end
system.wait()
end
end)
menu.add_feature("Spin 360", "toggle", fun_menu_pages["self_options"].id, function(feat_toggle)
while (feat_toggle.on) do
if (not KeyW:is_down()) then
entity.set_entity_rotation(player.get_player_ped(player.player_id()), v3(math.random(-180, 180), math.random(-180, 180), math.random(-180, 180)))
end
system.wait()
end
end)
menu.add_feature("Play Dead", "value_str", fun_menu_pages["self_options"].id, function(feat_toggle_val)
local random_choice = math.random(1, 2)
if (random_choice == 1) then
requestAnimDictAndSet("facials@gen_male@base", "dead_1")
else
requestAnimDictAndSet("facials@gen_male@base", "dead_2")
end
scaleforms["wasted"] = graphics.request_scaleform_movie("MP_BIG_MESSAGE_FREEMODE")
if (not ped.can_ped_ragdoll(player.get_player_ped(player.player_id()))) then
ped.set_ped_can_ragdoll(player.get_player_ped(player.player_id()), true)
end
if (feat_toggle_val.on) then
fun_menu_threads["play_dead_thread"] = menu.create_thread(function()
while (feat_toggle_val.on) do
natives.PLAY_FACIAL_ANIM(player.get_player_ped(player.player_id()), "dead_"..tostring(random_choice), "facials@gen_male@base")
if (feat_toggle_val.value == 0) then
ped.set_ped_to_ragdoll(player.get_player_ped(player.player_id()), 1500, 0, 0)
elseif (feat_toggle_val.value == 1) then
show_wasted_screen(scaleforms["wasted"], "WASTED", "You just played dead.", 0, false, false)
ped.set_ped_to_ragdoll(player.get_player_ped(player.player_id()), 1500, 0, 0)
end
system.wait(0)
end
end, nil)
end
if (not feat_toggle_val.on) then
menu.delete_thread(fun_menu_threads["play_dead_thread"])
end
end):set_str_data({"v1", "v2"})
menu.add_feature("Clumsiness", "value_str", fun_menu_pages["self_options"].id, function(feat_toggle_val)
if feat_toggle_val.on then
local time_start, time_end
if (feat_toggle_val.value == 0) then
time_start, time_end = 10, 30
elseif (feat_toggle_val.value == 1) then
time_start, time_end = 5, 15
elseif (feat_toggle_val.value == 2) then
time_start, time_end = 1, 5
end
fun_menu_threads["clumsy_thread"] = menu.create_thread(function()
while (feat_toggle_val.on) do
ped.set_ped_to_ragdoll(player.get_player_ped(player.player_id()), math.random(1, 25) * 100, math.random(1, 25) * 100, math.random(-25, 25))
system.wait(math.random(time_start, time_end) * 1000)
end
end, nil)
if (feat_toggle_val.value == 1 or feat_toggle_val.value == 2) then
while (feat_toggle_val.on) do
if ped.is_ped_ragdoll(player.get_player_ped(player.player_id())) then
natives.SET_PED_RAGDOLL_ON_COLLISION(player.get_player_ped(player.player_id()), false)
else
natives.SET_PED_RAGDOLL_ON_COLLISION(player.get_player_ped(player.player_id()), true)
end
system.wait(1000)
end
end
end
if (not feat_toggle_val.on) then
natives.SET_PED_RAGDOLL_ON_COLLISION(player.get_player_ped(player.player_id()), false)
if fun_menu_threads["clumsy_thread"] then
menu.delete_thread(fun_menu_threads["clumsy_thread"])
end
end
end):set_str_data({"Clumsy", "Really Clumsy", "Extremely Clumsy"})
menu.add_feature("Trip on Something", "action", fun_menu_pages["self_options"].id, function(feat)
ped.set_ped_to_ragdoll(player.get_player_ped(player.player_id()), math.random(1, 25) * 100, math.random(1, 25) * 100, math.random(-25, 25))
end)
-- _ __ ____ ______ _____ ______ __ __ ______ ______
-- / | / // __ \ / ____/ / ___//_ __// / / // ____// ____/
-- / |/ // /_/ // / \__ \ / / / / / // /_ / /_
-- / /| // ____// /___ ___/ / / / / /_/ // __/ / __/
--/_/ |_//_/ \____/ /____/ /_/ \____//_/ /_/
fun_menu_pages["follower_menu"] = menu.add_feature("Followers", "parent", fun_menu_pages["npc_stuff"].id, function(feat)
menu.notify("Avoid using these features in small interior spaces or the NPCs will bug out.", fun_menu_ver)
end)
----### Configure follower attributes. ###----
local follower_peds = {}
local outfits_value
local follower_outfits = menu.add_feature("Follower(s)' Outfits", "autoaction_value_str", fun_menu_pages["follower_menu"].id, function(val)
outfits_value = val
menu.notify("Follower outfit set!", fun_menu_ver)
end):set_str_data({"Tuxedo", "Tropical", "Own Outfit"})
menu.add_feature("Can Followers Enter Vehicle?", "action_value_str", fun_menu_pages["follower_menu"].id, function(val)
local player_veh = player.get_player_vehicle(player.player_id())
if (val.value == 0) then
for i = 1, #follower_peds do
if (player.is_player_in_any_vehicle(player.player_id())) then
ped.set_ped_into_vehicle(follower_peds[i], player_veh, vehicle.get_free_seat(player_veh))
else
ai.task_leave_vehicle(follower_peds[i], player_veh, 1)
end
end
else
for i = 1, #follower_peds do
ai.task_leave_vehicle(follower_peds[i], player_veh, 1)
end
end
end):set_str_data({"Yes", "No"})
menu.add_feature("Alter Follower(s)' Outfits", "action_value_str", fun_menu_pages["follower_menu"].id, function(feat_val)
for i = 1, #follower_peds do
requestControl(follower_peds[i])
if (feat_val.value == 0) then
wipeOutfitsClean(follower_peds[i])
randomTuxedoOutfit(follower_peds[i])
if (math.random(0, 10) == 4) then
if (entity.get_entity_model_hash(follower_peds[i]) == 2627665880) then
ped.set_ped_component_variation(follower_peds[i], 6, 35, 0, 0)
else
ped.set_ped_component_variation(follower_peds[i], 6, 34, 0, 0)
end
end
elseif (feat_val.value == 1) then
wipeOutfitsClean(follower_peds[i])
randomTropicalOutfit(follower_peds[i])
elseif (feat_val.value == 2) then
wipeOutfitsClean(follower_peds[i])
copyPlayerOutfitToClone(player.get_player_ped(player.player_id()), follower_peds[i])
end
end
end):set_str_data({"Tuxedo", "Tropical", "Copy Own Outfit"})
local follower_count = menu.add_feature("Follower Count", "autoaction_value_i", fun_menu_pages["follower_menu"].id)
follower_count.min = 1
follower_count.max = 5
follower_count.mod = 1
follower_count.value = 1
local follower_range = menu.add_feature("Follower Wander Range", "autoaction_value_i", fun_menu_pages["follower_menu"].id)
follower_range.min = 5
follower_range.max = 30
follower_range.mod = 1
follower_range.value = 2
local follower_wander = menu.add_feature("Wandering Follower(s)?", "toggle", fun_menu_pages["follower_menu"].id, function(feat_toggle)
settings["wandering_follower"] = feat_toggle.on
end)
follower_wander.on = settings["wandering_follower"]
----### Spawn in some clones to follow your around. ###----
menu.add_feature("Spawn Clone Follower(s)", "toggle", fun_menu_pages["follower_menu"].id, function(feat_toggle)
local MP_ped
if (player.is_player_female(player.player_id())) then
MP_ped = 0x9C9EFFD8
else
MP_ped = 0x705E61F2
end
for i = 1, follower_count.value do
follower_peds[i] = ped.create_ped(1, MP_ped, player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), math.random(0, 359), true, false)
createClone(player.get_player_ped(player.player_id()), follower_peds[i])
if (outfits_value == nil) then
wipeOutfitsClean(follower_peds[i])
randomTuxedoOutfit(follower_peds[i])
elseif (outfits_value.value == 0) then
wipeOutfitsClean(follower_peds[i])
randomTuxedoOutfit(follower_peds[i])
elseif (outfits_value.value == 1) then
wipeOutfitsClean(follower_peds[i])
randomTropicalOutfit(follower_peds[i])
elseif (outfits_value.value == 2) then
wipeOutfitsClean(follower_peds[i])
copyPlayerOutfitToClone(player.get_player_ped(player.player_id()), follower_peds[i])
end
system.wait(100)
entities[#entities + 1] = follower_peds[i]
addBlip(follower_peds[i], 280)
end
while feat_toggle.on do
for i = 1, follower_count.value do
requestControl(follower_peds[i])
if (getDistanceBetweenCoords(player.get_player_coords(player.player_id()), entity.get_entity_coords(follower_peds[i])) <= follower_range.value + 1) then
if (settings["wandering_follower"]) then
ai.task_go_to_coord_by_any_means(follower_peds[i], player.get_player_coords(player.player_id()) + v3(math.random(-follower_range.value, follower_range.value), math.random(-follower_range.value, follower_range.value), 0), 1, 0, true, 1, 0.0)
end
else
ai.task_goto_entity(follower_peds[i], player.get_player_ped(player.player_id()), -1, -1, 25.0)
end
if (entity.is_entity_dead(follower_peds[i])) then
feat_toggle.on = false
end
end
system.wait(5000)
end
for i = 1, follower_count.value do
if (not feat_toggle.on) then
entity.set_entity_as_mission_entity(follower_peds[i], true, true)
entity.delete_entity(follower_peds[i])
system.wait(250)
follower_wander.on = false
settings["wandering_follower"] = false
end
end
end)
----### Spawn in some random generated gtao characters to follow your around. ###----
menu.add_feature("Spawn Follower(s)", "value_str", fun_menu_pages["follower_menu"].id, function(feat_toggle_val)
local MP_ped
local zero_or_one
for i = 1, follower_count.value do
zero_or_one = math.random(0, 1)
if (zero_or_one == 1) then
MP_ped = 0x9C9EFFD8
else
MP_ped = 0x705E61F2
end
requestModel(MP_ped)
follower_peds[i] = ped.create_ped(1, MP_ped, player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), math.random(0, 359), true, false)
if (feat_toggle_val.value == 0) then
removeExtraFaceFeatures(follower_peds[i])
randomizeHeadBlend(follower_peds[i])
elseif (feat_toggle_val.value == 1) then
randomizeHeadBlend(follower_peds[i])
extraFaceFeatures(follower_peds[i])
elseif (feat_toggle_val.value == 2) then
randomizeHeadBlend(follower_peds[i])
extraFaceFeatures(follower_peds[i])
evenMoreExtraFeatures(follower_peds[i])
end
if (outfits_value == nil) then
wipeOutfitsClean(follower_peds[i])
randomTuxedoOutfit(follower_peds[i])
elseif (outfits_value.value == 0) then
wipeOutfitsClean(follower_peds[i])
randomTuxedoOutfit(follower_peds[i])
elseif (outfits_value.value == 1) then
wipeOutfitsClean(follower_peds[i])
randomTropicalOutfit(follower_peds[i])
end
system.wait(100)
entities[#entities + 1] = follower_peds[i]
addBlip(follower_peds[i], 280)
end
while feat_toggle_val.on do
for i = 1, follower_count.value do
requestControl(follower_peds[i])
if (getDistanceBetweenCoords(player.get_player_coords(player.player_id()), entity.get_entity_coords(follower_peds[i])) <= follower_range.value + 1) then
if (settings["wandering_follower"]) then
ai.task_go_to_coord_by_any_means(follower_peds[i], player.get_player_coords(player.player_id()) + v3(math.random(-follower_range.value, follower_range.value), math.random(-follower_range.value, follower_range.value), 0), 1, 0, true, 1, 0.0)
end
else
ai.task_goto_entity(follower_peds[i], player.get_player_ped(player.player_id()), -1, -1, 25.0)
end
if (entity.is_entity_dead(follower_peds[i])) then
feat_toggle_val.on = false
end
end
system.wait(5000)
end
if (not feat_toggle_val.on) then
for i = 1, follower_count.value do
entity.set_entity_as_mission_entity(follower_peds[i], true, true)
entity.delete_entity(follower_peds[i])
system.wait(250)
end
follower_wander.on = false
settings["wandering_follower"] = false
end
end):set_str_data({"Base Face Shape", "w/ Face Features", "w/ More Face Features"})
menu.add_feature("Make Follower(s) Old Codgers", "action", fun_menu_pages["follower_menu"].id, function(feat)
local codger_colors = {
hair_color = select(math.random(1, 3), 26, 27, 28),
hair_highlight_color = select(math.random(1, 3), 26, 27, 28)
}
for i = 1, follower_count.value do
ped.set_ped_head_overlay(follower_peds[i], 3, 14, 1.0)
ped.set_ped_hair_colors(follower_peds[i], codger_colors["hair_color"], codger_colors["hair_highlight_color"]) -- hair colors
ped.set_ped_head_overlay_color(follower_peds[i], 1, 1, codger_colors["hair_color"], codger_colors["hair_highlight_color"]) -- facial hair colors
end
end)
menu.add_feature("Reroll Followers' Hairstyle", "action", fun_menu_pages["follower_menu"].id, function(feat)
for i = 1, follower_count.value do
randomizeHairStyles(follower_peds[i])
end
end)
menu.add_feature("Spawn Bird:", "action_value_str", fun_menu_pages["npc_stuff"].id, function(feat_value)
requestModel(gameplay.get_hash_key(BirdModels[feat_value.value + 1]))
local bird = ped.create_ped(5, gameplay.get_hash_key(BirdModels[feat_value.value + 1]), player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), math.random(0, 359), true, false)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key(BirdModels[feat_value.value + 1]))
ai.task_wander_standard(bird, 0.0, true)
entities[#entities + 1] = bird
end):set_str_data(BirdNames)
menu.add_feature("Spawn Wild Animal:", "action_value_str", fun_menu_pages["npc_stuff"].id, function(feat_value)
requestModel(gameplay.get_hash_key(WildAnimalModels[feat_value.value + 1]))
local wild_animal = ped.create_ped(5, gameplay.get_hash_key(WildAnimalModels[feat_value.value + 1]), player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), math.random(0, 359), true, false)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key(WildAnimalModels[feat_value.value + 1]))
ai.task_wander_standard(wild_animal, 1.0, false)
entities[#entities + 1] = wild_animal
end):set_str_data(WildAnimalNames)
-- ____ ______ ______ _____
-- / __ \ / ____//_ __// ___/
-- / /_/ // __/ / / \__ \
-- / ____// /___ / / ___/ /
--/_/ /_____/ /_/ /____/
local _pets = {}
function drawPetName(pets, name)
local retrn, screen = graphics.project_3d_coord(entity.get_entity_coords(pets))
if retrn then
local screen2 = v2(screen.x/graphics.get_screen_width(), (screen.y/graphics.get_screen_height()))
ui.set_text_scale(0.2)
ui.set_text_font(0)
ui.set_text_centre(0)
ui.set_text_color(144, 151, 245, 255)
ui.set_text_outline(true)
local head_pos = screen2.y-0.2
ui.draw_text(name, screen2)
end
end
local wander = menu.add_feature("Wandering Pet(s)", "toggle", fun_menu_pages["pet_menu"].id, function(feat_toggle)
settings["wandering_pet"] = feat_toggle.on
end)
wander.on = settings["wandering_pet"]
--[[menu.add_feature("Draw Pet Names", "toggle", fun_menu_pages["pet_menu"].id, function(feat_toggle)
while (feat_toggle.on) do
for i = 1, #_pets do
drawPetName(i, "Cat")
end
system.wait()
for pet, name in pairs(_pets) do
drawPetName(pet, name)
end
end
end)]]
--[[menu.add_feature("Clear Pets List", "action", fun_menu_pages["pet_menu"].id, function(feat_toggle)
_pets = {}
menu.notify("Pets list cleared.")
end)]]
menu.add_feature("Get a Cat", "toggle", fun_menu_pages["pet_menu"].id, function(feat_toggle)
--[[local _input, k = input.get("Type pet name.", "Cat", -1, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
feat_toggle.on = false
return HANDLER_POP
end]]
requestAnimDictAndSet("creatures@cat@amb@world_cat_sleeping_ground@base", "base")
requestModel(gameplay.get_hash_key("A_C_Cat_01"))
local _cat = ped.create_ped(5, gameplay.get_hash_key("A_C_Cat_01"), player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), 0, true, false)
entity.set_entity_god_mode(_cat, true)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("A_C_Cat_01"))
--table.insert(_pets, {k, _cat})
--_pets[#_pets + 1] = _cat
entities[#entities + 1] = _cat
addBlip(_cat, 442)
while feat_toggle.on do
requestControl(_cat)
animalAI(_cat, player.player_id(), "creatures@cat@amb@world_cat_sleeping_ground@base", "base", wander.on)
system.wait(5000)
end
if (not feat_toggle.on) then
entity.set_entity_as_mission_entity(_cat, true, true)
entity.delete_entity(_cat)
unloadAnim("creatures@cat@amb@world_cat_sleeping_ground@base", "base")
end
end)
menu.add_feature("Get a Retriever", "toggle", fun_menu_pages["pet_menu"].id, function(feat_toggle)
requestAnimDictAndSet("creatures@retriever@amb@world_dog_sitting@base", "base")
requestModel(gameplay.get_hash_key("A_C_Retriever"))
local _retriever = ped.create_ped(5, gameplay.get_hash_key("A_C_Retriever"), player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), 0, true, false)
entity.set_entity_god_mode(_retriever, true)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("A_C_Retriever"))
entities[#entities + 1] = _retriever
addBlip(_retriever, 442)
while feat_toggle.on do
requestControl(_retriever)
animalAI(_retriever, player.player_id(), "creatures@retriever@amb@world_dog_sitting@base", "base", wander.on)
system.wait(5000)
end
if (not feat_toggle.on) then
entity.set_entity_as_mission_entity(_retriever, true, true)
entity.delete_entity(_retriever)
unloadAnim("creatures@retriever@amb@world_dog_sitting@base", "base")
end
end)
menu.add_feature("Get a Pug", "toggle", fun_menu_pages["pet_menu"].id, function(feat_toggle)
requestAnimDictAndSet("creatures@pug@amb@world_dog_sitting@base", "base")
requestModel(gameplay.get_hash_key("A_C_Pug"))
local _pug = ped.create_ped(5, gameplay.get_hash_key("A_C_Pug"), player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), 0, true, false)
entity.set_entity_god_mode(_pug, true)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("A_C_Pug"))
entities[#entities + 1] = _pug
addBlip(_pug, 442)
while feat_toggle.on do
requestControl(_pug)
animalAI(_pug, player.player_id(), "creatures@pug@amb@world_dog_sitting@base", "base", wander.on)
system.wait(5000)
end
if (not feat_toggle.on) then
entity.set_entity_as_mission_entity(_pug, true, true)
entity.delete_entity(_pug)
unloadAnim("creatures@pug@amb@world_dog_sitting@base", "base")
end
end)
menu.add_feature("Get a Rottweiler", "toggle", fun_menu_pages["pet_menu"].id, function(feat_toggle)
requestAnimDictAndSet("creatures@rottweiler@amb@world_dog_sitting@base", "base")
requestModel(gameplay.get_hash_key("A_C_Rottweiler"))
local _rottweiler = ped.create_ped(5, gameplay.get_hash_key("A_C_Rottweiler"), player.get_player_coords(player.player_id()) + v3(math.random(-2, 2), math.random(-2, 2), 0), 0, true, false)
entity.set_entity_god_mode(_rottweiler, true)
streaming.set_model_as_no_longer_needed(gameplay.get_hash_key("A_C_Rottweiler"))
entities[#entities + 1] = _rottweiler
addBlip(_rottweiler, 442)
while feat_toggle.on do
requestControl(_rottweiler)
animalAI(_rottweiler, player.player_id(), "creatures@rottweiler@amb@world_dog_sitting@base", "base", wander.on)
system.wait(5000)
end
if (not feat_toggle.on) then
entity.set_entity_as_mission_entity(_rottweiler, true, true)
entity.delete_entity(_rottweiler)
unloadAnim("creatures@rottweiler@amb@world_dog_sitting@base", "base")
end
end)
-- __ ___ ____ _____ ______ ______ __ __ ___ _ __ ______ ____ __ __ _____
-- / |/ // _// ___/ / ____// ____// / / / / | / | / // ____// __ \ / / / // ___/
-- / /|_/ / / / \__ \ / / / __/ / / / / / /| | / |/ // __/ / / / // / / / \__ \
-- / / / /_/ / ___/ // /___ / /___ / /___ / /___ / ___ | / /| // /___ / /_/ // /_/ / ___/ /
--/_/ /_//___/ /____/ \____//_____//_____//_____//_/ |_|/_/ |_//_____/ \____/ \____/ /____/
fun_menu_pages["animations"] = menu.add_feature("Animations", "parent", fun_menu_pages["miscellaneous"].id)
local time_in_ms = menu.add_feature("Snowball Explosion (ms)", "value_i", fun_menu_pages["miscellaneous"].id, function(feat_toggle)
while feat_toggle.on do
fire.add_explosion(player.get_player_coords(player.player_id()) - v3(0, 0, 0.5), 39, true, false, 0, player.player_id())
system.wait(feat_toggle.value)
end
end)
time_in_ms.min = 500
time_in_ms.max = 1000
time_in_ms.mod = 50
time_in_ms.value = 750
menu.add_feature("Rockstar Chat", "action_value_str", fun_menu_pages["miscellaneous"].id, function(feat_val)
local _input, k = input.get("Type to chat.", "test", -1, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
return HANDLER_POP
end
local special_icons = {
"¦",
"∑",
"Ω"
}
network.send_chat_message(string.format(special_icons[feat_val.value+1].." %s", k), false)
end):set_str_data({"R* Verified Icon", "R* Icon", "Lock Icon"})
menu.add_feature("Asteroid Shower", "toggle", fun_menu_pages["miscellaneous"].id, function(feat_toggle)
local spawned_asteroids = {}
requestModel(3751297495)
while (feat_toggle.on) do
local asteroid = object.create_object(3751297495, player.get_player_coords(player.player_id()) + v3(math.random(-250, 250), math.random(-250, 250), math.random(120, 240)), true, true)
requestControl(asteroid)
streaming.set_model_as_no_longer_needed(3751297495)
entity.apply_force_to_entity(asteroid, 3, math.random(-50, 50), math.random(-50, 50), -5000, 0, 0, 0, false, true)
spawned_asteroids[#spawned_asteroids + 1] = asteroid
entities[#entities + 1] = asteroid
fun_menu_threads["asteroid_downforce"] = menu.create_thread(function()
while feat_toggle.on do
for i = 1, #spawned_asteroids do
entity.apply_force_to_entity(spawned_asteroids[i], 3, math.random(-50, 50), math.random(-50, 50), -5000, 0, 0, 0, false, true)
system.wait()
end
end
end, nil)
for i = 1, #spawned_asteroids do
if natives.GET_ENTITY_HEIGHT_ABOVE_GROUND(spawned_asteroids[i]):__tonumber() < 25 then
requestControl(spawned_asteroids[i])
graphics.set_next_ptfx_asset("scr_xm_orbital")
requestPTFX("scr_xm_orbital")
fire.add_explosion(entity.get_entity_coords(spawned_asteroids[i]) - v3(0, 0, 10), 8, true, false, 1, 0)
fire.add_explosion(entity.get_entity_coords(spawned_asteroids[i]) - v3(0, 0, 10), 59, true, false, 1, 0)
graphics.start_networked_ptfx_non_looped_at_coord("scr_xm_orbital_blast", entity.get_entity_coords(spawned_asteroids[i]) - v3(0, 0, 10), v3(0, 180, 0), 10.0, true, true, true)
entity.set_entity_as_no_longer_needed(spawned_asteroids[i])
entity.delete_entity(spawned_asteroids[i])
end
end
system.wait(1000)
menu.delete_thread(fun_menu_threads["asteroid_downforce"])
end
if (not feat_toggle.on) then
for i = 1, #spawned_asteroids do
requestControl(spawned_asteroids[i])
entity.set_entity_as_no_longer_needed(spawned_asteroids[i])
entity.delete_entity(spawned_asteroids[i])
end
menu.delete_thread(fun_menu_threads["asteroid_downforce"])
spawned_asteroids = {}
end
end)
-- thanks Gee-Man
local minecraft = menu.add_feature("Minecraft Gun", "value_str", fun_menu_pages["miscellaneous"].id, function(feat_toggle_val)
local junk, pos,temp_block,time
local spawned_blocks = {}
local sandblocks = {
"prop_mb_sandblock_01",
"prop_mb_sandblock_02",
"prop_mb_sandblock_03_cr",
"prop_mb_sandblock_04",
"prop_mb_sandblock_05_cr"
}
local block = gameplay.get_hash_key(sandblocks[feat_toggle_val.value + 1])
local function ask_control(_ent)
for i=1, 50 do
if not entity.is_an_entity(_ent) then
return false
elseif network.has_control_of_entity(_ent) then
return true
else
network.request_control_of_entity(_ent)
system.wait(1)
end
end
if entity.is_an_entity(_ent) then
return network.has_control_of_entity(_ent)
end
return false
end
local function remove_temp()
if temp_block ~= nil then
ask_control(temp_block)
entity.set_entity_as_no_longer_needed(temp_block)
entity.delete_entity(temp_block)
temp_block = nil
end
end
while (feat_toggle_val.on) do
while (feat_toggle_val.on) and player.is_player_free_aiming(player.player_id()) do
system.wait()
if block ~= gameplay.get_hash_key(sandblocks[feat_toggle_val.value + 1]) then -- silly, but it allows changing the block while aiming
remove_temp()
block = gameplay.get_hash_key(sandblocks[feat_toggle_val.value + 1])
end
junk, pos = _GF_raycast_vector(temp_block)
if junk then
if temp_block == nil then
requestModel(block)
temp_block = object.create_object(block, pos, true, false)
--entity.set_entity_collision(temp_block,false,false) -- just an option
streaming.set_model_as_no_longer_needed(block)
elseif ped.is_ped_shooting(player.get_player_ped(player.player_id())) then
time = utils.time_ms() + 169
while player.is_player_free_aiming(player.player_id()) and time > utils.time_ms() do --to prevent multiple spawns with fast firing weapon
system.wait()
end
--ask_control(temp_block) -- just an option
--entity.set_entity_collision(temp_block,true,true) -- just an option
spawned_blocks[#spawned_blocks + 1] = temp_block
temp_block = nil
elseif ask_control(temp_block) then
entity.set_entity_coords_no_offset(temp_block, pos)
end
end
end
remove_temp()
system.wait()
end
if (not feat_toggle_val.on) then
for i = 1, #spawned_blocks do
if ask_control(spawned_blocks[i]) then
entity.set_entity_as_no_longer_needed(spawned_blocks[i])
entity.delete_entity(spawned_blocks[i])
end
end
spawned_blocks = {} -- i dont think this is necessary
end
end)minecraft:set_str_data({"Singlular", "Row of 3", "Stacked Row of 3", "Corner", "Dead-end"})
-- thanks Gee-Man
local sphere = menu.add_feature("Fire Aura", "value_i", fun_menu_pages["miscellaneous"].id, function(feat_toggle)
local nearby_peds
local actually_nearby_peds = {}
local already_burned = {}
local time = utils.time_ms() - 1
while (feat_toggle.on) do
if time < utils.time_ms() then
nearby_peds = ped.get_all_peds()
actually_nearby_peds = {}
already_burned = {}
for i = 1, #nearby_peds do
if not ped.is_ped_a_player(nearby_peds[i]) and player.get_player_coords(player.player_id()):magnitude(entity.get_entity_coords(nearby_peds[i])) <= feat_toggle.value then
actually_nearby_peds[#actually_nearby_peds+1] = nearby_peds[i]
end
end
time = utils.time_ms() + 500
end
for i = 1, #actually_nearby_peds do
if (entity.is_an_entity(actually_nearby_peds[i])) then
if not entity.is_entity_on_fire(actually_nearby_peds[i]) and not entity.is_entity_dead(actually_nearby_peds[i]) and not already_burned[actually_nearby_peds[i]] and not ped.is_ped_in_any_vehicle(actually_nearby_peds[i]) then
fire.add_explosion(entity.get_entity_coords(actually_nearby_peds[i]), 3, false, false, 0.0, actually_nearby_peds[i])
already_burned[actually_nearby_peds[i]] = true
end
end
end
graphics.draw_marker(28, player.get_player_coords(player.player_id()), v3(0, 90, 0), v3(0, 90, 0), v3(feat_toggle.value, feat_toggle.value, feat_toggle.value), 0, 255, 0, 35, false, false, 2, false, nil, "MarkerTypeDebugSphere", false)
system.wait()
end
--draw_marker(Any type, v3 pos, v3 dir, v3 rot, v3 scale, int red, int green, int blue, int alpha, bool bobUpAndDown, bool faceCam, int a12, bool rotate, string|nil textureDict, string|nil textureName, bool drawOntEnts)
end)
sphere.max = 100
sphere.min = 5
sphere.mod = 5
sphere.value = 15
local sphere2 = menu.add_feature("EMP Aura", "value_i", fun_menu_pages["miscellaneous"].id, function(feat_toggle)
local nearby_peds
local actually_nearby_peds = {}
local already_burned = {}
local time = utils.time_ms() - 1
while (feat_toggle.on) do
if time < utils.time_ms() then
nearby_peds = ped.get_all_peds()
actually_nearby_peds = {}
already_burned = {}
for i = 1, #nearby_peds do
if not ped.is_ped_a_player(nearby_peds[i]) and player.get_player_coords(player.player_id()):magnitude(entity.get_entity_coords(nearby_peds[i])) <= feat_toggle.value then
actually_nearby_peds[#actually_nearby_peds+1] = nearby_peds[i]
end
end
time = utils.time_ms() + 500
end
for i = 1, #actually_nearby_peds do
if (entity.is_an_entity(actually_nearby_peds[i])) then
if not entity.is_entity_on_fire(actually_nearby_peds[i]) and not entity.is_entity_dead(actually_nearby_peds[i]) and not already_burned[actually_nearby_peds[i]] and ped.is_ped_in_any_vehicle(actually_nearby_peds[i]) then
fire.add_explosion(entity.get_entity_coords(actually_nearby_peds[i]), 65, false, false, 0.0, actually_nearby_peds[i])
already_burned[actually_nearby_peds[i]] = true
end
end
end
graphics.draw_marker(28, player.get_player_coords(player.player_id()), v3(0, 90, 0), v3(0, 90, 0), v3(feat_toggle.value, feat_toggle.value, feat_toggle.value), 0, 255, 0, 35, false, false, 2, false, nil, "MarkerTypeDebugSphere", false)
system.wait()
end
--draw_marker(Any type, v3 pos, v3 dir, v3 rot, v3 scale, int red, int green, int blue, int alpha, bool bobUpAndDown, bool faceCam, int a12, bool rotate, string|nil textureDict, string|nil textureName, bool drawOntEnts)
end)
sphere2.max = 100
sphere2.min = 5
sphere2.mod = 5
sphere2.value = 15
menu.add_feature("News", "toggle", fun_menu_pages["miscellaneous"].id, function(feat_toggle)
local news = graphics.request_scaleform_movie("BREAKING_NEWS")
while not graphics.has_scaleform_movie_loaded(news) do
system.yield(0)
end
graphics.begin_scaleform_movie_method(news, "SET_TEXT")
graphics.scaleform_movie_method_add_param_texture_name_string("fewqfwqefqewqweffewqfeqw")
graphics.scaleform_movie_method_add_param_texture_name_string("You have been banned from Grand Theft Auto Online permanently.")
graphics.end_scaleform_movie_method(news)
while (feat_toggle.on) do
graphics.draw_scaleform_movie_fullscreen(news, 255, 255, 255, 255, 0)
system.yield(0)
end
graphics.set_scaleform_movie_as_no_longer_needed(news)
end)
menu.add_feature("Become the Black Hole", "toggle", fun_menu_pages["miscellaneous"].id, function(feat_toggle)
while feat_toggle.on do
if menu.get_feature_by_hierarchy_key("local.player_options.god") ~= nil then
menu.get_feature_by_hierarchy_key("local.player_options.god").on = true
end
local offset = player.get_player_coords(player.player_id())
local vehicles = getAllVehiclesInPlayerRange(player.player_id(), 140)
local myVeh = ped.get_vehicle_ped_is_using(player.get_player_ped(player.player_id()))
graphics.draw_marker(28, offset, v3(0, 90, 0), v3(0, 90, 0), v3(1.5, 1.5, 1.5), 0, 0, 0, 255, false, false, 2, false, nil, "MarkerTypeDebugSphere", false)
for i = 1, #vehicles do
local veh = vehicles[i]
if veh ~= myVeh and requestControl(veh) then
local vehPos = entity.get_entity_coords(veh)
local vect = v3(offset.x, offset.y, offset.z)
vect = vect - vehPos
vect = vect * 0.5
entity.apply_force_to_entity(veh, 1, vect.x, vect.y, vect.z, 0, 0, 0.5, false, true)
end
end
system.wait()
end
if (not feat_toggle.on) then
menu.get_feature_by_hierarchy_key("local.player_options.god").on = false
end
end)
--[[**Fun Menu v0.5.1 & Troll Menu v1.0.1**
Festive Stuff
+ Added "Create a Firework Show"
* Updated "Horsetrack Firework Show"
Vehicle Stuff
+ Added "Vehicle Magnet Gun" - thanks Proddy
Character Looks
* Renamed to "Self Options"
NPC Stuff
Followers
* Updates spawn followers to not have to set an outfit value before spawning.
Miscellaneous
+ Added "Become the Black Hole"
* Moved "Play Dead" to "Self Options"
Player Features
+ Added "Autopilot to Player"]]
menu.add_feature("Hands Up Animation", "toggle", fun_menu_pages["animations"].id, function(feat_toggle)
requestAnimDictAndSet("missminuteman_1ig_2", "handsup_base")
local anim_duration = natives.GET_ANIM_DURATION("missminuteman_1ig_2", "handsup_base"):__tonumber()
while (feat_toggle.on) do
ai.task_play_anim(player.get_player_ped(player.player_id()), "missminuteman_1ig_2", "handsup_base", 2.0, 2.0, math.floor(anim_duration * 1000), 01, 0, false, false, false)
system.wait(math.floor(anim_duration * 1000))
end
if (not feat_toggle.on) then
natives.CLEAR_PED_TASKS(player.get_player_ped(player.player_id()))
unloadAnim("missminuteman_1ig_2", "handsup_base")
end
end)
local facial_dicts = {
"facials@gen_male@base"
}
local facial_animations = {
["facials@gen_male@base"] = {
"burning_1", "coughing_1", "dead_1", "dead_2", "die_1", "die_2", "drinking_1", "eating_1", "effort_1", "effort_2", "effort_3", "electrocuted_1",
"high_transition_01", "high_transition_02", "melee_effort_1", "melee_effort_2", "melee_effort_3", "mood_aiming_1", "mood_angry_1",
"mood_dancing_high_1", "mood_dancing_high_2", "mood_dancing_low_1", "mood_dancing_low_2", "mood_dancing_low_3", "mood_dancing_medium_1",
"mood_dancing_medium_2", "mood_dancing_medium_3", "mood_drivefast_1", "mood_drunk_1", "mood_happy_1", "mood_injured_1", "mood_knockout_1",
"mood_normal_1", "mood_skydive_1", "mood_sleeping_1", "mood_smug_1", "mood_stressed_1", "mood_sulk_1", "pain_1", "pain_2", "pain_3", "pain_4",
"pain_5", "pain_6", "pose_aiming_1", "pose_angry_1", "pose_happy_1", "pose_injured_1", "pose_normal_1", "pose_smug_1", "pose_stressed_1",
"pose_sulk_1", "shocked_1", "shocked_2", "smoking_exhale_1", "smoking_hold_1", "smoking_inhale_1"
}
}
local features = {facial_animation_feature = nil, facial_dict_feature = nil}
features.facial_dict_feature = menu.add_feature("face dict", "autoaction_value_str", fun_menu_pages["animations"].id, function(feat)
features.facial_animation_feature:set_str_data(facial_animations[feat.str_data[feat.value + 1]])
end)
features.facial_dict_feature:set_str_data(facial_dicts)
features.facial_animation_feature = menu.add_feature("face anim", "value_str", fun_menu_pages["animations"].id, function(feat_toggle)
requestAnimDictAndSet(features.facial_dict_feature.str_data[features.facial_dict_feature.value + 1], feat_toggle.str_data[feat_toggle.value + 1])
local anim_duration = natives.GET_ANIM_DURATION(features.facial_dict_feature.str_data[features.facial_dict_feature.value + 1], feat_toggle.str_data[feat_toggle.value + 1]):__tonumber()
while (feat_toggle.on) do
natives.PLAY_FACIAL_ANIM(player.get_player_ped(player.player_id()), feat_toggle.str_data[feat_toggle.value + 1], features.facial_dict_feature.str_data[features.facial_dict_feature.value + 1])
system.wait(math.floor(anim_duration * 1000))
end
if (not feat_toggle.on) then
natives.CLEAR_PED_TASKS(player.get_player_ped(player.player_id()))
unloadAnim(features.facial_dict_feature.str_data[features.facial_dict_feature.value + 1], feat_toggle.str_data[feat_toggle.value + 1])
end
end)
local sitting_animation_dicts = {
"missfbi2@leadinout",
"amb@world_human_picnic@female@base",
"amb@world_human_picnic@male@base"
}
local sitting_animations = {
["missfbi2@leadinout"] = {
["Sit 1"] = "fbi_2_int_leadin_action_andreas",
["Sit 2"] = "fbi_2_int_leadin_action_daven",
["Sit 3"] = "fbi_2_int_leadinout_loop_andreas",
["Sit 4"] = "fbi_2_int_leadinout_loop_daven",
["Sit 5"] = "fbi_2_int_leadinout_loop_steve",
["Sit 6"] = "fbi_2_int_leadout_action_andreas",
["Sit 7"] = "fbi_2_int_leadout_action_steve"
},
["amb@world_human_picnic@female@base"] = {
["Sit On Ground 1"] = "base"
},
["amb@world_human_picnic@male@base"] = {
["Sit On Ground 2"] = "base"
}
}
local named_animations = {
["missfbi2@leadinout"] = {
"Sit 1",
"Sit 2",
"Sit 3",
"Sit 4",
"Sit 5",
"Sit 6",
"Sit 7"
},
["amb@world_human_picnic@female@base"] = {
"Sit On Ground 1"
},
["amb@world_human_picnic@male@base"] = {
"Sit On Ground 2"
}
}
local features2 = {sitting_animations = nil, sitting_animation_dicts = nil}
features2.sitting_animation_dicts = menu.add_feature("sit dict", "autoaction_value_str", fun_menu_pages["animations"].id, function(feat)
--features2.sitting_animations:set_str_data(sitting_animations[feat.str_data[feat.value + 1]])
features2.sitting_animations:set_str_data(named_animations[feat.str_data[feat.value + 1]])
end)
features2.sitting_animation_dicts:set_str_data(sitting_animation_dicts)
features2.sitting_animations = menu.add_feature("sit anim", "value_str", fun_menu_pages["animations"].id, function(feat_toggle)
local anim_dict = features2.sitting_animation_dicts.str_data[features2.sitting_animation_dicts.value + 1]
local anim_name = sitting_animations[features2.sitting_animation_dicts.str_data[features2.sitting_animation_dicts.value + 1]][feat_toggle.str_data[feat_toggle.value + 1]]
requestAnimDictAndSet(anim_dict, anim_name)
local anim_duration = natives.GET_ANIM_DURATION(anim_dict, anim_name):__tonumber()
while (feat_toggle.on) do
ai.task_play_anim(player.get_player_ped(player.player_id()), anim_dict, anim_name, 2.0, 2.0, math.floor(anim_duration * 1000), 01, 0, false, false, false)
system.wait(math.floor(anim_duration * 1000))
end
if (not feat_toggle.on) then
natives.CLEAR_PED_TASKS(player.get_player_ped(player.player_id()))
unloadAnim(anim_dict, anim_name)
end
end)
features2.sitting_animations:set_str_data(named_animations[features2.sitting_animation_dicts.str_data[features2.sitting_animation_dicts.value + 1]])
-- ____ __ ___ __ __ ______ ____ ______ ______ ___ ______ __ __ ____ ______ _____
-- / __ \ / / / |\ \/ // ____// __ \ / ____// ____// | /_ __// / / // __ \ / ____// ___/
-- / /_/ // / / /| | \ // __/ / /_/ / / /_ / __/ / /| | / / / / / // /_/ // __/ \__ \
-- / ____// /___ / ___ | / // /___ / _, _/ / __/ / /___ / ___ | / / / /_/ // _, _// /___ ___/ /
--/_/ /_____//_/ |_|/_//_____//_/ |_| /_/ /_____//_/ |_|/_/ \____//_/ |_|/_____/ /____/
menu.add_player_feature("Autopilot to Player", "toggle", fun_menu_pages["player_fun_menu"].id, function(feat_toggle, pid)
while feat_toggle.on do
ai.task_vehicle_drive_to_coord(player.get_player_ped(player.player_id()), ped.get_vehicle_ped_is_using(player.get_player_ped(player.player_id())), player.get_player_coords(pid), 50.0, -1, ped.get_vehicle_ped_is_using(player.get_player_ped(player.player_id())), 786859, 1, 1.0)
system.wait(2000)
end
end)
menu.add_player_feature("Copy Player Outfit", "action", fun_menu_pages["player_fun_menu"].id, function(player_feat, pid)
copyOutfit(player.get_player_ped(pid), player.get_player_ped(player.player_id()))
end)
menu.add_player_feature("Floppa Gun", "toggle", fun_menu_pages["player_fun_menu"].id, function(player_feat, pid)
if player_feat.on then
customAmmoShooter(307287994, pid)
end
return HANDLER_CONTINUE
end)
menu.add_player_feature("Orbital Gun", "toggle", fun_menu_pages["player_fun_menu"].id, function(player_feat, pid)
if player_feat.on then
customAmmoShooter(72, pid)
end
return HANDLER_CONTINUE
end)
menu.add_player_feature("Custom Explosion Gun", "toggle", fun_menu_pages["player_fun_menu"].id, function(player_feat_toggle, pid)
local _input, k = input.get("Type in an explosion ID.", "12", 2, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
player_feat_toggle.on = false
return HANDLER_POP
end
while player_feat_toggle.on do
customAmmoShooter(tonumber(k), pid)
system.wait(0)
end
end)
menu.add_player_feature("Custom Entity Gun", "toggle", fun_menu_pages["player_fun_menu"].id, function(player_feat_toggle, pid)
local _input, k = input.get("Type in an entity hash.", "307287994", 20, 0)
if _input == 1 then
return HANDLER_CONTINUE
end
if _input == 2 then
player_feat_toggle.on = false
return HANDLER_POP
end
while player_feat_toggle.on do
customAmmoShooter(tonumber(k), pid)
system.wait(0)
end
end)
Output
Embed on website
To embed this program on your website, copy the following code and paste it into your website's HTML:
Comments
This comment belongs to a banned user and is only visible to admins.
This comment belongs to a deleted user and is only visible to admins.