Milestones

by Wiwiweb

Keep track of your progress in a fun way by finding out how fast you created key items. Look back on your factory's history, compare with your friends, or challenge yourself. Compatible out-of-the-box with most overhaul mods, and can be customized to work with any mod. Can be added to existing games.

Utilities
a month ago
1.1 - 2.1
334K

g [Fixed] Crash with RPG

3 years ago

With only this mod and RPG enabled in a new game, the game crashes sometimes when entering or exiting the main esc menu. I reported it to the RPG mod, too.

The mod Milestones (1.3.6) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event Milestones::milestones_cancel_settings (ID 180)
LuaGuiElement API call when LuaGuiElement was invalid.
stack traceback:
[C]: in function 'index'
__Milestones
/scripts/gui_settings_page.lua:415: in function 'is_settings_page_visible'
Milestones/scripts/gui.lua:254: in function <Milestones/scripts/gui.lua:253>

3 years ago

I can't reproduce. You're the second person to report this though. I'm trying with the RPGsystem mod version 1.3.2.
Could you send me a save file where this crash consistently happens? That would be very helpful, thanks.

3 years ago
(updated 3 years ago)

Oh, sorry. It doesn't happen with RPGsystem 1.3.2 (https://mods.factorio.com/mod/RPGsystem). It happens with RPG 1.0.14 (https://mods.factorio.com/mod/RPG). Different mods. Should just be able to open and close their top-left button. It happens in all my saves and any new game. I'll send a save file if this doesn't help.

3 years ago

I switched to RPGsystem 1.3.2 because it seems to work fine with all my mods. The other one errors out with yours and 2 other mods, so I imagine it's their mod's fault.

3 years ago

Aha, thanks for the easy reproduction case, I managed to fix this.
The RPG mod is one of those mods that deletes GUIs from other mods. I thought I had this handled in 1.3.0 by recreating it when needed, but I had a bug in the code that handled that.

Cheers!

3 years ago
(updated 3 years ago)

The RPG mod is one of those mods that deletes GUIs from other mods.

I would love to hear how others solve this issue.

Currently, mods don't solve this at all.
Viewing your code - you have nothing in your code to handle if a player clicks anything else that is not "milestone"-labeled.

Now, this might not be a problem, you would probably think. But the issue arises whenever a gui is left in the middle of the screen (i.e unhandled) and the player clicks another top-gui button that draws another gui frame. Now - all of a sudden - we're left with multiple frames that clutters the screen.

Would you like other mods to:
- mark your visible guis as non visible?
- destroy the guis?

3 years ago
(updated 3 years ago)

When you open your GUI, set player.opened = <your_gui_main_frame>.
When you do this, Factorio will send a on_gui_closed event with the name of the GUI that was previously the opened one.
If you receive this event and the name matches your main frame, close your window.
As a bonus this also handles closing your window with E or escape (Which also cause Factorio to send a on_gui_closed event with your window name).

https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.opened
https://lua-api.factorio.com/latest/events.html#on_gui_closed

New response