Skip to content

Instantly share code, notes, and snippets.

state("ChainedTogether-Win64-Shipping")
{
double X : 0x6F65C48, 0x1B8, 0x38, 0x0, 0x30, 0x2D8, 0x1A0, 0x128;
double Y : 0x6F65C48, 0x1B8, 0x38, 0x0, 0x30, 0x2D8, 0x1A0, 0x130;
double Z : 0x6F65C48, 0x1B8, 0x38, 0x0, 0x30, 0x2D8, 0x1A0, 0x138;
int Timer : 0x6F65C48, 0x158, 0x320;
}
startup
{
@just-ero
just-ero / ero.omp.json
Last active July 6, 2023 08:20
Oh-My-Posh Profile
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"palette": {
"text": "#282b31",
"path": "#b0c8f2",
"git": "#8fa5cb",
"end": "#788bad"
},
"blocks": [
{
<!-- Start of your autosplitter definition. -->
<AutoSplitter>
<!-- List of all applicable games that your autosplitter should load for. -->
<Games>
<Game>Mega Man</Game>
<Game>Megaman</Game>
<Game>MM1</Game>
</Games>
<!-- URL of RAW GitHub file(s) which will be downloaded. -->
<URLs>
  • install Visual Studio; important: select .NET Framework 4.6.1 to be installed additionally to everything else!
  • create a new project and select "Class Library (.NET Framework)", make sure to select .NET Framework 4.6.1 as the version
  • from your Solution Explorer (on the right by default), right-click "References", select "Add Reference...", click "Browse..." at the bottom and navigate to your LiveSplit folder, where you need to add LiveSplit.Core.dll and UpdateManager.dll
  • add a new class to your project which implements the IComponent interface or extends one of its implementing classes
  • add a new class to your project that implements IComponentFactory
  • implement the Create() method of this interface, such that it returns and instance of the component class you created
  • add a ComponentFactory attribute to the AssemblyInfo.cs file and give it the type of your factory class:
[assembly: ComponentFactory(typeof(MyComponentFactory))]
@just-ero
just-ero / TraceSpy_config_setup.md
Last active January 9, 2023 07:28
TraceSpy LiveSplit Setup

NOTE:

Sometimes, when opening TraceSpy, it gets displaced (to -25600, -25600). When this happens, the window will be completely gone. To fix, you unfortunately need to replace your WpfSettings.config with the one below again (instructions in 4th/5th bullet point below).

Setting up TraceSpy

  • download from https://github.com/smourier/TraceSpy/releases/latest
  • move the .exe to any place on your PC
  • start the program and immediately close it
    • this will create the config in ~\AppData\Roaming\TraceSpy
    • to find this folder, simply type %appdata% into your Windows search and hit enter
  • download WpfSettings.config below by clicking the Raw button in the top-right of it and then pressing Ctrl + S or right-click → Save as
@just-ero
just-ero / AutoSplitterData.cs
Last active March 10, 2023 10:11
An example class for developers to put into their games to make life of ASL creators easier.
// This is a minimum example for adding autosplitter support to a game written in C# - including all Unity games.
// This class should be excluded from any potential obfuscation.
public static class AutoSplitterData
{
// This could for example match any in-game timer.
public static double inGameTime = 0d;
// Set to true if the game is currently loading; otherwise, false.
// Do not add both inGameTime and isLoading. One suffices.
@just-ero
just-ero / asl-resource-dalet.md
Last active April 5, 2024 23:53
Provides some general information about how to go about making a LiveSplit auto splitter.

Resources to learn making very simple Auto Splitters

Preamble: this should not be attempted with online games or games which have an anti cheat in place, it could result in permanent bans.

Learn how to use Cheat Engine

The Cheat Engine section in the #tutorials channel in the Speedrun Tool Development Discord server has a few tutorials and guides. It is recommended to also do the Cheat Engine tutorial when the software is first launched. The Cheat Engine wiki and forums also have more resources. Cheat Engine is usually used to find health or money addresses to edit their values. Those addresses will be the information your auto splitter will depend on for everything it does. Should the goal be to split upon level changes, searching for an index (often int (4 Bytes)) or a name (string) can yield good results. For lo

<?xml version="1.0" encoding="utf-8"?>
<unities>
<!-- Muck -->
<unity version="2019.4" architecture="x64">
<SceneManager>
<sigoffset>0x3</sigoffset>
<pattern>48 8B 0D ???????? 48 8D 55 ?? 89 45 ?? 0F</pattern>
<offset name="loading">0x28</offset>
<offset name="active">0x50</offset>
<offset name="name">0x10</offset>