So, it has been some time since that last topic and I think enough opinions have changed to warrant re-opening this topic.
Additional infoChange script.raise_event so it only allows custom event IDs. Mods would no longer be allowed to call script.raise_event(defines.events.X, ...). Instead, for key events that make sense that a mod may want to trigger it - there would be script.raise_X(...) for that specific event. The raise_X(...) would accept the exact parameters that the event requires and the C++ logic could make sure that mods never do raise_event(...) with bad data.
I still want to make this change because I feel like it's one of the key points of the current modding event system that is just "broken". If a mod currently wants their event handling to work correctly in all the existing ways it can operate they can't assume *any* parameters in the event logic are correct and have to re-implement validation on the mod side + never use event filtering. That seems completely broken. With this change all of that would go away.Any time a mod would use one of these script.raise_X(...) handlers the game would automatically include a 'mod_name=*name-of-source-mod*' field + an 'extra' field that can contain what ever the calling mod wants it to contain.
I want to see what opinions are like today - 5+ months later.