Thumbs upOutdatedMy collection of LUA script snippets

Posts 115 of 273 · Page 1 of 19
My collection of LUA script snippets
This thread will be updated on MPG, UC, and CE Forums consistently.

How to run lua files on your Payday 2 client:
http://www.mpgh.net/forum/754-payday...dy-set-up.html

Try a really hard bank heist:
http://www.mpgh.net/forum/754-payday...hard-mode.html

Most of the scripts below were discovered by me and I would appreciate credits when you redistribute them as it took a lot of time to find them all. I marked the ones that I didn't discover, they are simply included for completeness.

Level, skill points, money, and all weapons/mods (I take no credit):
Code:
managers.experience:_set_current_level(30) -- level
managers.skilltree:_set_points(1337) -- skill points
managers.money:_add_to_total(5000000000) -- money

-- All weapons unlocked
local wep_arr = {
    'new_m4', 'glock_17', 'mp9', 'r870', 'glock_18c', 'amcar', 'm16', 'olympic', 'ak74', 'akm', 'akmsu', 'saiga', 'ak5', 'aug', 'g36', 'p90', 'new_m14', 'deagle', 'new_mp5', 'colt_1911', 'mac10', 'serbu', 'huntsman', 'b92fs', 'new_raging_bull',  'saw'
}
for i, name in ipairs(wep_arr) do
    if not managers.upgrades:aquired(name) then
        managers.upgrades:aquire(name)
    end
end

-- All weapon mods
for mod_id,_ in pairs(tweak_data.blackmarket.weapon_mods) do
        tweak_data.blackmarket.weapon_mods[ mod_id ].unlocked = true
        managers.blackmarket:add_to_inventory("normal", "weapon_mods", mod_id, false)
end

-- All masks
managers.blackmarket:_setup_masks()
for mask_id,_ in pairs(tweak_data.blackmarket.masks) do
        Global.blackmarket_manager.masks[mask_id].unlocked = true
        managers.blackmarket:add_to_inventory("normal", "masks", mask_id, false)
end

-- All achievements
if managers.achievment then
        for id,_ in pairs(managers.achievment.achievments) do
                managers.achievment:award(id)
        end
end

-- Message on screen
if managers.hud then
    managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end
Masks, materials, textures, colors, weapon mods (I take no credit):
Code:
-------------------------------------------------------------------------
-- GiVE iTEMS ("masks", "materials", "textures", "colors", "weapon_mods")
-------------------------------------------------------------------------
function giveitems( times, type )
    for i=1, times do
        for mat_id,_ in pairs(tweak_data.blackmarket[type]) do    
            if _.infamous then
                managers.blackmarket:add_to_inventory("infamous", type, mat_id, false)
            elseif _.dlc then
                managers.blackmarket:add_to_inventory("preorder", type, mat_id, false)
            else
                managers.blackmarket:add_to_inventory("normal", type, mat_id, false)
            end
        end
        managers.blackmarket:remove_item("normal", "materials", "plastic", false)
        managers.blackmarket:remove_item("normal", "colors", "nothing", false)
    end
end

-- Example calls to get one of everything:
giveitems(1, "masks")
giveitems(1, "materials")
giveitems(1, "textures")
giveitems(1, "colors")
giveitems(1, "weapon_mods")
God mode (I take no credit), no fall damage (Credits to mikethemak at UC), instant mask on, increased movement speed (I take no credit), infinite stamina, carry mods, super jump (I take no credit), no recoil, no weapon spread, high weapon damage, instant reload, instant weapon swap, fast fire-rate, infinite clip, infinite saw, instant interaction/deploy, other upgrades (eg. Joker) (Credits to RabidFubar at MPG), remove cooldown between picking up bags (Credits to RabidFubar at MPG), infinite cable ties, infinite equipment deployables, sentry ammo/god mode:
Code:
-- God mode
managers.player:player_unit():character_damage():set_invulnerable( true )

-- No fall damage (useless if you have god mode on)
function PlayerDamage:damage_fall( data ) end

-- Instant mask on
tweak_data.player.put_on_mask_time = 0.1

-- Infinite stamina
function PlayerMovement:_change_stamina( value ) end
function PlayerMovement:is_stamina_drained() return false end
function PlayerStandard:_can_run_directional() return true 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 = 1.5
    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

-- 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 * 1.5
    end
    self._unit:mover():set_velocity( v )
end

-- No movement penalty, change to a larger value than 1 for an increase in speed
PlayerManager.body_armor_movement_penalty = function(self) return 1 end

-- Weapon spread
NewRaycastWeaponBase._get_spread = function(self) return 0 end

-- Weapon recoil
NewRaycastWeaponBase.recoil_multiplier = function(self) return 0 end

-- Weapon reload speed
NewRaycastWeaponBase.reload_speed_multiplier = function(self) return 2000 end

-- Weapon fire rate
NewRaycastWeaponBase.fire_rate_multiplier = function(self) return 10 end

-- Weapon swap speed
PlayerStandard._get_swap_speed_multiplier = function(self) return 2000 end

-- 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 )
    local result = _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

    return result
end

-- 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

-- Allow interaction with anything (ECM jammers, picking locks, deploying shaped charges, etc)
function BaseInteractionExt:_has_required_upgrade() return true end
function BaseInteractionExt:_has_required_deployable() return true end
function BaseInteractionExt:can_interact(player) return true end
function PlayerManager:has_category_upgrade( category, upgrade)
    if category == "player" and (upgrade == "civ_harmless_melee" or upgrade == "civ_harmless_bullets") then return false end
    return true -- Other upgrades (eg. Joker)
end
function PlayerManager:carry_blocked_by_cooldown() return false end -- Remove cooldown between picking up bags

