Oxygen Not Included

Upload your cheat tables here (No requests)
User avatar
BringChaos
Table Makers
Table Makers
Posts: 60
Joined: Tue Mar 13, 2018 9:45 pm
Reputation: 32

Oxygen Not Included

Post by BringChaos »

[URL]https://fearlessrevolution.com/threads/oxygen-not-included.2694/page-2#post-25242[/URL]

Seems like this post from 6 months ago works on v267379. Has anyone asking for updates even tried it?

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

pahbi
Noobzor
Noobzor
Posts: 9
Joined: Tue May 22, 2018 11:55 pm
Reputation: 2

Oxygen Not Included

Post by pahbi »

SunBeam, post: 46740, member: 12587 wrote:In my days, people were adapting to the game version the table was conceived for; nowadays though there's constant whining over updates...


I saw that the OP script had something to do with mono, so I poked around with oxygen not included and cheat engine, and was browsing the mono stuff, but I couldn't figure out how OP made the connection between mono and what he or she was writing to memory.



Its pretty interesting though. I'm gonna go poke around and see if there is a tutorial or something to read up on.



- P

User avatar
BringChaos
Table Makers
Table Makers
Posts: 60
Joined: Tue Mar 13, 2018 9:45 pm
Reputation: 32

Oxygen Not Included

Post by BringChaos »

[QUOTE="pahbi, post: 46765, member: 17549"]I saw that the OP script had something to do with mono, so I poked around with oxygen not included and cheat engine, and was browsing the mono stuff, but I couldn't figure out how OP made the connection between mono and what he or she was writing to memory.



Its pretty interesting though. I'm gonna go poke around and see if there is a tutorial or something to read up on.



- P[/QUOTE]

The author only uses mono to load a symbol list for addresses. The intent is to inject into named Mono functions in Assembly-CSharp.dll.

E.I MinionStartingStats:GenerateAttributes+25b rather than doing an AOB scan for the opcodes. You can browse classes in Mono -> Dissect Mono

pahbi
Noobzor
Noobzor
Posts: 9
Joined: Tue May 22, 2018 11:55 pm
Reputation: 2

Oxygen Not Included

Post by pahbi »

Does that make the table more future proof than a aob scan?



- P
Last edited by pahbi on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

User avatar
BringChaos
Table Makers
Table Makers
Posts: 60
Joined: Tue Mar 13, 2018 9:45 pm
Reputation: 32

Oxygen Not Included

Post by BringChaos »

[QUOTE="pahbi, post: 46777, member: 17549"]Does that make the table more future proof than a aob scan?[/QUOTE]

If the developer is not sabotaging this method yes. After a year the only thing that changed was mov rax,[rbp-00000158] became mov rax,[rbp-00000140] in the GenerateAttributes+25b for the Super Duplicate Cheat. It also makes updating the table much faster if the devs only tweak a function/pointer a little. This method is also faster for injecting since AOB sometimes takes awhile to scan.
Last edited by BringChaos on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

User avatar
SunBeam
Administration
Administration
Posts: 4704
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4287

Oxygen Not Included

Post by SunBeam »

[USER=14031]@BringChaos[/USER]: "If the developer is not sabotaging this method yes." - wow; it's not the developer's call to "sabotage" whatever; it's how the code is compiled, therefore the compiler's fault. And this can change based on random race conditions, they don't really need to add something in the function itself to change.
Last edited by SunBeam on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

User avatar
BringChaos
Table Makers
Table Makers
Posts: 60
Joined: Tue Mar 13, 2018 9:45 pm
Reputation: 32

Oxygen Not Included

Post by BringChaos »

[USER=12587]@SunBeam[/USER] The IL code for this game's base functions has hardly compiled any differently after a year of development. Sure the frame/stack pointers get changed randomly based on the flow into/around a function even if that function does not get changed. I understand why it happens and it has hasnt been a real issue for this game. Most functions in this pop general registers at the start and thus the compiled code does not change much at all.

I have seen developers add multiple redundancy checks, multi-threaded failure to obfuscate what set it off or even taking what was once a simple xmm read and write into a 2000 line mess all in response to an asm injection that was developed. Some compilers have obfuscation security options to make it difficult to read and follow. Thats what I mean by sabotage and developers can do these things on purpose. Why use a symbol thats obfuscated randomly every patch over an aobscan? He asked to compare I think he got a reasonable answer.

This engine and particular game however are very gentle for the technique he is asking about. I'm not new, I just like to keep to myself.
Last edited by BringChaos on Thu Jan 01, 1970 12:00 am, edited 2 times in total.

