you can forget about dofile and require, those lua commands are out..
you have to include the code you need in the menu.lua you are working on
So, I took a simple menu script and edited it.
Please reply if you can find something incorrect...
By the way, I'm not very experienced at coding.Code:-- HACK MENUSCRIPT -- PLAY SOUND managers.menu_component:post_event("menu_enter") if not SimpleMenu then SimpleMenu = class() function SimpleMenu:init(title, message, options) self.dialog_data = { title = title, text = message, button_list = {}, id = tostring(math.random(0,0xFFFFFFFF)) } self.visible = false for _,opt in ipairs(options) do local elem = {} elem.text = opt.text opt.data = opt.data or nil opt.callback = opt.callback or nil elem.callback_func = callback(self, self, "_do_callback", { data = opt.data, callback = opt.callback}) elem.cancel_button = opt.is_cancel_button or false if opt.is_focused_button then self.dialog_data.focus_button = #self.dialog_data.button_list+1 end table.insert(self.dialog_data.button_list, elem) end return self end function SimpleMenu:_do_callback(info) if info.callback then if info.data then info.callback(info.data) else info.callback() end end self.visible = false end function SimpleMenu:show() if self.visible then return end self.visible = true managers.system_menu:show(self.dialog_data) end function SimpleMenu:hide() if self.visible then managers.system_menu:close(self.dialog_data.id) self.visible = false return end end end optionone = optionone or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- SET SKILLPOINTS TO 1 dofile("NoAlarm.lua") end optiontwo = optiontwo or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- SET SKILLPOINTS TO 10 dofile("Xray.lua") end optionthree = optionthree or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- SET SKILLPOINTS TO 100 dofile("GodMode.lua") end optionfour = optionfour or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- SET SKILLPOINTS TO 580 dofile("SemiGodMode.lua") end optionfive = optionfive or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("InfiniteAmmo2.lua") end optionsix = optionsix or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("InfiniteAmmo.lua") end optionseven = optionseven or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("InfiniteEquipmentAndCableTies") end optioneight = optioneight or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("NoTaser.lua") end optionnine = optionnine or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("NoCivPenalty.lua") end optionten = optionten or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("100%ArmorPiercing.lua") end optioneleven = optioneleven or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("Instant500IntimidationsConversions.lua") end optiontwelve = optiontwelve or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("KillAll.lua") end optionthirteen = optionthirteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("SpawnAmmo.lua") end optionfourteen = optionfourteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("SpawnDoctor.lua") end optionfifteen = optionfifteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("DirtyGold.lua") end optionsixteen = optionsixteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- RESET SKILLPOINTS dofile("ForceLose.lua") end opts = {} opts[#opts+1] = { text = "No Alarm", callback = optionone } opts[#opts+1] = { text = "X-ray", callback = optiontwo } opts[#opts+1] = { text = "God Mode", callback = optionthree } opts[#opts+1] = { text = "Semi God Mode", callback = optionfour } opts[#opts+1] = { text = "Infinite Ammo + No Reload", callback = optionfive } opts[#opts+1] = { text = "Infinite Ammo", callback = optionsix } opts[#opts+1] = { text = "Infinite Equipment", callback = optionseven } opts[#opts+1] = { text = "No Tasers", callback = optioneight } opts[#opts+1] = { text = "No Civ Penalty", callback = optionnine } opts[#opts+1] = { text = "Armor Piercing", callback = optionten } opts[#opts+1] = { text = "Intimidations And Conversions", callback = optioneleven } opts[#opts+1] = { text = "Kill All", callback = optiontwelve } opts[#opts+1] = { text = "Spawn Ammo Bag", callback = optionthirteen } opts[#opts+1] = { text = "Spawn Doctor Bag", callback = optionfourteen } opts[#opts+1] = { text = "Dirty Gold", callback = optionfifteen } opts[#opts+1] = { text = "Force Lose", callback = optionsixteen } opts[#opts+1] = { text = "CANCEL", is_cancel_button = true } mymenu = SimpleMenu:new("Coreball's Hack Menu", "Coreball's Hacks", opts) mymenu:show()
you can forget about dofile and require, those lua commands are out..
you have to include the code you need in the menu.lua you are working on
coreball (11-17-2013)
I think I messed up.
Now, when I press my menu button it activates all of them.Code:-- HACK MENUSCRIPT -- PLAY SOUND managers.menu_component:post_event("menu_enter") if not SimpleMenu then SimpleMenu = class() function SimpleMenu:init(title, message, options) self.dialog_data = { title = title, text = message, button_list = {}, id = tostring(math.random(0,0xFFFFFFFF)) } self.visible = false for _,opt in ipairs(options) do local elem = {} elem.text = opt.text opt.data = opt.data or nil opt.callback = opt.callback or nil elem.callback_func = callback(self, self, "_do_callback", { data = opt.data, callback = opt.callback}) elem.cancel_button = opt.is_cancel_button or false if opt.is_focused_button then self.dialog_data.focus_button = #self.dialog_data.button_list+1 end table.insert(self.dialog_data.button_list, elem) end return self end function SimpleMenu:_do_callback(info) if info.callback then if info.data then info.callback(info.data) else info.callback() end end self.visible = false end function SimpleMenu:show() if self.visible then return end self.visible = true managers.system_menu:show(self.dialog_data) end function SimpleMenu:hide() if self.visible then managers.system_menu:close(self.dialog_data.id) self.visible = false return end end end optionone = optionone or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- NO ALARM function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end function PlayerMovement:on_suspicion( observer_unit, status ) end function GroupAIStateBase:on_criminal_suspicion_progress( u_suspect, u_observer, status ) end function GroupAIStateBase:criminal_spotted( unit ) end function GroupAIStateBase:report_aggression( unit ) end function PlayerMovement:on_uncovered( enemy_unit ) end function SecurityCamera:_upd_suspicion( t ) end function SecurityCamera:_sound_the_alarm( detected_unit ) end function SecurityCamera:_set_suspicion_sound( suspicion_level ) end function SecurityCamera:clbk_call_the_police() end function CopMovement:anim_clbk_police_called( unit ) end function CopLogicArrest._upd_enemy_detection( data ) end function CopLogicArrest._call_the_police( data, my_data, paniced ) end function CopLogicIdle.on_alert( data, alert_data ) end function CopLogicBase._get_logic_state_from_reaction( data, reaction ) return "idle" end function GroupAIStateBase:sync_event( event_id, blame_id ) end function GroupAIStateBase:on_police_called( called_reason ) end function GroupAIStateBase:on_police_weapons_hot( called_reason ) end function GroupAIStateBase:on_gangster_weapons_hot( called_reason ) end function GroupAIStateBase:on_enemy_weapons_hot( is_delayed_callback ) end function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end optiontwo = optiontwo or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- X-RAY VISION TOGGLE SCRIPT (v.1.1) function inGame() if not game_state_machine then return false end return string.find(game_state_machine:current_state_name(), "game") end function show_mid_text( msg, msg_title, show_secs ) if managers and managers.hud then managers.hud:present_mid_text( { text = msg, title = msg_title, time = show_secs } ) end end if inGame() then -- TOGGLE MARKING ENEMIES function setEnemyColor(unit) local enemyType = unit:base()._tweak_table local color, target_color -- Civilians | Green if enemyType == "civilian" or enemyType == "civilian_female" then color = Vector3( 0.1687, 0.5529, 0 ) target_color = Vector3( 0.1688, 0.5529, 0 ) -- Taser | Blue elseif enemyType == "taser" then color = Vector3(0, 0.3804, 0.6235) target_color = Vector3(0.001, 0.3804, 0.6235) -- Shield | Orange elseif enemyType == "shield" then color = Vector3(1, 0.5, 0) target_color = Vector3(1.001, 0.5, 0) -- Tank | Yellow elseif enemyType == "tank" then color = Vector3(1, 1, 0) target_color = Vector3(1.001, 1, 0) -- Sniper | Pink elseif enemyType == "sniper" then color = Vector3(1, 0.35, 0.35) target_color = Vector3(1.001, 0.35, 0.35) -- Cop/unknown | Purple else color = Vector3(0.5216, 0, 0.5529) target_color = Vector3(0.5217, 0, 0.5529) end -- Set colors managers.game_play_central._enemy_contour_units[unit:key()].color = color managers.game_play_central._enemy_contour_units[unit:key()].target_color = target_color end function mark_enemies() local units = World:find_units_quick( "all", 3, 16, 21, managers.slot:get_mask( "enemies" ) ) for i,unit in ipairs( units ) do if not unit:brain() or not unit:brain()._logic_data or not unit:brain()._logic_data.objective or (unit:brain()._logic_data.objective.type ~= "surrender" and unit:brain()._logic_data.objective.type ~= "follow") then if tweak_data.character[ unit:base()._tweak_table ].silent_priority_shout then managers.game_play_central:add_enemy_contour( unit, true ) -- managers.network:session():send_to_peers_synched( "mark_enemy", unit, true ) setEnemyColor(unit) elseif unit:character_damage().on_marked_state then managers.game_play_central:add_enemy_contour( unit, false ) -- managers.network:session():send_to_peers_synched( "mark_enemy", unit, false ) setEnemyColor(unit) end end end for u_key, unit in pairs( managers.groupai:state()._security_cameras ) do managers.game_play_central:add_marked_contour_unit( unit ) -- managers.network:session():send_to_peers_synched( "mark_contour_unit", unit ) end end function UnitNetworkHandler:mark_enemy( unit, marking_strength, sender ) end if not _markingToggle then _markingToggle = true else _markingToggle = nil end if not _gameUpdate then _gameUpdate = GameSetup.update end do local _gameUpdateLastMark function GameSetup:update( t, dt ) _gameUpdate(self, t, dt) if _markingToggle and (not _gameUpdateLastMark or t - _gameUpdateLastMark > 4) then _gameUpdateLastMark = t mark_enemies() end end end end optionthree = optionthree or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- God mode managers.player:player_unit():character_damage():set_invulnerable( true ) -- No movement penalty, change to a larger value than 1 for an increase in speed PlayerManager.body_armor_movement_penalty = function(self) return 2 end -- Carry mods (throwing distance, movement speed, jumping, running) local car_arr = { 'being', 'mega_heavy', 'heavy', 'medium', 'light', 'coke_light' } for i, name in ipairs(car_arr) do tweak_data.carry.types[ name ].throw_distance_multiplier = 3 tweak_data.carry.types[ name ].move_speed_modifier = 1 tweak_data.carry.types[ name ].jump_modifier = 1 tweak_data.carry.types[ name ].can_run = true end -- Remove cooldown between picking up bags function PlayerManager:carry_blocked_by_cooldown() return false end optionfour = optionfour or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Semi God Mode if not _upgradeValue then _upgradeValue = PlayerManager.upgrade_value end function PlayerManager:upgrade_value( category, upgrade, default ) if category == "player" and upgrade == "health_multiplier" then return 2 elseif category == "player" and upgrade == "armor_multiplier" then return 2 elseif category == "player" and upgrade == "passive_damage_multiplier" then return 2 else return _upgradeValue(self, category, upgrade, default) end end managers.player:player_unit():character_damage():replenish() -- Instant armor regeneration function PlayerDamage:set_regenerate_timer_to_max() self._regenerate_timer = 0 end -- Unlimited messiah charges (self-revive) function PlayerDamage:consume_messiah_charge() return true end function PlayerDamage:got_messiah_charges() return true end -- Super jump (when running, you jump 1.5x high) function PlayerStandard:_perform_jump(jump_vec) local v = math.UP * 470 if self._running then v = math.UP * 470 * 3 end self._unit:mover():set_velocity( v ) end optionfive = optionfive or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Infinite Ammo Clip if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) if managers.player:player_unit() == self._setup.user_unit then self.set_ammo(self, 1.0) end return result end -- Infinite Saw if not _fireSaw then _fireSaw = SawWeaponBase.fire end function SawWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) _fireSaw( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) if managers.player:player_unit() == self._setup.user_unit then self.set_ammo(self, 1.0) end end optionsix = optionsix or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Infinite ammo (resets ammo on reload & also when ammo runs out, just in case you activate it late) if not _onReload then _onReload = RaycastWeaponBase.on_reload end function RaycastWeaponBase:on_reload() if managers.player:player_unit() == self._setup.user_unit then self.set_ammo(self, 1.0) else _onReload(self) end end if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) if managers.player:player_unit() == self._setup.user_unit and self:get_ammo_total() == 0 then self.set_ammo(self, 1.0) end return result end optionseven = optionseven or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Infinite cable ties function PlayerManager:remove_special( name ) end -- Infinite equipment function PlayerManager:remove_equipment( equipment_id ) end -- Infinite equipment (when not the host of a multiplayer game, this doesn't seem to work anymore with Update 3 now.. it should work if the host is using the cheat as well though) function PlayerManager:remove_equipment_possession( peer_id, equipment ) end function PlayerManager:clear_equipment() end function PlayerManager:from_server_equipment_place_result( selected_index, unit ) end function HUDManager:remove_special_equipment( equipment ) end -- Infinite sentry ammo, no recoil, left the weapon spread in because sentries have a tough time killing if they shoot in one spot function SentryGunWeapon:fire( blanks, expend_ammo ) local fire_obj = self._effect_align[ self._interleaving_fire ] local from_pos = fire_obj:position() local direction = fire_obj:rotation():y() mvector3.spread( direction, tweak_data.weapon[ self._name_id ].SPREAD * self._spread_mul ) World:effect_manager():spawn( self._muzzle_effect_table[ self._interleaving_fire ] ) -- , normal = col_ray.normal } ) if self._use_shell_ejection_effect then World:effect_manager():spawn( self._shell_ejection_effect_table ) end local ray_res = self:_fire_raycast( from_pos, direction, blanks ) if self._alert_events and ray_res.rays then RaycastWeaponBase._check_alert( self, ray_res.rays, from_pos, direction, self._unit ) end return ray_res end -- Unlimited doctor bag uses function DoctorBagBase:_take( unit ) unit:character_damage():recover_health() -- replenish() return 0 end optioneight = optioneight or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- No flashbangs function CoreEnvironmentControllerManager:set_flashbang( flashbang_pos, line_of_sight, travel_dis, linear_dis ) end -- Don't taze me bro function PlayerTased:enter( state_data, enter_data ) PlayerTased.super.enter( self, state_data, enter_data ) self._next_shock = Application:time() + 10 self._taser_value = 1 self._recover_delayed_clbk = "PlayerTased_recover_delayed_clbk" managers.enemy:add_delayed_clbk( self._recover_delayed_clbk, callback( self, self, "clbk_exit_to_std" ), Application:time() ) end optionnine = optionnine or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- No cash penalty for killing civillians function MoneyManager.get_civilian_deduction() return 0 end function MoneyManager.civilian_killed() return end optionten = optionten or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- 100% Armor piercing if not _uvArmorPierce then _uvArmorPierce = PlayerManager.upgrade_value end function PlayerManager:upgrade_value( category, upgrade, default ) if category == "weapon" and upgrade == "armor_piercing_chance" then return 1 elseif category == "weapon" and upgrade == "armor_piercing_chance_silencer" then return 1 else return _uvArmorPierce(self, category, upgrade, default) end end optioneleven = optioneleven or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Unlimited [500 actually, but who cares] & instant intimidations if not _upgradeValueIntimidate then _upgradeValueIntimidate = PlayerManager.upgrade_value end function PlayerManager:upgrade_value( category, upgrade, default ) if category == "player" and upgrade == "convert_enemies" then return true elseif category == "player" and upgrade == "convert_enemies_max_minions" then return 500 elseif category == "player" and upgrade == "convert_enemies_health_multiplier" then return 1 elseif category == "player" and upgrade == "convert_enemies_damage_multiplier" then return 4.5 else return _upgradeValueIntimidate(self, category, upgrade, default) end end if not _onIntimidated then _onIntimidated = CopLogicIdle.on_intimidated end function CopLogicIdle.on_intimidated( data, amount, aggressor_unit ) CopLogicIdle._surrender( data, amount ) return true end CopLogicAttack.on_intimidated = CopLogicIdle.on_intimidated CopLogicArrest.on_intimidated = CopLogicIdle.on_intimidated CopLogicSniper.on_intimidated = CopLogicIdle.on_intimidated -- Setup logic for shields to be able to be intimidated CopBrain._logic_variants.shield.intimidated = CopLogicIntimidated if not _onIIntimidated then _onIIntimidated = CopLogicIntimidated.on_intimidated end function CopLogicIntimidated.on_intimidated( data, amount, aggressor_unit ) -- If shield we skip animations, go straight to conversion & spawn a new shield since it was destroyed during intimidation if data.unit:base()._tweak_table == "shield" then CopLogicIntimidated._do_tied( data, aggressor_unit ) CopInventory._chk_spawn_shield( data.unit:inventory(), nil ) else _onIIntimidated(data, amount, aggressor_unit) end end -- Setup a proper sniper-rifle for snipers (100% accuracy, no spread) CopBrain._logic_variants.sniper = clone( CopBrain._logic_variants.security ) CopBrain._logic_variants.sniper.attack = CopLogicSniper if not _onSniperEnter then _onSniperEnter = CopLogicSniper.enter end function CopLogicSniper.enter( data, new_logic_name, enter_params ) if data.unit:brain()._logic_data and data.unit:brain()._logic_data.objective and data.unit:brain()._logic_data.objective.type == "follow" then data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ] = tweak_data.character.presets.weapon.sniper.m4 data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].spread = 0 -- Get dat 100% accuracy for distance=1, 3 do for interpolate=1,2 do data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].FALLOFF[distance].acc[interpolate] = 1 end end end _onSniperEnter(data, new_logic_name, enter_params) end optiontwelve = optiontwelve or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Kill All function nukeunit(pawn) local col_ray = { } col_ray.ray = Vector3(1, 0, 0) col_ray.position = pawn.unit:position() local action_data = {} action_data.variant = "explosion" action_data.damage = 10 action_data.attacker_unit = managers.player:player_unit() action_dat*****l_ray = col_ray pawn.unit:character_damage():damage_explosion(action_data) end for u_key,u_data in pairs(managers.enemy:all_civilians()) do nukeunit(u_data) end for u_key,u_data in pairs(managers.enemy:all_enemies()) do u_data.char_tweak.has_alarm_pager = nil nukeunit(u_data) end optionthirteen = optionthirteen or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Spawn Ammo pos = managers.player:player_unit():position() rot = managers.player:player_unit():rotation() local ammo_upgrade_lvl = managers.player:upgrade_level( "ammo_bag", "ammo_increase" ) if Network:is_client() then managers.network:session():send_to_host( "place_ammo_bag", pos, rot, ammo_upgrade_lvl ) else local unit = AmmoBagBase.spawn( pos, rot, ammo_upgrade_lvl ) end optionfourteen = optionfourteen or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Spawn Medic pos = managers.player:player_unit():position() rot = managers.player:player_unit():rotation() local amount_upgrade_lvl = managers.player:upgrade_level( "doctor_bag", "amount_increase" ) if Network:is_client() then managers.network:session():send_to_host( "place_doctor_bag", pos, rot, amount_upgrade_lvl ) else local unit = DoctorBagBase.spawn( pos, rot, amount_upgrade_lvl ) end optionfifteen = optionfifteen or function() end -- PLAY SOUND managers.menu_component:post_event("menu_enter") --dirty gold exploit --goes into any multiplayer game and drops gold everywhere --no host needed bags_amount = 1 --amount of bags to drop per death, dont recommend above the default. game slows down bags_label = "money" --kind of bags to drop. can be "gold", "money", "weapons", "coke", "diamonds", "meth" function bagspawn(type, _position, z_offset) local position = mvector3.copy(_position) if z_offset then mvector3.set_z(position, position.z + z_offset) end if Network:is_client() then managers.network:session():send_to_host( "server_drop_carry", type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 ) else managers.player:server_drop_carry( type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 ) end end function CopActionHurt:on_death_drop( unit, stage ) if spill == 1 then for i = 1, bags_amount do bagspawn(bags_label, self._unit:position(), 120) end end if self._weapon_dropped then return end if self._delayed_shooting_hurt_clbk_id then managers.enemy:remove_delayed_clbk( self._delayed_shooting_hurt_clbk_id ) self._delayed_shooting_hurt_clbk_id = nil end if self._shooting_hurt then if stage == 2 then self._weapon_unit:base():stop_autofire() self._ext_inventory:drop_weapon() self._weapon_dropped = true self._shooting_hurt = false end elseif self._ext_inventory then self._ext_inventory:drop_weapon() self._weapon_dropped = true end return end if spill == 0 or spill == nil then spill = 1 else if spill == 1 then spill = 0 end end optionsixteen = optionsixteen or function() end -- PLAY SOUND --managers.menu_component:post_event("menu_enter") -- END GAME --if managers.platform:presence() == "Playing" then -- managers.network:session():send_to_peers( "mission_ended", false, 0 ) -- game_state_machine:change_state_by_name( "gameoverscreen" ) --end --optionseventeen = optionseventeen or function() --end -- PLAY SOUND --managers.menu_component:post_event("menu_enter") -- WIN GAME --if managers.platform:presence() == "Playing" then -- local num_winners = managers.network:game():amount_of_alive_players() -- managers.network:session():send_to_peers( "mission_ended", true, num_winners ) -- game_state_machine:change_state_by_name( "victoryscreen", { num_winners = num_winners, personal_win = true } ) --end opts = {} opts[#opts+1] = { text = "No Alarm", callback = optionone } opts[#opts+1] = { text = "X-ray", callback = optiontwo } opts[#opts+1] = { text = "God Mode", callback = optionthree } opts[#opts+1] = { text = "Semi God Mode", callback = optionfour } opts[#opts+1] = { text = "Infinite Ammo + No Reload", callback = optionfive } opts[#opts+1] = { text = "Infinite Ammo", callback = optionsix } opts[#opts+1] = { text = "Infinite Equipment", callback = optionseven } opts[#opts+1] = { text = "No Tasers", callback = optioneight } opts[#opts+1] = { text = "No Civ Penalty", callback = optionnine } opts[#opts+1] = { text = "Armor Piercing", callback = optionten } opts[#opts+1] = { text = "Intimidations And Conversions", callback = optioneleven } opts[#opts+1] = { text = "Kill All", callback = optiontwelve } opts[#opts+1] = { text = "Spawn Ammo Bag", callback = optionthirteen } opts[#opts+1] = { text = "Spawn Doctor Bag", callback = optionfourteen } opts[#opts+1] = { text = "Dirty Gold", callback = optionfifteen } --opts[#opts+1] = { text = "Force Lose", callback = optionsixteen } --opts[#opts+1] = { text = "Force Win", callback = optionseventeen } opts[#opts+1] = { text = "CANCEL", is_cancel_button = true } mymenu = SimpleMenu:new("Coreball's Hack Menu", "Coreball's Hacks", opts) mymenu:show()
So I was just messing around and I changed it to this.
Instead of activating all cheats at once, this one makes PAYDAY 2 crash...
But only when I click on something.
Code:-- HACK MENUSCRIPT -- PLAY SOUND managers.menu_component:post_event("menu_enter") if not SimpleMenu then SimpleMenu = class() function SimpleMenu:init(title, message, options) self.dialog_data = { title = title, text = message, button_list = {}, id = tostring(math.random(0,0xFFFFFFFF)) } self.visible = false for _,opt in ipairs(options) do local elem = {} elem.text = opt.text opt.data = opt.data or nil opt.callback = opt.callback or nil elem.callback_func = callback(self, self, "_do_callback", { data = opt.data, callback = opt.callback}) elem.cancel_button = opt.is_cancel_button or false if opt.is_focused_button then self.dialog_data.focus_button = #self.dialog_data.button_list+1 end table.insert(self.dialog_data.button_list, elem) end return self end function SimpleMenu:_do_callback(info) if info.callback then if info.data then info.callback(info.data) else info.callback() end end self.visible = false end function SimpleMenu:show() if self.visible then return end self.visible = true managers.system_menu:show(self.dialog_data) end function SimpleMenu:hide() if self.visible then managers.system_menu:close(self.dialog_data.id) self.visible = false return end end end optionone = optionone or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- NO ALARM function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end function PlayerMovement:on_suspicion( observer_unit, status ) end function GroupAIStateBase:on_criminal_suspicion_progress( u_suspect, u_observer, status ) end function GroupAIStateBase:criminal_spotted( unit ) end function GroupAIStateBase:report_aggression( unit ) end function PlayerMovement:on_uncovered( enemy_unit ) end function SecurityCamera:_upd_suspicion( t ) end function SecurityCamera:_sound_the_alarm( detected_unit ) end function SecurityCamera:_set_suspicion_sound( suspicion_level ) end function SecurityCamera:clbk_call_the_police() end function CopMovement:anim_clbk_police_called( unit ) end function CopLogicArrest._upd_enemy_detection( data ) end function CopLogicArrest._call_the_police( data, my_data, paniced ) end function CopLogicIdle.on_alert( data, alert_data ) end function CopLogicBase._get_logic_state_from_reaction( data, reaction ) return "idle" end function GroupAIStateBase:sync_event( event_id, blame_id ) end function GroupAIStateBase:on_police_called( called_reason ) end function GroupAIStateBase:on_police_weapons_hot( called_reason ) end function GroupAIStateBase:on_gangster_weapons_hot( called_reason ) end function GroupAIStateBase:on_enemy_weapons_hot( is_delayed_callback ) end function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end end optiontwo = optiontwo or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- X-RAY VISION TOGGLE SCRIPT (v.1.1) function inGame() if not game_state_machine then return false end return string.find(game_state_machine:current_state_name(), "game") end function show_mid_text( msg, msg_title, show_secs ) if managers and managers.hud then managers.hud:present_mid_text( { text = msg, title = msg_title, time = show_secs } ) end end if inGame() then -- TOGGLE MARKING ENEMIES function setEnemyColor(unit) local enemyType = unit:base()._tweak_table local color, target_color -- Civilians | Green if enemyType == "civilian" or enemyType == "civilian_female" then color = Vector3( 0.1687, 0.5529, 0 ) target_color = Vector3( 0.1688, 0.5529, 0 ) -- Taser | Blue elseif enemyType == "taser" then color = Vector3(0, 0.3804, 0.6235) target_color = Vector3(0.001, 0.3804, 0.6235) -- Shield | Orange elseif enemyType == "shield" then color = Vector3(1, 0.5, 0) target_color = Vector3(1.001, 0.5, 0) -- Tank | Yellow elseif enemyType == "tank" then color = Vector3(1, 1, 0) target_color = Vector3(1.001, 1, 0) -- Sniper | Pink elseif enemyType == "sniper" then color = Vector3(1, 0.35, 0.35) target_color = Vector3(1.001, 0.35, 0.35) -- Cop/unknown | Purple else color = Vector3(0.5216, 0, 0.5529) target_color = Vector3(0.5217, 0, 0.5529) end -- Set colors managers.game_play_central._enemy_contour_units[unit:key()].color = color managers.game_play_central._enemy_contour_units[unit:key()].target_color = target_color end function mark_enemies() local units = World:find_units_quick( "all", 3, 16, 21, managers.slot:get_mask( "enemies" ) ) for i,unit in ipairs( units ) do if not unit:brain() or not unit:brain()._logic_data or not unit:brain()._logic_data.objective or (unit:brain()._logic_data.objective.type ~= "surrender" and unit:brain()._logic_data.objective.type ~= "follow") then if tweak_data.character[ unit:base()._tweak_table ].silent_priority_shout then managers.game_play_central:add_enemy_contour( unit, true ) -- managers.network:session():send_to_peers_synched( "mark_enemy", unit, true ) setEnemyColor(unit) elseif unit:character_damage().on_marked_state then managers.game_play_central:add_enemy_contour( unit, false ) -- managers.network:session():send_to_peers_synched( "mark_enemy", unit, false ) setEnemyColor(unit) end end end for u_key, unit in pairs( managers.groupai:state()._security_cameras ) do managers.game_play_central:add_marked_contour_unit( unit ) -- managers.network:session():send_to_peers_synched( "mark_contour_unit", unit ) end end function UnitNetworkHandler:mark_enemy( unit, marking_strength, sender ) end if not _markingToggle then _markingToggle = true else _markingToggle = nil end if not _gameUpdate then _gameUpdate = GameSetup.update end do local _gameUpdateLastMark function GameSetup:update( t, dt ) _gameUpdate(self, t, dt) if _markingToggle and (not _gameUpdateLastMark or t - _gameUpdateLastMark > 4) then _gameUpdateLastMark = t mark_enemies() end end end end end optionthree = optionthree or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- God mode managers.player:player_unit():character_damage():set_invulnerable( true ) -- No movement penalty, change to a larger value than 1 for an increase in speed PlayerManager.body_armor_movement_penalty = function(self) return 2 end -- Carry mods (throwing distance, movement speed, jumping, running) local car_arr = { 'being', 'mega_heavy', 'heavy', 'medium', 'light', 'coke_light' } for i, name in ipairs(car_arr) do tweak_data.carry.types[ name ].throw_distance_multiplier = 3 tweak_data.carry.types[ name ].move_speed_modifier = 1 tweak_data.carry.types[ name ].jump_modifier = 1 tweak_data.carry.types[ name ].can_run = true end -- Remove cooldown between picking up bags function PlayerManager:carry_blocked_by_cooldown() return false end end optionfour = optionfour or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Semi God Mode if not _upgradeValue then _upgradeValue = PlayerManager.upgrade_value end function PlayerManager:upgrade_value( category, upgrade, default ) if category == "player" and upgrade == "health_multiplier" then return 2 elseif category == "player" and upgrade == "armor_multiplier" then return 2 elseif category == "player" and upgrade == "passive_damage_multiplier" then return 2 else return _upgradeValue(self, category, upgrade, default) end end managers.player:player_unit():character_damage():replenish() -- Instant armor regeneration function PlayerDamage:set_regenerate_timer_to_max() self._regenerate_timer = 0 end -- Unlimited messiah charges (self-revive) function PlayerDamage:consume_messiah_charge() return true end function PlayerDamage:got_messiah_charges() return true end -- Super jump (when running, you jump 1.5x high) function PlayerStandard:_perform_jump(jump_vec) local v = math.UP * 470 if self._running then v = math.UP * 470 * 3 end self._unit:mover():set_velocity( v ) end end optionfive = optionfive or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Infinite Ammo Clip if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) if managers.player:player_unit() == self._setup.user_unit then self.set_ammo(self, 1.0) end return result end -- Infinite Saw if not _fireSaw then _fireSaw = SawWeaponBase.fire end function SawWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) _fireSaw( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) if managers.player:player_unit() == self._setup.user_unit then self.set_ammo(self, 1.0) end end end optionsix = optionsix or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Infinite ammo (resets ammo on reload & also when ammo runs out, just in case you activate it late) if not _onReload then _onReload = RaycastWeaponBase.on_reload end function RaycastWeaponBase:on_reload() if managers.player:player_unit() == self._setup.user_unit then self.set_ammo(self, 1.0) else _onReload(self) end end if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit ) if managers.player:player_unit() == self._setup.user_unit and self:get_ammo_total() == 0 then self.set_ammo(self, 1.0) end return result end end optionseven = optionseven or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Infinite cable ties function PlayerManager:remove_special( name ) end -- Infinite equipment function PlayerManager:remove_equipment( equipment_id ) end -- Infinite equipment (when not the host of a multiplayer game, this doesn't seem to work anymore with Update 3 now.. it should work if the host is using the cheat as well though) function PlayerManager:remove_equipment_possession( peer_id, equipment ) end function PlayerManager:clear_equipment() end function PlayerManager:from_server_equipment_place_result( selected_index, unit ) end function HUDManager:remove_special_equipment( equipment ) end -- Infinite sentry ammo, no recoil, left the weapon spread in because sentries have a tough time killing if they shoot in one spot function SentryGunWeapon:fire( blanks, expend_ammo ) local fire_obj = self._effect_align[ self._interleaving_fire ] local from_pos = fire_obj:position() local direction = fire_obj:rotation():y() mvector3.spread( direction, tweak_data.weapon[ self._name_id ].SPREAD * self._spread_mul ) World:effect_manager():spawn( self._muzzle_effect_table[ self._interleaving_fire ] ) -- , normal = col_ray.normal } ) if self._use_shell_ejection_effect then World:effect_manager():spawn( self._shell_ejection_effect_table ) end local ray_res = self:_fire_raycast( from_pos, direction, blanks ) if self._alert_events and ray_res.rays then RaycastWeaponBase._check_alert( self, ray_res.rays, from_pos, direction, self._unit ) end return ray_res end -- Unlimited doctor bag uses function DoctorBagBase:_take( unit ) unit:character_damage():recover_health() -- replenish() return 0 end end optioneight = optioneight or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- No flashbangs function CoreEnvironmentControllerManager:set_flashbang( flashbang_pos, line_of_sight, travel_dis, linear_dis ) end -- Don't taze me bro function PlayerTased:enter( state_data, enter_data ) PlayerTased.super.enter( self, state_data, enter_data ) self._next_shock = Application:time() + 10 self._taser_value = 1 self._recover_delayed_clbk = "PlayerTased_recover_delayed_clbk" managers.enemy:add_delayed_clbk( self._recover_delayed_clbk, callback( self, self, "clbk_exit_to_std" ), Application:time() ) end end optionnine = optionnine or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- No cash penalty for killing civillians function MoneyManager.get_civilian_deduction() return 0 end function MoneyManager.civilian_killed() return end end optionten = optionten or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- 100% Armor piercing if not _uvArmorPierce then _uvArmorPierce = PlayerManager.upgrade_value end function PlayerManager:upgrade_value( category, upgrade, default ) if category == "weapon" and upgrade == "armor_piercing_chance" then return 1 elseif category == "weapon" and upgrade == "armor_piercing_chance_silencer" then return 1 else return _uvArmorPierce(self, category, upgrade, default) end end end optioneleven = optioneleven or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Unlimited [500 actually, but who cares] & instant intimidations if not _upgradeValueIntimidate then _upgradeValueIntimidate = PlayerManager.upgrade_value end function PlayerManager:upgrade_value( category, upgrade, default ) if category == "player" and upgrade == "convert_enemies" then return true elseif category == "player" and upgrade == "convert_enemies_max_minions" then return 500 elseif category == "player" and upgrade == "convert_enemies_health_multiplier" then return 1 elseif category == "player" and upgrade == "convert_enemies_damage_multiplier" then return 4.5 else return _upgradeValueIntimidate(self, category, upgrade, default) end end if not _onIntimidated then _onIntimidated = CopLogicIdle.on_intimidated end function CopLogicIdle.on_intimidated( data, amount, aggressor_unit ) CopLogicIdle._surrender( data, amount ) return true end CopLogicAttack.on_intimidated = CopLogicIdle.on_intimidated CopLogicArrest.on_intimidated = CopLogicIdle.on_intimidated CopLogicSniper.on_intimidated = CopLogicIdle.on_intimidated -- Setup logic for shields to be able to be intimidated CopBrain._logic_variants.shield.intimidated = CopLogicIntimidated if not _onIIntimidated then _onIIntimidated = CopLogicIntimidated.on_intimidated end function CopLogicIntimidated.on_intimidated( data, amount, aggressor_unit ) -- If shield we skip animations, go straight to conversion & spawn a new shield since it was destroyed during intimidation if data.unit:base()._tweak_table == "shield" then CopLogicIntimidated._do_tied( data, aggressor_unit ) CopInventory._chk_spawn_shield( data.unit:inventory(), nil ) else _onIIntimidated(data, amount, aggressor_unit) end end -- Setup a proper sniper-rifle for snipers (100% accuracy, no spread) CopBrain._logic_variants.sniper = clone( CopBrain._logic_variants.security ) CopBrain._logic_variants.sniper.attack = CopLogicSniper if not _onSniperEnter then _onSniperEnter = CopLogicSniper.enter end function CopLogicSniper.enter( data, new_logic_name, enter_params ) if data.unit:brain()._logic_data and data.unit:brain()._logic_data.objective and data.unit:brain()._logic_data.objective.type == "follow" then data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ] = tweak_data.character.presets.weapon.sniper.m4 data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].spread = 0 -- Get dat 100% accuracy for distance=1, 3 do for interpolate=1,2 do data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].FALLOFF[distance].acc[interpolate] = 1 end end end _onSniperEnter(data, new_logic_name, enter_params) end end optiontwelve = optiontwelve or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Kill All function nukeunit(pawn) local col_ray = { } col_ray.ray = Vector3(1, 0, 0) col_ray.position = pawn.unit:position() local action_data = {} action_data.variant = "explosion" action_data.damage = 10 action_data.attacker_unit = managers.player:player_unit() action_dat*****l_ray = col_ray pawn.unit:character_damage():damage_explosion(action_data) end for u_key,u_data in pairs(managers.enemy:all_civilians()) do nukeunit(u_data) end for u_key,u_data in pairs(managers.enemy:all_enemies()) do u_data.char_tweak.has_alarm_pager = nil nukeunit(u_data) end end optionthirteen = optionthirteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Spawn Ammo pos = managers.player:player_unit():position() rot = managers.player:player_unit():rotation() local ammo_upgrade_lvl = managers.player:upgrade_level( "ammo_bag", "ammo_increase" ) if Network:is_client() then managers.network:session():send_to_host( "place_ammo_bag", pos, rot, ammo_upgrade_lvl ) else local unit = AmmoBagBase.spawn( pos, rot, ammo_upgrade_lvl ) end end optionfourteen = optionfourteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- Spawn Medic pos = managers.player:player_unit():position() rot = managers.player:player_unit():rotation() local amount_upgrade_lvl = managers.player:upgrade_level( "doctor_bag", "amount_increase" ) if Network:is_client() then managers.network:session():send_to_host( "place_doctor_bag", pos, rot, amount_upgrade_lvl ) else local unit = DoctorBagBase.spawn( pos, rot, amount_upgrade_lvl ) end end optionfifteen = optionfifteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") --dirty gold exploit --goes into any multiplayer game and drops gold everywhere --no host needed bags_amount = 1 --amount of bags to drop per death, dont recommend above the default. game slows down bags_label = "money" --kind of bags to drop. can be "gold", "money", "weapons", "coke", "diamonds", "meth" function bagspawn(type, _position, z_offset) local position = mvector3.copy(_position) if z_offset then mvector3.set_z(position, position.z + z_offset) end if Network:is_client() then managers.network:session():send_to_host( "server_drop_carry", type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 ) else managers.player:server_drop_carry( type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 ) end end function CopActionHurt:on_death_drop( unit, stage ) if spill == 1 then for i = 1, bags_amount do bagspawn(bags_label, self._unit:position(), 120) end end if self._weapon_dropped then return end if self._delayed_shooting_hurt_clbk_id then managers.enemy:remove_delayed_clbk( self._delayed_shooting_hurt_clbk_id ) self._delayed_shooting_hurt_clbk_id = nil end if self._shooting_hurt then if stage == 2 then self._weapon_unit:base():stop_autofire() self._ext_inventory:drop_weapon() self._weapon_dropped = true self._shooting_hurt = false end elseif self._ext_inventory then self._ext_inventory:drop_weapon() self._weapon_dropped = true end return end if spill == 0 or spill == nil then spill = 1 else if spill == 1 then spill = 0 end end end optionsixteen = optionsixteen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- END GAME if managers.platform:presence() == "Playing" then managers.network:session():send_to_peers( "mission_ended", false, 0 ) game_state_machine:change_state_by_name( "gameoverscreen" ) end end optionseventeen = optionseventeen or function() -- PLAY SOUND managers.menu_component:post_event("menu_enter") -- WIN GAME if managers.platform:presence() == "Playing" then local num_winners = managers.network:game():amount_of_alive_players() managers.network:session():send_to_peers( "mission_ended", true, num_winners ) game_state_machine:change_state_by_name( "victoryscreen", { num_winners = num_winners, personal_win = true } ) end end opts = {} opts[#opts+1] = { text = "No Alarm", callback = optionone } opts[#opts+1] = { text = "X-ray", callback = optiontwo } opts[#opts+1] = { text = "God Mode", callback = optionthree } opts[#opts+1] = { text = "Semi God Mode", callback = optionfour } opts[#opts+1] = { text = "Infinite Ammo + No Reload", callback = optionfive } opts[#opts+1] = { text = "Infinite Ammo", callback = optionsix } opts[#opts+1] = { text = "Infinite Equipment", callback = optionseven } opts[#opts+1] = { text = "No Tasers", callback = optioneight } opts[#opts+1] = { text = "No Civ Penalty", callback = optionnine } opts[#opts+1] = { text = "Armor Piercing", callback = optionten } opts[#opts+1] = { text = "Intimidations And Conversions", callback = optioneleven } opts[#opts+1] = { text = "Kill All", callback = optiontwelve } opts[#opts+1] = { text = "Spawn Ammo Bag", callback = optionthirteen } opts[#opts+1] = { text = "Spawn Doctor Bag", callback = optionfourteen } opts[#opts+1] = { text = "Dirty Gold", callback = optionfifteen } opts[#opts+1] = { text = "Force Lose", callback = optionsixteen } opts[#opts+1] = { text = "Force Win", callback = optionseventeen } opts[#opts+1] = { text = "CANCEL", is_cancel_button = true } mymenu = SimpleMenu:new("Coreball's Hack Menu", "Coreball's Hacks", opts) mymenu:show()