protected void prepareState ()
    throws IOException {
        ui.debugMsg("Creating state...\n");
        state = new LuaState(System.out);

        /*write("Registering base libs...\n");
        BaseLib.register(state);
        MathLib.register(state);
        StringLib.register(state);
        CoroutineLib.register(state);
        OsLib.register(state);*/

        ui.debugMsg("Building javafunc map...\n");
        savegame.buildJavafuncMap(state.getEnvironment());

        ui.debugMsg("Loading stdlib...");
        InputStream stdlib = getClass().getResourceAsStream("/openwig/stdlib.lbc");
        LuaClosure closure = LuaPrototype.loadByteCode(stdlib, state.getEnvironment());
        ui.debugMsg("calling...\n");
        state.call(closure, null, null, null);
        stdlib.close();
        stdlib = null;

        ui.debugMsg("Registering WIG libs...\n");
        WherigoLib.register(state);

        ui.debugMsg("Building event queue...\n");
        eventRunner = new BackgroundRunner(true);
        eventRunner.setQueueListener(new Runnable() {
            public void run () {
                ui.refresh();
            }
        });
    }
prepares Lua state and some bookkeeping
main/src/main/java/cgeo/geocaching/wherigo/openwig/Engine.java