User avatar
Csimbi
RCE Fanatics
RCE Fanatics
Posts: 878
Joined: Sat Apr 29, 2017 9:04 pm
Reputation: 1203

Re: Oxygen Not Included

Post by Csimbi »

I decided to try this game again.
Here is a table I built. It's the "debug" version so it should be easier to update for anyone interested in the future.
It includes a few scripts (I kept them separate for now), important code locations, structures and so on.

A few words on those scripts:
- aobCellMassGrabber; for devs only. It gives you the visual pointer for a cell you clicked (which, in turn can be used to track down the actual grid in the cell later - the grid is a massive array).
- Diable CE HotKeys LUA script; disables CE's hotkeys. Not specific to this game, I just like to disable hotkeys in some CE instances when I play multiple games so the hotkeys don't interfere with the games I want to leave alone.
- aobAttributeGenerator; enable and your newly created duplicants' random stats will be generated from a much bigger pool.
- aobXPCalc; enable and duplicants assigned to jobs gain job-related experience faster.
- aobManualGeneratorTick enable to make manual generators super efficient (you can recharge massive battery arrays in just a few secs).
- aobAIAmountUpdater; this is comparable to pox991's vital stat script; in general, it keeps a bunch of duplicant vitals up so you can focus on base building instead of people management.
- aobDebugKeyTester; enable this to enable debug mode/keys.
- aobMeteorBombardmentToggle; enable this to have no meteor showers.
- aobConduitBoilCalc; enabling this won't cause damage to the pipes when the liquid inside starts boiling.
- aobConduitBoilEmpty; enabling this won't empty the pipes when the liquid inside starts boiling.
- aobConduitFreezeCalc; same logic as boil.
- aobConduitFreezeEmpty; same logic as boil.
- aobOverCalc*; there are two of these. One is for machinery overheat and the other is for electric wire overload - these scripts prevent damage for either one. The thing is the code is identical in both functions so you never know which one you enable ;-) Enable both for best effect.

Note: most scripts you can enable after you loaded a save, except the last two. These two need the game running a bit (so a machine or a wire does get damage).

As usual, no support.
Good luck!

Props to TechnoJacker

Update #1
Meteors are a pest, so I added aobMeteorBombardmentToggle.

Update #2
I tried filling up a rocket's hydrogen liquid tank and guess what.
The hydrogen starts boiling inside the insulated pipe (!), causing damage to the pipe and leaking all the gas.
Well, no more because I added aobConduitBoilCalc and aobConduitBoilEmpty ;-).
While at it, I also added aobConduitFreezeCalc and aobConduitFreezeEmpty - logic is the same there.
Attachments
1FROxygenNotIncluded.CT
(220.8 KiB) Downloaded 177 times

mulrich
Expert Cheater
Expert Cheater
Posts: 73
Joined: Fri Apr 28, 2017 6:25 pm
Reputation: 12

Re: Oxygen Not Included

Post by mulrich »

Several or all of the duplicant vitals cheats crash the game.

User avatar
STN
Founder
Founder
Posts: 4426
Joined: Thu Mar 02, 2017 7:48 pm
Reputation: 3423

Re: Oxygen Not Included

Post by STN »

I love this game and play it a lot. Here are a few cheats i made for myself, thought i'd share them with you guys :D
  • Super Duplicants(On Generation) - Fixed Pox's script. All credits to him for this. Very useful when printing new dupes or new game.
  • Enable Debug Menu
  • Full Breath
  • No Stress
  • Incubator Egg - Eggs will incubate to 100% instantly in the incubator
  • Gain Skill Points - Change the value to 1 to enable this, it will automatically disable after adding a bunch of skill points to your dupes. Change to value to 1 again if you want more skill points to be added.
Have fun :)
Attachments
OxygenNotIncluded.CT
(6.78 KiB) Downloaded 167 times

drunksanta
Cheater
Cheater
Posts: 25
Joined: Sun Jan 20, 2019 8:53 am
Reputation: 3

Re: Oxygen Not Included

Post by drunksanta »

STN wrote:
Fri Jul 26, 2019 9:54 pm
TY

Gine
Noobzor
Noobzor
Posts: 9
Joined: Tue Jul 23, 2019 3:30 am
Reputation: 2

Re: Oxygen Not Included

Post by Gine »

Super Duplicants is not working game will be crashing

ONI_Player69
What is cheating?
What is cheating?
Posts: 1
Joined: Fri Aug 02, 2019 1:46 am
Reputation: 1

Re: Oxygen Not Included

Post by ONI_Player69 »

