Page 1 of 2

[REQ] Survivalist: Invisible Strain

Posted: Fri Jun 05, 2020 11:31 pm
by Rickyn227
[B]Game Name:[/B] Survivalist: Invisible Strain

[B]Game Version:[/B] v79

[B]Options Required:[/B] Health, Ammo, Stats and maybe an inventory editor if possible?

[B]Steam Website:[/B] [MEDIA=steamstore]1054510[/MEDIA]



It's the sequel to an old XBLA title, still EA at the moment but it honestly looks really promising, insanely cheap considering.

[REQ] Survivalist: Invisible Strain

Posted: Sat Jun 06, 2020 2:10 am
by The Mogician
I might get it later and see if I can make a table.

[REQ] Survivalist: Invisible Strain

Posted: Sat Jun 06, 2020 11:11 pm
by hisvileness
it's pretty good

[automerge]1591750079[/automerge]

you can do most of what you want in the debug menu, f8

[REQ] Survivalist: Invisible Strain

Posted: Sun Jun 14, 2020 4:29 pm
by Sigan
Updated for Early Access v157 - latest public beta

The game doesn't play well on my computer right now. Nevertheless, I've updated the list of pointers and most of the scripts. If they're orange, they're not yet totally updated and should not be activated. I'll attempt more updating later.

Table Description

Character Creation Scripts
Infinite Clothing Points
Infinite Equipment Points
Infinite Skill Points


Item Scripts (Global)
Item Usage Minimum
Item Gifting Minimum
Liquids Minimum

Other Global Scripts
Infinite Fires
No Reloads

Community Scripts
No Fatigue
No Blood Loss
No Hunger
No Thirst
No Sleep Deprivation
Super Push
No Infection (
rate stays at zero, still can get infected)
Perfect Temperature
Never Drunk
Never Blackout Drunk - New
Perfect Aim
Invincible Buildings
Fast Build - (Designate a building before activating)
Fast Build - Alternate (Activate one or the other, not both!)
Squad Zero Weight
- Thank you Cake-san!

Fog of War
No Fog
No Fog of War

Pointers (Including God Mode)

[REQ] Survivalist: Invisible Strain

Posted: Sun Jun 14, 2020 6:59 pm
by Cake-san
Here

[SPOILER="Squad Zero weight"][CODE=xml]







65

"Squad Zero weight"



Auto Assembler Script

{$lua}

LaunchMonoDataCollector()

function getInsForJum(address)

local i=0

local bytes,opcode=""

while(i<5) do

local add, opc=splitDisassembledString(disassemble(getAddressSafe(address)+i))

if(i==0) then opcode=opc

else opcode=opcode.."
"..opc end

i=i+getInstructionSize(getAddressSafe(address)+i)

end

local byt = readBytes(address,i,1)

for j=1,#byt do if(j==1)then bytes=string.format("%x",byt[j]) else bytes=bytes..string.format(" %x",byt[j]) end end

return i,opcode,bytes end

{$asm}



[ENABLE]

alloc(newmem,2048,EquipmentContainer:GetWeight)

label(returnhere)

label(_EquipmentContainerGetWeight)

registersymbol(_EquipmentContainerGetWeight)

getmonostruct(Character)



newmem:

test rdx,rdx

je short @f

cmp [rdx+Character.SquadId],0

jne short @f

xorpd xmm0,xmm0

ret

@@:

{$lua}

local i,opc,byt = getInsForJum("EquipmentContainer:GetWeight")

return opc

{$asm}

jmp returnhere



_EquipmentContainerGetWeight:

{$lua}

local i,opc,byt = getInsForJum("EquipmentContainer:GetWeight")

return "db "..string.format(" %x",i).." "..byt

{$asm}



EquipmentContainer:GetWeight:

jmp newmem

{$lua}

local i,opc,byt = getInsForJum("EquipmentContainer:GetWeight")

local str=""

for j=i-5,1,-1 do if(j==i-5)then str=str.."db 90" else str=str.." 90" end end

return str

{$asm}

returnhere:



[DISABLE]

dealloc(newmem)

EquipmentContainer:GetWeight:

{$lua}

return "readmem(_EquipmentContainerGetWeight+1,"..readBytes("_EquipmentContainerGetWeight",1)..")"

{$asm}

unregistersymbol(_EquipmentContainerGetWeight)









[/CODE][/SPOILER]

[REQ] Survivalist: Invisible Strain

Posted: Mon Jun 15, 2020 4:14 am
by Sigan
Thank you for that. I had to save it as a .ct file through a text editor, then copy/paste it into my table in order to get it to work because the CE editor kicks back a syntax error if I just copy/paste the code into the assembler. I'm not sure why.



Also: No idea what you've done there with the code, but it works in game. So, it's added as a script in my table, it's functional in game, but it can't be assembled in CE beyond what you've done here.



I'm finding that some of my scripts aren't fully functional as intended. [S]For instance, it seems the No Blood Loss script only applies to the character I'm controlling. Is the check I'm implementing on the squadID not working?[/S] [COLOR=rgb(147, 101, 184)]Edit: Changing this to community-> uniqueID is more effective.[/COLOR] Is there anyone that can look through my scripts and explain my errors in a way that a 5-year-old can understand? Or, show me something I'm missing?



Now I'm trying to work on a perfect aim script. I need to update it all to 0.81, though, so it might take a bit.

[REQ] Survivalist: Invisible Strain

Posted: Sun Jun 21, 2020 6:15 am
by Cake-san
Played around and I think I should stop here...

[REQ] Survivalist: Invisible Strain

Posted: Sun Jun 21, 2020 2:29 pm
by Sigan
[QUOTE="Cake-san, post: 140262, member: 1634"]

Played around and I think I should stop here...

[/QUOTE]



LoLz... awesome. I've been playing around more too. I think we broke it :)



Edit: Your main script will cause some continually repeating errors when the game is closed out. Have to deactivate it to make the error reporting window go away.

Re: [REQ] Survivalist: Invisible Strain

Posted: Sat Jan 09, 2021 11:22 am
by SadMan38
Could someone, please, make an updated table for version 1.07?
Pretty please

Re: [REQ] Survivalist: Invisible Strain

Posted: Sun Sep 19, 2021 4:44 pm
by CarlosGFG
So some scripts still work, but it gives an error, and to use the table again you have to restart the game, and the bad thing is that it happens directly in an interval of 30 or 40 minutes I think. If possible please update, if i had the necessary knowledge i would do it but i don't know sad life

Re: [REQ] Survivalist: Invisible Strain

Posted: Mon Sep 20, 2021 4:18 am
by CarlosGFG
Sigan wrote:
Sun Jun 14, 2020 4:29 pm
I'm curious about this too. I've created a simple table that is... somewhat functional, but it's not as functional as I intend it to be. If someone wants to give me some education on this subject, I'd really appreciate it and look forward to using it in future tables.


Table Description

Character Creation Scripts

Infinite Clothing Points

Infinite Equipment Points

Infinite Skill Points




Item Scripts

Minimum Amount (Globally)

Infinite Fires

No Reload (
Globally)

No Fatigue

No Blood Loss

No Hunger

No Thirst

No Sleep Deprivation

Super Push

No Infection
(rate stays at zero, still can get infected)

Perfect Temperature

Squad Zero Weight
- Thank you Cake-san!

Max Morale

Perfect Aim

Invincible Buildings

Never Drunk




Fog of War

No Fog

No Fog of War




Pointers (Including God Mode)
Your table is very nice, but it closes the game when you run the script to find the community, in this last update v126 if possible you update and fix it would make this humble be immensely happy for you.

Re: [REQ] Survivalist: Invisible Strain

