Dana provides ways to explore and display the recipe graph of Factorio (vanilla or modded). This mod is still in alpha stages: it is recommended to use it on a dedicated (sandbox) save, or at minimum to backup your save. While the mod should work in multiplayer, be careful about griefing (rendering huge graphs can freeze the game for several minutes).
Providing the player with new tools or adjusting the game interface, without fundamentally changing gameplay.
Tried clicking the Full crafting graph, and after 3 minutes i got an error
The mod Dana: crafting tree/graph explorer (0.2.0) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event dana::on_gui_click (ID 1)
Unknown recipe name: dect-alien-biomes-rock-huge-white
stack traceback:
dana/lua/canvas/objects/CanvasSprite.lua:34: in function 'makeFromInitData'
dana/lua/canvas/Canvas.lua:85: in function <dana/lua/canvas/Canvas.lua:82>
(...tail calls...)
dana/lua/renderers/simple/SimpleRenderer.lua:121: in function 'drawLayout'
dana/lua/apps/graph/GraphApp.lua:79: in function <dana/lua/apps/graph/GraphApp.lua:58>
(...tail calls...)
dana/lua/apps/AppController.lua:92: in function 'makeAndSwitchApp'
dana/lua/apps/query/QueryApp.lua:129: in function 'runQueryAndDraw'
dana/lua/apps/query/gui/TemplateSelectWindow.lua:117: in function 'onClick'
dana/lua/gui/GuiElement.lua:124: in function <dana/lua/gui/GuiElement.lua:119>
stack traceback:
[C]: in function 'draw_sprite'
dana/lua/canvas/objects/CanvasSprite.lua:34: in function 'makeFromInitData'
dana/lua/canvas/Canvas.lua:85: in function <dana/lua/canvas/Canvas.lua:82>
(...tail calls...)
dana/lua/renderers/simple/SimpleRenderer.lua:121: in function 'drawLayout'
dana/lua/apps/graph/GraphApp.lua:79: in function <dana/lua/apps/graph/GraphApp.lua:58>
(...tail calls...)
dana/lua/apps/AppController.lua:92: in function 'makeAndSwitchApp'
dana/lua/apps/query/QueryApp.lua:129: in function 'runQueryAndDraw'
dana/lua/apps/query/gui/TemplateSelectWindow.lua:117: in function 'onClick'
dana/lua/gui/GuiElement.lua:124: in function <dana/lua/gui/GuiElement.lua:119>
Got the same error just trying to draw yellow inserter:
The mod Dana: crafting tree/graph explorer (0.2.0) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event dana::on_gui_click (ID 1)
Unknown recipe name: dect-alien-biomes-rock-huge-white
stack traceback:
dana/lua/canvas/objects/CanvasSprite.lua:34: in function 'makeFromInitData'
dana/lua/canvas/Canvas.lua:85: in function <dana/lua/canvas/Canvas.lua:82>
(...tail calls...)
dana/lua/renderers/simple/SimpleRenderer.lua:121: in function 'drawLayout'
dana/lua/apps/graph/GraphApp.lua:79: in function <dana/lua/apps/graph/GraphApp.lua:58>
(...tail calls...)
dana/lua/apps/AppController.lua:92: in function 'makeAndSwitchApp'
dana/lua/apps/query/QueryApp.lua:129: in function 'runQueryAndDraw'
dana/lua/apps/query/gui/QueryEditor.lua:131: in function 'onClick'
dana/lua/gui/GuiElement.lua:124: in function <dana/lua/gui/GuiElement.lua:119>
stack traceback:
[C]: in function 'draw_sprite'
dana/lua/canvas/objects/CanvasSprite.lua:34: in function 'makeFromInitData'
dana/lua/canvas/Canvas.lua:85: in function <dana/lua/canvas/Canvas.lua:82>
(...tail calls...)
dana/lua/renderers/simple/SimpleRenderer.lua:121: in function 'drawLayout'
dana/lua/apps/graph/GraphApp.lua:79: in function <dana/lua/apps/graph/GraphApp.lua:58>
(...tail calls...)
dana/lua/apps/AppController.lua:92: in function 'makeAndSwitchApp'
dana/lua/apps/query/QueryApp.lua:129: in function 'runQueryAndDraw'
dana/lua/apps/query/gui/QueryEditor.lua:131: in function 'onClick'
dana/lua/gui/GuiElement.lua:124: in function <dana/lua/gui/GuiElement.lua:119>
i got an error
Did you recently do any mod install/uninstall/update ? Dana currently does not support change to prototypes once installed. This is planned for v0.3, but if it's causing troubles I'll release a v0.2.1 with just that.
after 3 minutes
Can I get your full mod list ? Dana's graph renderer is certainly not the fastest piece of code in the world, but event a full Pyanodon doesn't get close to that. I could use that for future benchmark/optimisation tasks.
I just tried it in a new save, and it works. I probably updated a mod after I started the other game, think it was "Bio Industries" I updated after Dana was installed and the game was started.
Took about 1 minute to load the full graph in a new game, single item takes a second if i check "maximum depth 1".
I always keep my mods up to date, and I got lots of mods, so hope you can get support for that.
Would be nice if it was possible to have a blacklist too, show everything besides "this" mod. Like Dectorio. It have so many items that's not really interesting and makes the full graph view almost impossible to read.
How to I easily extract a list of all the mods i use?
Its to many for me to write them all down by hand haha
I always keep my mods up to date, and I got lots of mods, so hope you can get support for that.
It should happen this weekend.
Would be nice if it was possible to have a blacklist too, show everything besides "this" mod. Like Dectorio.
The main focus of v0.3 is on better selection of what to show (right now I'm working on optionally removing sink/void recipes, barreled items, stacked items). I didn't plan on filtering by mod though (and unless these mods declare custom recipe categories, I don't see a reliable way to do so).
It have so many items that's not really interesting and makes the full graph view almost impossible to read.
To be fair, right now the "full graph" button is here for 2 reasons:
Personally I already find just the Vanilla full graph to be unreadable. It's also a huge lag/freeze/desync hazard. I think the added value of this mod will mainly be on the "How to make" feature and the full graph will probably get hidden behind an advanced mode (even disabled in multiplayer).
How to I easily extract a list of all the mods i use?
mods/info.json
file from your user data directory.{
"mods":
[
{
"name": "base",
"enabled": true
},
{
"name": "aai-signal-transmission",
"enabled": true
},
{
"name": "aai-signals",
"enabled": true
},
{
"name": "actual-craft-times-remade",
"enabled": true
},
{
"name": "alien-biomes",
"enabled": true
},
{
"name": "alien-biomes-hr-terrain",
"enabled": true
},
{
"name": "AsphaltRoads",
"enabled": true
},
{
"name": "assemblyanalyst",
"enabled": true
},
{
"name": "attach-notes",
"enabled": true
},
{
"name": "automatic-station-painter",
"enabled": true
},
{
"name": "Automatic_Train_Painter",
"enabled": true
},
{
"name": "baron-library",
"enabled": false
},
{
"name": "baron-sludge",
"enabled": false
},
{
"name": "baron-turrets",
"enabled": false
},
{
"name": "BetterBots",
"enabled": true
},
{
"name": "Bio_Industries",
"enabled": true
},
{
"name": "Biter_Detector_Sentinel_Combinator",
"enabled": true
},
{
"name": "Booktorio",
"enabled": true
},
{
"name": "calculator-ui",
"enabled": true
},
{
"name": "camedo-microwave",
"enabled": true
},
{
"name": "Clockwork",
"enabled": true
},
{
"name": "ClosestFirst",
"enabled": true
},
{
"name": "CompactPower2",
"enabled": true
},
{
"name": "CorpseFlare",
"enabled": true
},
{
"name": "custom-map-colors",
"enabled": true
},
{
"name": "dana",
"enabled": true
},
{
"name": "DeadlockMoreTextPlates",
"enabled": true
},
{
"name": "Dectorio",
"enabled": true
},
{
"name": "DewPointAggregator",
"enabled": true
},
{
"name": "dieselTrains",
"enabled": true
},
{
"name": "dirtybarrels",
"enabled": true
},
{
"name": "DragonIndustries",
"enabled": true
},
{
"name": "electricboiler",
"enabled": true
},
{
"name": "even-distribution",
"enabled": true
},
{
"name": "EvenMoreTextPlates",
"enabled": true
},
{
"name": "EvoGUI",
"enabled": true
},
{
"name": "extended-descriptions",
"enabled": true
},
{
"name": "FactorIO",
"enabled": true
},
{
"name": "FastRemoveTiles",
"enabled": true
},
{
"name": "flib",
"enabled": true
},
{
"name": "Flow Control",
"enabled": true
},
{
"name": "FluidMustFlow",
"enabled": true
},
{
"name": "fluidTrains",
"enabled": true
},
{
"name": "FluidWagonColorMask",
"enabled": true
},
{
"name": "gas-boiler",
"enabled": true
},
{
"name": "gas-furnace",
"enabled": true
},
{
"name": "Geothermal",
"enabled": true
},
{
"name": "hardened_pipes",
"enabled": true
},
{
"name": "IndustrialDisplayPlates",
"enabled": true
},
{
"name": "informatron",
"enabled": true
},
{
"name": "InlaidLamps2",
"enabled": true
},
{
"name": "Inventory Sensor",
"enabled": true
},
{
"name": "inventory-repair",
"enabled": true
},
{
"name": "JNF",
"enabled": true
},
{
"name": "KillLostBots",
"enabled": true
},
{
"name": "laserlines",
"enabled": true
},
{
"name": "lightorio",
"enabled": true
},
{
"name": "Logistic-Gun-Turret",
"enabled": true
},
{
"name": "Maps",
"enabled": true
},
{
"name": "MaxRateCalculator",
"enabled": true
},
{
"name": "MIRV",
"enabled": true
},
{
"name": "multi-product-recipe-details",
"enabled": true
},
{
"name": "MxlChievements",
"enabled": true
},
{
"name": "NextGenEvolution",
"enabled": true
},
{
"name": "OpteraLib",
"enabled": true
},
{
"name": "Orbital Ion Cannon",
"enabled": true
},
{
"name": "PickerAtheneum",
"enabled": true
},
{
"name": "PickerBeltTools",
"enabled": true
},
{
"name": "PickerInventoryTools",
"enabled": true
},
{
"name": "PickerPipeTools",
"enabled": true
},
{
"name": "PickerTweaks",
"enabled": true
},
{
"name": "PickerVehicles",
"enabled": true
},
{
"name": "platforms",
"enabled": true
},
{
"name": "PollutionSolutions",
"enabled": true
},
{
"name": "Power Armor MK3",
"enabled": true
},
{
"name": "power-grid-comb",
"enabled": true
},
{
"name": "QueueToFrontNG",
"enabled": true
},
{
"name": "QuickbarTemplates",
"enabled": true
},
{
"name": "radar-signals",
"enabled": true
},
{
"name": "RadioNetwork",
"enabled": true
},
{
"name": "railgun_revival",
"enabled": true
},
{
"name": "RaiLuaLib",
"enabled": true
},
{
"name": "RealisticDecorationCleanup",
"enabled": true
},
{
"name": "RecipeBook",
"enabled": true
},
{
"name": "Repair_Turret",
"enabled": true
},
{
"name": "reverse-factory",
"enabled": true
},
{
"name": "Rich_Text_Helper",
"enabled": true
},
{
"name": "Robo-Charge-1x1",
"enabled": true
},
{
"name": "Robot256Lib",
"enabled": true
},
{
"name": "rso-mod",
"enabled": true
},
{
"name": "SchallTransportGroup",
"enabled": true
},
{
"name": "Science-droids",
"enabled": true
},
{
"name": "Shortcuts-ick",
"enabled": true
},
{
"name": "show-max-underground-distance",
"enabled": true
},
{
"name": "sketchy-power-lamps",
"enabled": true
},
{
"name": "SmallNightvisionRevived",
"enabled": true
},
{
"name": "Solar-Lamp",
"enabled": true
},
{
"name": "SolarWalls",
"enabled": true
},
{
"name": "Soundpack-alerts-and-sirens",
"enabled": true
},
{
"name": "speaker-signals-2",
"enabled": true
},
{
"name": "speaker-signals-expansion",
"enabled": true
},
{
"name": "Squeak Through",
"enabled": true
},
{
"name": "stdlib",
"enabled": true
},
{
"name": "Tapeline",
"enabled": true
},
{
"name": "Teleporters",
"enabled": true
},
{
"name": "textplates",
"enabled": true
},
{
"name": "Transformers",
"enabled": true
},
{
"name": "Transport_Drones",
"enabled": true
},
{
"name": "Turret-Shields",
"enabled": true
},
{
"name": "vehiclehud",
"enabled": true
},
{
"name": "VehicleTrails",
"enabled": true
},
{
"name": "Vehicle_Radar",
"enabled": true
},
{
"name": "vtk-armor-reach",
"enabled": true
},
{
"name": "WaterAsAResource",
"enabled": true
},
{
"name": "windturbines",
"enabled": true
},
{
"name": "WireShortcuts",
"enabled": true
},
{
"name": "Wood_Gasification",
"enabled": true
},
{
"name": "wreckage-pollution",
"enabled": true
},
{
"name": "ZCS-Trash-Landfill-Continued-Continued",
"enabled": true
}
]
}
the baron mods are disabled at the moment, because of a loading error.
{
"name": "baron-library",
"enabled": false
},
{
"name": "baron-sludge",
"enabled": false
},
{
"name": "baron-turrets",
"enabled": false
},
Thanks for the mod list.
I just released a v0.2.1 to add support for mod updates/installs/uninstalls. Please confirm that it fixes your issue.
After update it actually causes the a crash when trying to load the savegame.
The mod Dana: crafting tree/graph explorer (0.2.1) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event dana::on_configuration_changed
LuaGuiElement API call when LuaGuiElement was invalid.
stack traceback:
dana/lua/gui/GuiElement.lua:261: in function 'recursiveUnbind'
dana/lua/gui/GuiElement.lua:60: in function 'destroy'
dana/lua/apps/query/gui/AbstractStepWindow.lua:50: in function 'close'
dana/lua/apps/query/QueryApp.lua:83: in function 'close'
dana/lua/apps/AppController.lua:128: in function 'closeApp'
dana/lua/apps/AppController.lua:116: in function 'switchToDefaultApp'
dana/lua/Player.lua:156: in function 'reset'
dana/lua/Dana.lua:112: in function 'on_configuration_changed'
dana/lua/EventController.lua:29: in function <dana/lua/EventController.lua:28>
stack traceback:
[C]: in function 'index'
__dana/lua/gui/GuiElement.lua:261: in function 'recursiveUnbind'
dana/lua/gui/GuiElement.lua:60: in function 'destroy'
dana/lua/apps/query/gui/AbstractStepWindow.lua:50: in function 'close'
dana/lua/apps/query/QueryApp.lua:83: in function 'close'
dana/lua/apps/AppController.lua:128: in function 'closeApp'
dana/lua/apps/AppController.lua:116: in function 'switchToDefaultApp'
dana/lua/Player.lua:156: in function 'reset'
dana/lua/Dana.lua:112: in function 'on_configuration_changed'
dana/lua/EventController.lua:29: in function <dana/lua/EventController.lua:28>
Disabling Dana lets me load it
And I thought I could just shut down the computer after listening to a little round of FF victory fanfare. Such disappointment.
Could you upload the bugged savefile ?
I found an incompatibility with informatron.
Problem should be solved with informatron v0.1.12 & dana v0.2.3.
Sorry for not replying earlier, it was late and I forgot the day after...
Works great now! Even after I've updated and installed even more mods on my save, then enabled Dana again.
A suggestion; Maybe "maximum depth 1", should be checked by default. :)
Thanks for the feedback.
I can understand the need to add a default depth, but not the value of 1. With depth=1, you just get the same result as RecipeBook & FNEI & others. For this specific need, I feel that their UI is (and will remain) vastly superior to mine. Depth>1 is where Dana can shine compared to them.
Anyway, the algorithms behind "Usage Of" & "How to make" are extremely simple right now. I hope I'll be able to replace them by something more robust in future versions. There might not even be a depth setting anymore.