Blowtorch (Mobile MUDding) Scripts (and also Q+A)
I know there's not a -lot- of people that use this particular client, but I know there's a handful out there (though most of what I know is from my stint in Aetolia, idk how viable this is for Imperian), and since this is what I use for connecting, I thought I'd share the things I've learned about the weirdness that is the Blowtorch scripting language, which is like the Harry Potter of the Dursley scripting family. (Only without all the magic and cool stuff. So a muggle harry Potter.)
I'll put in little script bits that are Verified to work* and also script bits that probably -should- work, on the off chance that someone can point out where I'm being a total Derpina.
Most of this stuff uses Bard things, but the ideas are relatively interchangable. if you have a class you want to mud on the go with and have questions on how to make it work properly, you can always drop a reply in the thread, and I'll do my best to help you with my somewhat limited knowledge.
These scripts are written in Blowtorch Test Version 7. If you have the version available from Google Play, I am sorry. So, so sorry. Take a peek at the Offsetnull website (link on it's way) and get the test version. not only is it better put together, but these scripts will have extremely limited functionality on the 1.4 version of BT.
I'll try and post these in groups, so that if you know the basic idea of what you want, you can run a search in the forum and get back the answer in a timely manner, without having to scroll through eight billion lines of me essentially talking to myself just to see that you put a $1 in place of Matches[2]. (Which you totally do, and it's really strange, that Matches[2].)
I'm still building the system that I'm pulling these bits from, so if you have a suggestion for a cool thing, please let me know. I love cool things. Anyway, Onward and Upward!
Basics follow. Some of this stuff took me forever to learn, since there's 0 documentation on the commands. It's p'much trial and error.
I'll put in little script bits that are Verified to work* and also script bits that probably -should- work, on the off chance that someone can point out where I'm being a total Derpina.
Most of this stuff uses Bard things, but the ideas are relatively interchangable. if you have a class you want to mud on the go with and have questions on how to make it work properly, you can always drop a reply in the thread, and I'll do my best to help you with my somewhat limited knowledge.
These scripts are written in Blowtorch Test Version 7. If you have the version available from Google Play, I am sorry. So, so sorry. Take a peek at the Offsetnull website (link on it's way) and get the test version. not only is it better put together, but these scripts will have extremely limited functionality on the 1.4 version of BT.
I'll try and post these in groups, so that if you know the basic idea of what you want, you can run a search in the forum and get back the answer in a timely manner, without having to scroll through eight billion lines of me essentially talking to myself just to see that you put a $1 in place of Matches[2]. (Which you totally do, and it's really strange, that Matches[2].)
I'm still building the system that I'm pulling these bits from, so if you have a suggestion for a cool thing, please let me know. I love cool things. Anyway, Onward and Upward!
Basics follow. Some of this stuff took me forever to learn, since there's 0 documentation on the commands. It's p'much trial and error.
2
Comments
As a quick and dirty crash course, the test version (here after just 'BT', I like to pretend the other version doesn't exist) is capable of some interesting things. It can trigger notifications, popup (toast) messages, 'bells', and weird aliases that are also variables and triggers that are also scripts. The whole thing is a madscientists' worst nightmare. Aliases are actuall variables, that you can change in the commandline with '.aliasname aliasvalue'. just plug in your alias' name and the value you want (with the leading dot) and it will swap it out.
Alias example:
Lets say I want a target variable. My target variable name will be 'aim' (capitalization matters, and no one wants to lose the time it takes to cap things). Having made the alias 'aim' in the alias portion of the menu, (menu softkey, 'Aliases', 'New', in alias field 'aim', replacewith field 'null', save) I simply type .aim horde to change the variable 'aim' from 'null' to 'horde'. If I wanted to target oystir instead, it would be '.aim oystir'. For this alias, we'd leave '^' and '$' off our main alias (restrictors that force match for only beginning or only ending) since otherwise it won't grab our bashing aliases (For instance, alias '^a$' is replaced with "Sing rubait aim") the ^ and $ around 'a' keep it from keying everytime I use the letter a in emotes or whatever, and the ommision of those charecters cause it to replace 'aim' with 'oystir'.
Aliases can also control your triggers from going off or not too. Lets say we have an autobasher trigger, named "ABASHER". (More on triggers later. Aliases first.) If I wanted to toggle my autobasher on or off, so I don't accidentally hit someone I shouldn't, or quickly pop it off to go make a nice cuppa joe, I can make an alias to do so for me, so I don't have to go through the menu. Lets name the alias 'aoff' to turn it off, and 'aon' to turn it back on again. We'll just use 'aoff' for now, it's basically the same. So in the top field we put 'aoff' and in the bottom field, (that replacewith line) we put: "/EnableTrigger ("ABASHER", false)". It's SUPER important that when you do this, you type it EXACTLY as it's written here. The capitalization of EnableTrigger must be the same, or it won't trigger properly. if you capped your alias (ABASHER) you must cap it in the toggle. basically, everything has to match perfectly, or it won't fire. If we were to turn the trigger back on (for the 'aon' alias) we'd do the same line of code, but just plug in 'true' instead of 'false' after the comma. True is on, False is off. Simple.
Triggers:
Triggers are pretty standard things. They're on the menu list just under aliases. Tap on it, and you'll get two type fields, and then a pair of check boxes, and then a little field with a 'New Action' button. Top line is the name of the trigger (like ABASHER). Second line is your incoming text that triggers the action, like 'You have recovered your mental equilibrium.' and the two check boxes deal with options. The first one, "Interpret as Literal" toggles wildcards on and off, essentially. If this one's checked, it will ONLY match things that are in the trigger line exactly. So if you put (.w) says, "Hi!" as your trigger, it won't work, unless there's someone out there with (.+) as a name. If your triggers dont fire, check for spelling first, and the status of this box second. Trufax. The second box is the "Fire Once" box. If this box is checked, it will only....fire once. This is handy for login triggers, but not handy if you get d/c'd all the time, since the trigger's idea of 'once' is 'once per loading of this connection', not 'once per login'. I rarely if ever use this, but it might be handy on other muds.
The New Action button is where all the cool cats hang out. After you name and define your trigger, tap New Action, and select the thing you want from the list. Most of these are self explanatory, like gag and color, etc. ACK is BT-speak for 'send x message as if typed in command line' and 'Toast' is that funny popup message. For now we're going to focus on 'ACK'. Lets work on our ABASHER trigger some more. Assuming you've collected all the dragonballs up to this point, you should have the name, and the trigger string filled in (either eq regain or bal regain, depending on your proffession), so now all you need is an action. Leave the Literal box checked, and Fire Once UNchecked. Tap New Action, select Ack With. In the new screen, fill out the field with 'attack &tar' (or whatever your targeting alias is. I suggest &tar because I use serverside targeting, since I can use a set of triggers to do target calling this way. I'll post the actual steps for that later.) Tap 'Done' until you're back to your regular screen. TADA! your alias will now fire any time you have EQ or BAL, depending on the message you plugged in. We don't want it to fire all the time, so put in that alias for 'aoff' and 'aon' too, that's described above.
Triggers have a lot more you can do, and we'll get into some of that next.
Thanks for posting this btw. I occasionally blowtorch from work, so this will be very useful
One annoying thing, which may have more to do with the stupid SwiftKey keyboard I'm using is that it tends to capitalize every word in this version of blowtorch. This makes talking almost impossible
Triggers are also used to gag, colorize, run scripts, and do other useful things. Scripts are functions, just like in Mudlet and other LUA programs, with a few changes. The biggest one of these is the Matches[2] thing. Matches[2] is used in Mudlet as a wildcard placeholder in your responding script. It's a variable that's defined by the wildcards in your triggering line. Let's say we want to make a trigge that will go off when you get a tell, but you want it to go off -every- tell you get, not just ones from a particular person. Instead of having the biggest repository of triggers on the planet, we'll just plug in a wildcard.
Example tell-notification trigger with wildcards:
[Spoiler]
So for Impy, the triggering line is something like "Betsy tells you, "Hi!"". By popping in a wildcard instead of Betsy, it will match for every tell you recieve. The wildcard we'll use for this trigger will be "(.+)". make sure you put the leading dot before the plus sign, and wrap it in parentheses, or it won't register. This particular wildcard (as opposed to (.d) or (.w)) will match any word or set of words. So if an NPC sends you a tell (or imperian does that weird thing where it sends you the title of the person with the incoming tell), it will still fire. We need to put a variable for the message sent too, -or- you can leave it off of your triggering string. I usually just leave it off, since we're not going to use the actual tell for anything anyway. So make your trigger, title it whatever you want, and then plug this in for your trigger string:
(.+) tells you\,
But wait! What's that back-slash doing in there!?
Backslashes tell Blowtorch to ignore the following punctuation. Sometimes it won't run the trigger properly if your punctuation isn't flagged, and particularly when you start messing with channels. all the punctuation in ringtells, for instance, confuse the beejezus out of BT, and it doesn't like that. At all. So remember that backslash.
For your 'New Action', select "Toast" from your menu. It'll give you an option to put in a message that will show in a small, auto-clearing message, along with a little box for how many seconds that box should be shown. 2seconds is the default. For toasts, thats' a pretty long time, but play with that number and find what works for you, for that trigger. In the toast message box, put this:
$1 has sent you a tell.
The "$1" replaces the Matches[2] of mudlet. When this trigger fires, (with our example tell, for instance) it will give you a toast message, that will say "Betsy has sent you a tell.".
[/spoiler]
This set up is very important, since it's the basis of the listening script, and the calling script. and....pretty much everything else that requires a wildcard to make it come out right. Knowing this bit of info, though, will make creating triggers a breeze. just remember your three wildcards, (.+) for phrases, (.d) for digits, and (.w) for single words. Backslash (\) for 'ignore this next bit of punctuation' and $(insertnumber) for your variable. If you have more than one variable, like in a target calling script, the wildcards go in order. If you want to use the second variable in your ack string (or whatever action) you'd just use $2. or $3 for the third, etc.