About

During its time of greatest popularity, NScripter was one of the most widely-used visual novel scripting engines in existence. It was created and is still maintained by Naoki Takahashi -- this English support site is not affiliated with him in any way, shape, or form. NScripter had (and still has) several salient features that made it a popular choice with companies at the time:

For these reasons, NScripter became a very popular choice for even commercial groups to use -- which is how we saw flagship visual novel companies like Nekonekosoft and August Soft come to use NScripter almost exclusively for their games. That said, while the NScripter scripting language is fairly easy to learn, it still reads more like assembly language than anything high-level, and you pay the price of its power in the resultant complexity. Furthermore, NScripter itself has been essentially unmaintained since version 2.59, which was released in 2003. In the meantime, many companies began opting to either build their own engines (Purple Software's CVNS, for instance, or F&C's ADV32 -- which should not be confused with Key's AVG32). Finally, in recent years we have seen the rise of newer, easier-to-use open-source visual novel scripting engines like 吉里吉里/KAG, a modified form of which was used in the 2004 TYPE-MOON visual novel, Fate/stay night (as well as the scarily-named 2004 "Young Lady Aphrodisiac Rape ADV" by Art, NAIVE~Sex of Drugs~, but, um, that's another matter altogether). All this means that it is fairly rare to see a visual novel coming out on the market today that utilizies NScripter anymore -- but as noted on the Home page, there are still a few here and there.

Independently of all of this, in 2002 a Japanese programmer named Ogapee began developing an open-source clone/replacement for NScripter that was based on SDL, with the goal of enabling people who did not run Microsoft Windows (focusing on Linux at the very beginning) to run games that utilized NScripter. His product, ONScripter, has improved to the point now where it is quite possible to play most NScripter games -- albeit with some errata here and there -- on it. It was also ported to several different operating systems -- including Linux, *BSD, Zaurus, iOS, Android, Windows, macOS, Legacy Mac OS X, MacOS Classic, and even video game consoles like the PSP. Many of these ports are dead or obsolete at this time -- this has to do with the fact that building ONScripter has always been a relatively obscure endeavor.

As for the English-speaking novel game localization community? 2002 saw the start of two very ambitious projects -- one by NewLifeAnime and another by Ayashii Gamesubs -- to localize, respectively, 銀色 (Gin'iro) and みずいろ (Mizuiro), two NScripter-driven games by the accaimed visual novel production studio, Nekonekosoft. Both of these projects ended up using two-byte latin characters (as NScripter does not accept one-byte character input), and neither of them were pursued to completion. In 2004, Chendo of Mirror Moon submitted a set of patches against vanilla ONScripter that enabled 1-byte character input and output via the creation of a new reserved character, the backquote: `. Utilizing these patches, the official NScripter SDK (which is freely available here), as well as nsaout (a program by alamone of Ayashii Gamesubs, written for his translation of みずいろ), insani released a proof-of-concept multiplatform fan localization of the Trial Edition of 月は東に日は西に~Operation Sanctuary~ (Hanihani) in June of 2005. In August of 2005, insani and Haeleth released a multiplatform localization of the doujin visual novel by stage-nana, Narcissu; this project marks the first ONScripter-based localization that was given official blessing by the original creators.

In 2007, ONScripter-insani was taken over by Haeleth, at that time the reigning senior statesman and overall technical guiding light of the English novel game community. He quickly turned the project into a full-on fork, and also created a variant (known as PONScripter) which allowed for proportional font display. ONScripter-insani became ONScripter-EN (ONS-EN), and maintenance passed on to Uncle Mion of Sonozaki Futago-Tachi in 2008. Uncle Mion was responsible for many advanced changes to ONS-EN, adding many features that mainline ONScripter did not have. Unfortunately, this also means that the source tree for ONS-EN looked substantially different from the source tree to mainline ONScripter once everything was said and done. The last updates to ONS-EN were made in 2011, and the project has been unmaintained ever since. By 2023, ONS-EN has the following negative characteristics:

As a result, as of 2023 we reactivated our ONScripter-insani branch. Our goals are as follows:

We don't necessarily recommend that you use ONScripter-insani for your own translation projects, as it does not have feature parity with ONS-EN -- however, it is also true that in the intervening 12 years, ONScripter backported in many of the features that were in ONScripter-EN. For instance, ONScripter supports UTF8 and proportional fonts now, and uses the syntax that PONScripter did. We will continue our work in enhancing ONScripter-insani, but please understand that our main objectives are as above and that we are not interested in becoming a general-purpose replacement for ONS-EN. In fact, one of our explicit goals is that you must be able to compile to mainline ONScripter by disabling the INSANI define. This naturally limits the scope of the modifications that we are allowing ourselves to make. Furthermore, doing so allows for ONScripter-insani to be built on all of the platforms that mainline ONScripter can be built on.

FAQ

Are your builds of ONScripter official?

If by 'official' you mean 'vanilla', no. However, historically many of the enhancements we made were adopted by Ogapee and integrated into mainline ONScripter. Furthermore, because we are committing to remaining as close to upstream as possible, all you have to do is drop the INSANI define while compiling in order to compile mainline ONScripter.

Which operating systems do you support?

We provide binaries for:

The natural environment for ONScripter is Linux, and you should have no problem compiling from source there. We have discontinued our Linux builds for that reason.

How about the Development/Translation Kit?

At the time that this document was written, we only had a Windows package available. We may add ports to other operating systems -- most notably macOS in time, but our energies are better spent in other places for now. Think: if you're going to be creating a game with NScripter, or translating an NScripter-based game, you'll most likely want to have a Windows release build at the end, along with whichever target platform is your primary. This is why we do not think that it is so devastating for the SDK elements to be Windows only.

Can you post news about our game/translation project?

No, you're mistaking this website for a news repository. If you wish to contribute content that has substance to it -- like an NScripter tutorial article, say, or a script walkthrough, et cetera, please feel free to get into contact with us. But we're not going to post news about translation groups whose work may never see the light of day.

I'd like to hack on ONScripter!

Then go ahead and do so. The sources are made available for a reason. If you end up making any interesting changes that would benefit the community at large, you should either get in touch with Ogapee directly, or you could alternatively contact us/send us pull requests on GitHub and have us integrate your work into our own builds (we'd also contact Ogapee regarding your work, giving you full credit, via this method). Please remember that if you are sending us pull requests, make sure to wrap all your code in #if defined(INSANI) ... endif blocks, as that is our convention to allow for mainline ONScripter to be compiled from the same source.