SES VX Ace

Highly extensible, dynamic scripts for RPG Maker VX Ace.

Tag: Development Tool

Window Book v3.0 (first major public release!)

by Enelvon

Summary

This script provides a parent class for multi-page windows, with a focus on those used to display information.

Detailed usage information is available within the script’s header.

Features

  • Easily create multi-page windows with little-to-no scripting knowledge.
  • Advanced users can create nearly any sort of multi-page window imaginable.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/book.rb’.

Installation

Place below Materials and above all other custom scripts, or with the Window_* classes if you want to keep things organized.

License

This script is made available under the terms of the MIT Expat license.

SES Benchmark

by Solistra

The SES Benchmark measuring Array methods.

Summary

This script provides a simple benchmarking tool similar to the Benchmark module present in the Ruby standard library. Essentially, this script allows you to run specified code and objectively determine its execution speed.

Detailed usage information is available from the source repository where the script is stored.

Features

  • Objectively determine execution speed of code.
  • Displays speed in real-time and user processing time.
  • Allows testing of multiple strategies in a single measurement.
  • Easily modify the number of iterations for each benchmark.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/benchmark.rb’.

Installation

Place this script below the SES Core (v2.0) script (if you are using it) or the Materials header, but above all other custom scripts. This script does not require the SES Core (v2.0), but it is recommended.

License

This script is made available under the terms of the MIT Expat license.

Eidolon: Phantom Data

by Solistra

The Request

As is probably well-known by now, I have recently become much more active on the RPG Maker Web official forums than I was previously. Honestly, it’s a little interesting — and somewhat overwhelming — being involved in a community as large as that one. Normally, I ignore almost all requests for anything related to Ruby or RGSSx programming; for the most part, I am simply uninterested.

One particular request grabbed my attention, though: some time ago, the user Yeyinde created a project scanner and data verifier for RPG Maker XP and RPG Maker VX projects — and Archeia (an administrator at RMW and owner of Division Heaven) requested a version that could be used with RPG Maker VX Ace projects.

The Problem

Yeyinde’s data scanner, for the most part, worked perfectly well and was used by many members of the community — unfortunately, it was not written particularly well. The source code was a complete mess, and certainly didn’t lend itself towards extensibility or flexibility — two things which I hold dear, and which Ruby is exceptionally good at providing.

So I glanced at the source — the core of it was exceedingly simple, but handled in a very blunt and rigid way. The data structures used included code that was entirely unnecessary, documentation was nonexistent, and the code base itself was resistant to modularity.

So I scrapped it.

The Solution

The problem, as I saw it, was intrinsically poor (but functional) design. Users of the program saw no issue, as it worked as advertised for the most part — it got the job done. From the perspective of an end-user, this is all that’s required; from the perspective of a developer, however, it leaves much to be desired.

As I said previously, I admire flexibility, modularity, and simplicity. As such, I decided to approach the use case of the original program in an entirely different way: by developing individual, modular components designed to be inherently flexible and easily extended by other developers.

At Present….

This concept seems to be working quite well. At the moment, the first component — Eidolon — has been completed and offered as a Ruby gem (the source is located in the SES source repository).

Essentially, this component allows the dynamic creation and destruction of the RPG data structures that are used by RGSS, RGSS2, and RGSS3 — which subsequently allows the easy loading and viewing of the serialized data stored by any entry in the RPG Maker series so far (and adding more in the future is quite simple) from an external Ruby implementation.

The design of Eidolon, by the way, allows it to be used in MRI Ruby, JRuby, and Rubinius on Windows, Mac OS X, or Linux — without any undesired artifacts. It is implementation and operating system agnostic.

And in the Future….

Of course, this is only the first part of a modern, modular data scanner for RPG Maker projects. All Eidolon does is create the RPG data structures for a desired RGSS version (even multiple different versions within the same Ruby session) and allow serialized data to be easily loaded — and viewed. It does not handle manipulation of the data or serialization of any modifications; that’s not the point of it.

The next major portion to write, obviously, is the backend for the scanner and verifier — the user interfaces (there will be more than one) will come later. In addition to this, all of the components of the verifier will be as platform-independent as possible, supporting Windows, Mac OS X, and Linux.

The Ideal

I will be releasing standalone Windows executables and Java archives once all of the verifier’s components have been created and assembled into a final form — and along the way, numerous smaller, broadly useful tools will have been created… allowing further work on external, cross-platform tools for manipulating RPG Maker data.

That, in my opinion, is the ideal.

SES Lexicon

by Solistra

The SES Lexicon browsing its own source code.

Summary

This script provides information and browsing capabilities for all of the RGSS3 scripts that are present in the RPG Maker VX Ace Script Editor. Script source code may be browsed and paginated in-game with the use of a REPL (such as the SES Console) or using script calls.

Detailed usage information is available from the source repository where the script is stored.

Features

  • Browse game source code while the game is running.
  • Paginate output, allowing large scripts to be browsed.
  • Easily discover which scripts define or redefine classes and modules.
  • Search for scripts by partial name with strings or regular expressions.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/lexicon.rb’.

Installation

Place this script below Materials, but above Main. Place this script below the SES Core (v2.0) script if you are using it.

License

This script is made available under the terms of the MIT Expat license.

SES Debugger

by Solistra

The SES Debugger on a break point.

Summary

This script provides a simple debugger with break point functionality using the SES Tracer and SES Console. Essentially, you establish a series of break points on specific lines within scripts in the Ace Script Editor — when the line is encountered, execution stops and the SES Console is opened with the active class at the time of the break as the context. This is primarily a scripter’s tool.

Detailed usage information is available from the source repository where the script is stored.

Features

  • Dynamic setting of break points in code execution.
  • Displays code surrounding the break point when encountered.
  • Console context is automatically set to the object which triggered the break point.
  • Iterates over defined break points until stopped.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/debugger.rb’.

Installation

This script requires the SES Core (v2.0), Tracer (v1.2), and Console (v1.0) scripts in order to function. All of these scripts may be found here.

Place this script below Materials, but above Main. Place this script below the SES Core, SES Console, and SES Tracer, but above all other custom scripts.

License

This script is made available under the terms of the MIT Expat license.

SES Tracer

by Solistra

The SES Tracer in use.

Summary

This script provides a simple, customizable tracer which can be used as a debugger or information-gathering tool for Ruby code. By default, the output from the tracer shows a visual representation of the Ruby call stack with relevant information. This is primarily a scripting and debugging tool.

Detailed usage information is available from the source repository where the script is stored.

Features

  • Highly customizable tracing of Ruby code at run-time.
  • A default trace formatter displaying the call stack.
  • Allows setting of a conditional to filter trace operations.
  • Able to trace specified methods whenever they are run.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/tracer.rb’.

Installation

Place this script below the SES Core (v2.0) script (if you are using it) or the Materials header, but above all other custom scripts. This script does not require the SES Core (v2.0), but it is recommended.

License

This script is made available under the terms of the MIT Expat license.

SES Test Case

by Solistra

SES Test Case results.

Summary

This script provides a simple unit testing framework for RPG Maker VX Ace with very simple expectation-style formatting for test cases. Essentially, this script allows you to use test-driven development from within RPG Maker VX Ace without depending on an external Ruby installation. This is primarily a scripter’s tool.

Features

  • Unit testing capabilities for RPG Maker VX Ace.
  • Tests may be written externally or within the Ace Script Editor.
  • Supports both assertion- and expectation-style tests.
  • Assertions and expectations may be mixed freely.
  • Support for simple mock objects.
  • Method stubbing, allowing tests for unpredictable methods.
  • Capturing of standard output as a string.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/test-case.rb’.

Tests for the framework are available from ‘test/’ in the source repository. The tests for SES Test Case may be placed under the core framework script in the VX Ace editor, or may be stored as external tests in ‘System/Tests’ (relative to your project’s root directory).

Installation

Place this script below the SES Core (v2.0) script (if you are using it) or the Materials header, but above all other custom scripts. This script does not require the SES Core (v2.0), but it is recommended.

Place this script above the SES Console if you are using it.

License

This script is made available under the terms of the MIT Expat license.

SES Console

by Solistra

The SES Console in use.

Summary

This script provides an interactive Ruby console through the RGSS Console with a number of advanced features. This is primarily a scripter’s tool.

Detailed usage information is available from the source repository where the script is stored.

Features

  • Provides an IRB-like REPL for RMVX Ace.
  • Supports user-defined macros stored as external Ruby files.
  • Allows entering multiple lines of input for evaluation.
  • Users may step into and out of any Ruby object known at runtime.

Script

This script is available from the SES source repository. The specific file to download is ‘lib/console.rb’.

Installation

Place this script below the SES Core (v2.0) script (if you are using it) or the Materials header, but above all other custom scripts. This script does not require the SES Core (v2.0), but it is recommended.

License

This script is made available under the terms of the MIT Expat license.

Design a site like this with WordPress.com
Get started