SL2 Analyzer
Read a FromSoftware .sl2 save and report what is in it
Loading...
Searching...
No Matches
sl2.edit Namespace Reference

Functions

 _checked_save (data)
 Return a mutable, checksum-verified BND4 save and its identified game.
 
 _seal (data, entry)
 Recalculate an entry's outer MD5 after its payload has changed.
 
 _encrypt (key, iv, plaintext)
 Encrypt a complete AES-CBC plaintext using the entry's unchanged IV.
 
 set_steam_id (data, steam_id)
 Change the SteamID64 in a save format whose every required copy is known.
 
 trim_er_slots (data, keep_slots=None)
 Clear ER slots absent from the roster, or every slot not explicitly retained.
 
 trim_inactive_slots (data)
 Canonicalise inactive slots without changing any listed character.
 
 _verify (data, game, steam_id=None, active=None, empty_slots=None)
 Check the edited archive's MD5 wrappers and operation-specific invariants.
 

Variables

int ER_SLOT_ENTRY_SIZE = 0x280010
 Complete on-disk size of one ER character entry, including its MD5 prefix.
 

Detailed Description

Copy-only archive edits that validate the save before writing it.

Function Documentation

◆ _checked_save()

sl2.edit._checked_save (   data)
protected

Return a mutable, checksum-verified BND4 save and its identified game.

Definition at line 27 of file edit.py.

Referenced by sl2.edit.set_steam_id(), sl2.edit.trim_er_slots(), and sl2.edit.trim_inactive_slots().

Here is the caller graph for this function:

◆ _seal()

sl2.edit._seal (   data,
  entry 
)
protected

Recalculate an entry's outer MD5 after its payload has changed.

Definition at line 42 of file edit.py.

Referenced by sl2.edit.set_steam_id(), sl2.edit.trim_er_slots(), and sl2.edit.trim_inactive_slots().

Here is the caller graph for this function:

◆ _encrypt()

sl2.edit._encrypt (   key,
  iv,
  plaintext 
)
protected

Encrypt a complete AES-CBC plaintext using the entry's unchanged IV.

Definition at line 50 of file edit.py.

Referenced by sl2.edit.set_steam_id().

Here is the caller graph for this function:

◆ set_steam_id()

sl2.edit.set_steam_id (   data,
  steam_id 
)

Change the SteamID64 in a save format whose every required copy is known.

Return a verified edited copy; never changes @p data in place.

Definition at line 55 of file edit.py.

References sl2.edit._checked_save(), sl2.edit._encrypt(), sl2.edit._seal(), and sl2.edit._verify().

Here is the call graph for this function:

◆ trim_er_slots()

sl2.edit.trim_er_slots (   data,
  keep_slots = None 
)

Clear ER slots absent from the roster, or every slot not explicitly retained.

Return a verified archive copy with selected ER profiles and slots zeroed.

Definition at line 136 of file edit.py.

References sl2.edit._checked_save(), sl2.edit._seal(), and sl2.edit._verify().

Here is the call graph for this function:

◆ trim_inactive_slots()

sl2.edit.trim_inactive_slots (   data)

Canonicalise inactive slots without changing any listed character.

Return a verified copy with inactive Sekiro or ER slots cleared.

Definition at line 185 of file edit.py.

References sl2.edit._checked_save(), sl2.edit._seal(), and sl2.edit._verify().

Here is the call graph for this function:

◆ _verify()

sl2.edit._verify (   data,
  game,
  steam_id = None,
  active = None,
  empty_slots = None 
)
protected

Check the edited archive's MD5 wrappers and operation-specific invariants.

Definition at line 209 of file edit.py.

Referenced by sl2.edit.set_steam_id(), sl2.edit.trim_er_slots(), and sl2.edit.trim_inactive_slots().

Here is the caller graph for this function:

Variable Documentation

◆ ER_SLOT_ENTRY_SIZE

int sl2.edit.ER_SLOT_ENTRY_SIZE = 0x280010

Complete on-disk size of one ER character entry, including its MD5 prefix.

Definition at line 23 of file edit.py.