-- Instant interaction (except for pagers because it doesn't work so well when you are client on multiplayer)
if not _getTimer then _getTimer = BaseInteractionExt._get_timer end
function BaseInteractionExt:_get_timer()
    if self.tweak_data == "corpse_alarm_pager" then
        return 0.1 -- if pagers don't work properly (eg. when you're a client in multiplayer) use 'return _getTimer(self)' instead.
    end
    return 0
end

-- Instant deploy
PlayerManager.selected_equipment_deploy_timer = function(self) return 0 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

-- Sentry god mode
function SentryGunDamage:damage_bullet( attack_data ) end

-- Message on screen
if managers.hud then
    managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end
Demi-god mode (2x health, 2x armor, 2x damage multiplier, instant armor regeneration, unlimited messiah charges (Credits to mikethemak at UC for armor regen & messiah charges)) -- fully compatible with any existing upgrade_value modifications you have (weapon damage, life, armor, etc):
Code:
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
Infinite ammo (different from infinite ammo clip, resets ammo on reload & also when ammo runs out, just in case you activate it late):
Code:
-- 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
100% Dodge (works while standing still or running, also works when you are melee'd, basically it's god mode, pro tip: use just the run_dodge_chance for less OP) -- fully compatible with any existing upgrade_value modifications you have (weapon damage, life, armor, etc):
Code:
-- 100% Dodge
if not _uvDodge then _uvDodge = PlayerManager.upgrade_value end 
function PlayerManager:upgrade_value( category, upgrade, default ) 
    if category == "player" and upgrade == "passive_dodge_chance" then
        return 1
    elseif category == "player" and upgrade == "run_dodge_chance" then
        return 1
    else
        return _uvDodge(self, category, upgrade, default) 
    end
end
100% Armor piercing for those bitch SWAT AI's with armor plating -- fully compatible with any existing upgrade_value modifications you have (weapon damage, life, armor, etc):
Code:
-- 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
Set FOV (and keep it there even when you zoom w/ ironsights, etc):
Code:
-- Set FOV to 80
if not _setFOV then _setFOV = Camera.set_fov end
function Camera:set_fov( new_fov )
    return _setFOV(self, 80)
end
managers.player:player_unit():camera()._camera_object:set_fov()
No hit disorientation:
Code:
-- No hit disorientation
function CoreEnvironmentControllerManager:hit_feedback_front() end
function CoreEnvironmentControllerManager:hit_feedback_back() end
function CoreEnvironmentControllerManager:hit_feedback_right() end
function CoreEnvironmentControllerManager:hit_feedback_left() end
function CoreEnvironmentControllerManager:hit_feedback_up() end
function CoreEnvironmentControllerManager:hit_feedback_down() end
No flashbangs:
Code:
-- No flashbangs
function CoreEnvironmentControllerManager:set_flashbang( flashbang_pos, line_of_sight, travel_dis, linear_dis ) end
Resist arrest:
Code:
-- Resist arrest
local _arrestedUpdate = Interception.Backup(PlayerArrested, "update")
function PlayerArrested:update( t, dt )
    _arrestedUpdate(self, t, dt)
    managers.player:set_player_state( "standard" )
end
Don't taze me bro:
Code:
-- 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
Increased interaction distance (20x, except on cameras, shaped charges, body bags, burn money & place camera [Firestarters job], or trip mines):
Code:
-- Infinite interact distance (except on cameras, shaped charges, body bags, burn money & place camera [Firestarters job], or trip mines)
function BaseInteractionExt:interact_distance()
    if self.tweak_data == "access_camera"
        or self.tweak_data == "shaped_sharge"
        or tostring(self._unit:name()) == "Idstring(@ID14f05c3d9ebb44b6@)"
        or self.tweak_data == "burning_money"
        or self.tweak_data == "stn_int_place_camera" 
        or self.tweak_data == "trip_mine" then
        return self._tweak_data.interact_distance or tweak_data.interaction.INTERACT_DISTANCE
    end
    return 20000 -- default is 200
end
Interact through walls (re-enabled after OVERKILL disabled this for certain units, works at any angle as well now):
Too large to put here.. http://pastebin.com/0grrcUFQ. Hit RAW for a plain text view for copy/pasting into your script files.

Toggle dat slowmo (world only, set SLOWMO_WORLD_ONLY to 'nil' to do world & player slowmo):
Code:
-- Toggle slowmo
SLOWMO_WORLD_ONLY = true -- possible values 'nil' or 'true'
if string.find(game_state_machine:current_state_name(), "game") then
    our_id = "_MaskOn_Peer"..tostring( managers.network:session():local_peer():id() )
    slowmo_id_world = "world" .. our_id
    slowmo_id_player = "player" .. our_id
    if not _timeEffectExpired then
        -- Enable
        _timeEffectExpired = TimeSpeedManager._on_effect_expired
        function TimeSpeedManager:_on_effect_expired( effect_id )
            local ret = _timeEffectExpired(self, effect_id)
            -- Check if we are in-game
            if string.find(game_state_machine:current_state_name(), "game") then
                -- Restart each effect
                if effect_id == slowmo_id_world then
                    managers.time_speed:play_effect( slowmo_id_world, tweak_data.timespeed.mask_on )
                elseif effect_id == slowmo_id_player and not SLOWMO_WORLD_ONLY then
                    managers.time_speed:play_effect( slowmo_id_player, tweak_data.timespeed.mask_on_player )
                end
            end
            return ret
        end
        tweak_data.timespeed.mask_on.fade_in_delay = 0
        tweak_data.timespeed.mask_on.fade_out = 0
        tweak_data.timespeed.mask_on.sync = true
        tweak_data.timespeed.mask_on_player.fade_in_delay = 0
        tweak_data.timespeed.mask_on_player.fade_out = 0
        tweak_data.timespeed.mask_on_player.sync = true
        managers.time_speed:play_effect( slowmo_id_world, tweak_data.timespeed.mask_on )
        if not SLOWMO_WORLD_ONLY then managers.time_speed:play_effect( slowmo_id_player, tweak_data.timespeed.mask_on_player ) end
    else
        -- Disable
        TimeSpeedManager._on_effect_expired = _timeEffectExpired
        _timeEffectExpired = nil

        if managers.time_speed._playing_effects then
            for id,_ in pairs(managers.time_speed._playing_effects) do
                if string.find(id, our_id) then
                    managers.time_speed:stop_effect(id)
                end
            end
        end
        SoundDevice:set_rtpc( "game_speed", 1 )
    end
