Svof |release| documentation ============================ Contents -------- * :ref:`genindex` * :ref:`search` Basics of the system -------------------- What is this system? ~~~~~~~~~~~~~~~~~~~~ This system is what was previously called Svo, which is no longer available. Svof is the free, open-source and community-supported version of Svo. Installing ~~~~~~~~~~ To install the system, make sure GMCP is enabled (Mudlet settings), and that you're connected to server **achaea.com** and port **23**, and logged in -- then use the **vinstall** command. This'll have the system run auto-configuration first - where it'll detect and enable skills that you have. After that, it'll ask you preference questions about the basic and essential options. Feel free to take your time to ask someone else as to what should you set an option to (like for sipping health). The installation otherwise is fairly painless - and you can always change any option you'd like later with the same command. After you've finished the installation, it's best to *vsave* and restart Mudlet so the system is loaded fresh with all the settings. Enjoy! :note: It is best not to do *CONFIG SCREENREADER ON* in the game - that will mess up Svof's tracking of prompt flags. Using the system ~~~~~~~~~~~~~~~~ The system cures any ailments you get for you automatically - nothing needs to be turned on. Of course, the system won't cure if it's paused, but while it is, it'll still track all afflictions. :note: you want to use the **dv** alias to have the system diagnose and **df** to check your defences. This will have the system both recognize the output, and also has the feature of the aliases being usable at any time - the system will do the action asap for you. To pause or unpause the system, you can use the **pp** alias - using it alone will act as a toggle, but you can also do *pp on* and *pp off*. You no longer need to pause the system to sit or sleep, the system lets you do that To enable anti-illusion in the system, you can do **tn ai** or **tn anti-illusion**. When you no longer need it, you can do **tf ai** (having anti-illusion on means the system will at times will do checks on afflictions before curing them; this is slower than just curing them right away). If you're lagging a lot, and the system is double-doing actions because of that and etc, you can set the *vconfig lag #* option to help alleviate that. Do set it back to 0 when you're alright, though. You can also view what options have you currently set with *vconfig* and *vconfig2* aliases. To get a better grasp of the system, I'd recommend that you participate in some combat arena events - free-for-alls, wargames, etc - so you'll have a little bit better idea of what to do when a real fight comes. You should also read up on the aeon/retardation curing and practice with the two modes of it in the arena - since it's something new and you'll want to at least have a basic idea of what's going on. Make sure you don't do *config prompt none*, because the system does need to see your prompt stats! That's about it! Do make sure that you have all the curatives necessary on you and you should be just fine. Take time to look through the available options and aliases as well to acquaint yourself with the system. Differences to know if coming from vadi-m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Don't use Vadi Mapper anymore - the mudbot proxy isn't supported with Svof. Instead, use Mudlets Mapper - which is what I work on now. It doesn't have the community map making (and the free, often updated maps that magically came from out of nowhere), but that'll happen soon - plus it has awesome 3D and 2D viewing modes, allows for zooming, and has a ton of other features. For some people, it walks faster as well, and it doesn't cause a spam of blank lines like the Vadi Mapper does. Besides, you'll come to love it: (Mudlet Clan): Mosr says, "I thought that I couldn't live without the mudbot mapper, but this tops it." ''ts'' has been changed to be a toggle for keepup, instead of a shield once asap measure. This means you'll want to ''ts'' again when you're doing alright. ''fl'' now has been upgraded to allow a command after it - like *fl write manuscript page 1* will write in the manuscript after it gets to full stats. This is also scriptable, you can have it execute your own function after it's done. Svof is built into the client, so to interact with it, you'd use direct functions now, instead of ''send()'' as before: :: -- to pause: send("pp on") -- now becomes: svo.app("on") -- to use do: send("do kick rat") -- now becomes: svo.doadd("kick rat") -- to enable keepup svo.tntf_set("keepup", "on", true) -- to disable keepup svo.tntf_set("keepup", "off", true) Unlike with vadi-m, it ''is'' possible for other scripts to interfere with Svof (whereas only enabling GMCP or MXP interfered with vadi-m - that is not the case here, it's fine now). Svof is much more customizable and flexible and that power leaves lots of room for messing up, unfortunately. Don't forget that you can now ignore afflictions, add/delete vconfig options, change balance states and etc. Timestamp/XP in the prompt ^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is no longer a separate option, but part of a bigger and a better feature - :ref:`custom prompts`. Here's a custom prompt which replicates the game's prompt exactly, but adds a timestamp: :: vconfig customprompt ^1@healthh, ^2@manam, ^5@endurancee, ^4@willpowerw ^W@eqbal@defs- @timestamp To add your xp, you can use this - and of course you can re-arrange the tags as you'd like: :: vconfig customprompt ^1@healthh, ^2@manam, ^5@endurancee, ^4@willpowerw ^W@eqbal@defs @%xp- @timestamp :note: Mudlet does have timestamps built-in that you can enable to show by pressing the blue (i) button bottom-right. This goes back in time as well, so you don't have to always keep it on. Using defences ~~~~~~~~~~~~~~ The system organizes defences around defence modes, in which you can have it put up different defences. The process of putting them up is also in two stages: *defup* and *keepup*. When you first switch to a defence mode using *vdefs *, defup will put up all of the defences that are on its list. Remember that you can tell defup to put up different defences in different modes - that is the difference in modes. After defup is done, the system will say *Ready for combat!*, and defup will be done - it'll care no more about your defences. Instead, keepup takes over. Keepups job, as the name implies, is to make sure its defences always stay up - if one goes down for any reason, it'll put it back up. Keepup can also be disabled or enabled for convenience with *tf keepup*, *tn keepup*. To add/remove defences to defup or keepup, you can use *vdefup * and *vkeep * - or just click on the defences in the lists if you're using an updated version of Mudlet. You can also create new defence modes with *vcreate defmode *. To view your current defup list, you can use **vshow defup**, and to view your current keepup list, **vshow keepup**. A green X by a defence means that it's on enabled, a deep blue m by a defence means that it's enabled, and the defence also has a small mana drain. A bright M by a defence means that it's enabled and has a large mana drain. When you QQ, the system will automatically go into the *empty* defences mode - so precache doesn't take herbs back out that it puts away. When you log in, the system is in the *basic* defences mode - and so whatever you have on basic keepup will get put up right away. :note: for metamorphs, Svof will ignore defences that it can't put up due to the low morph skill and complete defup without them. :tip: if you'd like to cancel defup, you can do *vdefs cancel* to stop it. However, if you have something on keepup, keepup will then get it's defences up - so for an emergency altogether, see below. :tip: if you'd like to stop keepup or defup from redeffing your defences all of a sudden, you can switch to the *empty* defences mode - *vdefs empty*! (provided you don't fill the empty defence mode with any defences) :tip: for Occultists, the system will detect heartstone and simulacrum for you - making it safe to put it on defup/keepup. :note: to set your Dragon breath type, summon it once manually - and the system will remember. Adjusting defence menus ^^^^^^^^^^^^^^^^^^^^^^^ If you'd like to hide certain defences or groups from showing in the (huge) list, use the *vshow hidelist* alias and click on - or + beside defences, or even entire skillsets, to hide or show them. Blocking ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Svof has a very useful feature of 'block keepup' - using this, you can ask it to block a direction for you and it will reliably keep blocking: even if you move, or you get knocked off your horse (if you're blocking via Riding), or anything else. To use this, do **block ** or **b **. To stop blocking, use **unblock** or **ub**. Since the blocking is smart and won't spam blocking on an exit that isn't in the room, this means that you can also use it to **pre-block** - ask it to block a direction, move in, and it'll block for you ASAP. Should you have a better ping than a potential beckoner with a trigger on alertness, you'll win! You can also disable the block keepup feature if you'd like to use the plain blocking instead - **vignore block** will do it. Riding ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Svof handles automatic mounting/vaulting for you. Firstly, it needs to know what skill and mount do you want to use - so mount or vault your steed manually, and it'll remember (ie "vault horse1324"). Then you can toggle 'va', or do 'va on', 'va off' to get up or down the horse. If you get knocked off the horse, Svof will automatically remount for you if va is on. If you'd like Svof not to deal with riding for you at all, you can do *vignore riding*. Selfishness ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Keepup works in a special manner with selfishness - if it's off keepup, keepup will then do generosity for you. This allows you to use *vkeep selfishness* or *sl* to toggle selfishness - and if you have selfishness on while it's stripped from you, the system will automatically put it back up for you (note that you do not see generosity being done in blackout, so you could be forced to do it then). You can also use *sl on* and *sl off* to bypass the toggle. If you'd like to disable this behavior, do *vignore selfishness*. Lifevision & Shroud ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Lifevision is included in the system! If you have it as a skill (lifevision, clarity or astralvision) - then you can vdefup or vkeep it. The system will then subsequently when lifevision detects an illusion and will ignore it as such. If you have the lifevision artefact, then the system will realize that fact and enable it for defences as well. Though if yours is customized, then it won't realize that - you can turn it on with *vconfig havelifevision*. The same goes with shrouding - if you've got yours as an artefact, it will automatically detect it. If yours is customized, that's not a problem, you can enable it with *vconfig haveshroud*. Anti-illusion ~~~~~~~~~~~~~ Svof's anti-illusion is disabled by default, but is easily enabled with *tn a* or *tn anti-illusion*. You *must* enable anti-illusion when fighting anyone that can illusion - Serpents, Magi, Puppetry users, Dragons or people with the Staff of Illusion. Against serpents, you also ought to enable *sbites* and *stabs* - but read up on the *ignoresinglebites* option to know how that works, because that has it's own pitfalls. To check whenever anti-illusion is on or off, look at *vshow*. Anti-illusion has been getting modernized in recent updates, and will be more transparent about which illusions and catches and why - by including a non-intrusive, subtle yet visible blue (i) besides illusions. Hovering your mouse over it will give the reason as to why Svof ignored that illusion. The AI is always improved and expanded upon - so if you notice an instance where it failed to do it's job, or could've done better - please provide feedback! You can also customize anti-illusion - check the :ref:`customizing-anti-illusion` section. Using the *do / dofree* system ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The system includes a very nice feature to assist you in everyday tasks - the *do* queue. It allows you to queue actions (that take balance or equilibrium to do) to be done as soon as possible. Using it is simple, the syntax is - ``do ``. If you already have both balance and equilibrium, then the system will do your action at once - otherwise, it'll do it as soon as you regain both balance and equilibrium. If you ask it to do multiple actions, then it'll do them properly, one action per balance/eq regain. For example, if you'd like to do one thing after another, such as sketching runes on a person - you can just replace *send()* with :func:`svo.doadd` in your alias and they will be done properly one after another! :: svo.doadd("sketch rune A on "..matches[2]) svo.doadd("sketch rune B on "..matches[2]) svo.doadd("sketch rune C on "..matches[2]) If you'd like the system to do multiple actions _per_ one balance/eq regain - for example, your bashing attacks uses two arms instead of one balance - then you can use the **$** sign to separate commands - ie, ``do swing rat$swing rat`` will swing the rat twice at once. Or use it in an alias with your target: :: svo.dor("ucp "..target.."$ucp "..target.."$sdk "..target) The really useful feature of do is the `dor` alias. It allows you to repeat an action indefinitely - does it on every balance/eq regain. To use it, you can use *dor * to start it, and *dor* or *dor off* to disable it. For example, *dor kick rat* will kick the rat forever! This, as you might've noticed, is useful in bashing and an example **F2** keybinding is provided to show how to make use of it. You are responsible for using it, though - don't do anything that is against the rules of Achaea. Note that you can also use your own aliases as actions - ie if your bashing alias is **dd**, then **dor dd** will work. Other aliases provided with do are *dofirst*, *undo*, *undoall*, and *vshow do*. Along with *do*, a *dofree* system is also provided - it's for actions that require balance/equilibrium, but don't take it. Aliases for it are similar - *dofree*, *dofreefirst/dff*, *undofree* and *undoallfree*. You can use the *dop*, *dop on* and *dop off* to pause do/dofree, while not affecting the whole system. Bashing triggers ~~~~~~~~~~~~~~~~ Svof comes with a ton of bashing triggers that are contributed by Drazik, Kard, Searnla, and many others. To enable them - do *tn bashing*, to check if you have them on - *vshow*, and to disable them, *tf bashing*. Ignoring curing things ~~~~~~~~~~~~~~~~~~~~~~ *Svof* has a feature that allows you to ignore curing afflictions - this can come in handy handy in many situations; such as ignoring clumsiness for testing, ignoring an affliction that you get frequently while bashing but don't want to waste curatives on, or pausing curing a certain affliction to avoid a killing strat getting pulled of on you. To view a list of all things you can ignore, you can use the ``vshow ignorelist`` alias. Warning, the list is big! While some afflictions are self-explanatory, some names require a bit of explanation: * lovers - lust. Requires rejecting the person(s) to cure. * crippled - requires one mending application to cure. * mangled - requires a restoration and a mending application to cure. * mutilated - requires two restorations and a mending application to cure. To ignore an affliction, you can do ``vignore ``. It acts as a toggle - so doing it again will remove it from the list. Lastly, you can use ``vshow ignore`` to view all items you've set to ignore (or check the ``svo.ignore`` table via script, and use :func:`svo.setignore` and :func:`svo.unsetignore` to set/unset). You can also remove items from ignore right on the menu by clicking the 'remove' button besides them. .. image:: images/vshow-ignore.png :align: center Serverside ~~~~~~~~~~ Serverside curing is now built-in to Svof! To enable it, just do **tn serverside** - and everything will just work. Svof will use serverside for curing/defences by changing in-game priorities for you, adjust CURING config options to be the same as Svof's, augment serverside curing by predicting reckless, and so on. Essentially by doing **tn serverside**, everything is still the same (and thus any of your priority customisations, Svof toggle aliases, etc still work) - just serverside will be used for doing actions wherever possible. Note that serverside curing has a built-in delay, so if your connection is faster than that, you would be better off using Svof's curing. Likewise, if your connection is slow or drops out, enabling serverside would be a good idea. The benefits of using Svof for your serverside curing are many - easy to configure priorities and keepup, including separate priority lists (limitless, unlike curingset), which are also exportable and shareable, easy affliction toggles like pva, use of class skills for curing (dragonflex, shrugging, rage, priest Healing, ...), affliction prediction, handling of unknown and mental unknown afflictions, use of class skills for defup/keepup (ie shin/kaido deaf/blind), many defences that serverside doesn't handle - such as selfishness, stances, morphs, riding. Svof also implements and makes defup work for serverside, something that serverside lacks as it only has keepup. Svof also allows you to fine-tune what you'd like to be done by serverside and what you'd like to be done by Svof using **vshow server**. This can be useful for defences - where serverside doesn't do batching, writhing - where serverside doesn't stack it, selfishness - serverside doesn't do generosity, lovers - serverside doesn't autoreject, and so on. .. image:: images/vshow-server.png :align: center Differences to be aware of ^^^^^^^^^^^^^^^^^^^^^^^^^^ Be aware that if you are missing a curative, unlike Svof, serverside will not make you aware of it and just won't do anything instead. Serverside does not support mixed curatives - it can only use concoctions or transmutation for herbs, pipes at a time. In curing, unlike Svof which only does an action if it is possible, serverside will try to put up defences if they aren't possible (ie, you're paralysed). This means that you need to have your blocking afflictions be above things they block in priorities. In Svof, you can have them lower, Svof just won't do them if they're not possible at the time. Thirdeye isn't supported by serverside - if you'd like to be used, use 'vshow server' to ask Svof to put it up using the skill, instead of having serverside use echinacea. Priority handling ^^^^^^^^^^^^^^^^^ Svof automatically adjusts priorities on serverside for you, depending on what they are in the system - and does it efficiently and quickly, by only adjusting the changed priorities (so the delta) and using batching when changing them. The system also makes use of **2** curingsets - **normal** and **slowcuring**. These do not correspond to your defence modes, but instead to the normal and slowcuring (aeon/retardation) priorities - the idea is that when you enter aeon or retardation, all of your priorities can be switched over instantly with a single command for fast curing without the burden of changing many priorities that'll slow you down. Since the system also allows you many defence modes, you are not restricted to just 3 priority lists that serverside provides but can add any new ones for free. tn/tf affs ^^^^^^^^^^ tn/tf affs now has been removed and is replaced completely by tn/tf serverside. If you've previously used that and customised the serverside defence and affliction priorities directly, you can now go back to using Svof's menus for customisation, Additionally, afflictions are no longer ignored on **vshow** - if you ignore an affliction with serverside on, it will ignore it for curing on serverside as well. .. image:: images/serverside-ignore.png :align: center Pipes ~~~~~ Svof automatically auto-assigns herbs to pipes for you from checking 'plist' and will auto-refill and auto-relight them for you. Svof now also has support for secondary pipes, allowing you to have 6 pipes with a backup one for each herb - just check 'plist' and Svof will again auto-assign all pipes for you, keep them refilled and lit. The advantage of having a backup pipe is similar to precache - when a pipe goes out and you can't refill it, you can still smoke your backup. Lust ~~~~ Svof by default is in *vconfig autoreject whitelist* mode - which means that any name not on its whitelist will be automatically rejected when they lust you, or you check *allies*. To add/remove names on the lustlist, do *vconfig lustlist *. You can also set it to the blacklist mode - where it will reject names *only* on the lustlist. You can do that with *vconfig autoreject blacklist*. Hoisting ~~~~ Svof by default is in *vconfig autowrithe whitelist* mode - which means that any name not on its whitelist will be writhed against when they hoist you. To add/remove names on the hoistlist, do *vconfig hoistlist *. You can also set it to the blacklist mode - where it will *only* writhe against names on the hoistlist. You can do that with *vconfig autowrithe blacklist*. .. _on-affliction-locks: Affliction locks ~~~~~~~~~~~~~~~~ The system has features to both warn you when you become locked via certain afflictions, and cure the said locks - either usage of the fitness, eating a kelp in your inventory, focusing or using the tree tattoo. To enable fitness lock curing, you do **vconfig fitness yep**, and to enable focus curing, **vconfig focus yep**. Warnings are done automatically for you on the prompt, and are specially coloured so they don't get in your face too much but are still clearly visible. They're appended after the prompt, before the commands are shown, so they're static in the position as well and don't jump around. ========== ================================= ================== Lock name Cure Afflictions needed ========== ================================= ================== soft focus, fitness, tree affs.slickness and affs.anorexia and affs.asthma venom focus, fitness affs.slickness and affs.anorexia and affs.asthma and affs.paralysis) hard fitness, tree affs.slickness and affs.anorexia and affs.asthma and affs.impatience) rift eat kelp or bloodroot, fitness asthma, slickness or an empty valerian pipe and both arms damaged rift 2 eat kelp or bloodroot asthma, slickness, paralysis or disrupt and both arms damaged slow eat kelp or bloodroot, fitness asthma, slickness, both arms damaged, concussion and aeon true (none) slickness, anorexia, asthma, paralysis, impatience, disrupt, confusion stain (restore, dragonheal) stain, slickness, empty valerian/realgar pipe and broken arms ========== ================================= ================== Note that passive curing is not included here, and weariness prevents fitness. Retardation curing ~~~~~~~~~~~~~~~~~~ One of the most powerful features of **Svof** is complete retardation curing. By that, it is implied that the system can do everything - cure (apply salves, outr if necessary and eat herbs, smoke, drink, writhe), keepup defences and etc while in aeon or retardation. First two of course have been prioritized to be cured as soon as possible. Now, there is the problem of you doing stuff while in aeon/retardation - anything you do would disrupt the previous command, and if the system is, for example, trying to cure you - commands will be getting in the way and it'll have to keep restarting and etc. Sometimes you can do a command accidentally, when you didn't even mean to disrupt anything, or sometimes you *want* to override what the system is doing - for example, curing you while all you really want to do is tumble away. That's why the system offers two modes for aeon/retardation curing. First one is where if the system is trying to do something, and you (or your scripts) do something as well, it will *deny* that command - so that it does not get sent, and does not disrupt what the system is doing. The second mode is where your commands will *override* what the system is doing - so it will let your commands through, and resume doing stuff after they go through. The option to change this is *vconfig blockcommands* - and a shortcut alias of **tsc** is also provided to toggle this quickly in combat. By default, the systems *vconfig autotsc* option will work the *tsc* option for you in the most obvious way - when you get hit with aeon, it will turn tsc on - thus blocking your commands while the system is curing aeon. When you end up in a room with retardation, it will turn tsc off - thus allowing you to override the systems curing commands. :note: while in aeon or retardation curing, the system will prefix an (a) to the prompt. It's just a subtle way to let you know of the situation you're in. Additionally, the a will be red if the system is currently doing something, or will be green if you're currently overriding the system, or will be blue if neither you nor the system are doing anything. The (a) is clickable; clicking on it will show you a list of priorities the system was considering or the action it was doing at that time. Note that there is a limit on links in Mudlet, so really old ones won't work properly. :tip: you can always create aliases with different names for system aliases that you find hard to remember and just copy/paste the script they do. If you want to send a command bypassing the system's command over-ride and/or deny features, and you really know what you are doing, you can enable *svo.conf.send_bypass* before your send()'s and disable it after - like so: :: svo.conf.send_bypass = true send("something that won't trigger denying, nor will it have the system wait for this to finish either") svo.conf.send_bypass = nil This will not trigger the retardation having disappeared auto-detection either. :note: the system will stop gagging your breathing in retardation, so you can exactly see everything that is happening and not be confused by gagged stuff. Herb precaching ~~~~~~~~~~~~~~~ Another great feature **Svof** offers you is herb precaching - keeping a certain amount of a herb out in your inventory at all times. This is very useful for many reasons - firstly, Svof will then be able to eat the herb and then outr it when necessary instead of outr and eat, and this'll shave off about half of your ping time off you curing an aff. Svof won't have to outr the herb and be able to eat it right away if you already have it in aeon/retardation as well - nor will you be affected by riftlocks if you have kelp out. Regarding the quicker curing, the speedup can be quite significant if you're on a poor ping because of how the games processing of commands works - in simple terms, the first command will take about your ping time (the N: number) to go through, and the second one will take 2 ping times. So if the first command is outr, because you don't have the herb out already, the eat gets delayed. Here's a graphical example: .. image:: images/precache-savings.png :align: center As you see, on a ping of 250ms (a quarter of a second), not having ginseng out makes curing the affliction take half a second. Having the ginseng out already cuts it down to a quarter of a second! To setup herb precaching, do **vshowp**. Click on the + besides a herb to increase the amount, - to decrease. Herb precaching preferences are also specific to a defence mode - so you can have some on precache in your combat mode, and less or none in your bashing or normal. :tip: if you'd like to stop precaching, you can switch to the *empty* defences mode - *vdefs empty*! (provided you don't fill the empty defence mode with any herbs) Transmute ~~~~~~~~~ Svof has pretty thorough support for the Kaido Transmute skill - you can have the system supplement your normal curing with transmute use, or rely just on transmute to keep you alive. To set it up, firstly set the *transmuteamount* option to the % below which you'll be using transmute - for example, **vconfig transmuteamount 80** will have you use transmute below 80% health. Next, setup *how* you'd like Svof to use transmute for you. The possibilities are: * vconfig transmute replaceall - transmute only, no sipping or eating moss. Good for bashing if you sip for more mana than health. * vconfig transmute replacehealth - don't sip health, but do use moss and transmute as necessary. * vconfig transmute supplement - top up your health with transmute after sipping / eating moss. * vconfig transmute none - don't make use of transmute at all. That's all to it then, select one of the options with **vconfig transmute