Welcome to chaoskaiser72's ONScripter Corner!

... And because it may well be that small limited visual novels -- written by small limited hands and running on small limited systems -- are the last and best virtual reality that we have ...
-Narcissu

ONScripter is a Free & Open Source implementation of the NScripter novel game engine, based on SDL and licensed under the GNU General Public License v2. It allows many popular novel games to run on a plethora of platforms such as Linux, BSD, Mac, OS/2, and a number of game consoles; most importantly, it can be easily modified by the community.

Goto


ONScripter-EN

...And so, we have ONScripter-EN: a fork designed to handle scripts containing 1-byte characters in a better way. Although the original ONScripter was still maintained until recently, it lacks fully functional English support, DirectSound support on Windows, PNG alpha mask detection, window scaling, and many implementations of effect DLLs -- all of which were added to ONScripter-EN long ago. ONScripter-EN was originally forked by Insani, passed on to Haeleth, and ended in the hands of Uncle Mion of Sonozaki Futago-tachi until it was revived by Galladite27 in 2022. I still provide the ONScripter-EN Historical Download Mirrors section for the last stable builds and source code from Uncle Mion for comparison and posterity's sake.

New Development

A good acquaintance of mine, Galladite27, contacted me in 2022 intending to take up my ONScripter-EN development bounty. The new ONScripter-EN is being developed with help from GP32 of Insani, with some features backported from his own ONScripter-insani. The new repository is located here on Github.

Runtime Basics

Note: It is imperative that you update to the latest version of ONScripter-EN before attempting to run a game, especially on a recent operating system. See Updating ONScripter-EN Games.

ONScripter-EN will not start without a default.ttf font file in the game folder. Since the engine displays text only with fixed width, and some games like Umineko and Tsukihime use Japanese or custom glyphs in their English translations, Sazanami Gothic is the standard-use font for most releases.

The original NScripter had a menu bar which let you adjust all the settings; it was never implemented in ONScripter for compatibility's sake, so you use keybinds to access the same functions. For a rundown of these, see the Readme.

Please also see List of ons.cfg Options.

High-Resolution Scaling

In addition to pressing F for fullscreen, you also can scale your ONScripter-EN games to virtually any size, including but not limited to 1080p. Text scales beautifully, and it makes reading in windowed mode much more comfortable. In order to scale a window, make a text file named ons.cfg in your game folder. Then, simply add the line ...

scale

or

window-width=[desired width]

The scale option automatically adjusts to the maximum vertical size of your screen, while window-width allows you to set any value you like. Do note that scaling up the window will lessen the impact of text shadows, decrease framerates where heavy effects are in use, and may introduce some image-related jank. If it does not work, see the Updating ONScripter-EN Games section.
Note: This config option will not work by default for Kagetsu Tohya due to a bug in its script: I have made a patch for it, including the latest ONS-EN, which may be found here. See readme2.txt for instructions and further details.

List of ons.cfg Options
english
japanese
english-menu
japanese-menu
scale
window-width=[value in pixels]
root=[alternate path to game resources]
save=[alternate path to store save files]
automode-time=[value in milliseconds]
skip-past-newline
ignore-textgosub-newline
no-movie-upscale
no-layers
detect-png-nscmask
allow-color-type-only
set-tag-page-origin-to-1
answer-dialog-with-yes-ok
strict
debug
waveout-audio (for Windows to favor waveout over DirectSound)
match-audiodevice-to-bgm
nomatch-audiodevice-to-bgm
audiodriver [dev]
audiobuffer [size in kbytes; 1,2,4,8,16 allowed]
no-cpu-gpx
use-app-icons
current-user-appdata

All of the above can also be passed as command line options at runtime, for example:

onscripter-en --scale

To clarify some of the commonly-used options, english or japanese is used in cases where one might need to force a language mode, detect-png-nscmask detects whether or not PNG files use NScripter alpha masks (necessary for Witch Hunt's Umineko), strict is used to treat script warnings more like errors, and debug will cause the engine's output and error files to open upon the game's exit (or crash). An ons.cfg file is supported only as of build 2009-09-30. Please see Updating ONScripter-EN Games.

Updating ONScripter-EN Games

It is necessary to update all of your ONScripter games to the latest version of ONScripter-EN. It fixes crashes on recent Windows versions, adds important features which were not previously present, makes it possible to use ons.cfg options, and allows you to keep all of your save files in one convenient folder. Before dropping the latest executable into your game folder, make a text file named game.id, containing ONLY the name of the game: this determines the name of the folder in which your save files shall be stored (If you neglect to do this, saves are stored in randomly-named folders). Then, download the latest ONScripter-EN release for your system, and unpack to your game folder.

RaspberryLime has made a Windows batch script, AONS-ENSU, which will automatically update ONScripter-EN games, add a game.id file, and set an ons.cfg file to keep game saves in each game's folder rather than in C:\ProgramData\. It requires minimal input from the user, but bear in mind that you will need to point any existing shortcuts to the new ONScripter-EN executable.

Note: When updating Umineko no Naku Koro ni, you must add detect-png-nscmask to ons.cfg in order for the English image assets to display correctly.

With these recent versions of ONScripter-EN, by default each game's save files are kept in their own folder within the hidden directory C:\ProgramData\ (Windows 7+) or ~/ (Linux/BSD). This is so that games can be kept in any folder -- even ones that are not writable.

ONScripter-insani

The legendary translation group Insani came out of retirement after fourteen years, and alongside two new (old) translations, they are providing a new ONScripter fork: ONScripter-insani. Originally, ONScripter-insani was the first English-compatible ONScripter branch; today it is a new fork off the main branch, with English compatibility features added back in, in order to be as up-to-date as is possible.

ONScripter-insani retains the full source code of the main branch, along with its legacy SDL1 dependence: by omitting the INSANI flag, Ogapee's stock ONScripter will be built. ONScripter-insani itself is built only for 64-bit Windows and Mac, relies on SDL2, and according to insani's NScripter About/FAQ, is not intended to replace ONScripter-EN as it is purposely limited in how far it may deviate from the main branch.

PONScripter

PONScripter stands for Proportional ONScripter. It is an old fork of ONScripter that supports Unicode, so proportional fonts and many more languages are supported, and it is generally more flexible and modern. However, it was abandoned early into its development, so even on the latest forks it is highly unstable and unfeatureful. It uses a bit more resources, has many more bugs and behavior issues, and is not fully backwards-compatible with NScripter nor ONScripter. Support for Japanese filenames is dropped, and new routines and syntax are required; meaning that porting an NScripter game to it is a significantly involved effort. PONScripter does have a legacy mode which runs NScripter and ONScripter-EN games as they were written, but most of its issues are still present. More importantly, PONScripter does not support some custom effects which NScripter and ONScripter-EN do, which results in the MangaGamer version of Umineko and all versions of Umineko Saku lacking the animated rain effects completely -- many NScripter titles made use of external DLLs which were later merged into ONScripter-EN by means of emulation, so this presents a huge disadvantage for PONScripter. ONScripter, and now ONScripter-EN support both proportional fonts and Unicode, so PONScripter can be considered completely obsolete.

PONScripter was used in more modern Steam localisations of NScripter games, so the code was forked by SekaiProject in order to port it to SDL2 and keep it maintained. You can find it here on Github. Witch Hunt made their own fork of the SekaiProject fork, and were using it for their translation of Ciconia no Naku Koro ni. The many versions of PONS and the changes across them can cause significant problems when trying to run games on the latest version.

Configuration files come in the form of a pns.cfg file, although window-width and scale options are not supported. Documentation is rather sparse, but the latest manpages are hosted here.

Although PONScripter was highly favored for commercial translations, its instability can present problems. Traditionally, when special characters were needed in a translation, one could edit a font for ONScripter-EN to display the special glyphs over supported halfwidth characters. Many translations have done things to this effect, such as Mirror Moon's English translation of Tsukihime assigning the ellipsis character to |. Nowadays, however, the new releases of ONScripter-EN have Unicode support.

ONScripter-RU

ONScripter-RU is yet another fork, but it is probably not for you. ONScripter-RU's only major usage is in the Umineko PS3 project, and it does not work with much of anything else. As stated on its Github page, ONScripter-RU makes use of its own hacks, so don't expect cross-compatibility between it and the other forks.

ONSlaught

Befitting its unique name, ONSlaught was not a fork at all, but rather an attempt to program an NScript interpreter from the ground up. Its developer was annoyed by ONScripter's (former) lack of Unicode support, and the fact that support for languages other than Japanese was splintered across an array of forks. ONSlaught supports Unicode, can fake bold/italics, and is able to run very basic games such as Tsukihime and OMGWTFOTL, but some core features such as text sprites are not working. It is much more strict and consistent in its handling of syntax and errors, so in order to use it you would have to make some edits to your game script. It is known to have been used in Tsukihime's Spanish translation and its Russian translation. ONSlaught was abandoned in 2011.

ONScripter Plus

ONScripter Plus is an Android app that runs ONScripter and ONScripter-EN games pretty much how they should be run. Of all the incarnations of ONScripter on Android, this is the one to pick. It bears a few bugs and may have some save file issues, but it is a great way to read your novels while away from the computer. You might consider buying the ad-free version for to support the developer.

ONScripter-EN Historical Download Mirrors

Here are the same downloads of ONScripter-EN and the ONScripter tools that were on the Releases page of Uncle Mion's site, now mirrored on the Wayback Machine. Do note that these builds are provided for historical purposes, and ONScripter-EN now is in active development again here.

Version: onscripter-en-20110628

Builds:
Source Packages:

Version: onscripter-en-20110930

Builds:
Source Packages:

ONScripter Tools - (2010-09-15)

PONScripter Download Mirrors

PONScripter is not an ONScripter replacement: it is abandoned software which lacks much compatibility. Use at your own risk.

Version: ponscripter-20100502

Builds
Source Packages

General Resources

I have updated the *NScripter command reference, fixing some old errors and adding several new commands along with more engine information. View it here.

To access what remains of the official ONScripter-EN/PONScripter support page, visit Uncle Mion's ONScripter Corner on the Wayback Machine.

The NScripter-related page of a previous maintainer of ONScripter-EN, Insani, is still up. Haeleth's site sadly is down as of spring 2020. The builds and source code on these pages are very outdated, but you may still find some use in them -- specifically, Insani hosts the Japanese NScripter SDK and extraction tools, which are no longer necessary for us but still have their uses. Also check out insani.org's main page for many free English-translated NScripter games -- see Updating ONScripter-EN Games before running any games obtained from here.

If you can read Japanese, the home of the original untranslated command reference, Senzogawa's NScripter Scripting Factory still is up.

Games

Some brief mentions of popular English-translated games that run on ONScripter-EN -- full list here.

A likewise non-exhaustive list of games that use PONScripter:

You will find that many translators' sites refer to online store/download links which no longer exist. Many of these games are long out of print, so even if you bought second-hand copies, the developers would get none of the proceeds. As a result, you may have to find downloads on Rutracker or similar sites. If you go this route, please support the original developers in whatever way you can, if applicable and/or possible.