Page 12 of 16

Re: The Outer Worlds (Epic Game Store)

Posted: Tue Nov 05, 2019 1:45 pm
by OMb123
Aztec2012 wrote:
Sun Nov 03, 2019 7:59 pm
Shadw wrote:
Sun Nov 03, 2019 6:45 pm
I have pointer for change current Attribut :
Attributes not saved. When reload a save it rollback to original values.
BrutaleBent wrote:
Sun Nov 03, 2019 9:21 am
So, just to get this right - you can't edit attributes or skill points after character creation at all? :/
I'm sure it's possible, there must be a base character stat value somewhere. The pointer found in this thread probably is the final value that's calculated after adding/removing points with flaws.

Re: The Outer Worlds (Epic Game Store) Noclip

Posted: Tue Nov 05, 2019 5:05 pm
by Aztec2012
CheatingMuppet wrote:
Mon Nov 04, 2019 12:54 am
Finally figured out collisions fully. The following is a script for flying and noclipping (ghost).

SunBeam gets some credit for this because he helped me get to the bottom of how bActorEnableCollision works. Short of it is that the bitfield structure is not the same for every ue4 game like I had thought and I brainfarted and didn't try different structures until SunBeam confirmed that the offset that I found was correct. Anyway here it is, just enable the first script and then one of the other scripts (only 1 at a time please). I'm sure SunBeam will come out with his usual console command restoration table soon.

And as always, feel free to use this in your tables or trainers just give credit.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>16327</ID>
      <Description>"Get Pointer"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$LUA}
-- Pointer Paths
muppetAPlayerController = 0x388 -- in APlayerCameraManager
muppetAPlayerState = 0x390 -- in APlayerController
muppetACharacter = 0x3C8 -- in APlayerController
muppetUCharacterMovementComponent = 0x3F8 -- in ACharacter
muppetUCapsuleComponent = 0x400 -- in ACharacter
muppetSpreadManagerComponent = 0xB08 -- in ACharacter
muppetPlayerInventoryComponent = 0xB30 -- in ACharacter
muppetEquipmentComponent = 0xBF8 -- in ACharacter
muppetCurrentHeldEquipment = 0x2D8 -- in EquipmentComponent
muppetStandardAmmoPool = 0x210 -- in CurrentHeldEquipment
muppetPlayerHealthComponent = 0xBE8 -- in ACharacter
muppetPlayerStatComponent_C = 0xC00 -- in ACharacter
muppetPlayerInfoComponent = 0xC08 -- in ACharacter
muppetCameraComponent = 0xED0 -- in ACharacter
muppetPlayerTargetingComponent = 0xEE0 -- in ACharacter
muppetPlayerInteractionComponent = 0x1430 -- in ACharacter

--muppetAPlayerController = '[muppetGetInjPoint]+388'
--muppetAPlayerState = ''

--print(muppetAPlayerController)

{$ASM}

aobscanmodule(getInjectPoint,IndianaEpicGameStore-Win64-Shipping.exe,F3 0F 10 B1 A4 03 00 00 33) // should be unique
alloc(newmem,$1000,"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E1)

label(code)
label(return)
label(muppetGetInjPoint)
registersymbol(muppetGetInjPoint)

newmem:
  push rdi
  lea rdi,[rcx]
  mov [muppetGetInjPoint],rdi
  pop rdi

code:
  movss xmm6,[rcx+000003A4]
  jmp return

muppetGetInjPoint:
  dq 0

getInjectPoint:
  jmp newmem
  nop 3
return:
registersymbol(getInjectPoint)

[DISABLE]

getInjectPoint:
  db F3 0F 10 B1 A4 03 00 00

unregistersymbol(getInjectPoint)
unregistersymbol(muppetGetInjPoint)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E1

"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BB: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BC: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BD: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BE: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BF: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1C0: 48 81 EC 98 05 00 00     -  sub rsp,00000598
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1C7: 0F 29 B4 24 80 05 00 00  -  movaps [rsp+00000580],xmm6
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1CF: 48 8B 05 62 BE 13 02     -  mov rax,[IndianaEpicGameStore-Win64-Shipping.exe+3D88038]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1D6: 48 33 C4                 -  xor rax,rsp
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1D9: 48 89 84 24 70 05 00 00  -  mov [rsp+00000570],rax
// ---------- INJECTING HERE ----------
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E1: F3 0F 10 B1 A4 03 00 00  -  movss xmm6,[rcx+000003A4]
// ---------- DONE INJECTING  ----------
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E9: 33 C0                    -  xor eax,eax
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1EB: 0F 57 C0                 -  xorps xmm0,xmm0
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1EE: 89 44 24 20              -  mov [rsp+20],eax
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1F2: 0F 2F F0                 -  comiss xmm6,xmm0
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1F5: 77 18                    -  ja IndianaEpicGameStore-Win64-Shipping.exe+1C4C20F
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1F7: 48 8B 01                 -  mov rax,[rcx]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1FA: 48 8D 54 24 30           -  lea rdx,[rsp+30]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1FF: FF 90 28 07 00 00        -  call qword ptr [rax+00000728]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C205: F3 0F 10 70 18           -  movss xmm6,[rax+18]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C20A: B8 01 00 00 00           -  mov eax,00000001
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>16328</ID>
          <Description>"Fly"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$LUA}
