Jul 4, 2021
Reaction score
First Language
Primarily Uses
I decided to make three packs with some very simple scripts I made for RPG maker XP that don't require much explanation and probably don't deserve a whole topic for each. Some are very old scripts, but I revised them recently quite meticulously, so they shouldn't have bugs.

If everything goes according to plan, the packs will be released monthly.

Terms of use
- Giving credits (Wecoc) is not required.
- You can repost this pack.
- You can edit the codes freely.
- These scripts can be used on commercial games.

Wecoc's Little Collection of XP Scripts 1.zip [35 kB]

The pack only contains the codes as TXT, to use them simply copy the code above the script Main.

Other packs
- Wecoc's Little Collection of XP Scripts #2
- Wecoc's Little Collection of XP Scripts #3 [Not available yet]

I'm separating them in different topics because this way it's easier to focus on a certain script here if any issue appears.

I'll include a little explanation for each script, so they're a bit easier to find on the web.

By default, when you buy an item, a number window opens where you pick how many of that item you want to purchase. With this script, a number appears on the selecting window so you pick the number right there directly, using the directional arrows (like in Castlevania SOTN).

I also included an extended version (Castlevania Shop Item Counter EXT) where the change is also applied on the selling window.

This code replaces the Debug window to another which allows writing code commands in RGSS, so you can test more complex things inside the game itself.

For example, if you write there p $game_variables[1] a popup window will display the variable 1. It's like a script call inside the game for testing purposes, it even supports multi-line.

I also included an extra script (Debug Eval Shortcuts) with some common shortcuts that may be handy there.

I think this one maybe deserves a bit more explanation.
This is how it looks.

The shortcuts are:
help - Print the current commands [from the main script]
help("command") - Print info of a command (if available)
debug - Change to the default Debug window [from the main script]
var - Same as $game_variables
stch - Same as $game_switches
control_event(id) - You start controlling a certain event instead of the player
control_player - Back to control the player
erase_event(id) - Erase a certain event
transfer(map_id, x, y, direction) - Teleport to another map (direction is optional)
fullscreen - Toggle fullscreen mode.

Some other useful common calls:

$game_player.move_speed = (speed)
$game_player.moveto(x, y)
$game_map.events[(id)].moveto(x, y)

A little script that allows disabling the map scroll completely. In some cases you may want the screen to stay fix even if the player moves around.

Script call: $game_system.fixed_scroll = true/false

I also included an extra script (Fix Scroll Passability Addon) that forbids the player to step outside the screen when it's fixed.

When message choices are short enough, they will display horizontally instead of vertically.

> Should we enter the castle?
> [ Yes ]    No

It can be enabled/disabled via script call using $game_temp.choice_short = true/false

With this script the Item menu is actor-based like the Skill menu. The item bag is still shared but some actors can't use certain items, and some can't use items at all. You can also make states that disable item usage. All the instructions are on the script.

I also included an extra script (Items by Actor Addon) where each actor has its individual inventory.

A very simple rewrite of the Weather effects, very similar to the default but less pixel-based. With a few adjustments you could control some variables via script call.


New script calls for extended event page control.
The calls follow this structure $game_map.events[ID].(CALL) where ID is the event id, and it also can be @event_id for the current event.

page - Get the current event page, starting from 0.
pages - Get an array with all the event pages (RPG::Event::page), it's meant for internal use but you can for example get the number of pages with pages.size
go_to_page(id) - Force the event to a specific page manually
valid_page?(id) - Check if a page is valid (check if all page conditions are triggered)
valid_page? - Check if the current page is valid
valid_pages - Get an array with all the pages (RPG::Event::page), it's meant for internal use like the command pages.
top_valid_page - Get the top valid page (with higher priority)
top_valid_page?(id) - Check if a page is the top valid page
top_valid_page? - Check if the current page is the top valid page

Make some actors or events have certain terrain IDs marked as non-passable. More info on the script.

This is meant for bosses where to attack the boss you must first kill its guards.

The Scene File now looks like a list with as many slots as you want (12 by default) and a lot more space for info (for example you can display the current chapter, the map name, description of the current map, etc.) The info available is meant to be modified by the script user.

With this script the buy and sell scenes are completely independent, the default shop call is only for buying, and for selling you should use a script call with $scene = Scene_Shop.new(1)

I'm not sure why this exists, to be honest... I totally forgot about this one.

You can swap actors with Q/W in the shop (like in menu scenes). This way there's more space for displaying info about the current actor.

When you obtain a weapon or armor type you've never seen before, it's marked as unidentified, and it needs to be properly identified to use it or sell it with full price. If you've played Diablo 2 you'll know what I'm talking about. Everything is unidentified by default, so on the first map of the game you may want to identify some IDs directly via script call.

These are the available commands (you can change "weapons" to "armors" in each one)
$data_weapons[id].identified - Check if a weapon is identified
$game_party.unidentified_weapons - Get a list of the non-identified weapons you actually have
$game_party.all_unidentified_weapons - Get a list of ALL the non-identified weapons
$game_party.identify_weapon(id) - Identify a weapon
$game_party.identify_weapons - Identify all possessed weapons
$game_party.identify_weapons_price(price) - Check if the group has enough money to identify all possessed weapons

With this script certain weapons can attack using a skill or item.

This script allows to use eval in database string inputs. You can name an item as always, but with this you have several more options, for example include an actor's name "Basil's Spear" (where "Basil" would be a name defined by the player).

I hope you find something useful on this list :awink:
Last edited:

Latest Threads

Latest Profile Posts

Ugh, can't decide what to make next!
Recently got RPG Maker MZ. A bit slower with my current PC but I will be getting a new one soon.
evening progress; pretty happy where this is at so i'll take the rest of the night to myself =w=
It would seem learning JS is not a know it all for making plugins. While it has enabled me to understand what I'm looking at, I still have to find the relevant information in the core scripts. This is much harder than learning JS IMO.

Forum statistics

Latest member