i ended up doing the following helper function
public static void sendRuntimeEvent(LuaState luaState, String eventName, Map\<String, String\> parameters) { luaState.getGlobal("Runtime"); luaState.getField(-1,"dispatchEvent"); luaState.pushValue(-2); luaState.newTable(); int idx = luaState.getTop(); luaState.pushString(eventName); luaState.setField(idx,"name"); if (parameters != null) { for (Map.Entry\<String, String\> entry : parameters.entrySet()) { luaState.pushString(entry.getValue()); luaState.setField(idx, entry.getKey()); } } luaState.call(2, 0); return; }