end
Penetrative warp to crosshair (change PENETRATE to 'nil' instead of 'true' if you don't want to penetrate through walls):
Code:
-- Penetrative warp to crosshair
local PENETRATE = true -- set to 'nil' instead of 'true' if you don't want it to penetrate through walls, etc
local player_unit = managers.player:player_unit()
local camera = player_unit:camera()
local mvec_to = Vector3()
local from_pos = camera:position()
mvector3.set( mvec_to, camera:forward() )
mvector3.multiply( mvec_to, 20000 )
mvector3.add( mvec_to, from_pos )
local col_ray = World:raycast( "ray", from_pos, mvec_to, "slot_mask", managers.slot:get_mask( "bullet_impact_targets" ) )
if col_ray then
    if PENETRATE then
        local offset = Vector3()
        mvector3.set(offset, camera:forward())
        mvector3.multiply(offset, 100)
        mvector3.add(col_ray.hit_position, offset)
    end
    managers.player:warp_to(col_ray.hit_position, player_unit:rotation())
end
Warp to bullet (call this once before you shoot, then again whenever you want to teleport to your last bullet collision point):
Code:
-- Warp to bullet
if not _lastBullet then _lastBullet = nil end
if _lastBullet then managers.player:warp_to(_lastBullet, managers.player:player_unit():rotation()) end
if not _bulletCollision then _bulletCollision = InstantBulletBase.on_collision end
function InstantBulletBase:on_collision( col_ray, weapon_unit, user_unit, damage, blank )
    if user_unit == managers.player:player_unit() then
        _lastBullet = col_ray.hit_position
    end
    return _bulletCollision(self, col_ray, weapon_unit, user_unit, damage, blank)
end
Instant pickup for chemicals from Rats Day 1 (Some credits to gir489 at CE):
Code:
-- Add chems from Rats Day 1
if managers.job:current_level_id() == "alex_1" then
    managers.player:add_special( { name = "caustic_soda", silent = true, amount = 1 } )
    managers.player:add_special( { name = "hydrogen_chloride", silent = true, amount = 1 } )
    managers.player:add_special( { name = "acid", silent = true, amount = 1 } )
end
Toggles enemy/camera highlighting (coloring credits to Yanrishatum at UC, Civilians = Green, Taser = Blue, Shield = Orange, Tank = Yellow, Sniper = Pink, Cop/Other = Purple):
Code:
-- 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
Ensure alarms aren't tripped by guards / security cams, etc (sometimes causes crash on missions where stealth completion is impossible, eg. Rats: Day 3):
Code:
if not _setCool then _setCool = CopMovement.set_cool end
function CopMovement:set_cool( state, giveaway )
    if state == true then _setCool(self, state, giveaway) end
end
if not _setWhisper then _setWhisper = GroupAIStateBase.set_whisper_mode end
function GroupAIStateBase:set_whisper_mode( enabled )
    if enabled == true then _setWhisper(self, true) end
end
if not _setObjective then _setObjective = CopBrain.set_objective end
function CopBrain:set_objective( new_objective )
    if (not new_objective) or (new_objective.stance ~= "hos" and new_objective.attitude ~= "engage") then _setObjective(self, new_objective) end
end
if not _setStance then _setStance = CopMovement.set_stance end
function CopMovement:set_stance( new_stance_name )
    if new_stance_name ~= "hos" then _setStance(self, new_stance_name) end
end
if not _setStanceCode then _setStanceCode = CopMovement.set_stance_by_code end
function CopMovement:set_stance_by_code( new_stance_code )
    if new_stance_code == 1 then _setStanceCode(self, new_stance_code) end
end
if not _setInteraction then _setInteraction = CopLogicInactive._set_interaction end
function CopLogicInactive._set_interaction( data, my_data )
    data.char_tweak.has_alarm_pager = false
    _setInteraction(data, my_data)
end
if not _setAllowFire then _setAllowFire = CopMovement.set_allow_fire end
function CopMovement:set_allow_fire( state )
    if state == false then _setAllowFire(self, state) end
end
if not _setAllowFireClient then _setAllowFireClient = CopMovement.set_allow_fire_on_client end
function CopMovement:set_allow_fire_on_client( state, unit )
    if state == false then _setAllowFireClient(self, state, unit) end
end
-- Prevents panic buttons & intel burning (intercepting the 'run' action is the only way; for example, if you intercept events such as 'e_so_alarm_under_table' to prevent intel burning, the animation will not happen but the fire will still appear)
if not _actionRequest then _actionRequest = CopMovement.action_request end
function CopMovement:action_request( action_desc )
    -- action_desc.variant == "e_so_alarm_under_table": gangsters lighting intel on fire in Big Oil Day 1, etc
    -- action_desc.variant == "cmf_so_press_alarm_wall": civilian in Bank Heist pressing panic button, etc
    -- action_desc.variant == "cmf_so_press_alarm_table": tellers in Bank Heist pressing panic button, etc
    -- action_desc.variant == "cmf_so_call_police": civilians calling the police
    -- action_desc.variant == "arrest_call": cops saying they are calling the police

    -- Stops panic buttons & intel burning
    if action_desc.variant == "run" then return false end

    return _actionRequest(self, action_desc)
end
function CopMovement:on_suppressed( state ) end
function CopLogicBase._get_logic_state_from_reaction( data, reaction ) return "idle" end 
function CopLogicIdle.on_alert( data, alert_data ) 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:add_alert_listener( id, clbk, filter_num, types, m_pos ) end
function GroupAIStateBase:criminal_spotted( unit ) end 
function GroupAIStateBase:report_aggression( unit ) end 
function GroupAIStateBase:propagate_alert( alert_data ) end
function GroupAIStateBase:on_criminal_suspicion_progress( u_suspect, u_observer, status ) end
function PlayerMovement:on_suspicion( observer_unit, status ) end 
function SecurityCamera:_upd_suspicion( t ) end 
function SecurityCamera:_sound_the_alarm( detected_unit ) end 
function SecurityCamera:_set_suspicion_sound( suspicion_level ) end 

-- Message on screen
if managers.hud then
    managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end
Demi-stealth (alternative to full 'no alarm cheat'; instead alarms won't be triggered and you can use pager infinite amount of times (there is still a risk of failing pager interaction on the first try though, just FYI)) (Some credits to Exerct at UC for helping pull together the necessary code, credits to mikethemak at UC for infinite ECM jammer battery):
Code:
-- Allow infinite pagers
function GroupAIStateBase:on_successful_alarm_pager_bluff() end

-- Infinite ECM jammer battery
function ECMJammerBase:update( unit, t, dt )
    self._battery_life = self._max_battery_life
end

-- Allows answer pagers, bag corpses, and spot NPC's with the cameras as well as other features I'm sure
if not _setWhisper then _setWhisper = GroupAIStateBase.set_whisper_mode end
function GroupAIStateBase:set_whisper_mode( enabled )
   if enabled == true then _setWhisper(self, true) end
end

-- Make people not fire
if not _setAllowFire then _setAllowFire = CopMovement.set_allow_fire end
function CopMovement:set_allow_fire( state )
   if state == false then _setAllowFire(self, state) end
end
if not _setAllowFireClient then _setAllowFireClient = CopMovement.set_allow_fire_on_client end
function CopMovement:set_allow_fire_on_client( state, unit )
   if state == false then _setAllowFireClient(self, state, unit) end
end

-- Makes guards & people in general stop calling the cops
function GroupAIStateBase:on_police_called( called_reason ) end

-- Stops civs from reporting you
function CivilianLogicFlee.clbk_chk_call_the_police( ignore_this, data ) end

-- Make cameras not trigger the alarm
function SecurityCamera:_sound_the_alarm( detected_unit ) end

-- Gets rid of the sound of the camera seeing you
function SecurityCamera:_set_suspicion_sound( suspicion_level ) end

-- Stops police from saying they are calling the police all the time
function CopLogicArrest._say_call_the_police( data, my_data ) end

-- Prevents panic buttons & intel burning (intercepting the 'run' action is the only way; for example, if you intercept events such as 'e_so_alarm_under_table' to prevent intel burning, the animation will not happen but the fire will still appear)
if not _actionRequest then _actionRequest = CopMovement.action_request end
function CopMovement:action_request( action_desc )
    -- action_desc.variant == "e_so_alarm_under_table": gangsters lighting intel on fire in Big Oil Day 1, etc
    -- action_desc.variant == "cmf_so_press_alarm_wall": civilian in Bank Heist pressing panic button, etc
    -- action_desc.variant == "cmf_so_press_alarm_table": tellers in Bank Heist pressing panic button, etc
    -- action_desc.variant == "cmf_so_call_police": civilians calling the police
    -- action_desc.variant == "arrest_call": cops saying they are calling the police

    -- Stops panic buttons & intel burning
    if action_desc.variant == "run" then return false end

    return _actionRequest(self, action_desc)
end
Unlimited & instant intimidations/conversions (works on all units [shields/snipers/etc], 100% accuracy & no spread to your snipers) (Credits to RabidFubar at MPG for initial code, I added shields/snipers) -- fully compatible with any existing upgrade_value modifications you have (weapon damage, life, armor, etc):
Code:
-- 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 0.25
    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
On a side note, here are some other interesting intimidation upgrade values for those who like to experiment: intimidate_range_mul, passive_intimidate_range_mul, civ_intimidation_mul, intimidate_aura.

Unlimited & instant intimidations/conversions only for host (works on all units [shields/snipers/etc], 100% accuracy & no spread to your snipers) (Credits to RabidFubar at MPG for initial code, I added shields/snipers) -- fully compatible with any existing upgrade_value modifications you have (weapon damage, life, armor, etc):
Code:
-- 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 0.25
    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 )
    if aggressor_unit == managers.player:player_unit() then
        CopLogicIdle._surrender( data, amount )
        return true
    else
        return _onIntimidated(data, amount, aggressor_unit)
    end
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
No cash penalty for killing civillians (for the homicidal maniac inside all of us) (Credits to mikethemak at UC):
Code:
-- No cash penalty for killing civillians
function MoneyManager.get_civilian_deduction() return 0 end
function MoneyManager.civilian_killed() return end
Kill all AI's currently on the map:
Code:
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_data.col_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
Unlimited doctor bag uses (Credits to mikethemak at UC):
Code:
-- Unlimited doctor bag uses
function DoctorBagBase:_take( unit )
    unit:character_damage():recover_health() -- replenish()
    return 0
end
Fast drilling (I take no credit):
Code:
function TimerGui:_set_jamming_values() return end
function TimerGui:start( timer )
        timer = 0.01
        if self._jammed then
                self:_set_jammed( false )
                return
        end
       
        if not self._powered then
                self:_set_powered( true )
                return
        end
       
        if self._started then
                return
        end
       
        self:_start( timer )
        if managers.network:session() then
                managers.network:session():send_to_peers_synched( "start_timer_gui", self._unit, timer )
        end
end
Secure bags of loot during a mission (Credits to RabidFubar at MPG):
Code:
function secure(name)
        managers.loot:secure( name, managers.money:get_bag_value( name ) )
end
secure("money") -- (Cash)
secure("gold")
secure("diamonds")
secure("coke")
secure("meth")
secure("weapons")
Small loot value multiplier (extra jewelry cash value in jewelry store, deposit boxes in bank heist, etc) (concept credits to mikethemak at UC) -- fully compatible with any existing upgrade_value modifications you have (weapon damage, life, armor, etc):
Code:
-- Small loot value multiplier (extra jewelry cash value in jewelry store, deposit boxes in bank heist, etc)
if not _uvSmallLoot then _uvSmallLoot = PlayerManager.upgrade_value end 
function PlayerManager:upgrade_value( category, upgrade, default ) 
    if category == "player" and upgrade == "small_loot_multiplier" then 
        return 10
    else 
        return _uvSmallLoot(self, category, upgrade, default) 
    end 
end
if not _uvlSmallLoot then _uvlSmallLoot = PlayerManager.upgrade_value_by_level end 
function PlayerManager:upgrade_value_by_level( category, upgrade, level, default ) 
    if category == "player" and upgrade == "small_loot_multiplier" then 
        return 10
    else 
        return _uvlSmallLoot(self, category, upgrade, level, default) 
    end 
end
Add preset jobs (run this while on main menu, then enter crime.net):
Code:
-- Spawning Jobs 
-- job_id: "branchbank_cash_prof", etc
-- difficulty: "easy" *Easy*, "normal" *Normal*, "hard" *Hard*, "overkill" *Very Hard*, "overkill_145" *Overkill*
function add_job(job_id, difficulty)
    local difficulty_id = tweak_data:difficulty_to_index( difficulty )
    table.insert( managers.crimenet._presets, { job_id = job_id, difficulty_id = difficulty_id, difficulty = difficulty, chance = 1 } )
    managers.crimenet._MAX_ACTIVE_JOBS = managers.crimenet._MAX_ACTIVE_JOBS + 1
end

-- _NEW_JOB_MIN_TIME/_NEW_JOB_MAX_TIME are a better alternative to managers.crimenet._debug_mass_spawning
managers.crimenet._NEW_JOB_MIN_TIME = 0
managers.crimenet._NEW_JOB_MAX_TIME = 0
managers.crimenet._presets = { }
managers.crimenet._active_jobs = { }
managers.crimenet._MAX_ACTIVE_JOBS = 0
add_job("welcome_to_the_jungle_prof", "overkill_145")
add_job("framing_frame", "overkill_145")
add_job("branchbank_prof", "overkill_145")
add_job("ukrainian_job_prof", "overkill_145")
add_job("watchdogs", "overkill_145")
add_job("alex", "overkill_145")
add_job("firestarter", "overkill_145")
add_job("jewelry_store", "overkill_145")
add_job("four_stores", "overkill_145")
add_job("nightclub", "overkill_145")
add_job("mallcrasher", "overkill_145")
add_job("family", "overkill_145")
Code:
"welcome_to_the_jungle_prof", -- (Big Oil)
"framing_frame", "framing_frame_prof",
"watchdogs", "watchdogs_prof",
"alex", "alex_prof", -- (Rats)
"firestarter", "firestarter_prof",
"ukrainian_job_prof",
"jewelry_store",
"four_stores",
"nightclub",
"mallcrasher",
"branchbank_deposit", "branchbank_cash", "branchbank_gold_prof", "branchbank_prof".
"family" -- (Diamond Heist)
If you use any job_id that isn't listed here, you will have issues on multiplayer (like if you try to do "welcome_to_the_jungle" (not pro job), the mission isn't meant to be played without the pro flag set).

Select missions to add with a menu:
http://www.*************.me/forum/pa...-missions.html

Alternative to spawning preset jobs (works only with Update 10+, this allows you to purchase any job for free) (Credits to v00d00 at UC):
Code:
-- Free job purchase
function MoneyManager:get_cost_of_premium_contract(job_id, difficulty) return 0 end
Free assets (you must activate the script after everyone has loaded to the room where you have the option to purchase assets) (Credits to mikethemak at UC):
Code:
-- Free assets
function MoneyManager:on_buy_mission_asset( asset_id ) return 0 end
function MoneyManager:get_mission_asset_cost() return 0 end
function MoneyManager:get_mission_asset_cost_by_stars( stars ) return 0 end
function MoneyManager:get_mission_asset_cost_by_id( id ) return 0 end
Allow restart on pro jobs:
Code:
-- Allow restart on pro jobs
if not _oldIsProfessional then _oldIsProfessional = JobManager.is_current_job_professional end
if not _newIsProfessional then _newIsProfessional = function(self) return false end end
if not _lobbyStateEnter then _lobbyStateEnter = IngameLobbyMenuState.at_enter end
function IngameLobbyMenuState:at_enter()
    JobManager.is_current_job_professional = _newIsProfessional
    _lobbyStateEnter(self)
    JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbyContinue then _lobbyContinue = GameOverState.continue end
function GameOverState:continue()
    JobManager.is_current_job_professional = _newIsProfessional
    _lobbyContinue(self)
    JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbyShutDownNetwork then _lobbyShutDownNetwork = GameOverState._shut_down_network end
function GameOverState:_shut_down_network( ... )
    JobManager.is_current_job_professional = _newIsProfessional
    _lobbyShutDownNetwork(self, ...)
    JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbyLoadStartMenu then _lobbyLoadStartMenu = GameOverState._load_start_menu end
function GameOverState:_load_start_menu( ... )
    JobManager.is_current_job_professional = _newIsProfessional
    _lobbyLoadStartMenu(self, ...)
    JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbySetBtnText then _lobbySetBtnText = GameOverState._set_continue_button_text end
function GameOverState:_set_continue_button_text()
    JobManager.is_current_job_professional = _newIsProfessional
    _lobbySetBtnText(self)
    JobManager.is_current_job_professional = _oldIsProfessional
end
function MenuCallbackHandler:singleplayer_restart() return true end
Force win:
Code:
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
Force loss:
Code:
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
Force specific escape:
Code:
-- Force specific escape ("escape_cafe", "escape_park", "escape_street", "escape_overpass", "escape_garage", "escape_overpass_night")
if not _setInterrupt then _setInterrupt = JobManager.set_next_interupt_stage end
function JobManager:set_next_interupt_stage( interrupt )
    _setInterrupt(self, "escape_garage")