if syntaxcheck then return end

[ENABLE]
local addressList = getAddressList()
local enableFirstRecord = addressList.getMemoryRecordByDescription("Get Pointer")
if enableFirstRecord ~= nil and enableFirstRecord.Active == false then
  error('Activate Get Pointer')
end


-- MovementMode: 5 = Flying, 3 = Falling, 1 = Walking
-- bCheatFlying: 0 (4bytehex: 890) = Not Flying, 1 (4bytehex: 894) = Flying
-- MaxFlySpeed: Default is 600
-- MaxAcceleration: Default is 2048
-- bImmuneToFallDamage: 0 = Can take fall damage, 1 = Can not take fall damage
-- Offsets:
-- 388 = APlayerController; 3C8 = ACharacter; 3F8 = UCharacterMovementComponent
--                                            BE8 = HealthComponent
muppetMovementMode = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+1E8'
muppetbCheatFlying = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+3F4'
muppetMaxFlySpeed = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+218'
muppetMaxAcceleration = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+220'
muppetbImmuneToFallDamage = '[[[[muppetGetInjPoint]+388]+3C8]+BE8]+19E'

writeInteger(muppetMovementMode, 5)
writeInteger(muppetbCheatFlying, 0x894)
writeFloat(muppetMaxFlySpeed, 1200)
writeFloat(muppetMaxAcceleration, 20000)
writeInteger(muppetbImmuneToFallDamage, 1)

[DISABLE]
writeInteger(muppetMovementMode, 3)
writeInteger(muppetbCheatFlying, 0x890)
writeFloat(muppetMaxFlySpeed, 600)
writeFloat(muppetMaxAcceleration, 2048)

local muppetResetFallDamageImmunity = createTimer()
  muppetResetFallDamageImmunity.Interval = 10000 -- 10000 = 10 seconds
  muppetResetFallDamageImmunity.OnTimer = function(t)
  muppetResetFallDamageImmunity.destroy()

  writeInteger(muppetbImmuneToFallDamage, 0)
end
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>16329</ID>
          <Description>"Fly &amp; Noclip"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$LUA}
if syntaxcheck then return end

[ENABLE]
local addressList = getAddressList()
local enableFirstRecord = addressList.getMemoryRecordByDescription("Get Pointer")
if enableFirstRecord ~= nil and enableFirstRecord.Active == false then
  error('Activate Get Pointer')
end


-- MovementMode: 5 = Flying, 3 = Falling, 1 = Walking
-- bCheatFlying: 0 (4bytehex: 890) = Not Flying, 1 (4bytehex: 894) = Flying
-- MaxFlySpeed: Default is 600
-- MaxAcceleration: Default is 2048
-- bImmuneToFallDamage: 0 = Can take fall damage, 1 = Can not take fall damage
-- Offsets:
-- 388 = APlayerController; 3C8 = ACharacter; 3F8 = UCharacterMovementComponent
--                                            BE8 = HealthComponent
muppetMovementMode = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+1E8'
muppetbCheatFlying = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+3F4'
muppetbActorEnableCollision = '[[[muppetGetInjPoint]+388]+3C8]+9C'
muppetMaxFlySpeed = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+218'
muppetMaxAcceleration = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+220'
muppetbImmuneToFallDamage = '[[[[muppetGetInjPoint]+388]+3C8]+BE8]+19E'


writeInteger(muppetMovementMode, 5)
writeInteger(muppetbCheatFlying, 0x894)
writeFloat(muppetMaxFlySpeed, 1200)
writeFloat(muppetMaxAcceleration, 20000)
writeInteger(muppetbImmuneToFallDamage, 1)
writeInteger(muppetbActorEnableCollision, 0x0001040E)

