[XP] Heretic's Caterpillar - Extensive Features and Add-Ons!

Started by Heretic86, August 27, 2012, 06:33:32 am

Previous topic - Next topic


Heretic's Caterpillar - Extensive Features and Add-Ons!
Authors: Heretic
Version: 2.0
Type: Custom Movement System
Key Term: Custom Movement System


This Caterpillar Script is an Extensive Rewrite based on Zeriab's Caterpillar which greatly enhances the the things you can do with a Caterpillar as well as many many other various things.


  • "Pause" and "Unpause" the Caterpillar - Very Useful for Cutscenes

  • Enhanced Multiple Message Windows - Contains multiple new features and bugfixes

  • Built In Anti Lag System

  • Built In Event Fading and Transparency Effects - Fade Events In and Out

  • Built in Dead Character Effects (Don't Walk, Ghost, Zombie, Coffin, and Alternate Sprites(optional)

  • Unlimited Non Party Followers

  • Ladder Effects - Player always faces Ladders (optional) - Based on Terrain Tags

  • Movement Enhancements - Multiple Caterpillar Specific Movement commands, like Backup and Stagger

  • Movement Enhancements for All Events - Turn or Move Toward or Away From Events

  • Solid Caterpillar Actors - NPC's cant move through your Cat Actors, but you can!

  • Player and Events are allowed to go OFF MAP with special conditions

  • Flat Sprites - Events with Large Graphics can render as Flat on the Ground

  • Specific Z-Index Controls - Allows for Events below Terrain - Useful for Background

  • Move Route Wait Exclusion - Excludes flagged events from interfering with "Wait for Move's Completion"

  • Auto Orientation of Cat Actors to face Player's Direction on Transfer

  • Developer Error Messages - Very Useful during Development

  • Extensive Demo - Includes Advanced Mapping Techniques, Tutorials and Examples of Script Usage

  • Demo Includes Auto Door Close Add On for use with the Caterpillar (optional add-on)

  • Includes Pathfind by ForeverZer0 (used with permission)


Spoiler: ShowHide




(Script is available in the Demo)


Put as close to Main as possible.  


Probably not compatible with other Caterpillar Scripts.
Multiple Message Windows enhancements probably not compatible with other Message Windows Scripts.

Credits and Thanks

The following people deserve credit for helping me make this script possible!

  • Zeriab, ForeverZer0, Blizzard, Jon Bon, Kiriashi, Moonpearl, kellessdee, Near Fantastica, Modern Algebra, .Illumination

Author's Notes

The purpose of this script is to enhance the RMXP Engine as much as is within my potential to do so.  I felt that there were a lot of things left out from the Default RMXP Engine that should have been included.

There are so many tools and additional scripts that I expect that no one will have use for every single one of them.  I believe that it is better to have a tool and not need it than to need a tool and not have it.  In order to see all of the tools in action, you'll have to grab the Demo, then decide if the tools that I've made available to you are going to be useful to you.

Note:  Many of the features are based on Specialized Names.  The "Cat Actors" must be named "Anything\cat_actor[3]" where 3 is the Number of that Actor in the Database.  You can also apply SEVERAL Special Names to an Event.  For example: "Grass\z_flat\move_route_wait_exclude".

I am still working on even more enhancements for MMW, but they aren't ready for Prime Time yet.

If you have any questions, or find any bugs or compatability issues, I'll do my best to answer your questions and help you out!

History: April 30th, 2015 - Updated to Version 2.0 with the release of Heretic's Collection 2.0 which includes the latest version of all of my scripts.  The update was intended to provide compatibility with many new scripts including Downhill Ice, a Collision Optimizer, and Loop Maps!
Current Scripts:
Heretic's Moving Platforms

Current Demos:
Collection of Art and 100% Compatible Scripts

(Script Demos are all still available in the Collection link above.  I lost some individual demos due to a server crash.)


Version 1.99 Released

Minor update to the Caterpillar Script:
- There was a bug with Ladders where transferring the Player from a Ladder to a Non Ladder space was causing the Caterpillar Actors to "get stuck" facing up, like they were still on the Ladder.  Non critical bug, as it didnt cause any game crashes, just looked silly.  Save Games from all 1.98 versions will be compatible.  Save Games from versions older than 1.98 wont be compatible tho. 

I decided to increase the version number due to changes of another included script that has also been heavily modified.  Multiple Message Windows.  Some of the changes made to the MMW script required new variables to be created.  These variables are created when the game is first started, and are saved in save games.  Older save games will not have these variables, but the script will call to them, even though they dont exist from those save files.  This causes a game crash.  Thus, old save games arent compatible.

This version of MMW was already discussed in another thread asking what new features MMW could really use, but I didnt bundle it with the Caterpillar like I usually do.  So, minor update for the Caterpillar, and updated the Multiple Message Windows script to release status.


Current MMW Change List

- MMW can now play SOUNDS while a character is speaking!  Think Banjo Kazooie!  Sounds are all customizable.  The DEMO was updated to include a new map to show off this feature.  So be advised that only ONE MAP in the DEMO will provide examples of sound.  This is kind of a work in progress, but it is stable and functional enough to release.

- Choice Windows function correctly when two messages are being displayed

- Choice Windows can also Default to the 2nd or 3rd or 4th items in the List

- Message Windows can now go completely off the screen.  Older versions of the MMW script would automatically "Flip" the Message Window if it went off the screen.  This is OPTIONAL and can be turned on and off.

- Message Windows can now "Flip" when a Speaking Character turns.  This allows for better visibility for your Players so that the text that is on the screen does not prevent the player from seeing what they want to see.

- Message Windows can be "Sticky".  When a message "Flips", it will "Flip" to the Top or Bottom. 

Sticky means that the following messages "Stick" to that location.  Top or Bottom was implemented to maintain the visibility of the message itself.  Since messages can also be allowed to go Off Screen, messages that appeared to the Left or Right were not always fully visible to the player which prevents players from being able to read them.  You'll have to position your NPC's and / or set up your scripts accordingly to make sure that the player can read them.

- Gold Window positions can now be specified.  I had some trouble with the Automatic Positioning of the Gold Window interfering with Message Windows, so I thought providing more specific control would be a nice feature that everyone should have.

- Maximum Distances from Speaking NPC's can be imposed.  Windows used to close automatically if the speaking NPC was moved off the screen.  I thought that to be a bit too far.  This allows Players to walk away from a Speaking NPC and have that message window close at a much shorter distance.  This is very useful for Optional Dialogue that a Player may not be interested in seeing.  message.move_during needs to be true in order for this feature to work.

- Maximum Distance for Non Floating Windows can be imposed.  A "Non Floating Window" means it isnt a Message Bubble.  For example, a Sign.  A Sign could display a message in a Non Floating Window.  This feature allows a Player to move away from that sign and for that Non Floating Window to be closed automatically.

- Maximum Distance will Save your Settings in the event of an Automated Closure.  This should save you extra work from trying to set up messages for each and every NPC.  If a message window was closed automatically because a player walked away, those settings are restored.  It is a little tough to explain.  Say a Player reads a Sign (non floating window), then walks away and talks to an NPC.  The Sign would need message.floating = false to display in the Default Window, but when they walk over to talk to the NPC, you dont need to put in message.floating = true for that message window.

- NPCs and Move Routes now continue properly if interrupted.  If you trigger a conversation with an NPC, then move away prematurely, if the NPC was moving around, they will continue moving correctly instead of starting their move route anew, which would have caused NPC's to end up in unwanted positions.

--- Other New MMW Features --- (from previously released Caterpillar Revisions)

- Auto Comma Pause - This feature will automatically insert pauses based on punctuation, assuming proper punctuation is used.  It was implemented with the intent of making the text appear in the way that a person would speak, by pausing after commas and at the end of sentences.

- Number Window Input Cancellation - RMXP allows developers to cancel choice windows, but nothing was implemented for cancelling a Number Window.  You can now allow your Players to cancel their Number Input Windows, and you can Detect if a Number Input Window was cancelled, making its functionality similar to the Cancel Branch Condition.

- MMW stands for Multiple Message Windows.  The focus being on "Multiple" because Multiple Messaegs can be displayed.  In previous versions, displaying Multiple Windows simultaneously required that the next messages be tagged with \+ at the start of the text, but, would only fire up both windows at the same time.  I made a change so you can use \* to display the next message at ANY time, once those two characters are processed.  This means you can have a message start to display some text, then display another window half way through.  It eliminates the artificial requirement to display more than one message at the exact same time.

- Auto Window Positioning with \$ and \% - In previous versions, you could reposition a window to be on Top (Default), Left, Right, or Down from the Speaking NPC by using \^, \<, \>, and \v respectively.  I found that it was more useful to Auto Position the windows based on the Speakers Direction.  The \$ option will place the message window on Top of the Speaking NPC unless the Speaking NPC is facing UP, in which case, the message window will appear on the Bottom.  The \% position will place the Message Window BEHIND the Speaking NPC.  Thus, if the Speaking NPC is facing Left, it will position the Message Bubble to the Right of that NPC.  I found this to be incredibly useful if you did not know what direction the Speaking NPC was facing.  It prevents covering the Speaking NPC's and / or obstructing the Players view.  Basically, it provides a greater range of Freedom to the Player to move around while NPC's are speaking.

- Caterpillar Positioning - Requires both the Caterpillar and my revision of Wachungas MMW Script.  In order to cause a speech bubble to appear for another NPC or Player, \P[Event_Id] is used.  \P[0] is used to make the Player speak.  But to make a speech bubble for an NPC, \P[24] would be used, provided, of course the Event ID of that event is 24.  The Caterpillar Positioning allows your party to be more dynamic.  If you wanted your first Caterpillar Actor to say something, you would use \P[C2], C standing for Caterpillar.  The Caterpillar is heavily event based, and each Cat Actor uses a different event, thus, in a more dynamic game, the Event ID of your 2nd Party Member may be very different, which makes eventing dialogue difficult.  This is intended to make it much easier for you.  Instead of using Conditional Branches, you just need to add one more letter to the dialogue.

--- Future Versions ---

At some point in the future, I still intend on removing the SDK dependancy.  I also intend on at least attempting to make the Bubbles translucent, but because of the Message Tail, it doesnt look right.  If I can figure out how to do that, MMW will probably get another release.  There are a few other versions of MMW out there that at some point I want to tie together.  One did get rid of the SDK dependancy, another is compatible with BlizzABS, which required some further tweaking, but has some features I havent built into this rewrite.  I do hope to tie as many of these together, but these are things on my to do list and much further down the road.  For now, I think this version should keep everyone happy.
Current Scripts:
Heretic's Moving Platforms

Current Demos:
Collection of Art and 100% Compatible Scripts

(Script Demos are all still available in the Collection link above.  I lost some individual demos due to a server crash.)


September 29, 2012, 09:39:46 am #2 Last Edit: September 30, 2012, 11:59:51 pm by LiTTleDRAgo

and I managed to yank the SDK dependency but when I remove the SDK, your caterpillar stop functioning (they not following the player)

also, message log : http://forum.chaos-project.com/index.php/topic,11299.0.html


Alright.  I'll take a look.  Probably a bit later tonight tho.

What does that line do exactly anyway?  I've barely read thru the Auto Font Install script...
Current Scripts:
Heretic's Moving Platforms

Current Demos:
Collection of Art and 100% Compatible Scripts

(Script Demos are all still available in the Collection link above.  I lost some individual demos due to a server crash.)


Quote from: LiTTleDRAgo on September 29, 2012, 09:39:46 am
my advice is to remove this line on font installer

require Dir.getwd + '/Data/fileutils.rb'

it seems I was wrong,

Quote  This script also requires the free FileUtils module by Minero Aoki, which
  is included in the standard Ruby distribution but for some reason not
  available in RMXP. Download and place it in your scripts subdirectory: