From IFWiki
Jump to: navigation, search

URQ, or Universal RipSoft Quest, is a Russian authoring system for creating Russian CYOA games. According to a page on the RTADS site, URQ is the oldest and the most popular development system in Russian IF. The original author of URQ is Timofey Basanov a.k.a. RipOs. Also several people contributed to URQ's development, primarily Victor Koryanov and Anton Zhuchkov.

Basic possibilities

The main purpose of URQ is to create small games controlled by menu choices and built-in inventory support. However, the enthusiasts of the platform have repeatedly implemented with its help branching menu, navigation using a graphic map, "roguelike" games, or even a simple parser.

Quest game files are plain text files in win (Windows-1251) or dos (cp866) encoding and have an extension .qst (unencrypted quest), .qs1,.qs2,.qs3 (encrypted quests). There is a file format for FireURQ .qsz (archive which can be Packed with all the resources of the quest).

To date, written more than 400 games. Quests can be written in any text editor, although there are special editors: old SMSQuest and actual URQEdit. They are written in a simple BASIC-like programming language (Universal Ripsoft Quest Language — URQL), which is gradually improved and developed.

The basic language tools allow you to display text and buttons, have numeric and string variables, perform branching and loops depending on certain conditions, refer subroutines. URQL code can be partially self-modifying.

The system is well documented. Most of the games are, also, available as source code.

Unfortunately, most of the documentation is only available in Russian.


The main URQL disadvantages:

  • non-strict and not too thoughtful syntax of the language created by different authors at the requests of different users. As a result, there are several not completely compatible interpreters and serious challenges for games designers - how to achieve smooth execution of the game on every interpreter.
  • the absence of built-in mechanisms of object-oriented programming, making it difficult to write large projects. However, this shortcoming will be corrected by means of modernisation.


At the moment there are four basic interpreter that should be used for writing games:

  • FireURQ (last version 17.12.2017 FireURQ 2.2.3) (Written on Delphi. Source code. Author - Fireton(Anton Zhuchkov Implementation of URQL, close to the classic URQ_DOS. Advanced syntax, which allows, for example, to pass parameters to a location-subroutine (syntax differences are described in detail in the help file).The ability to insert an image (or part of it) into text. Decorators: fragments of text or images (including animated GIFs) that can be placed anywhere on the screen and manipulate them in different ways. Custom fonts, including TrueType (used by FreeType for rendering) Support for the archive format of .QSZ quests, with the use of which resources can be placed in the quest file. Enhanced music and sound support. Supported formats WAV, AIFF, MP3, MP2, MP1, OGG, as well as tracker music formats: XM, IT, S3M, MOD, MTM, UMX. In addition, MIDI music is also played (MID files). Also supported is the MO3 format (tracker music with OGG-packed samples). *Implemented fadein and fadeout for music. Convenient mode of debugging, in which it is easy to detect an error and modify the quest without restarting the interpreter.)
  • UrqW (last version 20.12.2016) (UrqW - сrossplatform (including for mobile devices) interpreter for urq quests in JavaScript with open Source code, developed by Alexander Sevryugin(Akela). It supports almost all the capabilities of the URQ_DOS and RipURQ interpreters, new features, such as xbtn, links in the text and more (see the documentation) are added. You can use html, javascript and css to design and expand the engine's capabilities.)
  • PolyQuest (modified version UrqW. Author - Arseniy Shuvalov. The platform is oriented mainly on the creation of interactive versions of gamebooks. Source code) (Compared to UrqW, PolyQuest provides the following additional features: Support the web markup using special tags. Support execution of JavaScript code using special tags. The ability to change the HTML content of the current (working) page using special tags for the HTML, CSS and JavaScript components. The possibility of introducing variables URQL to a running JavaScript snippets. Ability to control the sequence of music playback. The ability to perform additional actions while saving and loading the game. A number of JavaScript helper functions that interact with URQL-part of the game.)
  • URQ-module INSTEAD (limited interpreter for the platform INSTEAD) Author - Peter Kosyh.

URQ games can be downloaded from the main URQ site (see below).