ScrapHacks/NOTES.md

1.9 KiB

Infos

  • Engine: ScrapEngine
  • Ingame Scripting Language: Python 1.5.2

Ingame-Console (Ctrl+^ or right click on titlebar and select "switch console") (Handler@0x402190):

  • <Command>: Try to evaluate Command as Python expression
  • :<Var>: Get Game Engine Global Variable
  • :<Var> <Val>: Set Game Engine Global Variable
  • ?: Show all Global Variable
  • ?<String>: Show all Global Variable matching
  • /<command>: Run Command defined in QuickConsole.py(c) 'import quickconsole;quickconsole.%s()'
  • /<command> <arg>,<arg>: Run function in QuickConsole.py(c) with argument(s) 'import quickconsole;quickconsole.%s(%s)'

External Console (Scenegraph Debugging?) (Handler@0x5f9520):

  • listar luces
  • listar
  • arbol (Patch Scrap.exe@offset 0x314bc9 replace 0x20 with 0x00 (or just type arbol with the space at the end))
  • mem
  • ver uniones
  • Easter Eggs:
  • imbecil
  • idiota
  • capullo

Python Stuff

  • Modules List @ 0x79C698 (Module Name as char* followed by Pointer to Init Function)
  • InitPyMod @ 0x5A8FB0
  • PyExec @ 0x5A8390

m3d.ini loader @ 0x05f7000

SM3 Scene Loader @ 0x650f80 (?)

M3D File Loader @ 0x6665a0 (??)

*.packed File Format:

Header:
    "BFPK\0\0\0\0"
    Int32ul: number of files
    for each file:
        Int32ul: path length
        String: path
        Int32ul: size
        Int32ul: offset in file

Loading Custom Content (not really working)

  1. Create a folder mods
  2. Drop a *.packed file into it

Interesting file:

  • m3d.ini: Rendering Engine Configuration
  • scripts/: Game Engine Scripts

How to enable External Console:

  1. exctract Data.packed
  2. in m3d.ini uncomment (remove ;) "ConsolaWnd" (GUI Console) or "ConsolaTxt" (Text Console) and set the value to "SI"
  3. repack "Data.packed" or Use a custom Content Pack (untested!)

Misc. Interesting things

  • sys.path contains "./lib" so you can load your own Python Modules