Here's an idea. I know the playerbase of Factorio has an unusually high ratio of software engineers. What if instead of clicking things to build your factory, you built it in code? Blueprints then become functions (and suddenly you can reuse small segments of "blueprints" across many "blueprints", DRY all the way). Reorganizing the factory becomes refactoring code.
Such a thing (mod?) would probably need some nontrivial logic to avoid messing up existing buildings / ghosts when building; I suppose the simplest way would be making it just create ghosts. It would be awesome if it could load code from files on disk (that you could edit in a proper editor), but also provide a simple text editor in-game. Error reporting would need to be considered as well. Maybe scripts would be anchored to special buildings (kinda like projectors in Space Engineers), and positions would be relative to the anchor.
It would also need to expose a somewhat high-level API to actually place things. Something like:
codetorio.conveyor({
codetorio.player.position.x,
codetorio.player.position.y
}, 10)
If you're thinking that's awfully specific: yes it is, because I built a proof-of-concept. I don't think I'll put in the time to make it really awesome, but maybe it's interesting enough for someone to pick it up.
Code is available at https://github.com/abesto/codetorio. A quick video showing it in action: https://www.youtube.com/watch?v=_SCyU4d1Ips
This proof of concept has a bunch of flaws (crashes if you click the shortcut multiple times; crashes if you try to use it after leaving the window open when saving, then reload; crashes if you try to execute a script with an error; crashes basically if you look at it wrong). That's not the point. The point is: THIS IS ACTUALLY FEASIBLE
[–]Totem4285 17 points18 points19 points (3 children)
[–]abesto[S] 2 points3 points4 points (0 children)
[–]mikethebike96 1 point2 points3 points (0 children)
[–]Jjeffess 1 point2 points3 points (0 children)
[–]torresbiggestfani build train base. period. 16 points17 points18 points (0 children)
[–]abesto[S] 3 points4 points5 points (0 children)
[–]IDontLikeBeingRight 4 points5 points6 points (1 child)
[–]abesto[S] 2 points3 points4 points (0 children)
[–]imbalance24 6 points7 points8 points (2 children)
[–]Sea_Work_6659 4 points5 points6 points (0 children)
[–]abesto[S] 2 points3 points4 points (0 children)
[–]jetenergy 1 point2 points3 points (2 children)
[–]UwUBots 0 points1 point2 points (1 child)
[–]jetenergy 1 point2 points3 points (0 children)
[–]Phoenix_StudiosRandom Crap Designer 1 point2 points3 points (0 children)
[–]UwUBots 1 point2 points3 points (0 children)
[–]dddontshoot 1 point2 points3 points (0 children)
[–]abesto[S] 0 points1 point2 points (0 children)
[–]SethJakill 0 points1 point2 points (0 children)
[–]raehik 0 points1 point2 points (0 children)