Posted: Tue Jan 04, 2022 7:56 pm
by Sigan
Updated to latest dev version, 135
Edit: Annnndddd I had to fix a couple things... redownload it, if you were one of the two downloads from earlier today
Edit 1/6: Further updates and a new script. Now, your community can get drunk and not pass out!

Re: [REQ] Survivalist: Invisible Strain

Posted: Fri Jan 14, 2022 10:18 am
by Sigan
If there's someone that could write a script for zeroing out approval/respect values for any memories in our community that are negative, I'd really appreciate it. I don't know how to accomplish this, but I bet it's an easier thing to do with lua than assembly. I don't know lua well enough to accomplish it.

As well, if there's someone that could troubleshoot this script, I'd appreciate it. For some reason, when I do the cmp, it crashes the game. Everything else is allowed and the game runs fine, but when I add the cmp it crashes."
No Clothing Dampness

{ Game : Survivalist Invisible Strain.exe
Author : Sigan
}

define(address,Character:SimulateClothesDampness+1435)
define(bytes,F3 0F 11 68 54)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Character:SimulateClothesDampness+1435)
label(noDampness)
label(cleanUp)
label(code)
label(return)

newmem:
push rcx
push rdx
mov rcx,[rax+290] //community
mov rdx,[rcx+98] //uniqueID
cmp [_community],rdx
jne cleanUp
movss xmm5,[noDampness]
cleanUp:
pop rdx
pop rcx
movss xmm5,[noDampness]
code:
movss [rax+54],xmm5
jmp return

noDampness:
dd (float)0

address:
jmp newmem
return:
registersymbol(noDampness)
[DISABLE]

address:
db bytes
// movss [rax+54],xmm5

dealloc(newmem)
unregistersymbol(noDampness)
{
// ORIGINAL CODE - INJECTION POINT: Character:SimulateClothesDampness+1435

Character:SimulateClothesDampness+1407: F2 0F 11 85 A8 FE FF FF - movsd [rbp-00000158],xmm0
Character:SimulateClothesDampness+140f: 41 BB 00 00 00 00 - mov r11d,00000000
Character:SimulateClothesDampness+1415: 4D 85 DB - test r11,r11
Character:SimulateClothesDampness+1418: 74 07 - je Character:SimulateClothesDampness+1421
Character:SimulateClothesDampness+141a: 4C 8B 5D A8 - mov r11,[rbp-58]
Character:SimulateClothesDampness+141e: 41 FF 13 - call qword ptr [r11]
Character:SimulateClothesDampness+1421: 90 - nop
Character:SimulateClothesDampness+1422: 48 8B 85 B0 FE FF FF - mov rax,[rbp-00000150]
Character:SimulateClothesDampness+1429: F2 0F 10 85 A8 FE FF FF - movsd xmm0,[rbp-00000158]
Character:SimulateClothesDampness+1431: F2 0F 5A E8 - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
Character:SimulateClothesDampness+1435: F3 0F 11 68 54 - movss [rax+54],xmm5
// ---------- DONE INJECTING ----------
Character:SimulateClothesDampness+143a: 41 BB 00 00 00 00 - mov r11d,00000000
Character:SimulateClothesDampness+1440: 4D 85 DB - test r11,r11
Character:SimulateClothesDampness+1443: 74 07 - je Character:SimulateClothesDampness+144c
Character:SimulateClothesDampness+1445: 4C 8B 5D A8 - mov r11,[rbp-58]
Character:SimulateClothesDampness+1449: 41 FF 13 - call qword ptr [r11]
Character:SimulateClothesDampness+144c: 90 - nop
Character:SimulateClothesDampness+144d: 4C 8B 5D A0 - mov r11,[rbp-60]
Character:SimulateClothesDampness+1451: 4D 8B 1B - mov r11,[r11]
Character:SimulateClothesDampness+1454: 4D 85 DB - test r11,r11
Character:SimulateClothesDampness+1457: 74 03 - je Character:SimulateClothesDampness+145c
}
I'm also not sure about pushing that many registers. Would it be acceptable to do something like this instead?
No Clothing Dampness Alt
{ Game : Survivalist Invisible Strain.exe
Author : Sigan
}

