画面サイズについて

デフォルトでは、800*600に設定されている。
この部分はSGEの頃から変わらず、root.lua中の記述に従う。
root.luaのほぼ先頭に、

gui.create(800,600)

と言う記述があり、まさにそれである。
まあ、将来的にスマフォとかタブレットにNScripter2が移植されるようなことがあれば、ここをいじって縦置き画面構成にして開発することも有り得なくもないだろう。
それに、800*600と言うのもそろそろ業界的には「小さい」のではないかと思われる。
で、このgui.create()を記述すると画面が生成され、スプライトシステムが使えるようになるのだが、逆に記述しなければNScripter2はコンソールは愚かタスクバーにも出ない隠れアプリとして動作する。(コンソール出てると言う指摘はごもっとも。だが、あれはos.execute()によって発生したコンソールなので、NScripter2のものではない。)もっとも、この状態だと独自の機能はほとんど使えず、luaネイティブの操作しかできないが。

lock.singleton()

lock.singleton()

記述すれば、同じディレクトリ中でのNScripter2の同時起動を妨げる動作をする。

root.lua
lock.singleton()
os.execute("nscr2.exe")

二重起動できない旨のメッセージが出て止まる。
そこで、lock.singletonの引数に関数を与えると、二重起動した時にその関数が実行される。
その関数の実行が終了すると、二重起動がなかったかのようにlock.singletonを抜けてしまう。

lock.singleton(function() end) -- たとえば空関数を与えると
os.execute("nscr2.exe") -- 無限に窓が開き続ける無限ループになってしまう。

※上記スクリプトは実行しないこと。無限ループだ!
なので、lock.singletonに与える関数には、os.exit()を含ませるのがセオリーとなる。

lock.singleton(function() os.exit() end) -- これで安心。
os.execute("nscr2.exe") -- 一回自己起動するだけ。

で、lock.singletonの用途としては、普通に二重起動を妨げる他は、二重起動した際には違う動作をするアプリとして動かすことが(理論上は)可能になる点だ。
過去、僅かながらテキストウィンドウを文字通り別窓表示したエロゲーもあったそうだが、まあ、それが再現できたからと言って「だからなに」かも知れない。
普通に考えたら、二重起動の注意メッセージをオサレなものにしたり、キャラクターに二重起動禁止をしゃべらせる演出をしたり、そんな程度だろうか。