[DISABLE]
writeInteger(muppetMovementMode, 3)
writeInteger(muppetbCheatFlying, 0x890)
writeFloat(muppetMaxFlySpeed, 600)
writeFloat(muppetMaxAcceleration, 2048)
writeInteger(muppetbActorEnableCollision, 0x0001044E)

local muppetResetFallDamageImmunity = createTimer()
  muppetResetFallDamageImmunity.Interval = 10000 -- 10000 = 10 seconds
  muppetResetFallDamageImmunity.OnTimer = function(t)
  muppetResetFallDamageImmunity.destroy()

  writeInteger(muppetbImmuneToFallDamage, 0)
end
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Failed. not all code is injectable

Re: The Outer Worlds (Epic Game Store) Noclip

Posted: Tue Nov 05, 2019 6:15 pm
by CheatingMuppet
Aztec2012 wrote:
Tue Nov 05, 2019 5:05 pm
CheatingMuppet wrote:
Mon Nov 04, 2019 12:54 am
Finally figured out collisions fully. The following is a script for flying and noclipping (ghost).

SunBeam gets some credit for this because he helped me get to the bottom of how bActorEnableCollision works. Short of it is that the bitfield structure is not the same for every ue4 game like I had thought and I brainfarted and didn't try different structures until SunBeam confirmed that the offset that I found was correct. Anyway here it is, just enable the first script and then one of the other scripts (only 1 at a time please). I'm sure SunBeam will come out with his usual console command restoration table soon.

And as always, feel free to use this in your tables or trainers just give credit.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>16327</ID>
      <Description>"Get Pointer"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$LUA}
-- Pointer Paths
muppetAPlayerController = 0x388 -- in APlayerCameraManager
muppetAPlayerState = 0x390 -- in APlayerController
muppetACharacter = 0x3C8 -- in APlayerController
muppetUCharacterMovementComponent = 0x3F8 -- in ACharacter
muppetUCapsuleComponent = 0x400 -- in ACharacter
muppetSpreadManagerComponent = 0xB08 -- in ACharacter
muppetPlayerInventoryComponent = 0xB30 -- in ACharacter
muppetEquipmentComponent = 0xBF8 -- in ACharacter
muppetCurrentHeldEquipment = 0x2D8 -- in EquipmentComponent
muppetStandardAmmoPool = 0x210 -- in CurrentHeldEquipment
muppetPlayerHealthComponent = 0xBE8 -- in ACharacter
muppetPlayerStatComponent_C = 0xC00 -- in ACharacter
muppetPlayerInfoComponent = 0xC08 -- in ACharacter
muppetCameraComponent = 0xED0 -- in ACharacter
muppetPlayerTargetingComponent = 0xEE0 -- in ACharacter
muppetPlayerInteractionComponent = 0x1430 -- in ACharacter

--muppetAPlayerController = '[muppetGetInjPoint]+388'
--muppetAPlayerState = ''

--print(muppetAPlayerController)

{$ASM}

aobscanmodule(getInjectPoint,IndianaEpicGameStore-Win64-Shipping.exe,F3 0F 10 B1 A4 03 00 00 33) // should be unique
alloc(newmem,$1000,"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E1)

label(code)
label(return)
label(muppetGetInjPoint)
registersymbol(muppetGetInjPoint)

newmem:
  push rdi
  lea rdi,[rcx]
  mov [muppetGetInjPoint],rdi
  pop rdi

code:
  movss xmm6,[rcx+000003A4]
  jmp return

muppetGetInjPoint:
  dq 0

getInjectPoint:
  jmp newmem
  nop 3
return:
registersymbol(getInjectPoint)

[DISABLE]

getInjectPoint:
  db F3 0F 10 B1 A4 03 00 00

unregistersymbol(getInjectPoint)
unregistersymbol(muppetGetInjPoint)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E1

"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BB: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BC: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BD: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BE: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1BF: CC                       -  int 3 
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1C0: 48 81 EC 98 05 00 00     -  sub rsp,00000598
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1C7: 0F 29 B4 24 80 05 00 00  -  movaps [rsp+00000580],xmm6
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1CF: 48 8B 05 62 BE 13 02     -  mov rax,[IndianaEpicGameStore-Win64-Shipping.exe+3D88038]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1D6: 48 33 C4                 -  xor rax,rsp
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1D9: 48 89 84 24 70 05 00 00  -  mov [rsp+00000570],rax
// ---------- INJECTING HERE ----------
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E1: F3 0F 10 B1 A4 03 00 00  -  movss xmm6,[rcx+000003A4]
// ---------- DONE INJECTING  ----------
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1E9: 33 C0                    -  xor eax,eax
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1EB: 0F 57 C0                 -  xorps xmm0,xmm0
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1EE: 89 44 24 20              -  mov [rsp+20],eax
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1F2: 0F 2F F0                 -  comiss xmm6,xmm0
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1F5: 77 18                    -  ja IndianaEpicGameStore-Win64-Shipping.exe+1C4C20F
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1F7: 48 8B 01                 -  mov rax,[rcx]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1FA: 48 8D 54 24 30           -  lea rdx,[rsp+30]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C1FF: FF 90 28 07 00 00        -  call qword ptr [rax+00000728]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C205: F3 0F 10 70 18           -  movss xmm6,[rax+18]
"IndianaEpicGameStore-Win64-Shipping.exe"+1C4C20A: B8 01 00 00 00           -  mov eax,00000001
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>16328</ID>
          <Description>"Fly"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$LUA}