STN wrote:
Fri Jul 26, 2019 9:54 pm
I love this game and play it a lot. Here are a few cheats i made for myself, thought i'd share them with you guys :D
  • Super Duplicants(On Generation) - Fixed Pox's script. All credits to him for this. Very useful when printing new dupes or new game.
  • Enable Debug Menu
  • Full Breath
  • No Stress
  • Incubator Egg - Eggs will incubate to 100% instantly in the incubator
  • Gain Skill Points - Change the value to 1 to enable this, it will automatically disable after adding a bunch of skill points to your dupes. Change to value to 1 again if you want more skill points to be added.
Have fun :)
With the duplicity save editor not working, I came here looking for something to help out and was super exited when I found your updated table from just a few days ago! But, of course, they just did their final release update and now the super dupe function just crashes the game. I'm not familiar enough with how it works to understand how to fix it. Would you be kind enough to take a look and see if you can figure it out? It would be appreciated, thanks so much.

User avatar
STN
Founder
Founder
Posts: 4426
Joined: Thu Mar 02, 2017 7:48 pm
Reputation: 3423

Re: Oxygen Not Included

Post by STN »

ONI_Player69 wrote:
Fri Aug 02, 2019 1:50 am
With the duplicity save editor not working, I came here looking for something to help out and was super exited when I found your updated table from just a few days ago! But, of course, they just did their final release update and now the super dupe function just crashes the game. I'm not familiar enough with how it works to understand how to fix it. Would you be kind enough to take a look and see if you can figure it out? It would be appreciated, thanks so much.
Sure, i love to play this game. What other cheats are broken?

They completely redesigned the character generation screen so i hope a super dupes script can be made again. Will take a look when i get on my PC.

Zanzer
RCE Fanatics
RCE Fanatics
Posts: 1086
Joined: Fri Mar 03, 2017 10:48 pm
Reputation: 3471

Re: Oxygen Not Included

Post by Zanzer »

Does this achieve the desired effect without breaking anything else?

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>73</ID>
      <Description>"Set Starting Attributes to 99"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscan(attributes,48 63 09 44 03 C1)
alloc(newmem,$1000,attributes)

label(code)
label(return)

newmem:
  mov dword ptr [rcx],#99
code:
  movsxd  rcx,dword ptr [rcx]
  add r8d,ecx
  jmp return

attributes:
  jmp newmem
  nop
return:
registersymbol(attributes)

[DISABLE]
attributes:
  db 48 63 09 44 03 C1
unregistersymbol(attributes)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 2790EC464F4

2790EC464C9: 4C 8B 8D 58 FE FF FF           -  mov r9,[rbp-000001A8]
2790EC464D0: 4D 8B 49 58                    -  mov r9,[r9+58]
2790EC464D4: 4D 8B D1                       -  mov r10,r9
2790EC464D7: 41 83 3A 00                    -  cmp dword ptr [r10],00
2790EC464DB: 4D 63 49 38                    -  movsxd  r9,dword ptr [r9+38]
2790EC464DF: 41 FF C9                       -  dec r9d
2790EC464E2: 4D 63 C9                       -  movsxd  r9,r9d
2790EC464E5: 44 39 49 18                    -  cmp [rcx+18],r9d
2790EC464E9: 0F 86 FC 05 00 00              -  jbe MinionStartingStats:GenerateAttributes+9db
2790EC464EF: 4A 8D 4C 89 20                 -  lea rcx,[rcx+r9*4+20]
// ---------- INJECTING HERE ----------
2790EC464F4: 48 63 09                       -  movsxd  rcx,dword ptr [rcx]
2790EC464F7: 44 03 C1                       -  add r8d,ecx
// ---------- DONE INJECTING  ----------
2790EC464FA: 48 8B C8                       -  mov rcx,rax
2790EC464FD: 48 83 EC 20                    -  sub rsp,20
2790EC46501: 83 38 00                       -  cmp dword ptr [rax],00
2790EC46504: 49 BB E0 56 15 15 79 02 00 00  -  mov r11,System.Collections.Generic:Dictionary`2:set_Item
2790EC4650E: 41 FF D3                       -  call r11
2790EC46511: 48 83 C4 20                    -  add rsp,20
2790EC46515: 41 FF C7                       -  inc r15d
2790EC46518: 48 8B 85 B8 FE FF FF           -  mov rax,[rbp-00000148]
2790EC4651F: 48 8B 40 38                    -  mov rax,[rax+38]
2790EC46523: 48 8B C8                       -  mov rcx,rax
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Post Reply

Who is online

Users browsing this forum: Anacra, antax795, Bing [Bot], Bootloop, copylamb, Dan_Lyle, Google [Bot], Google Adsense [Bot], H_C_L, Proprietor, sadie0216, stuka85, tesla7, Wack, WarStalkeR