![]() | This article needs attention from an expert in Software, Computingor Video games. The specific problem is: The translator has no knowledge about this subject.(July 2025) |
RGSS (Ruby Game Scripting System) is a scripting language based on the object-oriented programming language Ruby. It has been developed specifically for use in the RPG Maker series of role-playing game creation software.
Game.exe
, which includes the Ruby implementation and definitions of built-in classes and modules.Data\Scripts.rxdata
in the project folder. [1] The filename extension is .rvdata
for RPG Maker VX and .rvdata2
for RPG Maker VX Ace, respectively.The following language versions are integrated into three RPG Maker versions:
Software version | RGSS version | Ruby version | Notes |
---|---|---|---|
RPG Maker XP | RGSS | 1.8.1 | Referred to as RGSS1 in this article. |
RPG Maker VX | RGSS2 | 1.8.1 | |
RPG Maker VX Ace | RGSS3 | 1.9.2p0 |
Yukihiro Matsumoto stated in his diary, "RPG Maker XP apparently comes with Ruby 1.8.1 (with the regular expression engine Oniguruma) built in under the name RGSS. I am proud to see 'Ruby (c) 1993-2003 Yukihiro Matsumoto All Rights Reserved' written in small letters." [2]
The later version released in 2015, RPG Maker MV, switched to a JavaScript-based game engine, and so only the three language versions above are available.
RGSS1 is the first version of RGSS integrated into RPG Maker XP.
Graphics.update
is not called for over 10 seconds, a Hangup
exception is triggered.$DEBUG
is set to true
. This may cause the game to behave differently than in normal gameplay, especially when dealing with threads.Audio
: Handles sound output, including playing background music (BGM) and sound effects (SE).Graphics
: Manages screen rendering, frame updates, transitions, and visual effects.Input
: Processes input from the keyboard and gamepad.RPG
: Contains classes that represent game data such as actors, items, skills, and enemies.RPG::Cache
: Caches bitmap images to improve performance and reduce memory usage during gameplay.Zlib
[3] : Handles the "Zlib" library for data compression and decompression.Bitmap
: Represents a bitmap image for drawing text, shapes, and sprites.Color
: Defines RGBA color values for tinting and blending graphics.Font
: Controls font properties like size, style, and typeface for text rendering.Plane
: A sprite type that tiles a repeating pattern, commonly used for fog or panoramic backgrounds.Rect
: Represents a rectangle for defining areas within bitmaps or screen regions.Sprite
: Handles 2D image rendering.Tone
: Controls color tone adjustments.Viewport
: Defines a viewport, which is a rendering area for sprites.Window
: Creates UI windows composed of multiple sprites.Hangup
[3] : An exception triggered in RGSS1 scripts when Graphics.update
hasn’t been called for a prolonged period.Reset
[3] : An exception triggered when the F12 key is pressed. This exception cannot be caught with the rescue
clause.RGSSError
: An exception for RGSS-specific errors, such as accessing a disposed bitmap.Table
: A multi-dimensional array for storing numerical data. Supports up to three dimensions and is faster than standard arrays.Tilemap
: A kind of sprite displaying map tiles based on data from the map editor.TilemapAutotiles
: Used internally by Tilemap
to manage auto-tiling behavior. Not typically accessed directly.RPG::Sprite
: Extends Sprite
with added functions commonly used in games.RPG::Weather
: Manages weather effects like rain, snow, and fog.Win32API
[3] : A Ruby class allowing access to Windows API functions.RGSS2 is the second version of RGSS integrated into RPG Maker VX .
Graphics.update
delays.Tilemap
class was significantly revamped. Other game libraries and data structures were also partially altered.$TEST = true
; $DEBUG
is unaffected.Audio
: Handles sound output, including playing background music (BGM) and sound effects (SE).Graphics
: Manages screen rendering, frame updates, transitions, and visual effects.Input
: Processes input from the keyboard and gamepad.NKF
[3] : A Ruby module handling "Network Kanji Filter" (NKF) for Japanese character encoding conversion.RPG
: Contains classes that represent game data such as actors, items, skills, and enemies.Zlib
[3] : Handles the "Zlib" library for data compression and decompression.Bitmap
: Represents a bitmap image for drawing text, shapes, and sprites.Color
: Defines RGBA color values for tinting and blending graphics.Font
: Controls font properties like size, style, and typeface for text rendering.Plane
: A sprite type that tiles a repeating pattern, commonly used for fog or panoramic backgrounds.Rect
: Represents a rectangle for defining areas within bitmaps or screen regions.Sprite
: Handles 2D image rendering.Tone
: Controls color tone adjustments.Viewport
: Defines a viewport, which is a rendering area for sprites.Window
: Creates UI windows composed of multiple sprites.Reset
[3] : An exception triggered when the F12 key is pressed. This exception cannot be caught with the rescue
clause.RGSSError
: An exception for RGSS-specific errors, such as accessing a disposed bitmap.Table
: A multi-dimensional array for storing numerical data. Supports up to three dimensions and is faster than standard arrays.Tilemap
: A kind of sprite displaying map tiles based on data from the map editor.Win32API
[3] : A Ruby class allowing access to Windows API functions.RGSS3 is the third version of RGSS integrated into RPG Maker VX Ace.
Basically, all RPG Maker games using the XP, VX, and VX Ace engines are programmed with RGSS.
Programmers use RGSS to modify the preset scripts provided at the beginning and build systems not possible with event commands alone.
It is also possible to build scripts for your favorite game system from scratch without using any of the preset scripts. Though RGSS is tailored for role-playing games, it can also be used to create games in other genres, such as action titles.
As for the previous versions of RPG Maker without RGSS, it was not easy to freely resize text, customize menus, or create enemies with extremely high hit points (e.g., 10 quadrillion). Event commands could handle such cases, but often resulted in complex and inflexible code lacking versatility.
However, by using RGSS, the game data can be rewritten at the script level, eliminating the need to call up special events, making production much smoother.
There are many websites that host custom RGSS scripts, and most of them are easy to use and designed to be copy-pasted directly into the preset scripts.
There are many Ruby-based game libraries as follows: