If you are writing a game and want to make it work well with SCARE, it may help to know more about a few of SCARE's features. There are unavoidable differences in places between SCARE and the Adrift Runner, and also areas where SCARE's cross platform portability leads to compromise. SCARE has additional features to help smooth some of these differences. SCARE's display model is fundamentally different to Runner's, and is based on the ideas of logical rather than physical styles, and of graceful degradation. That is, if a display feature is not available, SCARE will either emulate it in some way, or failing that, just ignore it. Most SCARE builds, including Gargoyle and Spatterlight, use the Glk interface. This has some text formatting features, but not the full range that Runner can use. Glk SCARE understands font faces "courier" and "terminal" to be fixed width text, and all others to be proportionally spaced. It displays fixed width text without text attributes. For proportionally spaced text, Glk SCARE translates font sizes larger than 15 to header text, 14 and 15 to subheader text, and 13 and below to normal sized text. For normal sized text, it uses subheader text for bold, and emphasized text for italics, underlining, and secondary color. It is the Glk library, not SCARE, that controls the way that header, subheader, and emphasized text actually appear on the screen. Some Glk libraries let you choose how these appear, while others are fixed. A Glk library might use italics for emphasized text, and larger, maybe bold, text for header and subheader. Or it might use monospaced courier font for everything, and ignore logical styles altogether. Glk SCARE does not support centered or right justified text. It does support both and , but some Glk libraries may not be able to fully implement . For the Latin1 locale, SCARE's default setting, Glk SCARE uses Windows codepage 1252 for proportionally spaced fonts, and codepage 850 for fixed width text. For the Cyrillic locale, it uses codepages 1251 and 866 instead. Glk SCARE tries to automatically sense a game's locale on starting, but you can set it explicitly by setting either "Latin1" or "Cyrillic" in the environment variable SC_LOCALE before starting SCARE. Locale support is not present in releases of SCARE earlier than 1.3.9. Some Glk SCARE builds, though very few, can display game graphics. Although SCARE makes sound information available to the the interpreter, no current Glk builds implement it. No SCARE build supports or implements maps. Besides Glk, the other main SCARE interface is the ANSI interface. This is the most basic display model possible, with almost no text formatting capability. ANSI SCARE has no codepage support. It displays only fixed width text, with no text coloring, italics, bold, underlining, or any font or font size control. It does not center or right justify text, and clears the screen by scrolling text. It supports but not . Runner uses a graphical toolbar to control some of its features. SCARE cannot, however, rely on there being a graphical toolbar, so instead it adds some extra commands to control these features. ">verbose" and ">brief" control whether the game displays the full location description each time you visit a location or only on the first visit. ">notify on" and ">notify off" allow you to see messages when the score changes, and ">notify" tells you the current setting. Use ">save" and ">restore" in SCARE to save and load saved games. Use ">undo" to undo a turn, and ">quit" to leave the game. Use ">hint" to access any game hints, and ">history" and ">redo" to view and repeat recent game commands. In Runner, ">time" and ">date" show the current (real, not game) time and date. For ">time", SCARE instead prints the duration that the game has been running. For ">date", it does nothing useful. SCARE uses ">license" to print its licensing terms and conditions, and ">version" to print details about the version of SCARE you are running. It provides ">debug" to enter the game debugger, if enabled. SCARE's version of ">go to location" is weaker than Runner's. In particular, it is limited to only those locations directly adjacent to the current player room. Because it can be built without a status window, SCARE offers the additional commands ">status" and ">statusline". These display the game's status line that would have been shown if the display had a separate status window. Glk builds of SCARE offer an extra subcommand ">glk ...", to help you control special interpreter features. Use ">glk help" for more. SCARE does not support "if(..." expressions where the item being tested is a string. This feature arrived in Adrift with version 4.0.50, and is beyond SCARE's current capability. Unlike Runner, SCARE treats all variables equally. You can use either system or game variables anywhere where variables are permitted. Game variables always take precedence over system variables where the names are the same, though %scare_version% below describes a special case. Currently, SCARE will only replace each ALR once per set of output text. This helps with recursion problems. Runner permits more than one use, but can run into recursion problems that cause it to crash. If you find that some ALRs or variable names are appearing in text output in SCARE, try looking for places in your game where an ALR is used more than once, and then creating a duplicate ALR with a different name and using that duplicate for the second occurrence. For getdynfromroom(), SCARE compares the room name found in parentheses with room names using a case-insensitive comparison where spaces are significant. This may, or may not, match Runner in this area. When choosing an object to act on, it picks the first available object that is directly in the room (that is, on the floor). Again, this may or may not match Runner. Game events may move static objects to the player inventory, and static objects have no weight or size attributes in Generator. When looking at player weight and size limits, SCARE considers these objects to have no weight or size. This may match Runner, or may not. Similarly, object restrictions do not apply evenly to static objects. If a game wants to know if it is running in SCARE or in Runner, it can define the variable "%scare_version%", initialize it to zero, and then never change it. If SCARE sees this variable in a game, it will change its initial value for you automatically to match the version number of SCARE, for example 10310 for SCARE 1.3.10. Runner will not change it. A game can read this variable to determine which interpreter is running it, and from this it can vary messages or text formatting, or make any other useful adjustments. This feature is not present in releases of SCARE earlier than 1.3.9.