DHoffryn's Guide to BLU Spell Swapping

by DHoffryn, updated September 2023

Learn the ins and outs of creative macros, using Blusets, and maximizing your blue magic game play!

Part 1 – Spell Swapping (Ashita v3)

There are many complaints made about BLU on NS, not least that BLU is limited to 55 spell points. As many players will set their favourite spells once they get to level 99, and then forget about them, this is indeed a problem.

If, like me, you don’t want to be limited by this, there is a way to make BLU or /BLU a power to be taken seriously. On NS (but not on all private servers) you are allowed to use the BluSets add-on to manage your BLU spells, and this leads us to discover that, with a bit of tinkering, we can use ANY BLU spell, at a moment’s notice.

The concept is simple, if you want to cast a spell, you load the spell into memory, then cast it. To do this you need to issue a command to BluSets first to load the spell, then cast the spell itself. This means that you need to execute an external script. I call my scripts from standard macros, but you can call them from the command line if you prefer the keyboard. Here is the process, broken into 4 stages.

Stage 1 – Triggering The Macro

This is my macro to cast Silent Storm, an AOE spell that has the additional effect of silence.

This also reminds me that this is wind based and strong vs earth (my memory is not great).

Stage 2 – The Macro Body

This is the macro, a single execute command (I tend to abbreviate file names, sorry).

Commands are executed from .TXT files in the ashita/scripts folder. I have added another level so that I can keep the spells I use separate, based on the main job. In this example, my job is PLD/BLU.

Stage 3 – The Spell Files

This is the contents of my PLD folder –

As you can see, there is a single file for each spell that I currently use with my PLD (except the spells that are permanently loaded). You can see the tree level structure at the top of the window.

Stage 4 – The File Contents

So, what is this doing … line by line –

  1. Spell 727 (the ID for Silent Storm) is loaded into spell slot 1 (you will see why below).
  2. You have to wait for this to happen, 0.3 seconds seems to be long enough
  3. I like to tell the user (me) that the spell has loaded (you can remove this if you want).
  4. The spell is cast, as per normal.

So why slot 1? If, like me, you have several jobs that use BLU as a SUB you will have different traits set up in the permanent spells list. By using slot one for every main job you can easily re-use a spell file when you add a new main job folder, or even share all of your spells in a single folder.

Clearly, every time you execute a command, the spell that is currently in slot one will be replaced. To this end, I always have a “dummy” spell that is not part of a trait, at the start of my list, usually one that has a lot of points so that I can see how much spell space I have free.

This is the start of my BluSets json file for PLD/BLU

+-----------------------------------------------------------------------+
| [ "Tenebral Crush", "Magic Barrier", "Nat. Meditation", etc, etc      |
+-----------------------------------------------------------------------+

The Slightly Complicated Bit

As with everything good, there is a hitch. The default delay for spell swapping in BluSets is over half a second, which, in a pinch, is about half a second too long. Fortunately this can be fixed, but it takes a few steps, as detailed here.

First locate the two LUAs in the BluSets folder. Once you have located the right folder –

  1. Rename the folder (currently called BLUSETS) to BLUSETS2
  2. Rename the file (called BLUESETS.LUA) to BLUSETS2.LUA

This is to prevent the loader from “updating” your files the next time it loads (and reversing all of your changes).

Now you want to change the delay. This is, ironically, NOT in the file you have renamed. Open the file BLUEMAGE.LUA in the text editor of your choice (I use NotePad++)

At around line 26 you will see the settings. Change them to match the example below –

+-----------------------------------------------------------------------+
|																		|
| ----------------------------------------------------------------------|
| -- Variables                                                          |
| ----------------------------------------------------------------------|
|																		|
| local bluemage = {};                                                  |
| bluemage.queue = {};                                                  |
| bluemage.delay = 0; -- -- This was 0.65                               |
| bluemage.timer = 0;                                                   |
| bluemage.mem = {};                                                    |
| bluemage.mem.offset1 = 0;                                             |
| bluemage.mem.offset2 = 0;                                             |
+-----------------------------------------------------------------------+

I have removed the original comments for the sake of clarity.

The last thing you need to do is update the Default.txt script that loads the plug-ins and add-ons as shown below –

This is to load the renamed file, not the original, which should no longer exist. Once this is done you can re-load the add-on (or re-start) and it should swap spells almost instantly.

The Final Check List

You should have –

  1. Built a spell list with a “dummy” first spell that will be replaced on the fly
  2. Built macros for every spell you want to cast
  3. Built a script for each spell that loads the spell then casts it
  4. Edited the add-on to remove the load delay
  5. Edited the default.txt file to reflect the renamed add-on.

If you can tick all of the above you should have a BLU or /BLU that is the envy of others. Good luck and happy hunting.

D’Hoffryn

Sept 2023