Skip to content

Instantly share code, notes, and snippets.

state("bloodthief_v0.01"){}
startup
{
vars.Log = (Action<object>)((output) => print("[Bloodthief ASL] " + output));
vars.UpdateSpeedometer = (Action<double>)((speed) =>
{
var id = "Speed";
var text = speed.ToString("0.0") + " m/s";
using MemUtil;
using System.Diagnostics;
using System.Globalization;
Console.Write("Enter the name of the game process: ");
string? procName = Console.ReadLine()?.Replace(".exe", "");
List<Process> procList = Process.GetProcesses().ToList().FindAll(x => x.ProcessName == procName);
if (procList.Count == 0)

Unlocking Solar Ash Console

  1. Download Universal Unreal Engine 4 Unlocker v3.0.14 from here: https://www.framedsc.com/GeneralGuides/universal_ue4_consoleunlocker.htm
    (Note: this is closed source software I have no affiliation with, I can not make any guarantees that the software will work as intended, use at your own risk)
  2. Launch the game
  3. Launch "UuuClient.exe"
  4. In the "General" tab, select the game as the "Process to inject to"
  5. Click "Inject DLL"
  6. (Optional) Change the console keybind in the "Configuration" tab.

Solar Ash Console Commands

state("Warcry-Win64-Shipping")
{
float xVel : 0x04E8A2B0, 0x30, 0x250, 0x288, 0x25C;
float yVel : 0x04E8A2B0, 0x30, 0x250, 0x288, 0x260;
float lastJumpStrength : 0x04E8A2B0, 0x30, 0x250, 0x288, 0xBDC;
float igt : 0x04EA1C90, 0x118, 0x3D0;
}
startup
{

The numbers in brackets denote the split index of the section if using the autosplitter script. Using the autosplitter script is at your own risk as we haven't figured out how the anti-cheat works.

LOOP 0 (Intro)

Coast: (1)

  • Meet Juliana in her library
  • Learn the tunnels code and enter

The numbers in brackets denote the split index of the section if using the autosplitter script. Using the autosplitter script is at your own risk as we haven't figured out how the anti-cheat works.

LOOP 0 (Intro)

Coast (1)

  • Meet Juliana in her library

LOOP 1 (Intro)

state("Warcry-Win64-Shipping")
{
float xVel : 0x04E080B0, 0x30, 0x250, 0x288, 0x25C;
float yVel : 0x04E080B0, 0x30, 0x250, 0x288, 0x260;
float lastJumpStrength : 0x04E080B0, 0x30, 0x250, 0x288, 0xBAC;
float igt : 0x04E1FA90, 0x118, 0x3C0;
}
startup
{
state("Warcry-Win64-Shipping")
{
float xVel : 0x043DC6D0, 0x30, 0x250, 0x288, 0x25C;
float yVel : 0x043DC6D0, 0x30, 0x250, 0x288, 0x260;
float lastJumpStrength : 0x043DC6D0, 0x30, 0x250, 0x288, 0x6C0;
float igt : 0x043F2750, 0x128, 0x3C0;
}
startup
{
state("Warcry-Win64-Shipping")
{
float xVel : 0x043DA590, 0x30, 0x250, 0x288, 0x25C;
float yVel : 0x043DA590, 0x30, 0x250, 0x288, 0x260;
float lastJumpStrength : 0x043DA590, 0x30, 0x250, 0x288, 0x6A8;
float ZFallBoostMult : 0x043DA590, 0x30, 0x250, 0x288, 0x670;
float JumpBoost : 0x043DA590, 0x30, 0x250, 0x288, 0x66C;
float igt : 0x043F0610, 0x128, 0x3C0;
state("Warcry-Win64-Shipping")
{
float xVel : 0x043DA550, 0x30, 0x250, 0x288, 0x25C;
float yVel : 0x043DA550, 0x30, 0x250, 0x288, 0x260;
float lastJumpStrength : 0x043DA550, 0x30, 0x250, 0x288, 0x6A8;
}
startup
{
vars.SetTextComponent = (Action<string, string>)((id, text) =>