if syntaxcheck then return end

[ENABLE]
local addressList = getAddressList()
local enableFirstRecord = addressList.getMemoryRecordByDescription("Get Pointer")
if enableFirstRecord ~= nil and enableFirstRecord.Active == false then
  error('Activate Get Pointer')
end


-- MovementMode: 5 = Flying, 3 = Falling, 1 = Walking
-- bCheatFlying: 0 (4bytehex: 890) = Not Flying, 1 (4bytehex: 894) = Flying
-- MaxFlySpeed: Default is 600
-- MaxAcceleration: Default is 2048
-- bImmuneToFallDamage: 0 = Can take fall damage, 1 = Can not take fall damage
-- Offsets:
-- 388 = APlayerController; 3C8 = ACharacter; 3F8 = UCharacterMovementComponent
--                                            BE8 = HealthComponent
muppetMovementMode = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+1E8'
muppetbCheatFlying = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+3F4'
muppetMaxFlySpeed = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+218'
muppetMaxAcceleration = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+220'
muppetbImmuneToFallDamage = '[[[[muppetGetInjPoint]+388]+3C8]+BE8]+19E'

writeInteger(muppetMovementMode, 5)
writeInteger(muppetbCheatFlying, 0x894)
writeFloat(muppetMaxFlySpeed, 1200)
writeFloat(muppetMaxAcceleration, 20000)
writeInteger(muppetbImmuneToFallDamage, 1)

[DISABLE]
writeInteger(muppetMovementMode, 3)
writeInteger(muppetbCheatFlying, 0x890)
writeFloat(muppetMaxFlySpeed, 600)
writeFloat(muppetMaxAcceleration, 2048)

local muppetResetFallDamageImmunity = createTimer()
  muppetResetFallDamageImmunity.Interval = 10000 -- 10000 = 10 seconds
  muppetResetFallDamageImmunity.OnTimer = function(t)
  muppetResetFallDamageImmunity.destroy()

  writeInteger(muppetbImmuneToFallDamage, 0)
end
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>16329</ID>
          <Description>"Fly &amp; Noclip"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$LUA}
if syntaxcheck then return end

[ENABLE]
local addressList = getAddressList()
local enableFirstRecord = addressList.getMemoryRecordByDescription("Get Pointer")
if enableFirstRecord ~= nil and enableFirstRecord.Active == false then
  error('Activate Get Pointer')
end


-- MovementMode: 5 = Flying, 3 = Falling, 1 = Walking
-- bCheatFlying: 0 (4bytehex: 890) = Not Flying, 1 (4bytehex: 894) = Flying
-- MaxFlySpeed: Default is 600
-- MaxAcceleration: Default is 2048
-- bImmuneToFallDamage: 0 = Can take fall damage, 1 = Can not take fall damage
-- Offsets:
-- 388 = APlayerController; 3C8 = ACharacter; 3F8 = UCharacterMovementComponent
--                                            BE8 = HealthComponent
muppetMovementMode = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+1E8'
muppetbCheatFlying = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+3F4'
muppetbActorEnableCollision = '[[[muppetGetInjPoint]+388]+3C8]+9C'
muppetMaxFlySpeed = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+218'
muppetMaxAcceleration = '[[[[muppetGetInjPoint]+388]+3C8]+3F8]+220'
muppetbImmuneToFallDamage = '[[[[muppetGetInjPoint]+388]+3C8]+BE8]+19E'


writeInteger(muppetMovementMode, 5)
writeInteger(muppetbCheatFlying, 0x894)
writeFloat(muppetMaxFlySpeed, 1200)
writeFloat(muppetMaxAcceleration, 20000)
writeInteger(muppetbImmuneToFallDamage, 1)
writeInteger(muppetbActorEnableCollision, 0x0001040E)

[DISABLE]
writeInteger(muppetMovementMode, 3)
writeInteger(muppetbCheatFlying, 0x890)
writeFloat(muppetMaxFlySpeed, 600)
writeFloat(muppetMaxAcceleration, 2048)
writeInteger(muppetbActorEnableCollision, 0x0001044E)

local muppetResetFallDamageImmunity = createTimer()
  muppetResetFallDamageImmunity.Interval = 10000 -- 10000 = 10 seconds
  muppetResetFallDamageImmunity.OnTimer = function(t)
  muppetResetFallDamageImmunity.destroy()

  writeInteger(muppetbImmuneToFallDamage, 0)
end
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Failed. not all code is injectable
This was made for the original version of the game (Epic Store version). I no longer have access so I cannot update this if there has been a game update. Are you sure you copied this into cheat engine properly ? CTRL + C while having the whole thing selected and then in cheat engine just hit CTRL + V right at the main window and all 3 scripts will be added to your memory list.

Re: The Outer Worlds (Epic Game Store)

Posted: Wed Nov 06, 2019 12:23 am
by Gvaz
Any way to fast travel out of areas you can't otherwise fast travel? I've reached a show stopping bug

Re: The Outer Worlds (Epic Game Store)

Posted: Wed Nov 06, 2019 12:42 am
by Zanzer
Gvaz wrote:
Wed Nov 06, 2019 12:23 am
Any way to fast travel out of areas you can't otherwise fast travel? I've reached a show stopping bug
viewtopic.php?f=4&t=10650&p=109557#p109557
Enable Fast Travel
Unlock Fast Travel Locations

Re: The Outer Worlds (Epic Game Store)

Posted: Wed Nov 06, 2019 2:00 am
by SunBeam
DrummerIX wrote:
Fri Oct 25, 2019 1:34 am
Make Console Command GivePlayerAllItems Only Give You Specific Category of Items
Damn you, I was gonna tackle this one and Zanzer said someone got ahead :D Good work! :P

Re: The Outer Worlds (Epic Game Store)

Posted: Wed Nov 06, 2019 2:40 am
by DrummerIX
SunBeam wrote:
Wed Nov 06, 2019 2:00 am
DrummerIX wrote:
Fri Oct 25, 2019 1:34 am
Make Console Command GivePlayerAllItems Only Give You Specific Category of Items
Damn you, I was gonna tackle this one and Zanzer said someone got ahead :D Good work! :P
Thanks. I had attempted to research items a little bit before you found the console command.

Anyway, if you want to take a look at Red Dead Redemption 2, I'm not doing anything in that game. Not sure if you are interested in that game, but you might be.

Re: The Outer Worlds (Epic Game Store)

Posted: Thu Nov 07, 2019 1:33 pm
by SunBeam
DrummerIX wrote:
Wed Nov 06, 2019 2:40 am
Thanks. I had attempted to research items a little bit before you found the console command.
Actually.. I tested your functionality and I can say it's buggy. Those selectors don't reset properly, thus having the user disable all scripts and reload CE with the table. I can select 1 category a single time, no matter what I choose in the other fields. Not to mention the lack of instructions kinda kills it :P Could've been great.. so.. I started working on it myself. After spending almost 1 day mapping the functions, names, figuring out the logic.. I can say I've got what I need and the implementation. Suffices to say I will hook the function altogether in specific points that will allow me to filter shit out.

The GivePlayerAllItems function loads the whole AssetRegistry. It then loops through the instantiated UObjects and checks if they contain the strings "test" or "debug". After that, each is checked if they're of UItem-Class type. Once passed, another loop occurs, where any non-base UItem UObjects are constructed via the StaticCreateObject function. Loop ends when all AssetRegistry UObjects are processed.

Furthermore, I've found the locations where hovering the mouse over an item constructs the Widget that would display the ToolTip with all that information about it. In short, I can read the AssetRegistry name, combine that with FNames::GetName to get the FName id, then read the various: type, brand, level, descriptions (1,2), calculated efficiency (the stats) and the extra RpgStats :)

Been busy. Expect my shit in my topic in a while ;)

Also intend to dump all items the function creates in an Excel so people can filter shit out and pick their stuff. The mods done to the function will allow you to spawn only certain categories (will use FName::ToString + FString::Find to filter the loop), as well as build category lists, so people can pick the item they want to add to inventory directly (Blueprint_ItemName:FName_id). Will take a bit :D

Best regards,
Sun

Re: The Outer Worlds (Epic Game Store)

Posted: Fri Nov 08, 2019 4:50 am
by the3rd16thBit
Thank you for your service.

Re: The Outer Worlds (Epic Game Store)

Posted: Fri Nov 08, 2019 11:18 pm
by SunBeam
DrummerIX wrote:
Fri Oct 25, 2019 1:34 am
There are a total of 10 categories of items.
I beg to differ:
Class'/Script/Indiana.ArmorSet'
Class'/Script/Indiana.Helmet'
Class'/Script/Indiana.DisguiseItem'
Class'/Script/Indiana.ConsumableItem'
Class'/Script/Indiana.CurrencyItem'
Class'/Script/Indiana.ResourceItem'
Class'/Script/Indiana.ArmorModArmoring'
Class'/Script/Indiana.ArmorModResistance'
Class'/Script/Indiana.ArmorModDampening'
Class'/Script/Indiana.ArmorModUtility'
Class'/Script/Indiana.MeleeAttackMod'
Class'/Script/Indiana.MeleeGripMod'
Class'/Script/Indiana.RangedBarrelMod'
Class'/Script/Indiana.RangedMagazineMod'
Class'/Script/Indiana.RangedSightMod'
Class'/Script/Indiana.QuestItem'
Class'/Script/Indiana.Weapon'
Class'/Script/Indiana.Ammo'
You mean 18? :D

Regarding some of the items with '?' and Hephaestos items, they are currently not shown properly either in the generating function or PlayerInventory. Managed to dump all and I have these:

Image

Fun fact is that I read around about the other 4-5 remaining planets that you can't YET visit and Hephaestos was one people firmly claimed cannot be visited because it's too close to that sun or something. Well, do explain the amount of Hephaestos items you're not supposed to find :)... DLC anyone?

Re: The Outer Worlds (Epic Game Store)

Posted: Fri Nov 08, 2019 11:26 pm
by Zanzer
Clearly he was saying hex 10 categories. And no one would be stupid enough to count QuestItem and Ammo as categories.

Re: The Outer Worlds (Epic Game Store)

Posted: Fri Nov 08, 2019 11:39 pm
by SunBeam
Zanzer wrote:
Fri Nov 08, 2019 11:26 pm
Clearly he was saying hex 10 categories. And no one would be stupid enough to count QuestItem and Ammo as categories.
You just had to make that up and also account for the missing two which leads to 0x10 (18-2 = 16 = 0x10)? :) Seriously? :D Funny.

Re: The Outer Worlds (Epic Game Store)

Posted: Fri Nov 08, 2019 11:44 pm
by DrummerIX
Well, my implementation appears to work for me when I was using it while playing the game.

It's fine to do your implementation using whatever you find in the engine and console. I say the more the merrier. I won't add unnecessary comments on your implementation either.

I found 10 different unique addresses at the place I'm checking that gives you all those types of items.

Anyway, you know more about these engine's than I do and that's okay with me.

Re: The Outer Worlds (Epic Game Store)

Posted: Fri Nov 08, 2019 11:48 pm
by SunBeam
Open game, inject DLL for console, add and activate this script in CE:

Code: Select all

{$lua}

if syntaxcheck then return end

[ENABLE]

function debugger_onBreakpoint()
  local wszCategory = R14
  local wszItem = RSI
  wszCategory = readString( wszCategory, 60000, true )
  wszItem = readString( wszItem, 60000, true )
  print( string.format( "%s\t%s", wszCategory, wszItem ) )
  debug_continueFromBreakpoint( co_run )
  return 1
end

addr = getAddress( "IndianaEpicGameStore-Win64-Shipping.exe+6DDBA5" )
debugProcess()
debug_setBreakpoint( addr )

[DISABLE]

debugger_onBreakpoint = nil
debug_removeBreakpoint( addr )
Then run GivePlayerAllItems and enjoy the Lua console show :D

It's not a matter of implementation; am trying to dump all of them and list out their stats. And to do that with not too much of a hassle :)

BR,
Sun

P.S.: Wanna see what's up with those showing up as 'nil'. Hmm :)

Re: The Outer Worlds (Epic Game Store)

Posted: Sun Nov 10, 2019 6:37 am
by KaptainKronic
tables wont work for me other then the attribute table, am i missing something?? :o