Auto-Splitter for Factorio
2 years ago
Midi-Pyrénées, France

Hi everyone,

I'm currently trying to build an auto-splitter for factorio (LiveSplit).

I started from the work done by aureianimus and MrHug (https://github.com/aureianimus/LiveSplit.Factorio) and made my own fork (https://github.com/Tignass/LiveSplit.Factorio/tree/patch-1).

With the help of the cheat file from Bloodybone, I managed to create a script which can autosplit on all the researches (needed for any% speedrun, for now), and building counts. In addition it was made so the modification are easy to make even for a non develloper.

As I'm no speed-runner, I used the tutorial of OverCraft (https://www.speedrun.com/factorio/guide/cl454) to beta test. Is this really used?

I'm posting here to ask you what should be the splits.

Edited by the author 2 years ago
Germany

Hi Tignass, thank you for looking into this. A auto-splitter for factorio would be wonderful.

I'm posting here to ask you what should be the splits.

Splits are for the moment very individual in that every runner has their own splits. Off the top of my head there are 4 different events used for splits:

  • Entity placed (power, lab, locomotive, silo)
  • research finished (steelaxe, bots, silo)
  • (first) product finished (science, bots)
  • the 'game finished' message at the end

An other thing that we have to do manually is start the timer at the first frame. It would be very pleasant if the auto-splitter could do that for us :)

Edit: For the 100% category there are splits at certain achievements.

Edited by the author 2 years ago
Midi-Pyrénées, France

Thank you for your answer :)

Currently the timer starts automatically with the game (and resets when quitting, this can be disabled via GUI).

I noticed splits are very individual, that's kinda my point in doing this. I'd like to offer a sort of "frame" so speed-runners can compare and improve more easily (even if the main goal would still be launching the rocket). And as I have no legitimacy to decide for the speed-runners, I'm asking them (and you) to discuss the best split list to use (I may create a discord if people are interested).

  • it can split on a combination of building "count": For example now there is one, "Burner City", splitting when there is 22 stone-furnace + 35 burner-mining-drill and iron-chest (the others can be found in the "ReadMe" on GitHub) .
  • It can split on any research (needed for any%).
  • It also split when the end window appear (when the rocket is launched).
  • It can't yet split on achievements but, should be possible if requested.
  • It can't yet split on "first produced", I tried but couldn't figure it out. If requested I could give it another try (but we can easily do first build ^^).

Additionally, even if a consensus isn't found, everyone can easily modify the settings to set it's own splits: there is 2 ways to configure it, firstly through the LiveSplit GUI and in the text file (Factorio.asl), there is an example and some comments to help modifying the number of buildings on different splits. Here also, if requested I could make a guide on How to modify it.

Northamptonshire, England

Wow this sounds cool.

Splitting on research is pretty cool, coupled with when rocket is launched/victory screen, covers Any% quite nicely and might force me to use use more 'conventional' splits.

If you have a version that supports this ready I'd be happy to take on a few test runs to see how it handles it :)

Germany

Sounds pretty cool. It's still hard to detect stuff like blue science which is mostly assemblers, when you improvised a bit and added another one previously the condition is like 144 assemblers or something wierd. Is there a chance you can detect something like "12asm that have set the blue science receipt" ? At this point is would be really useful.

Gaming_64 likes this
Midi-Pyrénées, France

@Cobai: Yes my version is ready for what you're asking for (https://github.com/Tignass/LiveSplit.Factorio/tree/patch-1)

@AntiElitz: I'll check if this is possible, according to lua documentation it seems possible but I'm not sure it's saved directly in the memory (which is read by LiveSplit), for example when I looked into "production splits", I could find it but only if you open the stat page in-game, few seconds after you close it, the memory is allocated to something else... But for now you can split on the number of buildings, for now blue science I set (some are deactivated as the number of electric pole might differ one run to another): "stone-furnace", 103 "burner-mining-drill", 37 "iron-chest", 37 "offshore-pump", 3 "boiler", 37 "steam-engine", 74 "electric-mining-drill", 312 "small-electric-pole", 449 "lab", 36 "pipe", 185 "pipe-to-ground", 71 "assembling-machine-1", 26 "express-inserter", 683 "express-belt", 2600 "express-splitter", 8 "long-handed-inserter", 283 "fast-inserter", 131 "underground-belt", 63 "assembling-machine-2", 133 "steel-furnace", 216 "pumpjack", 5 "oil-refinery", 9 "chemical-plant", 8 "storage-tank", 10

Edited by the author 2 years ago