-- Press Shift+F1 to display debug output in-game local Menu = require "necro.menu.Menu" local UserScripts = {} UserScripts.callbacks = {} -- Other scripts can't directly modify a module member, so provide a function -- to do it with function UserScripts.add(label, callback) UserScripts.callbacks[label] = callback end -- The menu event is an EnumSelector event, so use the key field. event.menu.add("pauseOptions", { key = "pause", sequence = 1 }, function(ev) if not ev.menu or not ev.menu.entries then return end -- 8th index: without any other mods, this is after "Customize" table.insert(ev.menu.entries, 8, { label = "User Scripts", action = function() Menu.open "scriptsList" end, }) end) -- key corresponds to what is passed to Menu.open event.menu.add("scriptsList", { key = "scriptsList", sequence = 0 }, function(ev) local entries = {} for index, callback in pairs(UserScripts.callbacks) do table.insert(entries, { label = index, action = callback, }) end table.insert(entries, { id = "_done", sound = "UIBack", label = L "Done", action = function() Menu.close() end, }) ev.menu = { label = "Script List", entries = entries, } end) return UserScripts