Plotscript of the Month
Power Up, by Moogle1

I've been playing Castlevania: Dawn of Sorrow lately. It has its flaws, but it has an excellent equipment system in the form of soul management. If you've never played either of the Sorrow games, the concept is that you gain enemies' abilities when you kill them (sometimes). You can equip three souls at once: one Bullet soul (an attack of some type, like a fireball), one Guardian soul (an activated ability, like a summon or transformation), and one Ability soul (usually increases your stats).

What's this got to do with anything? Well, Dawn of Sorrow has some subtle and very clever combos with its souls and equipment. For example, the Skeleton Ape ability soul allows you to throw things farther. Equip the Slogra bullet soul to throw spears and you'll have better range. The cool combo is that the Gaibon familiar will also throw spears when you do. So the Skeleton Ape, Slogra, and Gaibon souls combo well together.

The Plotscript of the Month this month lets you do something similar. Let's say you have a Fire Rod in your game, which you want to improve the power of fire spells. Or you have a Pendant that unlocks the power of the Masamune, making it stronger. You can create these effects with this plotscript. The trick is that the powered-up fire spell and sword are actually a different attack/item -- the script switches between them.

# POWER UP
include, plotscr.hsd
include, myrpg.hsi
include, scancode.hsi

define script(1, power up, none)

script, power up (
 if (key is pressed(key:alt)) then (
  wait(0) # Allow the menu to close
  variable(hero)
  variable(slot)
  variable(list)
  for (hero, 0, 40) do (
   # Change Fire to Fire 2 if Fire Rod is equipped
   if (check equipment(hero, slot:weapon) == item:Fire Rod) then (
    # If the hero has the normal spell, power it up
    if (knows spell(hero, atk:Fire)) then (
     for (list, 0, 3) do (
      for (slot, 0, 23) do (
       if (read spell(hero, list, slot) == atk:Fire) then (
        write spell(hero, list, slot, atk:Fire 2)
       )
      )
     )
    )
   ) else (
    # If the hero has the powered-up spell, change it to normal
    if (knows spell(hero, atk:Fire 2)) then (
     for (list, 0, 3) do (
      for (slot, 0, 23) do (
       if (read spell(hero, list, slot) == atk:Fire 2) then (
        write spell(hero, list, slot, atk:Fire)
       )
      )
     )
    )
   )

   # Change Masamune to Masamune 2 if Pendant is equipped
   if (check equipment(hero, slot:arms) == item:Pendant) then (
    # If the hero has the weak Masamune, power it up
    if (check equipment(hero, slot:weapon) == item:Masamune) then (
     force equip(hero, slot:weapon, item:Masamune 2)
    )
   ) else (
    # If the hero has the powered-up Masamune, change it back
    if (check equipment(hero, slot:weapon) == item:Masamune 2) then (
     force equip(hero, slot:weapon, item:Masamune 2)
    )
   )
  )
  # We also need to swap out any Masamune 2s in inventory
  if (inventory(item:Masamune 2)) then (
   get item(item:Masamune, inventory(item:Masamune 2))
   delete item(item:Masamune 2, inventory(item:Masamune 2))
  )
 )
)

Usage

This script should be set as the on-keypress script. If you already have an on-keypress script, you can still use this one -- just copy its contents into your own script. The script has some limitations: