Pre-point: I apparently cant post URL's so I cant insert images, so you will need to copy and paste the URL if you need to see the screenshots for the instructions. Hopefully a mod will see this and fix that for us.
1. This is my first attempt at something like this, I have gone in with no knowledge, so this is fairly basic
2. Some work is required to get this working for each map area
3. I'm hoping by sharing this someone who knows how to make stuff work with pointers will take it on. I've read a couple hours into it, but couldn't figure it out.
4. This was made with FLT release of the game, I can't confirm if it works with other versions.
Instructions
Load into a map and start a New Scan with the value of the starting Dirty Money, in my instance, this is 4000.
Now spend some Dirty Money to adjust the value. I spend 500, so my new total drops to 3500.
Put this into the Value and hit enter or click Next Scan
You will now need to click on the Found Address to select it.
Now go down to the Values, right click on Dirty Money and then Recalculate new addresses
You should then get a Recalculate address dialog box pop up, with a negative or positive Offset. If this is 0, make sure you have the Found Address highlighted. Click Change.
All of the other values should then change to reflect what is displayed in your game
You can now edit all of the values
I will try to work on this to get pointers working myself, and will also look at Heat. I am also trying to work on Combat Health, AP and MP, but not knowing how to create Pointers means too much messing about in CE every time you go into combat.
----------------
CheatCodes.lua (from 1.04)
Code:
if FirstLoad then
if not config.UnlockAllMissions then
end
UnlockAllMissions = false
end
PersistableGlobals.UnlockAllMissions = true
GlobalVar("ActiveCheats", {})
CheatCodes = {{id = "chfullhouse", display_name = T({1197, "Full House"}), description = T({1198, "Unlock all henchmen"}), action = function(self)
if GameState.district then
ActiveCheats[self.id] = true
UnlockAllMembers()
SetGangSize(6)
local dlg = GetDialog("GangTab")
if dlg then
dlg:InitImages()
dlg:InitHenchmenList()
end
dlg = GetDialog("GangMembers")
if dlg then
dlg:FillList()
end
end
end
}, {id = "chfearme", display_name = T({1199, "Fear Me"}), description = T({1200, "Sets feared rating to maximum"}), action = function(self)
if GameState.district and Resources then
ActiveCheats[self.id] = true
Resources:Change("fear_target", 100)
Resources:Change("fear", 100)
end
end
}, {id = "charmsrace", display_name = T({1203, "Arms Race"}), description = T({1204, "Adds a weapon of each type to the inventory"}), action = function(self)
if SessionStorage then
local weapons = GetAllWeaponTypes()
for i = 1, #weapons do
table.insert(SessionStorage.Inventory, weapons)
end
local dlg = GetDialog("GangEquip")
if dlg then
dlg:SetInventoryInfo()
end
end
end
}, {id = "chfancysuit", display_name = T({1205, "Fancy Suit"}), description = T({1206, "Sets liked rating to maximum"}), action = function(self)
if GameState.district and Resources then
ActiveCheats[self.id] = true
Resources:Change("like_target", 100)
Resources:Change("like", 100)
end
end
}, {id = "chfeellucky", display_name = T({1207, "Feel Lucky"}), description = T({1208, "Win a tactical mission"}), action = function(self)
if GameState.combat and not GameState.multiplayer and not GetDialog("VictoryScreen") then
NetSyncEvent("Command", "EndTurn")
_CheatWinCombat = "victory"
end
end
}, {id = "chcementshoes", display_name = T({1210, "Cement Shoes"}), description = T({6884, "Lose a tactical mission"}), action = function(self)
if GameState.combat and not GameState.multiplayer and not GetDialog("VictoryScreen") then
NetEvent("Command", "EndTurn")
_CheatWinCombat = "defeat"
end
end
}, {id = "chplayground", display_name = T({1211, "Playground"}), description = T({1212, "Unlock all districts"}), action = function(self)
if not Platform.developer then
return
end
local dlg = GetStrategicViewUI()
if dlg and dlg.mode == "missions" then
ActiveCheats[self.id] = true
UnlockAllMissions = true
ActiveCheats.chfullhouse = true
UnlockAllMembers()
SetGangSize(6)
CloseStrategicViewUI()
OpenStrategicViewUI("missions")
end
end
}, {id = "chbigdeal", display_name = T({6885, "Big Deal"}), description = T({6886, "Adds $<dirty> Dirty and $<clean> Clean Money"; dirty = 20000, clean = 20000}), action = function(self)
if GameState.district and Resources then
ActiveCheats[self.id] = true
Resources:Change("dirty_money", 20000)
Resources:Change("clean_money", 20000)
end
end
}, {id = "chsecretstash", display_name = T({6887, "Secret Stash"}), description = T({6888, "Adds <liquor> Liquor, <beer> Beer and <firearms> Firearms"; liquor = 50, beer = 50, firearms = 50}), action = function(self)
if GameState.district and Resources then
ActiveCheats[self.id] = true
Resources:Change("liquor", 50)
Resources:Change("beer", 50)
Resources:Change("firearms", 50)
Resources:Change("storage", 150)
end
end
}, {id = "chdrycity", display_name = T({6981, "Dry City"}), description = T({6982, "Wins the current district"}), action = function(self)
if not Platform.developer then
return
end
if GameState.district then
CreateRealTimeThread(function()
SA_Win.Exec(false, false, false, false)
end
)
end
end
}; input = "", max_len = 30, min_len = 20}
for level = 1, 12 do
do
if level > 10 or not "0" .. tostring(level) then
local num = tostring(level)
end
local cheat_level = {id = "chding" .. num, display_name = T({1213, "Level up to <num>"; num = tonumber(num)}), description = T({1214, "Levels up to <num>"; num = tonumber(num)}), action = function(self)
if GameState.district and SessionStorage then
local gang = SessionStorage.Gang
end
if gang and gang.Level < l_0_3 then
SetGangLevel(l_0_3)
end
end
}
table.insert(CheatCodes, cheat_level)
end
end
table.sort(CheatCodes, function(a, b)
return #b.id < #a.id
end
)
AreAnyCheatsUsed = function()
return not not next(ActiveCheats)
end
AreCheatsAvailable = function()
if Platform.developer then
return true
end
if Platform.demo then
return false
end
if Platform.xbox then
return false
end
end
ActivateCheat = function(cheatid)
if not AreCheatsAvailable() then
print("Cheat nopped:", cheatid)
return
end
local idx = table.find(CheatCodes, "id", cheatid)
Msg("CheatActivated", CheatCodes[idx])
CheatCodes[idx]:action()
end
if FirstLoad then
_CheatWinCombat = false
end
Credits: Csimbi,DarkIceCore, SeriousrAVER
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1