define(address,Character:SimulateClothesDampness+1435)
define(bytes,F3 0F 11 68 54)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Character:SimulateClothesDampness+1435)
label(noDampness)
label(cleanUp)
label(code)
label(return)

newmem:
push rcx
mov rcx,[rax+290] //community
mov rcx,[rcx+98] //uniqueID
cmp [_community],rcx
jne cleanUp
movss xmm5,[noDampness]
cleanUp:
pop rcx
movss xmm5,[noDampness]
code:
movss [rax+54],xmm5
jmp return

noDampness:
dd (float)0

address:
jmp newmem
return:
registersymbol(noDampness)
[DISABLE]

address:
db bytes
// movss [rax+54],xmm5

dealloc(newmem)
unregistersymbol(noDampness)
{
// ORIGINAL CODE - INJECTION POINT: Character:SimulateClothesDampness+1435

Character:SimulateClothesDampness+1407: F2 0F 11 85 A8 FE FF FF - movsd [rbp-00000158],xmm0
Character:SimulateClothesDampness+140f: 41 BB 00 00 00 00 - mov r11d,00000000
Character:SimulateClothesDampness+1415: 4D 85 DB - test r11,r11
Character:SimulateClothesDampness+1418: 74 07 - je Character:SimulateClothesDampness+1421
Character:SimulateClothesDampness+141a: 4C 8B 5D A8 - mov r11,[rbp-58]
Character:SimulateClothesDampness+141e: 41 FF 13 - call qword ptr [r11]
Character:SimulateClothesDampness+1421: 90 - nop
Character:SimulateClothesDampness+1422: 48 8B 85 B0 FE FF FF - mov rax,[rbp-00000150]
Character:SimulateClothesDampness+1429: F2 0F 10 85 A8 FE FF FF - movsd xmm0,[rbp-00000158]
Character:SimulateClothesDampness+1431: F2 0F 5A E8 - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
Character:SimulateClothesDampness+1435: F3 0F 11 68 54 - movss [rax+54],xmm5
// ---------- DONE INJECTING ----------
Character:SimulateClothesDampness+143a: 41 BB 00 00 00 00 - mov r11d,00000000
Character:SimulateClothesDampness+1440: 4D 85 DB - test r11,r11
Character:SimulateClothesDampness+1443: 74 07 - je Character:SimulateClothesDampness+144c
Character:SimulateClothesDampness+1445: 4C 8B 5D A8 - mov r11,[rbp-58]
Character:SimulateClothesDampness+1449: 41 FF 13 - call qword ptr [r11]
Character:SimulateClothesDampness+144c: 90 - nop
Character:SimulateClothesDampness+144d: 4C 8B 5D A0 - mov r11,[rbp-60]
Character:SimulateClothesDampness+1451: 4D 8B 1B - mov r11,[r11]
Character:SimulateClothesDampness+1454: 4D 85 DB - test r11,r11
Character:SimulateClothesDampness+1457: 74 03 - je Character:SimulateClothesDampness+145c
}
Keep in mind, _community is a global variable defined elsewhere, in another script. There are multiple ways to make sure that I'm only affecting my community, but this was my original method and, while it may seem a bit amateur, it worked.

Thanks for any help.

Re: [REQ] Survivalist: Invisible Strain

Posted: Fri Jan 14, 2022 5:38 pm
by CarlosGFG
Thank you very much Sigan for updating your table

Re: [REQ] Survivalist: Invisible Strain

Posted: Sat Jan 15, 2022 3:09 am
by Sigan
I'm still interested in making further updates. I just need help from people that know better than me. You're welcome, though. I hope it makes things more fun for you.