end
Force no escape (unlocks Expert Driver asset on any mission except Rats, run this on the Job screen, should work even if not hosting):
Code:
function unlock_asset( asset_id )
    local asset = managers.assets:_get_asset_by_id( asset_id )
    if asset then
        if Network:is_server() and not managers.assets:get_asset_triggered_by_id( asset_id ) then
            managers.assets:server_unlock_asset( asset_id )
        elseif not managers.assets:get_asset_unlocked_by_id( asset_id ) then
            managers.network:session():send_to_host( "server_unlock_asset", asset_id )
        end
        asset.show = true
    else
        table.insert( managers.assets._global.assets, { id=asset_id, unlocked=true, show=true, can_unlock=false } )
    end
    managers.assets:init_finalize()
    managers.menu_component:create_asset_mission_briefing_gui()
end
unlock_asset("safe_escape")

Edit (8/18/13): Added weapon damage, alternative to god mode (2x health), and movement speed increase (thanks to EpicYeti).
Edit (8/19/13): Fixed weapon damage, added 2x armor also.
Edit (8/19/13): Added infinite stamina, long throw distance, instant interaction/deploy (no need to even have ECM jammer / C4 in your inventory). Also added gun mods unlocked & masks unlocked.
Edit (8/20/13): Fixed upgrade_value if statements. Also changed default throwing distance to 2.0 instead of 10.0, to help prevent you from chucking your cash too far.
Edit (8/20/13): Removed code to disable cheats (because honestly.. are you going to disable that shit?). Added code to highlight all enemies on map while in stealth mode (without the use of a camera). Updated alarm prevention code with GroupAIStateBase:set_whisper_mode hook. Added infinite pagers to the bottom. Added code for setting preset jobs. Updated the infinite equipment (not host) code, hopefully it works now.
Edit (8/21/13): Added extra carry mods in addition to throwing distance: no movement speed penalty, allows jumping/running.
Edit (8/21/13): Updated the enemy highlighting code so that it re-highlights enemies every ~10 seconds.
Edit (8/23/13): Updated the enemy highlighting to only attempt highlighting when in-game. Otherwise the code errors and doesn't finish the rest of the script. Added sentry gun infinite ammo / no recoil (left the weapon spread in because sentries have a tough time killing if they shoot in one spot) / god mode.
Edit (8/23/13): Updated job spawning, found out there are certain jobs you shouldn't try to play (Big Oil needs to be a pro job, jewelry store can't be pro, etc).
Edit (8/24/13): Updated stealth code to disallow all NPC actions except death (no more intel burning in Big Oil mission, etc). Added 'allow restart on pro jobs'. Added force win. Added force loss.
Edit (8/26/13): Fixed stealth code to work on certain missions (Nightclub was reported case).
Edit (8/27/13): Updated infinite stamina.
Edit (8/28/13): Added 'Allow more enemies to be converted (after they are intimidated)'. Added fast drilling.
Edit (8/28/13): Added demi-stealth mode. Fixed regular stealth mode code as well. I fucked up on the CopMovement:action_request intercept originally.
Edit (8/30/13): Updated job spawning to work with Update 10 (added chance parameter).
Edit (8/30/13): Updated the 'mark enemies' feature to include cameras (should only be used in Update 10+).
Edit (9/1/13): Added 'Free job purchase' script. Updated instant interaction to use 0.1 seconds for pagers. Added 'Instant mask on'.
Edit (9/2/13): Added 'other upgrades (eg. Joker)'. Added 'remove cooldown between picking up bags'.
Edit (9/2/13): Added 'Instant pickup for chemicals from Rats Day 1'. Added 'Instant pickup for server from Firestarter Day 2'.
Edit (9/3/13): Updated highlighting code to highlight civilians a light color (pinkish). Also updated it to sync the 'camera-vision' to other network peers.
Edit (9/4/13): Added 'Unlimited & instant intimidations/conversions'.
Edit (9/5/13): Updated highlighting code to not highlight converted / surrendered enemies.
Edit (9/7/13): Fixed highlighting code to work in multiplayer.
Edit (9/8/13): Added '100% Dodge' and '100% Armor piercing'.
Edit (9/9/13): Added 'Unlimited & instant intimidations/conversions only for host'.
Edit (9/10/13): Updated highlighting code with coloring, credits to Yanrishatum at UC, it is visible only to the user, Civilians = Green, Taser = Blue, Shield = Orange, Tank = Yellow, Sniper = Pink, Cop/Other = Purple. Added 'Free assets', 'No cash penalty for killing civillians', and 'Unlimited doctor bag uses', credits to mikethemak at UC. Also added 'Masks, materials, textures, colors, weapon mods'.
Edit (9/10/13): Added 'Force specific escape'. Also added 'No fall damage', 'Infinite ECM jammer battery', 'Instant armor regeneration', and 'Unlimited messiah charges', credits to mikethemak at UC. Added 'Small loot value multiplier', concept credits to mikethemak at UC.
Edit (9/11/13): Fixed 'Small loot value multiplier'.
Edit (9/14/13): Added 'Diamond Heist (Pro)' to job spawning code. Added 'Increased interaction distance (20x)'.
Edit (9/15/13): Fixed 'Infinite ammo clip' and 'Infinite saw' (they weren't being hooked properly..). Added 'Infinite ammo' (different from infinite ammo clip). Added 'No hit disorientation'. Added 'No flashbangs'. Updated highlighting code so that multiplayer peers' highlighting won't overwrite your own (so your colors don't get replaced by the standard red). Removed 'Diamond Heist (Pro)', left 'Diamond Heist'. The pro version isn't meant to be played & will cause problems when playing multiplayer with that job.
Edit (9/15/13): Updated 'Increased interaction distance' so that it doesn't work on cameras & C4 charges. Updated 'Infinite ammo' to reset ammo on reload & also when ammo runs out, just in case you activate it late.
Edit (9/15/13): Added 'Secure bags of loot during a mission', credits to RabidFubar at MPG. Fixed 'Infinite ammo' (sorry..).
Edit (9/17/13): Added 'Force no escape'. Added every unit type except Shield to the instant intimidations (credits to RabidFubar at MPG).
Edit (9/17/13): Added 'Dat slowmo (world & player)' and 'Dat slowmo (world only)'.
Edit (9/18/13): Fixed PlayerManager:has_category_upgrade so that it doesn't give you the 'Harmless To Civilians' perk. Updated intimidation code to allow SHIELDS & SNIPERS
Edit (9/18/13): Updated slowmo to toggle.
Edit (9/19/13): Fixed 'Infinite ammo' to allow NPCs to reload properly. Updated interact distance to not affect cameras, shaped charges, body bags, burn money & place camera [Firestarters job], or trip mines. Added 'Interact through walls'.
Edit (9/21/13): Updated highlighting code to toggle. Added 'Don't taze me bro'. Added 'Warp to crosshair'. Added 'Warp to bullet'.
Edit (9/23/13): Fixed 'Don't taze me bro' to prevent occasional crashes. Updated 'Interact through walls' to work at any angle (eg. keyboard in Framing Frame Day 3). Updated slowmo to work on multiplayer (sends slowmo effect to peers now). Updated 'Warp to crosshair' to 'Penetrative warp to crosshair'.
Edit (9/29/13): Added 'Kill all AI's currently on the map'. Fixed 'Interact through walls' to work at any angle (again). Added 'Set FOV'. Added 'Resist arrest'.
Quote Originally Posted by MartianManhunter View Post
Any trace of escape map to chose them ?
Added 'Force specific escape'. Also added 'No fall damage', 'Infinite ECM jammer battery', 'Instant armor regeneration', and 'Unlimited messiah charges', credits to mikethemak at UC. Added 'Small loot value multiplier', concept credits to mikethemak at UC.
small loot value multiplier crashes when looting jewelry =(
Quote Originally Posted by ixfingerzxi View Post
small loot value multiplier crashes when looting jewelry =(
I'm sorry, I left my debug line in there, you can delete the dump(...) line and it should work fine.

Quote Originally Posted by Rampant_uterus View Post
edit: yeah, just happened, while getting "free assets" sigh, also escape code didn't work? When do you trigger it, Got no escape.

IS THIS A GAME BUG or hack bug = bags not registering in van. Can't save them either cause going into escape zone ends mission (for solo)
I trigger my scripts once in lobby & again while in game. It won't force your mission to have an escape after it. It will only make sure that if the game determines there should be an escape, it will pick yours. I didn't test it with loot bags, sorry.
Quote Originally Posted by dougbenham View Post
I'm sorry, I left my debug line in there, you can delete the dump(...) line and it should work fine.
works perfect now. thank you!
Is the money one also broken for you guys?
usually when i try insert (all code) before a map loads (like lobby) I get a bug while sprinting where the gun juts up into the face area =/ and no headbob. Looks really awful. Disable headbob code makes it look worse.

edit: yeah, just happened, while getting "free assets" sigh, also escape code didn't work? When do you trigger it, Got no escape.

IS THIS A GAME BUG or hack bug = bags not registering in van. Can't save them either cause going into escape zone ends mission (for solo)

Also, i've been trying to get drill auto-repair to work 100% and enable "faster drill" without skillpoints (allotted elsewhere)

These haven't worked for me:

Code:
elseif category == "player" and upgrade == "drill_autorepair" then
	return 1 -- also tried player_drill_autorepair
   elseif category == "player" and upgrade == "cable_tie_quantity" then
	return 5
   elseif category == "player" and upgrade == "extra_ammo_multiplier1" then
	return true
   elseif category == "player" and upgrade == "smg_enter_steelsight_speed_multiplier" then
	return true
   elseif category == "player" and upgrade == "player_cheat_death_chance" then
	return true -- also tried 1 (this is ghosts auto-revive, not working in this manner)
anyone have alternatives to enable these w/ scripts? I must be doing it wrong. Works for some codes, but not all.

PENISFACE. also, 3rd day firestarter, small loot code crashes game when u collect any small loot (cashwad off desk)
Quote Originally Posted by Rampant_uterus View Post
usually when i try insert (all code) before a map loads (like lobby) I get a bug while sprinting where the gun juts up into the face area =/ and no headbob. Looks really awful. Disable headbob code makes it look worse.

edit: yeah, just happened, while getting "free assets" sigh, also escape code didn't work? When do you trigger it, Got no escape.

IS THIS A GAME BUG or hack bug = bags not registering in van. Can't save them either cause going into escape zone ends mission (for solo)

Also, i've been trying to get drill auto-repair to work 100% and enable "faster drill" without skillpoints (allotted elsewhere)

These haven't worked for me:

Code:
elseif category == "player" and upgrade == "drill_autorepair" then
	return 1 -- also tried player_drill_autorepair
   elseif category == "player" and upgrade == "cable_tie_quantity" then
	return 5
   elseif category == "player" and upgrade == "extra_ammo_multiplier1" then
	return true
   elseif category == "player" and upgrade == "smg_enter_steelsight_speed_multiplier" then
	return true
   elseif category == "player" and upgrade == "player_cheat_death_chance" then
	return true -- also tried 1 (this is ghosts auto-revive, not working in this manner)
anyone have alternatives to enable these w/ scripts? I must be doing it wrong. Works for some codes, but not all.

PENISFACE. also, 3rd day firestarter, small loot code crashes game when u collect any small loot (cashwad off desk)
Interesting idea you have there, specially since your game stats are tracked now, and having 200 skills point would be see as cheater and result being banned ( not yet but maybe later ).
I myself tryed to toogle on/off the saw script so it's not obvious to others players, but so far no luck.
source : steam forum, a user even started to use those stats on his website payday2-stats.fr ( if you look for player 76561197961169497 in search bar i's just obvious..... lulz )
instant cash is showing the multiplier on screen when i pick it up, but not when I end mission or pressing TAB. 414k from bank heist OK Pro, 70k from UK OK Pro.

example, at x10 ATM shows $220,000 looted, but press TAB, only $22,000.

its not working Lol good try though (yes i'm host)

maybe you need to use the (peer_id) (asset_id) type code for the loot for it to register w/ server. like Inf equipment non-host. etc.
Quote Originally Posted by Rampant_uterus View Post
instant cash is showing the multiplier on screen when i pick it up, but not when I end mission or pressing TAB. 414k from bank heist OK Pro, 70k from UK OK Pro.

example, at x10 ATM shows $220,000 looted, but press TAB, only $22,000.

its not working Lol good try though (yes i'm host)

maybe you need to use the (peer_id) (asset_id) type code for the loot for it to register w/ server. like Inf equipment non-host. etc.
Fixed 'Small loot value multiplier'.
how i can desactived cameras ? in update 11 ?
thanks
any idea how can i deduct my money?
okay i get how to set keybinds but how do i set a keybind to REVERSE and TURN OFF this hack?

if not _setCool then _setCool = CopMovement.set_cool end
function CopMovement:set_cool( state, giveaway )
if state == true then _setCool(self, state, giveaway) end
end
if not _setWhisper then _setWhisper = GroupAIStateBase.set_whisper_mode end
function GroupAIStateBase:set_whisper_mode( enabled )
if enabled == true then _setWhisper(self, true) end
end
if not _setObjective then _setObjective = CopBrain.set_objective end
function CopBrain:set_objective( new_objective )
if (not new_objective) or (new_objective.stance ~= "hos" and new_objective.attitude ~= "engage") then _setObjective(self, new_objective) end
end
if not _setStance then _setStance = CopMovement.set_stance end
function CopMovement:set_stance( new_stance_name )
if new_stance_name ~= "hos" then _setStance(self, new_stance_name) end
end
if not _setStanceCode then _setStanceCode = CopMovement.set_stance_by_code end
function CopMovement:set_stance_by_code( new_stance_code )
if new_stance_code == 1 then _setStanceCode(self, new_stance_code) end
end
if not _setInteraction then _setInteraction = CopLogicInactive._set_interaction end
function CopLogicInactive._set_interaction( data, my_data )
data.char_tweak.has_alarm_pager = false
_setInteraction(data, my_data)
end
if not _setAllowFire then _setAllowFire = CopMovement.set_allow_fire end
function CopMovement:set_allow_fire( state )
if state == false then _setAllowFire(self, state) end
end
if not _setAllowFireClient then _setAllowFireClient = CopMovement.set_allow_fire_on_client end
function CopMovement:set_allow_fire_on_client( state, unit )
if state == false then _setAllowFireClient(self, state, unit) end
end
-- Prevents panic buttons & intel burning (intercepting the 'run' action is the only way; for example, if you intercept events such as 'e_so_alarm_under_table' to prevent intel burning, the animation will not happen but the fire will still appear)
if not _actionRequest then _actionRequest = CopMovement.action_request end
function CopMovement:action_request( action_desc )
-- action_desc.variant == "e_so_alarm_under_table": gangsters lighting intel on fire in Big Oil Day 1, etc
-- action_desc.variant == "cmf_so_press_alarm_wall": civilian in Bank Heist pressing panic button, etc
-- action_desc.variant == "cmf_so_press_alarm_table": tellers in Bank Heist pressing panic button, etc
-- action_desc.variant == "cmf_so_call_police": civilians calling the police
-- action_desc.variant == "arrest_call": cops saying they are calling the police

-- Stops panic buttons & intel burning
if action_desc.variant == "run" then return false end

return _actionRequest(self, action_desc)
end
function CopMovementn_suppressed( state ) end
function CopLogicBase._get_logic_state_from_reaction( data, reaction ) return "idle" end
function CopLogicIdle.on_alert( data, alert_data ) end
function GroupAIStateBasen_police_called( called_reason ) end
function GroupAIStateBasen_police_weapons_hot( called_reason ) end
function GroupAIStateBasen_gangster_weapons_hot( called_reason ) end
function GroupAIStateBasen_enemy_weapons_hot( is_delayed_callback ) end
function GroupAIStateBase:add_alert_listener( id, clbk, filter_num, types, m_pos ) end
function GroupAIStateBase:criminal_spotted( unit ) end
function GroupAIStateBase:report_aggression( unit ) end
function GroupAIStateBaseropagate_alert( alert_data ) end
function GroupAIStateBasen_criminal_suspicion_progress( u_suspect, u_observer, status ) end
function PlayerMovementn_suspicion( observer_unit, status ) end
function SecurityCamera:_upd_suspicion( t ) end
function SecurityCamera:_sound_the_alarm( detected_unit ) end
function SecurityCamera:_set_suspicion_sound( suspicion_level ) end

-- Message on screen
if managers.hud then
managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end
hey what is the secript of cameras i don t unterstand how i do ?
Posts 115 of 273 · Page 1 of 19
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?