<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flexiblesurvival.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anden</id>
	<title>Flexible Survival - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flexiblesurvival.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anden"/>
	<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/w/Special:Contributions/Anden"/>
	<updated>2026-06-28T22:19:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=310992</id>
		<title>Tintin</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=310992"/>
		<updated>2015-08-25T21:09:09Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For anyone who wishes to use TinTin++ here are a few handy Flexible Survival scripts and accompanying python scripts which you can use (or cut and paste out of) that I&#039;ve written and refined over the past few years.&lt;br /&gt;
&lt;br /&gt;
The commands that follow should be copied into their own files in a folder of your choosing. My scripts are in a folder called tt in my home directory. I then use tmux to split my window into four sections:&lt;br /&gt;
Top left is input and everything coming from the mud.&lt;br /&gt;
Top right is all players, pets, enemies and enemy pet health (updated by parsing fprompt).&lt;br /&gt;
Bottom left is all chat-related stuff.&lt;br /&gt;
Bottom right is powers used (with damage), XP collected, tokens and salvage gathered, daily mission completion status and other misc battle-related stuff.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what it looks like when it&#039;s running:&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have a bash script (anwen_mud.sh) that starts tmux and configures the four sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cd ~/tt&lt;br /&gt;
&lt;br /&gt;
tmux -2 new-session -d -s &#039;mud&#039;&lt;br /&gt;
&lt;br /&gt;
tmux new-window -t &#039;mud&#039;:1 -n &#039;mud&#039;&lt;br /&gt;
tmux split-window -h -p 26&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux send-keys &amp;quot;tt++ anwen_start&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 1&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_hp 2&amp;gt;/dev/null&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux split-window -v&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_chatlog&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 2&lt;br /&gt;
tmux split-window -v&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_stats&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux -2 attach-session -t &#039;mud&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generic connection script, note that this is linux based so the log file location needs to be changed if you&#039;re using WinTin in linux I save it with the name &#039;charname_start&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Python stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#run py python&lt;br /&gt;
#py import fs_python as fs&lt;br /&gt;
&lt;br /&gt;
#py fs.config.player = &amp;quot;CHARNAME&amp;quot;&lt;br /&gt;
#py print(fs.config.player)&lt;br /&gt;
#py fs.read_vars()&lt;br /&gt;
#py import time&lt;br /&gt;
&lt;br /&gt;
#action {tintin (%1) %2} {#%1 %2}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {End of python stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#alias {start_fs} {#session fs flexiblesurvival.com 2000}&lt;br /&gt;
start_fs&lt;br /&gt;
&lt;br /&gt;
#split&lt;br /&gt;
&lt;br /&gt;
#act {Welcome to Flexible Survival:}&lt;br /&gt;
{&lt;br /&gt;
    #unticker {reconnect};&lt;br /&gt;
    #send connect CHARNAME YOUR PASSWORD;&lt;br /&gt;
    #var connected 1;&lt;br /&gt;
    #read anwen_scripts&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next are those functions and values unique to my characters that override those in the scripts_all file that follows this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#var playername Anwen&lt;br /&gt;
#highlight {Anwen} {light magenta}&lt;br /&gt;
#highlight {anwen} {light magenta}&lt;br /&gt;
&lt;br /&gt;
#var hp_log anwen_hp&lt;br /&gt;
#var stats_log anwen_stats&lt;br /&gt;
#var chat_log anwen_chatlog&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Here we setup default variable values}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#var messages 1&lt;br /&gt;
#var boton 0&lt;br /&gt;
#var bat 0&lt;br /&gt;
#var continue 0&lt;br /&gt;
#var ambushed 0&lt;br /&gt;
#var party_invite_status 1&lt;br /&gt;
#var party_invite_status_text Trusted&lt;br /&gt;
#var hptop 90&lt;br /&gt;
#var entop 90&lt;br /&gt;
#var submit 15&lt;br /&gt;
#var beeps 0&lt;br /&gt;
#var daily_status 0&lt;br /&gt;
#var current_location None&lt;br /&gt;
#var fallen 0&lt;br /&gt;
#var targeting 0&lt;br /&gt;
#var target_mode 0&lt;br /&gt;
#var enemy_list None&lt;br /&gt;
#var player_list None&lt;br /&gt;
#var down None&lt;br /&gt;
#var once_command nop&lt;br /&gt;
#var bound 0&lt;br /&gt;
#var load 0&lt;br /&gt;
#var completion&lt;br /&gt;
#var reward_lvl&lt;br /&gt;
#var alu_ic 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#alias {^dailys %5} {&lt;br /&gt;
    #send ooc Anwen !daily %5;&lt;br /&gt;
    #send ooc Hope !daily %5;&lt;br /&gt;
    #send ooc Aluthal !mission %5;&lt;br /&gt;
    #send ooc Skade !daily %5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#alias {^pets} {use bump;use grind;use Totemic deer}&lt;br /&gt;
#alias {^buff} {#send ooc Aluthal !buff}&lt;br /&gt;
&lt;br /&gt;
#nop Read in scripts_all first then overwrite standard functions with those that follow.&lt;br /&gt;
#read scripts_all&lt;br /&gt;
&lt;br /&gt;
#nop CUSTOM STUFF FOLLOWS&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Redirects to chat_log}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^[{The Red Court|the red court}] %5$} {&lt;br /&gt;
    #line log {$chat_log}&lt;br /&gt;
} {2}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {sexytimes triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {misc game and partying triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {battle and ooc game triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {fighty time triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#act {^Aluthal goes [IC] In-Character.} {#var alu_ic 1}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;Random Encounter&amp;gt; $playername is ambushed!} {&lt;br /&gt;
    #showme AMBUSHED;&lt;br /&gt;
    #var ambushed 1;&lt;br /&gt;
    #showme BATTLE STARTED;&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #var alu_ic 0;&lt;br /&gt;
    #delay {ambushed} {#var ambushed 0} {60};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;started&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&lt;br /&gt;
    #var hpnow %6; #var hpmax %7;&lt;br /&gt;
    #var ennow %10; #var enmax %11;&lt;br /&gt;
    #math {hpper} {($hpnow/$hpmax) * 100.00};&lt;br /&gt;
    #math {enper} {($ennow/$enmax) * 100.00};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #if {$bat == 0} {&lt;br /&gt;
            #nop {#showme {NOT IN BATTLE}};&lt;br /&gt;
            #if {$hpper &amp;gt;= $hptop &amp;amp;&amp;amp; $enper &amp;gt;= $entop &amp;amp;&amp;amp; $ambushed == 0 &amp;amp;&amp;amp; $alu_ic == 1} {&lt;br /&gt;
                #undelay {search_time};&lt;br /&gt;
                #delay {search_time} {#send search} {10}&lt;br /&gt;
            };&lt;br /&gt;
            #else {&lt;br /&gt;
                #undelay {waiting};&lt;br /&gt;
                #delay {waiting} {#send mprompt} {10}&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #if {$hpper &amp;lt;= $submit} {&lt;br /&gt;
                #var alu_ic 1;&lt;br /&gt;
                #send submit $targeting&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #if {$hpper &amp;lt; 100 || $enper &amp;lt; 100} {&lt;br /&gt;
        #showme STATUS: $hitpoints $energypoints $hpper $enper&lt;br /&gt;
    };&lt;br /&gt;
    time&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Dump battle damage to stats_log.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Auto targeting}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Status stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last is a series of aliases, actions and other functions that are common to all of my characters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config {packet patch} {0.5};    #nop {Fixes rendering issues}&lt;br /&gt;
#message variable off&lt;br /&gt;
&lt;br /&gt;
#gag nop&lt;br /&gt;
#TICKER {keepalive} {#send nop; time; #send mprompt} {60}&lt;br /&gt;
&lt;br /&gt;
#send {pose #prepend &amp;lt;ic&amp;gt;}&lt;br /&gt;
#send {spoof #show}&lt;br /&gt;
#send {tick on}&lt;br /&gt;
#send {botmode off}&lt;br /&gt;
#format {bot_status} {%cBOT%c} {light green} {white}&lt;br /&gt;
&lt;br /&gt;
#alias {^fp} {#send look}&lt;br /&gt;
#alias {^moff} {#var messages 0}&lt;br /&gt;
#alias {^mon} {#var messages 1}&lt;br /&gt;
#alias {^once %5} {#var once_command %5}&lt;br /&gt;
#alias {^gt %1} {#showme gothere %1}&lt;br /&gt;
#alias {^back} {#var bound 1; #py fs.edit_descrip(&amp;quot;home&amp;quot;)}&lt;br /&gt;
#alias {^tied} {#var bound 1; #py fs.edit_descrip(&amp;quot;tied&amp;quot;)}&lt;br /&gt;
#alias {^away} {#var bound 0; #py fs.edit_descrip(&amp;quot;away&amp;quot;)}&lt;br /&gt;
#alias {^fucked} {#py fs.secret($playername, &amp;quot;all&amp;quot;)}&lt;br /&gt;
#alias {^add %5} {#py fs.party_list(&amp;quot;add&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
#alias {^del %5} {#py fs.party_list(&amp;quot;del&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
#alias {^party_check} {#py fs.party_list(&amp;quot;check&amp;quot;, &amp;quot;None&amp;quot;)}&lt;br /&gt;
#alias {^daily?} {#py fs.daily_timer(); #var completion {}; #var reward_lvl {}}&lt;br /&gt;
#alias {^stat on} {#ticker {stats} {#send mprompt} {10}}&lt;br /&gt;
#alias {^stat off} {#unticker {stats}}&lt;br /&gt;
#alias {^pyes} {#var party_invite_status 2; #var party_invite_status_text Open}&lt;br /&gt;
#alias {^pno} {#var party_invite_status 0; #var party_invite_status_text Closed}&lt;br /&gt;
#alias {^ptrust} {#var party_invite_status 1; ; #var party_invite_status_text Trusted}&lt;br /&gt;
#alias {^beeps} {#var beeps 1}&lt;br /&gt;
#alias {^quiet} {#var beeps 0}&lt;br /&gt;
#alias {^pmentor %5} {partymentor %5}&lt;br /&gt;
#alias {^diff %5} {#send web #difficultyLevel %5}&lt;br /&gt;
#alias {^pher %5} {#send web #difficultyQuantity %5}&lt;br /&gt;
#alias {^danger} {ooc $playername !danger}&lt;br /&gt;
#alias {^up} {#var fallen 0;#var down None}&lt;br /&gt;
#alias {^boton} {#send ooc $playername !bot on}&lt;br /&gt;
#alias {^botoff} {&lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        #send once ooc $playername !bot off&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        once ooc $playername !bot off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#alias {^botoff} {&lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        once ooc $playername !bot off&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        #send ooc $playername !bot off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#alias {time}&lt;br /&gt;
{&lt;br /&gt;
    #format clock {%c%t} {light green} {%T};&lt;br /&gt;
    #showme {$clock}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Redirects to chat_log}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^[{Auction|Bile|Bitch|Lfg|Links|Naughty|Newbie|Pickup|Public|Rp|Science|Tg|Update}] %5$} {&lt;br /&gt;
    #line log {$chat_log}&lt;br /&gt;
} {2}&lt;br /&gt;
#act {^&amp;lt;Give&amp;gt; %4 gives %5 to you.} {&lt;br /&gt;
    #format {give} {%c%t %c&amp;lt;%cGIFT%c&amp;gt; %c%s gave %s.} {white} {%T} {yellow} {cyan} {yellow} {white} {%4} {%5};&lt;br /&gt;
    #line log {$chat_log} {$give}&lt;br /&gt;
} {6}&lt;br /&gt;
#nop {#act {^[%2$} {#line log {$chat_log}} {2} }&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;ic&amp;gt; %2$} {#format {ic} {%c%t %c&amp;lt;%cIC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$ic}}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %2$} {#format {ooc} {%c%t %c&amp;lt;%cOOC%c&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$ooc}}&lt;br /&gt;
#act {^[%5(#%6)]: %2$} {#format {spoof} {%c%t %c&amp;lt;%cSP%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$spoof}}&lt;br /&gt;
&lt;br /&gt;
#act {^You %, %2$} {#format {say} {%c%t %c&amp;lt;%cYS%c&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$say}} {6}&lt;br /&gt;
#act {^You page, %2$} {#format {yp} {%c%t %c&amp;lt;&amp;lt;%cYP%c&amp;gt;&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$yp}} {5}&lt;br /&gt;
#act {^In a page-pose to $playername, %2$} {#format {pp} {%c%t %cIn a page-pose to you,%c %c%s} {light green} {%T} {yellow} {cyan} {white} {%2}; #line log {$chat_log} {$pp}}&lt;br /&gt;
#act {^%4 gives %5 to $playername.} {&lt;br /&gt;
    #format {give} {%c%t %c&amp;lt;%cGIFT%c&amp;gt; %c%s %s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%4} {%5};&lt;br /&gt;
    #line log {$chat_log} {$give}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to you, %5 %6} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #nop {#format {ppose} {%c%t %cP-P %c%s %c%s} {light green} {%T} {cyan} {yellow} {%5} {white} {%6} };&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to you and %5, %6 %7} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #nop {#format {ppose} {%c%t %cP-P %c(%s) - %c%s %c%s} {light green} {%T} {cyan} {yellow} {%5} {light blue} {%6} {white} {%7} };&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to %5 and you, %6 %7} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^%5 pages, %2 to you.} {&lt;br /&gt;
    #nop {#py fs.battle_trigger(&amp;quot;%5&amp;quot;, %2);};&lt;br /&gt;
    #format {page} {%c%t %c%5 %cpages,%c %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$page}&lt;br /&gt;
}&lt;br /&gt;
#act {%5 pages, &amp;quot;%6&amp;quot; to you and %7.} {&lt;br /&gt;
    #format {page} {%c%t %c%s %cpages, %c&amp;quot;%s&amp;quot; to you and %s} {white} {%T} {yellow} {%5} {cyan} {white} {%6} {%7};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$page}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {sexytimes triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^&amp;lt;Fuck&amp;gt; %5 wants to fuck you. Type fuck %5 to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;pussy&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Fuck&amp;gt; %5 wants oral sex with you. Type fuck %5 mouth to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;mouth&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Fuck&amp;gt; %5 wants an ass fuck with you. Type fuck %5 ass to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;ass&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!check&amp;quot;} {#py fs.secret(&amp;quot;%5&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;Submit&amp;gt; $playername submits to %5} {&lt;br /&gt;
    #py fs.fucked()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {misc game and partying triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {Type +reward now!} {+reward}&lt;br /&gt;
#act {(You sense a new message at OOC - %1 by Avatar: +REWARD)} {+reward}&lt;br /&gt;
#act {You receive a new mission. Clear out opposition at %5!} {#send ooc My daily is: %5; #var daily_status 1}&lt;br /&gt;
#act {^gothere %30} {#var place %30; #py fs.gothere(&amp;quot;$place&amp;quot;)}&lt;br /&gt;
#act {You have been invited to join %5&#039;s party. Type pjoin %5 to accept and meet them.} {#send pjoin %5}&lt;br /&gt;
#act {%5 (Level %6) wishes to join your party. Type pinvite %5 to accept.} {#py fs.party_invite(&amp;quot;%5&amp;quot;, int(&amp;quot;$party_invite_status&amp;quot;))}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {battle and ooc game triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Targeting %4; #send target %4}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !%.aily %5&amp;quot;}{#send daily %5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !pinvite %6&amp;quot;} {#send pinvite %6}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !go %4&amp;quot;} {#var loc %4; #py fs.gothere(&amp;quot;$loc&amp;quot;)}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !auto&amp;quot;} {#send ooc Auto on.; #send auto on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !search&amp;quot;} {#send search}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !bot on&amp;quot;} {#send botmode on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !bot off&amp;quot;} {&lt;br /&gt;
    #var boton 0; &lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        once botmode off;&lt;br /&gt;
        #send AUTO: Understood. Botmode will be switched off when the current battle is completed.&lt;br /&gt;
    }; &lt;br /&gt;
    #else {&lt;br /&gt;
        botmode off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !danger&amp;quot;} {#send +haz; #send ooc Danger: $danger Pheromone: $pheromone}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !leave&amp;quot;} {#send pleave}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !home&amp;quot;} {#send home}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !help&amp;quot;} {&lt;br /&gt;
    #send @paste %5;&lt;br /&gt;
    #send For an automatic pinvite use ooc $playername !pinvite;&lt;br /&gt;
    #send To get me to leave the party use ooc $playername !leave;&lt;br /&gt;
    #send To get me to go home use ooc $playername !home;&lt;br /&gt;
    #send To get me to target an enemy use ooc !target X;&lt;br /&gt;
    #send To get me to switch auto combat on use ooc $playername !auto;&lt;br /&gt;
    #send To get me to search use ooc $playername !search;&lt;br /&gt;
    #send To get me to go somewhere use ooc $playername !go DIR where DIR is one of: [n,e,s,w,ne,nw,se,sw,u,d];&lt;br /&gt;
    #send Switch on botmode with ooc $playername !bot on;&lt;br /&gt;
    #send Switch off botmode with ooc $playername !bot off;&lt;br /&gt;
    #send You can verify my currently set danger levels with ooc $playername !danger;&lt;br /&gt;
    #send Refresh my daily with ooc !daily [daily location] at the correct location;&lt;br /&gt;
    #send .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {fighty time triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {DN%5 PH%6 %7} {#var danger %5; #var pheromone %6}&lt;br /&gt;
#act {^You have been defeated!} {&lt;br /&gt;
    #if {boton == 1} {&lt;br /&gt;
        #if {bat == 1} {&lt;br /&gt;
            once #send ooc $playername !bot off&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #send ooc $playername !bot off&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #showme {\a\}&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now enabled} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light red} {white};&lt;br /&gt;
    #var boton 1;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #send search&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now disabled} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light green} {white};&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #unticker searching&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Botmode is currently on, type botmode off to disable it.} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light red} {white};&lt;br /&gt;
    #send +haz&lt;br /&gt;
}&lt;br /&gt;
#act {NO INFECTION DATA FOUND FOR THIS AREA.} {&lt;br /&gt;
    #showme {Safe Area, botmode being switched off};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #format {bot_status} {%cBOT%c} {light green} {white};&lt;br /&gt;
        #send {ooc $playername !bot off} &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Search&amp;gt; $playername searches for trouble.} {#delay {search_notification} {#line log {$stats_log} {Time to search again!}} {60}}&lt;br /&gt;
#act {^&amp;lt;Random Encounter&amp;gt; $playername is ambushed!} {&lt;br /&gt;
    #showme AMBUSHED;&lt;br /&gt;
    #var ambushed 1;&lt;br /&gt;
    #showme BATTLE STARTED;&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #delay {ambushed} {#var ambushed 0} {60};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;started&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^== ROUND %5 ==} {&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #format {round} {%c== ROUND %5 ==} {white};&lt;br /&gt;
    #line log {$stats_log} {$round};&lt;br /&gt;
    #send look&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;/////// Battle %5! ///////&amp;gt;} {&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #var ambushed 0;&lt;br /&gt;
    #py fs.config.feral_list = {};&lt;br /&gt;
    #send goic;&lt;br /&gt;
    #send $once_command; #var once_command nop;&lt;br /&gt;
    #py fs.config.feral_list = {};&lt;br /&gt;
    #if {$daily_status == 1} {#send {quest}};&lt;br /&gt;
    #line log {$stats_log} {Battle %5!};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;finished&amp;quot;);&lt;br /&gt;
    #send fprompt;&lt;br /&gt;
    #send mprompt&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&lt;br /&gt;
    #var hpnow %6; #var hpmax %7;&lt;br /&gt;
    #var ennow %10; #var enmax %11;&lt;br /&gt;
    #math {hpper} {($hpnow/$hpmax) * 100.00};&lt;br /&gt;
    #math {enper} {($ennow/$enmax) * 100.00};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #if {$bat == 0} {&lt;br /&gt;
            #nop {#showme {NOT IN BATTLE}};&lt;br /&gt;
            #if {$hpper &amp;gt;= $hptop &amp;amp;&amp;amp; $enper &amp;gt;= $entop &amp;amp;&amp;amp; $ambushed == 0} {&lt;br /&gt;
                #undelay {search_time};&lt;br /&gt;
                #delay {search_time} {#send search} {10}&lt;br /&gt;
            };&lt;br /&gt;
            #else {&lt;br /&gt;
                #undelay {waiting};&lt;br /&gt;
                #delay {waiting} {#send mprompt} {10}&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #if {$hpper &amp;lt;= $submit} {&lt;br /&gt;
                #send submit $targeting&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #if {$hpper &amp;lt; $MAX || $enper &amp;lt; $MAX} {&lt;br /&gt;
        #showme STATUS: $hitpoints $energypoints $hpper $enper&lt;br /&gt;
    };&lt;br /&gt;
    time&lt;br /&gt;
}&lt;br /&gt;
#act {^Health: %5 -&amp;gt; %6/%7} {&lt;br /&gt;
    #var hpnow %5; #var hpmax %6;&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #send mprompt;&lt;br /&gt;
    #showme HEALTH&lt;br /&gt;
}&lt;br /&gt;
#act {^Energy: %5 -&amp;gt; %6/%7 --} {&lt;br /&gt;
    #var ennow %5; #var enmax %6;&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #send mprompt;&lt;br /&gt;
    #showme ENERGY&lt;br /&gt;
}&lt;br /&gt;
#act {Players: %6} {&lt;br /&gt;
    #var player_list %6;&lt;br /&gt;
    #py fs.create_player_list(&amp;quot;$player_list&amp;quot;);&lt;br /&gt;
    #send fprompt;&lt;br /&gt;
    #send mprompt&lt;br /&gt;
}&lt;br /&gt;
#act {^Things: %6} {&lt;br /&gt;
    #var ferals %6;&lt;br /&gt;
    #py fs.create_feral_list(&amp;quot;$ferals&amp;quot;);&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Summon&amp;gt; Pet: %5 appears at %6. %7 side.} {&lt;br /&gt;
    #showme PET SUMMONED, RETARGETING;&lt;br /&gt;
    #var targeting %6;&lt;br /&gt;
    #send Target $targeting;&lt;br /&gt;
    #py fs.config.current_target = int($targeting);&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You make progress towards the daily mission(%5).} {&lt;br /&gt;
    #var completion %5;&lt;br /&gt;
    #if {$messages == 1} {&lt;br /&gt;
        #send ooc Mission completion: $completion;&lt;br /&gt;
        #send quest&lt;br /&gt;
    };&lt;br /&gt;
    #if {$beeps == 1} {&lt;br /&gt;
        #showme {\a\}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {^Your daily mission is in %5: [    %6   ]} {&lt;br /&gt;
    #var reward_lvl %6;&lt;br /&gt;
    #line log {$stats_log} {Reward lvl: $reward_lvl};&lt;br /&gt;
    #if {$daily_reward == &amp;quot;400%&amp;quot;} {&lt;br /&gt;
        #send ooc AUTO: 400% reached! Activate speeeeeedmode!;&lt;br /&gt;
        #var daily_status 0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You have earned a difficulty ratio of %5, this earns you %6 reward tokens!} {&lt;br /&gt;
    #line log {$stats_log} {Got %6 tokens from daily mission!};&lt;br /&gt;
    #var completion;&lt;br /&gt;
    #var reward_lvl&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You have completed the mission!} {&lt;br /&gt;
    #delay {daily_refresh} {#send ooc AUTO: Time to get a new daily!} {64800};&lt;br /&gt;
    #var daily_status 0;&lt;br /&gt;
    #var daily_complete $clock;&lt;br /&gt;
    #py fs.daily_done()&lt;br /&gt;
}&lt;br /&gt;
#act {XP Gained: %5  --  Freecred Gained: %6} {&lt;br /&gt;
    #format {win} {%cXP: %5 FC: %6} {yellow};&lt;br /&gt;
    #line log {$stats_log} {$win}&lt;br /&gt;
}&lt;br /&gt;
#act {^Somewhere on the muck, %5 has disconnected.} {#nop} {5}&lt;br /&gt;
#act {^%5 has disconnected.} {&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #format {disconnected} {%c%t %c%5 disconnected!%c} {light green} {$clock} {light red} {white};&lt;br /&gt;
    #line log {$chat_log} {$disconnected};&lt;br /&gt;
    #if {$bat == 1 &amp;amp;&amp;amp; $boton == 1} {&lt;br /&gt;
        once botmode off; &lt;br /&gt;
        #send {ooc AUTO: %5 has dropped, botmode will be automatically switched off at the end of the battle.}&lt;br /&gt;
    }&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;Salvage&amp;gt; $playername manages to salvage %5 %6 salvage!} {&lt;br /&gt;
    #format {sal} {%cSalvage: %5 %6} {red};&lt;br /&gt;
    #line log {$stats_log} {$sal}&lt;br /&gt;
}&lt;br /&gt;
#act {^What a find! $playername&#039;s keen grasp of the scholarly leads them to find a %5! It&#039;s worth %6 Freecreds!} {#line log {$stats_log} {Item: %6FC}}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Dump battle damage to stats log.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7 is cured of %8!} {#format {effect} {%c%6 %c%8%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7 affects $playername!} {#format {effect} {%c%6%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage!} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage! (%10)} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %8 takes %9 damage! (%10)} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; Pet: %7 %8(%9) takes %10 damage!} {#format {effect} {%c%6 %c%10%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%4]%5($playername)&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage!} {#format {effect} {%c%5 %c%6 %c%9%c} {magenta} {green} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;%5($playername)&amp;gt;&amp;lt;%6&amp;gt; %7 is healed for %8 damage!} {#format {effect} {%c%5 %c%6 %8%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;$playername&amp;gt;&amp;lt;%5&amp;gt; %6 is healed for %7 damage!} {#format {effect} {%c%5 %c%7 %c} {magenta} {light green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; $playername is led astray by %8. %9 and loses momentum.} {#nop}&lt;br /&gt;
#act {^&amp;lt;Vampiric&amp;gt; $playername draws %5 points of regeneration.} #format {effect} {%cVampiric %c%5 %c} {magenta} {light green} {white}; #line log {$stats_log} {$effect}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#function {stats_formatting} {&lt;br /&gt;
    #nop {input vars: name;hp_now;hp_max;en_now;en_max;name_colour;list_name};&lt;br /&gt;
    #math {hp_per} {(%2/%3) * 100.00};&lt;br /&gt;
    #math {en_per} {(%4/%5) * 100.00};&lt;br /&gt;
    #var hp_col @colourise{$hp_per};&lt;br /&gt;
    #var en_col @colourise{$en_per};&lt;br /&gt;
    #format stats {%s%.22s %s%s/%s %s%s/%s} {%6} {%1} {$hp_col} {%2} {%3} {$en_col} {%4} {%5};&lt;br /&gt;
    #list {%7} {add} {$stats}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#function {colourise} {&lt;br /&gt;
    #if {%0 &amp;gt;= 100} {&lt;br /&gt;
        #nop {bold cyan};&lt;br /&gt;
        #return &amp;lt;168&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 70} {&lt;br /&gt;
        #nop {bold blue};&lt;br /&gt;
        #return &amp;lt;148&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 50} {&lt;br /&gt;
        #nop {bold green};&lt;br /&gt;
        #return &amp;lt;128&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 30} {&lt;br /&gt;
        #nop {bright yellow};&lt;br /&gt;
        #return &amp;lt;138&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 20} {&lt;br /&gt;
        #nop {bold white};&lt;br /&gt;
        #return &amp;lt;178&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 10} {&lt;br /&gt;
        #nop {bright red};&lt;br /&gt;
        #return &amp;lt;118&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        #nop {blink red};&lt;br /&gt;
        #return &amp;lt;018&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#nop {Feral pets}&lt;br /&gt;
#act {^Pet: %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format feral_pet_name {Pet: %s} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$feral_pet_name;%7;%8;%9;%10;&amp;lt;218&amp;gt;;fpet}&lt;br /&gt;
} {5}&lt;br /&gt;
#nop {Numbered Ferals}&lt;br /&gt;
#act {%5. %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format feral_name {%s. %s} {%5} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$feral_name;%7;%8;%9;%10;&amp;lt;118&amp;gt;;fer}&lt;br /&gt;
}&lt;br /&gt;
#nop {Player pets}&lt;br /&gt;
#act {%5(%6)%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format pet_name {%s(%s)} {%5} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$pet_name;%7;%8;%9;%10;&amp;lt;138&amp;gt;;pet}&lt;br /&gt;
} {6}&lt;br /&gt;
#nop {Primes - they don&#039;t have a number so add one.}&lt;br /&gt;
#act {Prime %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var stats @stats_formatting{%6;%7;%8;%9;%10;&amp;lt;118&amp;gt;;fer}&lt;br /&gt;
} {5}&lt;br /&gt;
#nop {Players}&lt;br /&gt;
#act {%6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var stats @stats_formatting{%6;%7;%8;%9;%10;&amp;lt;128&amp;gt;;ply}&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {&lt;br /&gt;
    #foreach {$fpet[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$fer[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$pet[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$ply[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
&lt;br /&gt;
    #list {fpet} {size} {fpet_list_size};&lt;br /&gt;
    #list {fer} {size} {fer_list_size};&lt;br /&gt;
    #list {pet} {size} {pet_list_size};&lt;br /&gt;
    #list {ply} {size} {ply_list_size};&lt;br /&gt;
    #format summary {&amp;lt;878&amp;gt;[P:%d p:%d F:%d f:%d] &amp;lt;168&amp;gt;0&amp;lt;148&amp;gt;98&amp;lt;128&amp;gt;76&amp;lt;138&amp;gt;54&amp;lt;178&amp;gt;3&amp;lt;118&amp;gt;2&amp;lt;018&amp;gt;1} {$ply_list_size} {$pet_list_size} {$fer_list_size} {$fpet_list_size};&lt;br /&gt;
    #list {stats_list} {add} {$summary};&lt;br /&gt;
    &lt;br /&gt;
    #math {line_buffer_size} {30 - $stats_list_size};&lt;br /&gt;
    #loop 1 $line_buffer_size blah {#list {stats_list} {insert} {1} { }};&lt;br /&gt;
    #foreach {$stats_list[%*]} {temp} {#line log {$hp_log} {$temp}};&lt;br /&gt;
    #list {fpet} {clear};&lt;br /&gt;
    #list {fer} {clear};&lt;br /&gt;
    #list {pet} {clear};&lt;br /&gt;
    #list {ply} {clear};&lt;br /&gt;
    #list {stats_list} {clear};&lt;br /&gt;
    #sys echo &amp;quot; &amp;quot; &amp;gt; &#039;$hp_log&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Auto targeting}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %3. %4 is defeated by %5!} {&lt;br /&gt;
    #nop {FERAL};&lt;br /&gt;
    #var tgt_no %3; #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%3 %c(%5)%c} {red} {cyan} {white};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #send look;&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
} {5}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %4(%5) is defeated by %6!} {&lt;br /&gt;
    #nop {PET};&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 Pet down!} {cyan};&lt;br /&gt;
    #line log {$stats_log} {$pwr}&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; Prime %4 is defeated by %5!} {&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 has fallen! (%5)} {light red};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #py fs.player_down_check(&amp;quot;$tgt_name&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %4 is defeated by %5!} {&lt;br /&gt;
    #nop {PLAYER};&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 has fallen!} {light red};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #py fs.player_down_check(&amp;quot;$tgt_name&amp;quot;)&lt;br /&gt;
} {8}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Status stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {--Contents of %6--} {&lt;br /&gt;
    #format current_location {%c%s} {white} {%6}&lt;br /&gt;
} {1}&lt;br /&gt;
&lt;br /&gt;
#gag {^[Tick] %5}&lt;br /&gt;
#act {^[Tick] Avatar  **Global Tick - %5 load**} {&lt;br /&gt;
    #format load {%cLD %s%c} {red} {%5} {white}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#function {bar_formatting} {&lt;br /&gt;
    #math {hp_per} {(%2/%3) * 100.00};&lt;br /&gt;
    #math {en_per} {(%4/%5) * 100.00};&lt;br /&gt;
    #var hp_col @colourise{$hp_per};&lt;br /&gt;
    #var en_col @colourise{$en_per};&lt;br /&gt;
    #format bar_stats {%c%s %s%s/%s %s%s/%s} {%6} {%1} {$hp_col} {%2} {%3} {$en_col} {%4} {%5};&lt;br /&gt;
    #return $bar_stats&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#prompt {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&amp;lt;100&amp;gt;@bar_formatting{$playername:;%6;%7;%10;%11;light magenta}&amp;lt;178&amp;gt; - $current_location - $load - $party_invite_status_text - $bot_status - $clock $completion $reward_lvl}&lt;br /&gt;
#send mprompt&lt;br /&gt;
#send +haz&lt;br /&gt;
daily?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main python script:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
# Remember to double braces - they&#039;re used in string comprehension!&lt;br /&gt;
import datetime&lt;br /&gt;
import cPickle as pickle&lt;br /&gt;
import random&lt;br /&gt;
import re&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import config&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ses = &amp;quot;fs&amp;quot;&lt;br /&gt;
config.time_check = time.clock()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def read_vars():&lt;br /&gt;
    filename = &amp;quot;/home/anwen/tt/fs_vars_{plyr}&amp;quot;.format(plyr=config.player.lower())&lt;br /&gt;
    #print(filename)&lt;br /&gt;
    f = open(filename, &amp;quot;rb&amp;quot;)&lt;br /&gt;
    config.party_list, config.next_daily = pickle.load(f)&lt;br /&gt;
    f.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# write variables to a pickle&lt;br /&gt;
def write_vars():&lt;br /&gt;
    filename = &amp;quot;/home/anwen/tt/fs_vars_{0}&amp;quot;.format(config.player.lower())&lt;br /&gt;
    try:&lt;br /&gt;
        f = open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
        pickle.dump([config.party_list, config.next_daily], f)&lt;br /&gt;
        f.close()&lt;br /&gt;
        #print(&amp;quot;Data successfully written.&amp;quot;)&lt;br /&gt;
    except:&lt;br /&gt;
        #print(&amp;quot;Some data not found.&amp;quot;)&lt;br /&gt;
        f = open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
        config.party_list = []&lt;br /&gt;
        config.last_daily = 0&lt;br /&gt;
        pickle.dump([config.party_list, config.next_daily], f)&lt;br /&gt;
        f.close()&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# Battle related functions&lt;br /&gt;
# =============================================================================&lt;br /&gt;
def create_feral_list(ferals):&lt;br /&gt;
    &#039;&#039;&#039;Compile a dict of ferals based on the contents of the &amp;quot;Things&amp;quot; list.&lt;br /&gt;
    Format is {feral_number: feral_name}&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    config.feral_list = {}&lt;br /&gt;
    temp_list = ferals.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
    for item in temp_list:&lt;br /&gt;
        item = item.strip()&lt;br /&gt;
        if &amp;quot;Pet:&amp;quot; in item:&lt;br /&gt;
            # Ignore player pets, NPCs or enemy pets.&lt;br /&gt;
            if config.debug: print(&amp;quot;pet: {0}&amp;quot;.format(item))&lt;br /&gt;
            continue&lt;br /&gt;
        elif &amp;quot;(!)&amp;quot; in item:&lt;br /&gt;
            # Game NPC&#039;s and items&lt;br /&gt;
            if config.debug: print(&amp;quot;player pet: {0}&amp;quot;.format(item))&lt;br /&gt;
            continue&lt;br /&gt;
        elif &amp;quot;. &amp;quot; in item:&lt;br /&gt;
            # It&#039;s a feral, add it to the dict.&lt;br /&gt;
            if config.debug: print(&amp;quot;Feral! {0}&amp;quot;.format(item))&lt;br /&gt;
            ind, name = item.split(&amp;quot;. &amp;quot;)  # format is 1. name&lt;br /&gt;
            config.feral_list[int(ind)] = name&lt;br /&gt;
        elif &amp;quot;Prime&amp;quot; in item:&lt;br /&gt;
            #special cases for prime fights.&lt;br /&gt;
            name = item[6:]&lt;br /&gt;
            config.feral_list[&amp;quot;Prime&amp;quot;] = name&lt;br /&gt;
        elif &amp;quot;backup&amp;quot; in item:&lt;br /&gt;
            name, ind = item.split(&amp;quot; backup &amp;quot;)&lt;br /&gt;
            config.feral_list[int(ind)] = name&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;not sure about this one&amp;quot;)&lt;br /&gt;
            print(item)&lt;br /&gt;
            continue&lt;br /&gt;
    print(config.feral_list)&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
def target_feral(target_mode):&lt;br /&gt;
    &#039;&#039;&#039;Select a target from the Things list. target_mode 0 broadcasts to all &lt;br /&gt;
    players who react to ooc targeting messages. Target mode 1 is player only.&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    # Check that there&#039;s something in the list:&lt;br /&gt;
    if len(config.feral_list) == 0:&lt;br /&gt;
        #print(&amp;quot;Nothing in feral_list&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
    # Check if the target feral is still there:&lt;br /&gt;
    if config.current_target in config.feral_list.keys():&lt;br /&gt;
        #print(&amp;quot;Still targeting feral: {0} {1}&amp;quot;.format(config.current_target, config.feral_list[config.current_target]))&lt;br /&gt;
        return None&lt;br /&gt;
    # Determine if the feral is a priority target based on its name:&lt;br /&gt;
    for ii in config.feral_list.keys():&lt;br /&gt;
        for item in config.feral_priority:&lt;br /&gt;
            if item in config.feral_list[ii]:&lt;br /&gt;
                config.current_target = ii&lt;br /&gt;
                #print(&amp;quot;targeting {0} {1}&amp;quot;.format(ii, config.feral_list[ii]))&lt;br /&gt;
                if target_mode == 1:&lt;br /&gt;
                    command = [&amp;quot;#send ooc !target {blarg}.&amp;quot;.format(blarg=ii)]&lt;br /&gt;
                else:&lt;br /&gt;
                    command = [&amp;quot;#send target {blarg}. &amp;quot;.format(blarg=ii)]&lt;br /&gt;
                output(ses, command)&lt;br /&gt;
                return&lt;br /&gt;
    # Otherwise just target the lowest numbered feral:&lt;br /&gt;
    feral = config.feral_list.keys()[0]&lt;br /&gt;
    if feral != config.current_target:&lt;br /&gt;
        config.current_target = feral&lt;br /&gt;
        if target_mode == 1:&lt;br /&gt;
            command = [&amp;quot;#send ooc !target {blarg}.&amp;quot;.format(blarg=feral)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#send target {blarg}. &amp;quot;.format(blarg=feral)]&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def create_player_list(players):&lt;br /&gt;
    temp_list = players.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
    config.player_list = []&lt;br /&gt;
    for item in temp_list:&lt;br /&gt;
        item = item.split(&amp;quot;] &amp;quot;)[1]&lt;br /&gt;
        item = item.strip()&lt;br /&gt;
        if &amp;quot;[&amp;quot; in item:&lt;br /&gt;
            item = item.split(&amp;quot;[&amp;quot;)[0]&lt;br /&gt;
        # Ignore &amp;quot;me&amp;quot; and add other players to list&lt;br /&gt;
        if not re.match(config.player, item):&lt;br /&gt;
            config.player_list.append(item)&lt;br /&gt;
    config.player_list.append(config.player)&lt;br /&gt;
    #print(config.player_list)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def battle_timer(status):&lt;br /&gt;
    if status == &amp;quot;started&amp;quot;:&lt;br /&gt;
        config.battle_started = datetime.datetime.now()&lt;br /&gt;
    else:&lt;br /&gt;
        a = datetime.datetime.now()&lt;br /&gt;
        try:&lt;br /&gt;
            diff = a - config.battle_started&lt;br /&gt;
        except NameError:&lt;br /&gt;
            #print(&amp;quot;Doesn&#039;t look like the battle started!&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
        command = [&amp;quot;#showme Battle Duration: {{{0}}}&amp;quot;.format(diff)]&lt;br /&gt;
        #print(&amp;quot;TEST #line log {{stats_{0}}} {1}&amp;quot;.format(config.player.lower(), diff))&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# misc stuff&lt;br /&gt;
# =============================================================================&lt;br /&gt;
def daily_done():&lt;br /&gt;
    &#039;&#039;&#039;saves time of completion of last daily&#039;&#039;&#039;&lt;br /&gt;
    config.next_daily = datetime.datetime.now() + datetime.timedelta(hours=18)&lt;br /&gt;
    write_vars()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def daily_timer():&lt;br /&gt;
    #print(config.next_daily)&lt;br /&gt;
    if config.next_daily == 0:&lt;br /&gt;
        command = [&amp;quot;#showme No daily data saved!&amp;quot;]&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
        return&lt;br /&gt;
    time_diff = config.next_daily - datetime.datetime.now()&lt;br /&gt;
    hours, rem = divmod(time_diff.total_seconds(), 3600)&lt;br /&gt;
    mins, secs = divmod(rem, 60)&lt;br /&gt;
    #print(&amp;quot;Time check: {0}:{1}:{2}&amp;quot;.format(hours, mins, secs))&lt;br /&gt;
    if time_diff.total_seconds() &amp;lt;= 0:&lt;br /&gt;
        command = [&amp;quot;#var next_daily Ready to get next daily mission.&amp;quot;, &amp;quot;#showme Go get your daily!&amp;quot;]&lt;br /&gt;
    else:&lt;br /&gt;
        a = &amp;quot;{0}h {1}m {2}s left until daily available.&amp;quot;.format(hours, mins, secs)&lt;br /&gt;
        command = [&amp;quot;#var next_daily {0}&amp;quot;.format(a), &amp;quot;#showme {0}&amp;quot;.format(a)]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def edit_descrip(location):&lt;br /&gt;
    msgs = config.descriptions[config.player.lower()]&lt;br /&gt;
&lt;br /&gt;
    #delete current description and write new descrip:&lt;br /&gt;
    if &amp;quot;home&amp;quot; in location:&lt;br /&gt;
        command = msgs[&amp;quot;home&amp;quot;]&lt;br /&gt;
    elif &amp;quot;away&amp;quot; in location:&lt;br /&gt;
        command = msgs[&amp;quot;away&amp;quot;]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gothere(location):&lt;br /&gt;
    if location.lower() in [&amp;quot;n&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;s&amp;quot;,&amp;quot;w&amp;quot;,&amp;quot;ne&amp;quot;,&amp;quot;nw&amp;quot;,&amp;quot;se&amp;quot;,&amp;quot;sw&amp;quot;,&amp;quot;u&amp;quot;,&amp;quot;d&amp;quot;]:&lt;br /&gt;
        command = [&amp;quot;#send {loc}&amp;quot;.format(loc=location)]&lt;br /&gt;
    elif location in config.places:&lt;br /&gt;
        command = config.places[location]&lt;br /&gt;
    else:&lt;br /&gt;
        command = [&amp;quot;#showme I don&#039;t know how to get there!&amp;quot;]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def party_invite(person, status):&lt;br /&gt;
    if status == 2:  # open to invites&lt;br /&gt;
        command = [&amp;quot;#send pinvite {per}&amp;quot;.format(per=person)]&lt;br /&gt;
    elif status == 0:  # closed to invites&lt;br /&gt;
        command = [&amp;quot;#send page {per}=AUTOMSG: Sorry, not inviting at present&amp;quot;.format(per=person)]&lt;br /&gt;
    elif status == 1:  # invite if trusted&lt;br /&gt;
        if person in config.party_list:&lt;br /&gt;
            command = [&amp;quot;#send pinvite {per}&amp;quot;.format(per=person)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#send page {per}=AUTOMSG: Sorry, you are not in my autoinvite list, please wait a few moments.&amp;quot;.format(per=person)]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def party_list(task, person):&lt;br /&gt;
    a = str(config.party_list)&lt;br /&gt;
    if task == &amp;quot;add&amp;quot;:&lt;br /&gt;
        if person not in config.party_list:&lt;br /&gt;
            config.party_list.append(person)&lt;br /&gt;
            command = [&amp;quot;#showme {per} added to party list!&amp;quot;.format(per=person)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#showme {per} already in the party list! {check}&amp;quot;.format(per=person, check=a)]&lt;br /&gt;
    elif task == &amp;quot;del&amp;quot; and person in config.party_list:&lt;br /&gt;
        try:&lt;br /&gt;
            config.party_list.remove(person)&lt;br /&gt;
            command = [&amp;quot;#showme {per} removed from party list!&amp;quot;.format(per=person),&lt;br /&gt;
                       &amp;quot;#showme {check}&amp;quot;.format(check=str(config.party_list))&lt;br /&gt;
                      ]&lt;br /&gt;
        except:&lt;br /&gt;
            command = [&amp;quot;#showme Couldn&#039;t find this person. {check}&amp;quot;.format(check=a)]&lt;br /&gt;
    elif task == &amp;quot;check&amp;quot;:&lt;br /&gt;
        command = [&amp;quot;#showme {check}&amp;quot;.format(check=a)]&lt;br /&gt;
    else:&lt;br /&gt;
        command = [&amp;quot;#showme What? {task}&amp;quot;.format(task=task)]&lt;br /&gt;
    write_vars()&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# Output to tintin&lt;br /&gt;
# =============================================================================&lt;br /&gt;
&lt;br /&gt;
# Take the input commands and pass them to tt++&lt;br /&gt;
def output(ses, command):&lt;br /&gt;
    for item in command:&lt;br /&gt;
        #print(&amp;quot;#py tintin ({ses}) #showme Sending: {cmd}&amp;quot;.format(ses=ses, cmd=item))&lt;br /&gt;
        print(&amp;quot;#py tintin ({ses}) {cmd}&amp;quot;.format(ses=ses, cmd=item))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
config script:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /usr/bin/env python&lt;br /&gt;
global __DBNAME__&lt;br /&gt;
&lt;br /&gt;
debug = False&lt;br /&gt;
hp = 90&lt;br /&gt;
en = 90&lt;br /&gt;
submit = 10&lt;br /&gt;
next_daily = 0&lt;br /&gt;
feral_list = {}&lt;br /&gt;
current_target = 0&lt;br /&gt;
player_list = []&lt;br /&gt;
player_stats = []&lt;br /&gt;
pets_stats = []&lt;br /&gt;
feral_stats = []&lt;br /&gt;
feral_pets_stats = []&lt;br /&gt;
feral_priority = [&#039;Prime&#039;, &#039;Goo Girl&#039;, &#039;Perplexing&#039;, &#039;Front and Center&#039;, &#039;Regenerator&#039;]&lt;br /&gt;
&lt;br /&gt;
places = {&amp;quot;Ice_Caves&amp;quot; : [&amp;quot;#20 e&amp;quot;, &amp;quot;#2 s&amp;quot;, &amp;quot;#2 e&amp;quot;, &amp;quot;#1 s&amp;quot;, &amp;quot;#3 e&amp;quot;, &amp;quot;#1 n&amp;quot;,&lt;br /&gt;
                         &amp;quot;#5 e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;,&lt;br /&gt;
                         &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;#3 n&amp;quot;,&lt;br /&gt;
                         &amp;quot;e&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;d&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;Scrublands&amp;quot; : [&amp;quot;#20 e&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;#2 e&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;#3 e&amp;quot;, &amp;quot;n&amp;quot;,&lt;br /&gt;
                          &amp;quot;#5 e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;,&lt;br /&gt;
                          &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;sw&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;s&amp;quot;,&lt;br /&gt;
                          &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;s&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;Peaks&amp;quot; : [&amp;quot;w&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;w&amp;quot;]&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
anwen_msg = {&amp;quot;home&amp;quot; : [&amp;quot;#send editplayer&amp;quot;, &amp;quot;2&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;A small ornate bell hangs from a ribbon attached above Anwen&#039;s tailbone. It emits an etherial light.&amp;quot;,&lt;br /&gt;
                   &amp;quot;On close inspection it has the word &#039;Yes&#039; scribed in it in flowing letters.&amp;quot;,&lt;br /&gt;
                   &amp;quot;[if [player] is [looker]][line break][player]&#039;s current mutation-strains are:[line break]head: [stat Mutation/head of [player]][line break]torso: [stat Mutation/torso of [player]][line break]arms: [stat Mutation/arms of [player]][line break]legs: [stat Mutation/legs of [player]][line break]skin: [stat Mutation/skin of [player]][line break]ass: [stat Mutation/ass of [player]][line break]groin: [stat Mutation/cock of [player]][end if]&amp;quot;,&lt;br /&gt;
                   &amp;quot;,end&amp;quot;, &amp;quot;q&amp;quot;&lt;br /&gt;
                 ],&lt;br /&gt;
            &amp;quot;away&amp;quot; : [&amp;quot;#send editplayer&amp;quot;, &amp;quot;2&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;Anwen wears a small, black, tight-fitting shirt adorned with The Red Court logo. A pair of tight shorts serve to cover Anwen&#039;s modesty.&amp;quot;,&lt;br /&gt;
                   &amp;quot;A small ornate bell hangs from a ribbon attached above Anwen&#039;s tailbone. It emits an etherial light. On close inspection it has the word &#039;yes&#039; scribed in it in flowing letters.&amp;quot;,&lt;br /&gt;
                   &amp;quot;Whatever might that mean?&amp;quot;,&lt;br /&gt;
                   &amp;quot;[if [player] is [looker]][line break][player]&#039;s current mutation-strains are:[line break]head: [stat Mutation/head of [player]][line break]torso: [stat Mutation/torso of [player]][line break]arms: [stat Mutation/arms of [player]][line break]legs: [stat Mutation/legs of [player]][line break]skin: [stat Mutation/skin of [player]][line break]ass: [stat Mutation/ass of [player]][line break]groin: [stat Mutation/cock of [player]][end if]&amp;quot;,&lt;br /&gt;
                   &amp;quot;,end&amp;quot;, &amp;quot;q&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this is useful and wish you all the best.&lt;br /&gt;
Your friend, Anwen :3&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=310991</id>
		<title>Tintin</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=310991"/>
		<updated>2015-08-25T21:06:57Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For anyone who wishes to use TinTin++ here are a few handy Flexible Survival scripts and accompanying python scripts which you can use (or cut and paste out of) that I&#039;ve written and refined over the past few years.&lt;br /&gt;
&lt;br /&gt;
The commands that follow should be copied into their own files in a folder of your choosing. My scripts are in a folder called tt in my home directory. I then use tmux to split my window into four sections:&lt;br /&gt;
Top left is input and everything coming from the mud.&lt;br /&gt;
Top right is all players, pets, enemies and enemy pet health (updated by parsing fprompt).&lt;br /&gt;
Bottom left is all chat-related stuff.&lt;br /&gt;
Bottom right is powers used (with damage), XP collected, tokens and salvage gathered, daily mission completion status and other misc battle-related stuff.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what it looks like when it&#039;s running:&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have a bash script (anwen_mud.sh) that starts tmux and configures the four sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cd ~/tt&lt;br /&gt;
&lt;br /&gt;
tmux -2 new-session -d -s &#039;mud&#039;&lt;br /&gt;
&lt;br /&gt;
tmux new-window -t &#039;mud&#039;:1 -n &#039;mud&#039;&lt;br /&gt;
tmux split-window -h -p 26&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux send-keys &amp;quot;tt++ anwen_start&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 1&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_hp 2&amp;gt;/dev/null&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux split-window -v&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_chatlog&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 2&lt;br /&gt;
tmux split-window -v&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_stats&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux -2 attach-session -t &#039;mud&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generic connection script, note that this is linux based so the log file location needs to be changed if you&#039;re using WinTin in linux I save it with the name &#039;charname_start&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Python stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#run py python&lt;br /&gt;
#py import fs_python as fs&lt;br /&gt;
&lt;br /&gt;
#py fs.config.player = &amp;quot;CHARNAME&amp;quot;&lt;br /&gt;
#py print(fs.config.player)&lt;br /&gt;
#py fs.read_vars()&lt;br /&gt;
#py import time&lt;br /&gt;
&lt;br /&gt;
#action {tintin (%1) %2} {#%1 %2}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {End of python stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#alias {start_fs} {#session fs flexiblesurvival.com 2000}&lt;br /&gt;
start_fs&lt;br /&gt;
&lt;br /&gt;
#split&lt;br /&gt;
&lt;br /&gt;
#act {Welcome to Flexible Survival:}&lt;br /&gt;
{&lt;br /&gt;
    #unticker {reconnect};&lt;br /&gt;
    #send connect CHARNAME YOUR PASSWORD;&lt;br /&gt;
    #var connected 1;&lt;br /&gt;
    #read anwen_scripts&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next are those functions and values unique to my characters that override those in the scripts_all file that follows this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#var playername Anwen&lt;br /&gt;
#highlight {Anwen} {light magenta}&lt;br /&gt;
#highlight {anwen} {light magenta}&lt;br /&gt;
&lt;br /&gt;
#var hp_log anwen_hp&lt;br /&gt;
#var stats_log anwen_stats&lt;br /&gt;
#var chat_log anwen_chatlog&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Here we setup default variable values}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#var messages 1&lt;br /&gt;
#var boton 0&lt;br /&gt;
#var bat 0&lt;br /&gt;
#var continue 0&lt;br /&gt;
#var ambushed 0&lt;br /&gt;
#var party_invite_status 1&lt;br /&gt;
#var party_invite_status_text Trusted&lt;br /&gt;
#var hptop 90&lt;br /&gt;
#var entop 90&lt;br /&gt;
#var submit 15&lt;br /&gt;
#var beeps 0&lt;br /&gt;
#var daily_status 0&lt;br /&gt;
#var current_location None&lt;br /&gt;
#var fallen 0&lt;br /&gt;
#var targeting 0&lt;br /&gt;
#var target_mode 0&lt;br /&gt;
#var enemy_list None&lt;br /&gt;
#var player_list None&lt;br /&gt;
#var down None&lt;br /&gt;
#var once_command nop&lt;br /&gt;
#var bound 0&lt;br /&gt;
#var load 0&lt;br /&gt;
#var completion&lt;br /&gt;
#var reward_lvl&lt;br /&gt;
#var alu_ic 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#alias {^dailys %5} {&lt;br /&gt;
    #send ooc Anwen !daily %5;&lt;br /&gt;
    #send ooc Hope !daily %5;&lt;br /&gt;
    #send ooc Aluthal !mission %5;&lt;br /&gt;
    #send ooc Skade !daily %5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#alias {^pets} {use bump;use grind;use Totemic deer}&lt;br /&gt;
#alias {^buff} {#send ooc Aluthal !buff}&lt;br /&gt;
&lt;br /&gt;
#nop Read in scripts_all first then overwrite standard functions with those that follow.&lt;br /&gt;
#read scripts_all&lt;br /&gt;
&lt;br /&gt;
#nop CUSTOM STUFF FOLLOWS&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Redirects to chat_log}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^[{The Red Court|the red court}] %5$} {&lt;br /&gt;
    #line log {$chat_log}&lt;br /&gt;
} {2}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {sexytimes triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {misc game and partying triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {battle and ooc game triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {fighty time triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#act {^Aluthal goes [IC] In-Character.} {#var alu_ic 1}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;Random Encounter&amp;gt; $playername is ambushed!} {&lt;br /&gt;
    #showme AMBUSHED;&lt;br /&gt;
    #var ambushed 1;&lt;br /&gt;
    #showme BATTLE STARTED;&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #var alu_ic 0;&lt;br /&gt;
    #delay {ambushed} {#var ambushed 0} {60};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;started&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&lt;br /&gt;
    #var hpnow %6; #var hpmax %7;&lt;br /&gt;
    #var ennow %10; #var enmax %11;&lt;br /&gt;
    #math {hpper} {($hpnow/$hpmax) * 100.00};&lt;br /&gt;
    #math {enper} {($ennow/$enmax) * 100.00};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #if {$bat == 0} {&lt;br /&gt;
            #nop {#showme {NOT IN BATTLE}};&lt;br /&gt;
            #if {$hpper &amp;gt;= $hptop &amp;amp;&amp;amp; $enper &amp;gt;= $entop &amp;amp;&amp;amp; $ambushed == 0 &amp;amp;&amp;amp; $alu_ic == 1} {&lt;br /&gt;
                #undelay {search_time};&lt;br /&gt;
                #delay {search_time} {#send search} {10}&lt;br /&gt;
            };&lt;br /&gt;
            #else {&lt;br /&gt;
                #undelay {waiting};&lt;br /&gt;
                #delay {waiting} {#send mprompt} {10}&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #if {$hpper &amp;lt;= $submit} {&lt;br /&gt;
                #var alu_ic 1;&lt;br /&gt;
                #send submit $targeting&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #if {$hpper &amp;lt; 100 || $enper &amp;lt; 100} {&lt;br /&gt;
        #showme STATUS: $hitpoints $energypoints $hpper $enper&lt;br /&gt;
    };&lt;br /&gt;
    time&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Dump battle damage to stats_log.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Auto targeting}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Status stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last is a series of aliases, actions and other functions that are common to all of my characters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config {packet patch} {0.5};    #nop {Fixes rendering issues}&lt;br /&gt;
#message variable off&lt;br /&gt;
&lt;br /&gt;
#gag nop&lt;br /&gt;
#TICKER {keepalive} {#send nop; time; #send mprompt} {60}&lt;br /&gt;
&lt;br /&gt;
#send {pose #prepend &amp;lt;ic&amp;gt;}&lt;br /&gt;
#send {spoof #show}&lt;br /&gt;
#send {tick on}&lt;br /&gt;
#send {botmode off}&lt;br /&gt;
#format {bot_status} {%cBOT%c} {light green} {white}&lt;br /&gt;
&lt;br /&gt;
#alias {^fp} {#send look}&lt;br /&gt;
#alias {^moff} {#var messages 0}&lt;br /&gt;
#alias {^mon} {#var messages 1}&lt;br /&gt;
#alias {^once %5} {#var once_command %5}&lt;br /&gt;
#alias {^gt %1} {#showme gothere %1}&lt;br /&gt;
#alias {^back} {#var bound 1; #py fs.edit_descrip(&amp;quot;home&amp;quot;)}&lt;br /&gt;
#alias {^tied} {#var bound 1; #py fs.edit_descrip(&amp;quot;tied&amp;quot;)}&lt;br /&gt;
#alias {^away} {#var bound 0; #py fs.edit_descrip(&amp;quot;away&amp;quot;)}&lt;br /&gt;
#alias {^fucked} {#py fs.secret($playername, &amp;quot;all&amp;quot;)}&lt;br /&gt;
#alias {^add %5} {#py fs.party_list(&amp;quot;add&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
#alias {^del %5} {#py fs.party_list(&amp;quot;del&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
#alias {^party_check} {#py fs.party_list(&amp;quot;check&amp;quot;, &amp;quot;None&amp;quot;)}&lt;br /&gt;
#alias {^daily?} {#py fs.daily_timer(); #var completion {}; #var reward_lvl {}}&lt;br /&gt;
#alias {^stat on} {#ticker {stats} {#send mprompt} {10}}&lt;br /&gt;
#alias {^stat off} {#unticker {stats}}&lt;br /&gt;
#alias {^pyes} {#var party_invite_status 2; #var party_invite_status_text Open}&lt;br /&gt;
#alias {^pno} {#var party_invite_status 0; #var party_invite_status_text Closed}&lt;br /&gt;
#alias {^ptrust} {#var party_invite_status 1; ; #var party_invite_status_text Trusted}&lt;br /&gt;
#alias {^beeps} {#var beeps 1}&lt;br /&gt;
#alias {^quiet} {#var beeps 0}&lt;br /&gt;
#alias {^pmentor %5} {partymentor %5}&lt;br /&gt;
#alias {^diff %5} {#send web #difficultyLevel %5}&lt;br /&gt;
#alias {^pher %5} {#send web #difficultyQuantity %5}&lt;br /&gt;
#alias {^danger} {ooc $playername !danger}&lt;br /&gt;
#alias {^up} {#var fallen 0;#var down None}&lt;br /&gt;
#alias {^boton} {#send ooc $playername !bot on}&lt;br /&gt;
#alias {^botoff} {&lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        #send once ooc $playername !bot off&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        once ooc $playername !bot off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#alias {^botoff} {&lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        once ooc $playername !bot off&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        #send ooc $playername !bot off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#alias {time}&lt;br /&gt;
{&lt;br /&gt;
    #format clock {%c%t} {light green} {%T};&lt;br /&gt;
    #showme {$clock}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Redirects to chat_log}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^[{Auction|Bile|Bitch|Lfg|Links|Naughty|Newbie|Pickup|Public|Rp|Science|Tg|Update}] %5$} {&lt;br /&gt;
    #line log {$chat_log}&lt;br /&gt;
} {2}&lt;br /&gt;
#act {^&amp;lt;Give&amp;gt; %4 gives %5 to you.} {&lt;br /&gt;
    #format {give} {%c%t %c&amp;lt;%cGIFT%c&amp;gt; %c%s gave %s.} {white} {%T} {yellow} {cyan} {yellow} {white} {%4} {%5};&lt;br /&gt;
    #line log {$chat_log} {$give}&lt;br /&gt;
} {6}&lt;br /&gt;
#nop {#act {^[%2$} {#line log {$chat_log}} {2} }&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;ic&amp;gt; %2$} {#format {ic} {%c%t %c&amp;lt;%cIC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$ic}}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %2$} {#format {ooc} {%c%t %c&amp;lt;%cOOC%c&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$ooc}}&lt;br /&gt;
#act {^[%5(#%6)]: %2$} {#format {spoof} {%c%t %c&amp;lt;%cSP%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$spoof}}&lt;br /&gt;
&lt;br /&gt;
#act {^You %, %2$} {#format {say} {%c%t %c&amp;lt;%cYS%c&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$say}} {6}&lt;br /&gt;
#act {^You page, %2$} {#format {yp} {%c%t %c&amp;lt;&amp;lt;%cYP%c&amp;gt;&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$yp}} {5}&lt;br /&gt;
#act {^In a page-pose to $playername, %2$} {#format {pp} {%c%t %cIn a page-pose to you,%c %c%s} {light green} {%T} {yellow} {cyan} {white} {%2}; #line log {$chat_log} {$pp}}&lt;br /&gt;
#act {^%4 gives %5 to $playername.} {&lt;br /&gt;
    #format {give} {%c%t %c&amp;lt;%cGIFT%c&amp;gt; %c%s %s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%4} {%5};&lt;br /&gt;
    #line log {$chat_log} {$give}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to you, %5 %6} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #nop {#format {ppose} {%c%t %cP-P %c%s %c%s} {light green} {%T} {cyan} {yellow} {%5} {white} {%6} };&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to you and %5, %6 %7} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #nop {#format {ppose} {%c%t %cP-P %c(%s) - %c%s %c%s} {light green} {%T} {cyan} {yellow} {%5} {light blue} {%6} {white} {%7} };&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to %5 and you, %6 %7} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^%5 pages, %2 to you.} {&lt;br /&gt;
    #nop {#py fs.battle_trigger(&amp;quot;%5&amp;quot;, %2);};&lt;br /&gt;
    #format {page} {%c%t %c%5 %cpages,%c %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$page}&lt;br /&gt;
}&lt;br /&gt;
#act {%5 pages, &amp;quot;%6&amp;quot; to you and %7.} {&lt;br /&gt;
    #format {page} {%c%t %c%s %cpages, %c&amp;quot;%s&amp;quot; to you and %s} {white} {%T} {yellow} {%5} {cyan} {white} {%6} {%7};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$page}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {sexytimes triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^&amp;lt;Fuck&amp;gt; %5 wants to fuck you. Type fuck %5 to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;pussy&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Fuck&amp;gt; %5 wants oral sex with you. Type fuck %5 mouth to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;mouth&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Fuck&amp;gt; %5 wants an ass fuck with you. Type fuck %5 ass to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;ass&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!check&amp;quot;} {#py fs.secret(&amp;quot;%5&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;Submit&amp;gt; $playername submits to %5} {&lt;br /&gt;
    #py fs.fucked()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {misc game and partying triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {Type +reward now!} {+reward}&lt;br /&gt;
#act {(You sense a new message at OOC - %1 by Avatar: +REWARD)} {+reward}&lt;br /&gt;
#act {You receive a new mission. Clear out opposition at %5!} {#send ooc My daily is: %5; #var daily_status 1}&lt;br /&gt;
#act {^gothere %30} {#var place %30; #py fs.gothere(&amp;quot;$place&amp;quot;)}&lt;br /&gt;
#act {You have been invited to join %5&#039;s party. Type pjoin %5 to accept and meet them.} {#send pjoin %5}&lt;br /&gt;
#act {%5 (Level %6) wishes to join your party. Type pinvite %5 to accept.} {#py fs.party_invite(&amp;quot;%5&amp;quot;, int(&amp;quot;$party_invite_status&amp;quot;))}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {battle and ooc game triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Targeting %4; #send target %4}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !%.aily %5&amp;quot;}{#send daily %5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !pinvite %6&amp;quot;} {#send pinvite %6}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !go %4&amp;quot;} {#var loc %4; #py fs.gothere(&amp;quot;$loc&amp;quot;)}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !auto&amp;quot;} {#send ooc Auto on.; #send auto on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !search&amp;quot;} {#send search}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !bot on&amp;quot;} {#send botmode on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !bot off&amp;quot;} {&lt;br /&gt;
    #var boton 0; &lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        once botmode off;&lt;br /&gt;
        #send AUTO: Understood. Botmode will be switched off when the current battle is completed.&lt;br /&gt;
    }; &lt;br /&gt;
    #else {&lt;br /&gt;
        botmode off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !danger&amp;quot;} {#send +haz; #send ooc Danger: $danger Pheromone: $pheromone}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !leave&amp;quot;} {#send pleave}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !home&amp;quot;} {#send home}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !help&amp;quot;} {&lt;br /&gt;
    #send @paste %5;&lt;br /&gt;
    #send For an automatic pinvite use ooc $playername !pinvite;&lt;br /&gt;
    #send To get me to leave the party use ooc $playername !leave;&lt;br /&gt;
    #send To get me to go home use ooc $playername !home;&lt;br /&gt;
    #send To get me to target an enemy use ooc !target X;&lt;br /&gt;
    #send To get me to switch auto combat on use ooc $playername !auto;&lt;br /&gt;
    #send To get me to search use ooc $playername !search;&lt;br /&gt;
    #send To get me to go somewhere use ooc $playername !go DIR where DIR is one of: [n,e,s,w,ne,nw,se,sw,u,d];&lt;br /&gt;
    #send Switch on botmode with ooc $playername !bot on;&lt;br /&gt;
    #send Switch off botmode with ooc $playername !bot off;&lt;br /&gt;
    #send You can verify my currently set danger levels with ooc $playername !danger;&lt;br /&gt;
    #send Refresh my daily with ooc !daily [daily location] at the correct location;&lt;br /&gt;
    #send .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {fighty time triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {DN%5 PH%6 %7} {#var danger %5; #var pheromone %6}&lt;br /&gt;
#act {^You have been defeated!} {&lt;br /&gt;
    #if {boton == 1} {&lt;br /&gt;
        #if {bat == 1} {&lt;br /&gt;
            once #send ooc $playername !bot off&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #send ooc $playername !bot off&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #showme {\a\}&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now enabled} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light red} {white};&lt;br /&gt;
    #var boton 1;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #send search&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now disabled} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light green} {white};&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #unticker searching&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Botmode is currently on, type botmode off to disable it.} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light red} {white};&lt;br /&gt;
    #send +haz&lt;br /&gt;
}&lt;br /&gt;
#act {NO INFECTION DATA FOUND FOR THIS AREA.} {&lt;br /&gt;
    #showme {Safe Area, botmode being switched off};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #format {bot_status} {%cBOT%c} {light green} {white};&lt;br /&gt;
        #send {ooc $playername !bot off} &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Search&amp;gt; $playername searches for trouble.} {#delay {search_notification} {#line log {$stats_log} {Time to search again!}} {60}}&lt;br /&gt;
#act {^&amp;lt;Random Encounter&amp;gt; $playername is ambushed!} {&lt;br /&gt;
    #showme AMBUSHED;&lt;br /&gt;
    #var ambushed 1;&lt;br /&gt;
    #showme BATTLE STARTED;&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #delay {ambushed} {#var ambushed 0} {60};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;started&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^== ROUND %5 ==} {&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #format {round} {%c== ROUND %5 ==} {white};&lt;br /&gt;
    #line log {$stats_log} {$round};&lt;br /&gt;
    #send look&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;/////// Battle %5! ///////&amp;gt;} {&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #var ambushed 0;&lt;br /&gt;
    #py fs.config.feral_list = {};&lt;br /&gt;
    #send goic;&lt;br /&gt;
    #send $once_command; #var once_command nop;&lt;br /&gt;
    #py fs.config.feral_list = {};&lt;br /&gt;
    #if {$daily_status == 1} {#send {quest}};&lt;br /&gt;
    #line log {$stats_log} {Battle %5!};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;finished&amp;quot;);&lt;br /&gt;
    #send fprompt;&lt;br /&gt;
    #send mprompt&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&lt;br /&gt;
    #var hpnow %6; #var hpmax %7;&lt;br /&gt;
    #var ennow %10; #var enmax %11;&lt;br /&gt;
    #math {hpper} {($hpnow/$hpmax) * 100.00};&lt;br /&gt;
    #math {enper} {($ennow/$enmax) * 100.00};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #if {$bat == 0} {&lt;br /&gt;
            #nop {#showme {NOT IN BATTLE}};&lt;br /&gt;
            #if {$hpper &amp;gt;= $hptop &amp;amp;&amp;amp; $enper &amp;gt;= $entop &amp;amp;&amp;amp; $ambushed == 0} {&lt;br /&gt;
                #undelay {search_time};&lt;br /&gt;
                #delay {search_time} {#send search} {10}&lt;br /&gt;
            };&lt;br /&gt;
            #else {&lt;br /&gt;
                #undelay {waiting};&lt;br /&gt;
                #delay {waiting} {#send mprompt} {10}&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #if {$hpper &amp;lt;= $submit} {&lt;br /&gt;
                #send submit $targeting&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #if {$hpper &amp;lt; $MAX || $enper &amp;lt; $MAX} {&lt;br /&gt;
        #showme STATUS: $hitpoints $energypoints $hpper $enper&lt;br /&gt;
    };&lt;br /&gt;
    time&lt;br /&gt;
}&lt;br /&gt;
#act {^Health: %5 -&amp;gt; %6/%7} {&lt;br /&gt;
    #var hpnow %5; #var hpmax %6;&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #send mprompt;&lt;br /&gt;
    #showme HEALTH&lt;br /&gt;
}&lt;br /&gt;
#act {^Energy: %5 -&amp;gt; %6/%7 --} {&lt;br /&gt;
    #var ennow %5; #var enmax %6;&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #send mprompt;&lt;br /&gt;
    #showme ENERGY&lt;br /&gt;
}&lt;br /&gt;
#act {Players: %6} {&lt;br /&gt;
    #var player_list %6;&lt;br /&gt;
    #py fs.create_player_list(&amp;quot;$player_list&amp;quot;);&lt;br /&gt;
    #send fprompt;&lt;br /&gt;
    #send mprompt&lt;br /&gt;
}&lt;br /&gt;
#act {^Things: %6} {&lt;br /&gt;
    #var ferals %6;&lt;br /&gt;
    #py fs.create_feral_list(&amp;quot;$ferals&amp;quot;);&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Summon&amp;gt; Pet: %5 appears at %6. %7 side.} {&lt;br /&gt;
    #showme PET SUMMONED, RETARGETING;&lt;br /&gt;
    #var targeting %6;&lt;br /&gt;
    #send Target $targeting;&lt;br /&gt;
    #py fs.config.current_target = int($targeting);&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You make progress towards the daily mission(%5).} {&lt;br /&gt;
    #var completion %5;&lt;br /&gt;
    #if {$messages == 1} {&lt;br /&gt;
        #send ooc Mission completion: $completion;&lt;br /&gt;
        #send quest&lt;br /&gt;
    };&lt;br /&gt;
    #if {$beeps == 1} {&lt;br /&gt;
        #showme {\a\}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {^Your daily mission is in %5: [    %6   ]} {&lt;br /&gt;
    #var reward_lvl %6;&lt;br /&gt;
    #line log {$stats_log} {Reward lvl: $reward_lvl};&lt;br /&gt;
    #if {$daily_reward == &amp;quot;400%&amp;quot;} {&lt;br /&gt;
        #send ooc AUTO: 400% reached! Activate speeeeeedmode!;&lt;br /&gt;
        #var daily_status 0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You have earned a difficulty ratio of %5, this earns you %6 reward tokens!} {&lt;br /&gt;
    #line log {$stats_log} {Got %6 tokens from daily mission!};&lt;br /&gt;
    #var completion;&lt;br /&gt;
    #var reward_lvl&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You have completed the mission!} {&lt;br /&gt;
    #delay {daily_refresh} {#send ooc AUTO: Time to get a new daily!} {64800};&lt;br /&gt;
    #var daily_status 0;&lt;br /&gt;
    #var daily_complete $clock;&lt;br /&gt;
    #py fs.daily_done()&lt;br /&gt;
}&lt;br /&gt;
#act {XP Gained: %5  --  Freecred Gained: %6} {&lt;br /&gt;
    #format {win} {%cXP: %5 FC: %6} {yellow};&lt;br /&gt;
    #line log {$stats_log} {$win}&lt;br /&gt;
}&lt;br /&gt;
#act {^Somewhere on the muck, %5 has disconnected.} {#nop} {5}&lt;br /&gt;
#act {^%5 has disconnected.} {&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #format {disconnected} {%c%t %c%5 disconnected!%c} {light green} {$clock} {light red} {white};&lt;br /&gt;
    #line log {$chat_log} {$disconnected};&lt;br /&gt;
    #if {$bat == 1 &amp;amp;&amp;amp; $boton == 1} {&lt;br /&gt;
        once botmode off; &lt;br /&gt;
        #send {ooc AUTO: %5 has dropped, botmode will be automatically switched off at the end of the battle.}&lt;br /&gt;
    }&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;Salvage&amp;gt; $playername manages to salvage %5 %6 salvage!} {&lt;br /&gt;
    #format {sal} {%cSalvage: %5 %6} {red};&lt;br /&gt;
    #line log {$stats_log} {$sal}&lt;br /&gt;
}&lt;br /&gt;
#act {^What a find! $playername&#039;s keen grasp of the scholarly leads them to find a %5! It&#039;s worth %6 Freecreds!} {#line log {$stats_log} {Item: %6FC}}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Dump battle damage to stats log.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7 is cured of %8!} {#format {effect} {%c%6 %c%8%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7 affects $playername!} {#format {effect} {%c%6%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage!} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage! (%10)} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %8 takes %9 damage! (%10)} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; Pet: %7 %8(%9) takes %10 damage!} {#format {effect} {%c%6 %c%10%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%4]%5($playername)&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage!} {#format {effect} {%c%5 %c%6 %c%9%c} {magenta} {green} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;%5($playername)&amp;gt;&amp;lt;%6&amp;gt; %7 is healed for %8 damage!} {#format {effect} {%c%5 %c%6 %8%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;$playername&amp;gt;&amp;lt;%5&amp;gt; %6 is healed for %7 damage!} {#format {effect} {%c%5 %c%7 %c} {magenta} {light green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; $playername is led astray by %8. %9 and loses momentum.} {#nop}&lt;br /&gt;
#act {^&amp;lt;Vampiric&amp;gt; $playername draws %5 points of regeneration.} #format {effect} {%cVampiric %c%5 %c} {magenta} {light green} {white}; #line log {$stats_log} {$effect}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#function {stats_formatting} {&lt;br /&gt;
    #nop {input vars: name;hp_now;hp_max;en_now;en_max;name_colour;list_name};&lt;br /&gt;
    #math {hp_per} {(%2/%3) * 100.00};&lt;br /&gt;
    #math {en_per} {(%4/%5) * 100.00};&lt;br /&gt;
    #var hp_col @colourise{$hp_per};&lt;br /&gt;
    #var en_col @colourise{$en_per};&lt;br /&gt;
    #format stats {%s%.22s %s%s/%s %s%s/%s} {%6} {%1} {$hp_col} {%2} {%3} {$en_col} {%4} {%5};&lt;br /&gt;
    #list {%7} {add} {$stats}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#function {colourise} {&lt;br /&gt;
    #if {%0 &amp;gt;= 100} {&lt;br /&gt;
        #nop {bold cyan};&lt;br /&gt;
        #return &amp;lt;168&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 70} {&lt;br /&gt;
        #nop {bold blue};&lt;br /&gt;
        #return &amp;lt;148&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 50} {&lt;br /&gt;
        #nop {bold green};&lt;br /&gt;
        #return &amp;lt;128&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 30} {&lt;br /&gt;
        #nop {bright yellow};&lt;br /&gt;
        #return &amp;lt;138&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 20} {&lt;br /&gt;
        #nop {bold white};&lt;br /&gt;
        #return &amp;lt;178&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 10} {&lt;br /&gt;
        #nop {bright red};&lt;br /&gt;
        #return &amp;lt;118&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        #nop {blink red};&lt;br /&gt;
        #return &amp;lt;018&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#nop {Feral pets}&lt;br /&gt;
#act {^Pet: %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format feral_pet_name {Pet: %s} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$feral_pet_name;%7;%8;%9;%10;&amp;lt;218&amp;gt;;fpet}&lt;br /&gt;
} {5}&lt;br /&gt;
#nop {Numbered Ferals}&lt;br /&gt;
#act {%5. %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format feral_name {%s. %s} {%5} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$feral_name;%7;%8;%9;%10;&amp;lt;118&amp;gt;;fer}&lt;br /&gt;
}&lt;br /&gt;
#nop {Player pets}&lt;br /&gt;
#act {%5(%6)%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format pet_name {%s(%s)} {%5} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$pet_name;%7;%8;%9;%10;&amp;lt;138&amp;gt;;pet}&lt;br /&gt;
} {6}&lt;br /&gt;
#nop {Primes - they don&#039;t have a number so add one.}&lt;br /&gt;
#act {Prime %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var stats @stats_formatting{%6;%7;%8;%9;%10;&amp;lt;118&amp;gt;;fer}&lt;br /&gt;
} {5}&lt;br /&gt;
#nop {Players}&lt;br /&gt;
#act {%6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var stats @stats_formatting{%6;%7;%8;%9;%10;&amp;lt;128&amp;gt;;ply}&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {&lt;br /&gt;
    #foreach {$fpet[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$fer[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$pet[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$ply[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
&lt;br /&gt;
    #list {fpet} {size} {fpet_list_size};&lt;br /&gt;
    #list {fer} {size} {fer_list_size};&lt;br /&gt;
    #list {pet} {size} {pet_list_size};&lt;br /&gt;
    #list {ply} {size} {ply_list_size};&lt;br /&gt;
    #format summary {&amp;lt;878&amp;gt;[P:%d p:%d F:%d f:%d] &amp;lt;168&amp;gt;0&amp;lt;148&amp;gt;98&amp;lt;128&amp;gt;76&amp;lt;138&amp;gt;54&amp;lt;178&amp;gt;3&amp;lt;118&amp;gt;2&amp;lt;018&amp;gt;1} {$ply_list_size} {$pet_list_size} {$fer_list_size} {$fpet_list_size};&lt;br /&gt;
    #list {stats_list} {add} {$summary};&lt;br /&gt;
    &lt;br /&gt;
    #math {line_buffer_size} {30 - $stats_list_size};&lt;br /&gt;
    #loop 1 $line_buffer_size blah {#list {stats_list} {insert} {1} { }};&lt;br /&gt;
    #foreach {$stats_list[%*]} {temp} {#line log {$hp_log} {$temp}};&lt;br /&gt;
    #list {fpet} {clear};&lt;br /&gt;
    #list {fer} {clear};&lt;br /&gt;
    #list {pet} {clear};&lt;br /&gt;
    #list {ply} {clear};&lt;br /&gt;
    #list {stats_list} {clear};&lt;br /&gt;
    #sys echo &amp;quot; &amp;quot; &amp;gt; &#039;$hp_log&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Auto targeting}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %3. %4 is defeated by %5!} {&lt;br /&gt;
    #nop {FERAL};&lt;br /&gt;
    #var tgt_no %3; #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%3 %c(%5)%c} {red} {cyan} {white};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #send look;&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
} {5}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %4(%5) is defeated by %6!} {&lt;br /&gt;
    #nop {PET};&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 Pet down!} {cyan};&lt;br /&gt;
    #line log {$stats_log} {$pwr}&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; Prime %4 is defeated by %5!} {&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 has fallen! (%5)} {light red};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #py fs.player_down_check(&amp;quot;$tgt_name&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %4 is defeated by %5!} {&lt;br /&gt;
    #nop {PLAYER};&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 has fallen!} {light red};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #py fs.player_down_check(&amp;quot;$tgt_name&amp;quot;)&lt;br /&gt;
} {8}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Status stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {--Contents of %6--} {&lt;br /&gt;
    #format current_location {%c%s} {white} {%6}&lt;br /&gt;
} {1}&lt;br /&gt;
&lt;br /&gt;
#gag {^[Tick] %5}&lt;br /&gt;
#act {^[Tick] Avatar  **Global Tick - %5 load**} {&lt;br /&gt;
    #format load {%cLD %s%c} {red} {%5} {white}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#function {bar_formatting} {&lt;br /&gt;
    #math {hp_per} {(%2/%3) * 100.00};&lt;br /&gt;
    #math {en_per} {(%4/%5) * 100.00};&lt;br /&gt;
    #var hp_col @colourise{$hp_per};&lt;br /&gt;
    #var en_col @colourise{$en_per};&lt;br /&gt;
    #format bar_stats {%c%s %s%s/%s %s%s/%s} {%6} {%1} {$hp_col} {%2} {%3} {$en_col} {%4} {%5};&lt;br /&gt;
    #return $bar_stats&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#prompt {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&amp;lt;100&amp;gt;@bar_formatting{$playername:;%6;%7;%10;%11;light magenta}&amp;lt;178&amp;gt; - $current_location - $load - $party_invite_status_text - $bot_status - $clock $completion $reward_lvl}&lt;br /&gt;
#send mprompt&lt;br /&gt;
#send +haz&lt;br /&gt;
daily?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main python script:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
# Remember to double braces - they&#039;re used in string comprehension!&lt;br /&gt;
import datetime&lt;br /&gt;
import cPickle as pickle&lt;br /&gt;
import random&lt;br /&gt;
import re&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import config&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ses = &amp;quot;fs&amp;quot;&lt;br /&gt;
config.time_check = time.clock()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def read_vars():&lt;br /&gt;
    filename = &amp;quot;/home/anwen/tt/fs_vars_{plyr}&amp;quot;.format(plyr=config.player.lower())&lt;br /&gt;
    #print(filename)&lt;br /&gt;
    f = open(filename, &amp;quot;rb&amp;quot;)&lt;br /&gt;
    config.party_list, config.next_daily = pickle.load(f)&lt;br /&gt;
    f.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# write variables to a pickle&lt;br /&gt;
def write_vars():&lt;br /&gt;
    filename = &amp;quot;/home/anwen/tt/fs_vars_{0}&amp;quot;.format(config.player.lower())&lt;br /&gt;
    try:&lt;br /&gt;
        f = open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
        pickle.dump([config.party_list, config.next_daily], f)&lt;br /&gt;
        f.close()&lt;br /&gt;
        #print(&amp;quot;Data successfully written.&amp;quot;)&lt;br /&gt;
    except:&lt;br /&gt;
        #print(&amp;quot;Some data not found.&amp;quot;)&lt;br /&gt;
        f = open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
        config.party_list = []&lt;br /&gt;
        config.last_daily = 0&lt;br /&gt;
        pickle.dump([config.party_list, config.next_daily], f)&lt;br /&gt;
        f.close()&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# Battle related functions&lt;br /&gt;
# =============================================================================&lt;br /&gt;
def create_feral_list(ferals):&lt;br /&gt;
    &#039;&#039;&#039;Compile a dict of ferals based on the contents of the &amp;quot;Things&amp;quot; list.&lt;br /&gt;
    Format is {feral_number: feral_name}&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    config.feral_list = {}&lt;br /&gt;
    temp_list = ferals.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
    for item in temp_list:&lt;br /&gt;
        item = item.strip()&lt;br /&gt;
        if &amp;quot;Pet:&amp;quot; in item:&lt;br /&gt;
            # Ignore player pets, NPCs or enemy pets.&lt;br /&gt;
            if config.debug: print(&amp;quot;pet: {0}&amp;quot;.format(item))&lt;br /&gt;
            continue&lt;br /&gt;
        elif &amp;quot;(!)&amp;quot; in item:&lt;br /&gt;
            # Game NPC&#039;s and items&lt;br /&gt;
            if config.debug: print(&amp;quot;player pet: {0}&amp;quot;.format(item))&lt;br /&gt;
            continue&lt;br /&gt;
        elif &amp;quot;. &amp;quot; in item:&lt;br /&gt;
            # It&#039;s a feral, add it to the dict.&lt;br /&gt;
            if config.debug: print(&amp;quot;Feral! {0}&amp;quot;.format(item))&lt;br /&gt;
            ind, name = item.split(&amp;quot;. &amp;quot;)  # format is 1. name&lt;br /&gt;
            config.feral_list[int(ind)] = name&lt;br /&gt;
        elif &amp;quot;Prime&amp;quot; in item:&lt;br /&gt;
            #special cases for prime fights.&lt;br /&gt;
            name = item[6:]&lt;br /&gt;
            config.feral_list[&amp;quot;Prime&amp;quot;] = name&lt;br /&gt;
        elif &amp;quot;backup&amp;quot; in item:&lt;br /&gt;
            name, ind = item.split(&amp;quot; backup &amp;quot;)&lt;br /&gt;
            config.feral_list[int(ind)] = name&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;not sure about this one&amp;quot;)&lt;br /&gt;
            print(item)&lt;br /&gt;
            continue&lt;br /&gt;
    print(config.feral_list)&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
def target_feral(target_mode):&lt;br /&gt;
    &#039;&#039;&#039;Select a target from the Things list. target_mode 0 broadcasts to all &lt;br /&gt;
    players who react to ooc targeting messages. Target mode 1 is player only.&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    # Check that there&#039;s something in the list:&lt;br /&gt;
    if len(config.feral_list) == 0:&lt;br /&gt;
        #print(&amp;quot;Nothing in feral_list&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
    # Check if the target feral is still there:&lt;br /&gt;
    if config.current_target in config.feral_list.keys():&lt;br /&gt;
        #print(&amp;quot;Still targeting feral: {0} {1}&amp;quot;.format(config.current_target, config.feral_list[config.current_target]))&lt;br /&gt;
        return None&lt;br /&gt;
    # Determine if the feral is a priority target based on its name:&lt;br /&gt;
    for ii in config.feral_list.keys():&lt;br /&gt;
        for item in config.feral_priority:&lt;br /&gt;
            if item in config.feral_list[ii]:&lt;br /&gt;
                config.current_target = ii&lt;br /&gt;
                #print(&amp;quot;targeting {0} {1}&amp;quot;.format(ii, config.feral_list[ii]))&lt;br /&gt;
                if target_mode == 1:&lt;br /&gt;
                    command = [&amp;quot;#send ooc !target {blarg}.&amp;quot;.format(blarg=ii)]&lt;br /&gt;
                else:&lt;br /&gt;
                    command = [&amp;quot;#send target {blarg}. &amp;quot;.format(blarg=ii)]&lt;br /&gt;
                output(ses, command)&lt;br /&gt;
                return&lt;br /&gt;
    # Otherwise just target the lowest numbered feral:&lt;br /&gt;
    feral = config.feral_list.keys()[0]&lt;br /&gt;
    if feral != config.current_target:&lt;br /&gt;
        config.current_target = feral&lt;br /&gt;
        if target_mode == 1:&lt;br /&gt;
            command = [&amp;quot;#send ooc !target {blarg}.&amp;quot;.format(blarg=feral)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#send target {blarg}. &amp;quot;.format(blarg=feral)]&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def create_player_list(players):&lt;br /&gt;
    temp_list = players.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
    config.player_list = []&lt;br /&gt;
    for item in temp_list:&lt;br /&gt;
        item = item.split(&amp;quot;] &amp;quot;)[1]&lt;br /&gt;
        item = item.strip()&lt;br /&gt;
        if &amp;quot;[&amp;quot; in item:&lt;br /&gt;
            item = item.split(&amp;quot;[&amp;quot;)[0]&lt;br /&gt;
        # Ignore &amp;quot;me&amp;quot; and add other players to list&lt;br /&gt;
        if not re.match(config.player, item):&lt;br /&gt;
            config.player_list.append(item)&lt;br /&gt;
    config.player_list.append(config.player)&lt;br /&gt;
    #print(config.player_list)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def battle_timer(status):&lt;br /&gt;
    if status == &amp;quot;started&amp;quot;:&lt;br /&gt;
        config.battle_started = datetime.datetime.now()&lt;br /&gt;
    else:&lt;br /&gt;
        a = datetime.datetime.now()&lt;br /&gt;
        try:&lt;br /&gt;
            diff = a - config.battle_started&lt;br /&gt;
        except NameError:&lt;br /&gt;
            #print(&amp;quot;Doesn&#039;t look like the battle started!&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
        command = [&amp;quot;#showme Battle Duration: {{{0}}}&amp;quot;.format(diff)]&lt;br /&gt;
        #print(&amp;quot;TEST #line log {{stats_{0}}} {1}&amp;quot;.format(config.player.lower(), diff))&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# misc stuff&lt;br /&gt;
# =============================================================================&lt;br /&gt;
def daily_done():&lt;br /&gt;
    &#039;&#039;&#039;saves time of completion of last daily&#039;&#039;&#039;&lt;br /&gt;
    config.next_daily = datetime.datetime.now() + datetime.timedelta(hours=18)&lt;br /&gt;
    write_vars()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def daily_timer():&lt;br /&gt;
    #print(config.next_daily)&lt;br /&gt;
    if config.next_daily == 0:&lt;br /&gt;
        command = [&amp;quot;#showme No daily data saved!&amp;quot;]&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
        return&lt;br /&gt;
    time_diff = config.next_daily - datetime.datetime.now()&lt;br /&gt;
    hours, rem = divmod(time_diff.total_seconds(), 3600)&lt;br /&gt;
    mins, secs = divmod(rem, 60)&lt;br /&gt;
    #print(&amp;quot;Time check: {0}:{1}:{2}&amp;quot;.format(hours, mins, secs))&lt;br /&gt;
    if time_diff.total_seconds() &amp;lt;= 0:&lt;br /&gt;
        command = [&amp;quot;#var next_daily Ready to get next daily mission.&amp;quot;, &amp;quot;#showme Go get your daily!&amp;quot;]&lt;br /&gt;
    else:&lt;br /&gt;
        a = &amp;quot;{0}h {1}m {2}s left until daily available.&amp;quot;.format(hours, mins, secs)&lt;br /&gt;
        command = [&amp;quot;#var next_daily {0}&amp;quot;.format(a), &amp;quot;#showme {0}&amp;quot;.format(a)]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def edit_descrip(location):&lt;br /&gt;
    msgs = config.descriptions[config.player.lower()]&lt;br /&gt;
&lt;br /&gt;
    #delete current description and write new descrip:&lt;br /&gt;
    if &amp;quot;home&amp;quot; in location:&lt;br /&gt;
        command = msgs[&amp;quot;home&amp;quot;]&lt;br /&gt;
    elif &amp;quot;away&amp;quot; in location:&lt;br /&gt;
        command = msgs[&amp;quot;away&amp;quot;]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gothere(location):&lt;br /&gt;
    if location.lower() in [&amp;quot;n&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;s&amp;quot;,&amp;quot;w&amp;quot;,&amp;quot;ne&amp;quot;,&amp;quot;nw&amp;quot;,&amp;quot;se&amp;quot;,&amp;quot;sw&amp;quot;,&amp;quot;u&amp;quot;,&amp;quot;d&amp;quot;]:&lt;br /&gt;
        command = [&amp;quot;#send {loc}&amp;quot;.format(loc=location)]&lt;br /&gt;
    elif location in config.places:&lt;br /&gt;
        command = config.places[location]&lt;br /&gt;
    else:&lt;br /&gt;
        command = [&amp;quot;#showme I don&#039;t know how to get there!&amp;quot;]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def party_invite(person, status):&lt;br /&gt;
    if status == 2:  # open to invites&lt;br /&gt;
        command = [&amp;quot;#send pinvite {per}&amp;quot;.format(per=person)]&lt;br /&gt;
    elif status == 0:  # closed to invites&lt;br /&gt;
        command = [&amp;quot;#send page {per}=AUTOMSG: Sorry, not inviting at present&amp;quot;.format(per=person)]&lt;br /&gt;
    elif status == 1:  # invite if trusted&lt;br /&gt;
        if person in config.party_list:&lt;br /&gt;
            command = [&amp;quot;#send pinvite {per}&amp;quot;.format(per=person)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#send page {per}=AUTOMSG: Sorry, you are not in my autoinvite list, please wait a few moments.&amp;quot;.format(per=person)]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def party_list(task, person):&lt;br /&gt;
    a = str(config.party_list)&lt;br /&gt;
    if task == &amp;quot;add&amp;quot;:&lt;br /&gt;
        if person not in config.party_list:&lt;br /&gt;
            config.party_list.append(person)&lt;br /&gt;
            command = [&amp;quot;#showme {per} added to party list!&amp;quot;.format(per=person)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#showme {per} already in the party list! {check}&amp;quot;.format(per=person, check=a)]&lt;br /&gt;
    elif task == &amp;quot;del&amp;quot; and person in config.party_list:&lt;br /&gt;
        try:&lt;br /&gt;
            config.party_list.remove(person)&lt;br /&gt;
            command = [&amp;quot;#showme {per} removed from party list!&amp;quot;.format(per=person),&lt;br /&gt;
                       &amp;quot;#showme {check}&amp;quot;.format(check=str(config.party_list))&lt;br /&gt;
                      ]&lt;br /&gt;
        except:&lt;br /&gt;
            command = [&amp;quot;#showme Couldn&#039;t find this person. {check}&amp;quot;.format(check=a)]&lt;br /&gt;
    elif task == &amp;quot;check&amp;quot;:&lt;br /&gt;
        command = [&amp;quot;#showme {check}&amp;quot;.format(check=a)]&lt;br /&gt;
    else:&lt;br /&gt;
        command = [&amp;quot;#showme What? {task}&amp;quot;.format(task=task)]&lt;br /&gt;
    write_vars()&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# Output to tintin&lt;br /&gt;
# =============================================================================&lt;br /&gt;
&lt;br /&gt;
# Take the input commands and pass them to tt++&lt;br /&gt;
def output(ses, command):&lt;br /&gt;
    for item in command:&lt;br /&gt;
        #print(&amp;quot;#py tintin ({ses}) #showme Sending: {cmd}&amp;quot;.format(ses=ses, cmd=item))&lt;br /&gt;
        print(&amp;quot;#py tintin ({ses}) {cmd}&amp;quot;.format(ses=ses, cmd=item))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
config script:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
#! /usr/bin/env python&lt;br /&gt;
global __DBNAME__&lt;br /&gt;
&lt;br /&gt;
debug = False&lt;br /&gt;
hp = 90&lt;br /&gt;
en = 90&lt;br /&gt;
submit = 10&lt;br /&gt;
next_daily = 0&lt;br /&gt;
feral_list = {}&lt;br /&gt;
current_target = 0&lt;br /&gt;
player_list = []&lt;br /&gt;
player_stats = []&lt;br /&gt;
pets_stats = []&lt;br /&gt;
feral_stats = []&lt;br /&gt;
feral_pets_stats = []&lt;br /&gt;
feral_priority = [&#039;Prime&#039;, &#039;Goo Girl&#039;, &#039;Perplexing&#039;, &#039;Front and Center&#039;, &#039;Regenerator&#039;]&lt;br /&gt;
&lt;br /&gt;
places = {&amp;quot;Ice_Caves&amp;quot; : [&amp;quot;#20 e&amp;quot;, &amp;quot;#2 s&amp;quot;, &amp;quot;#2 e&amp;quot;, &amp;quot;#1 s&amp;quot;, &amp;quot;#3 e&amp;quot;, &amp;quot;#1 n&amp;quot;,&lt;br /&gt;
                         &amp;quot;#5 e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;,&lt;br /&gt;
                         &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;#3 n&amp;quot;,&lt;br /&gt;
                         &amp;quot;e&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;d&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;Scrublands&amp;quot; : [&amp;quot;#20 e&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;#2 e&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;#3 e&amp;quot;, &amp;quot;n&amp;quot;,&lt;br /&gt;
                          &amp;quot;#5 e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;,&lt;br /&gt;
                          &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;sw&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;s&amp;quot;,&lt;br /&gt;
                          &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;s&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;Peaks&amp;quot; : [&amp;quot;w&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;w&amp;quot;]&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
anwen_msg = {&amp;quot;home&amp;quot; : [&amp;quot;#send editplayer&amp;quot;, &amp;quot;2&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;A small ornate bell hangs from a ribbon attached above Anwen&#039;s tailbone. It emits an etherial light.&amp;quot;,&lt;br /&gt;
                   &amp;quot;On close inspection it has the word &#039;Yes&#039; scribed in it in flowing letters.&amp;quot;,&lt;br /&gt;
                   &amp;quot;[if [player] is [looker]][line break][player]&#039;s current mutation-strains are:[line break]head: [stat Mutation/head of [player]][line break]torso: [stat Mutation/torso of [player]][line break]arms: [stat Mutation/arms of [player]][line break]legs: [stat Mutation/legs of [player]][line break]skin: [stat Mutation/skin of [player]][line break]ass: [stat Mutation/ass of [player]][line break]groin: [stat Mutation/cock of [player]][end if]&amp;quot;,&lt;br /&gt;
                   &amp;quot;,end&amp;quot;, &amp;quot;q&amp;quot;&lt;br /&gt;
                 ],&lt;br /&gt;
            &amp;quot;away&amp;quot; : [&amp;quot;#send editplayer&amp;quot;, &amp;quot;2&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;Anwen wears a small, black, tight-fitting shirt adorned with The Red Court logo. A pair of tight shorts serve to cover Anwen&#039;s modesty.&amp;quot;,&lt;br /&gt;
                   &amp;quot;A small ornate bell hangs from a ribbon attached above Anwen&#039;s tailbone. It emits an etherial light. On close inspection it has the word &#039;yes&#039; scribed in it in flowing letters.&amp;quot;,&lt;br /&gt;
                   &amp;quot;Whatever might that mean?&amp;quot;,&lt;br /&gt;
                   &amp;quot;[if [player] is [looker]][line break][player]&#039;s current mutation-strains are:[line break]head: [stat Mutation/head of [player]][line break]torso: [stat Mutation/torso of [player]][line break]arms: [stat Mutation/arms of [player]][line break]legs: [stat Mutation/legs of [player]][line break]skin: [stat Mutation/skin of [player]][line break]ass: [stat Mutation/ass of [player]][line break]groin: [stat Mutation/cock of [player]][end if]&amp;quot;,&lt;br /&gt;
                   &amp;quot;,end&amp;quot;, &amp;quot;q&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this is useful and wish you all the best.&lt;br /&gt;
Your friend, Anwen :3&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=310990</id>
		<title>Tintin</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=310990"/>
		<updated>2015-08-25T21:06:01Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For anyone who wishes to use TinTin++ here are a few handy Flexible Survival scripts and accompanying python scripts which you can use (or cut and paste out of) that I&#039;ve written and refined over the past few years.&lt;br /&gt;
&lt;br /&gt;
The commands that follow should be copied into their own files in a folder of your choosing. My scripts are in a folder called tt in my home directory. I then use tmux to split my window into four sections:&lt;br /&gt;
Top left is input and everything coming from the mud.&lt;br /&gt;
Top right is all players, pets, enemies and enemy pet health (updated by parsing fprompt).&lt;br /&gt;
Bottom left is all chat-related stuff.&lt;br /&gt;
Bottom right is powers used (with damage), XP collected, tokens and salvage gathered, daily mission completion status and other misc battle-related stuff.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s what it looks like when it&#039;s running:&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have a bash script (anwen_mud.sh) that starts tmux and configures the four sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cd ~/tt&lt;br /&gt;
&lt;br /&gt;
tmux -2 new-session -d -s &#039;mud&#039;&lt;br /&gt;
&lt;br /&gt;
tmux new-window -t &#039;mud&#039;:1 -n &#039;mud&#039;&lt;br /&gt;
tmux split-window -h -p 26&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux send-keys &amp;quot;tt++ anwen_start&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 1&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_hp 2&amp;gt;/dev/null&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux split-window -v&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_chatlog&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 2&lt;br /&gt;
tmux split-window -v&lt;br /&gt;
tmux send-keys &amp;quot;tail -f anwen_stats&amp;quot; C-m&lt;br /&gt;
tmux select-pane -t 0&lt;br /&gt;
tmux -2 attach-session -t &#039;mud&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generic connection script, note that this is linux based so the log file location needs to be changed if you&#039;re using WinTin in linux I save it with the name &#039;charname_start&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Python stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#run py python&lt;br /&gt;
#py import fs_python as fs&lt;br /&gt;
&lt;br /&gt;
#py fs.config.player = &amp;quot;CHARNAME&amp;quot;&lt;br /&gt;
#py print(fs.config.player)&lt;br /&gt;
#py fs.read_vars()&lt;br /&gt;
#py import time&lt;br /&gt;
&lt;br /&gt;
#action {tintin (%1) %2} {#%1 %2}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {End of python stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#alias {start_fs} {#session fs flexiblesurvival.com 2000}&lt;br /&gt;
start_fs&lt;br /&gt;
&lt;br /&gt;
#split&lt;br /&gt;
&lt;br /&gt;
#act {Welcome to Flexible Survival:}&lt;br /&gt;
{&lt;br /&gt;
    #unticker {reconnect};&lt;br /&gt;
    #send connect CHARNAME YOUR PASSWORD;&lt;br /&gt;
    #var connected 1;&lt;br /&gt;
    #read anwen_scripts&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next are those functions and values unique to my characters that override those in the scripts_all file that follows this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#var playername Anwen&lt;br /&gt;
#highlight {Anwen} {light magenta}&lt;br /&gt;
#highlight {anwen} {light magenta}&lt;br /&gt;
&lt;br /&gt;
#var hp_log anwen_hp&lt;br /&gt;
#var stats_log anwen_stats&lt;br /&gt;
#var chat_log anwen_chatlog&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Here we setup default variable values}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#var messages 1&lt;br /&gt;
#var boton 0&lt;br /&gt;
#var bat 0&lt;br /&gt;
#var continue 0&lt;br /&gt;
#var ambushed 0&lt;br /&gt;
#var party_invite_status 1&lt;br /&gt;
#var party_invite_status_text Trusted&lt;br /&gt;
#var hptop 90&lt;br /&gt;
#var entop 90&lt;br /&gt;
#var submit 15&lt;br /&gt;
#var beeps 0&lt;br /&gt;
#var daily_status 0&lt;br /&gt;
#var current_location None&lt;br /&gt;
#var fallen 0&lt;br /&gt;
#var targeting 0&lt;br /&gt;
#var target_mode 0&lt;br /&gt;
#var enemy_list None&lt;br /&gt;
#var player_list None&lt;br /&gt;
#var down None&lt;br /&gt;
#var once_command nop&lt;br /&gt;
#var bound 0&lt;br /&gt;
#var load 0&lt;br /&gt;
#var completion&lt;br /&gt;
#var reward_lvl&lt;br /&gt;
#var alu_ic 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#alias {^dailys %5} {&lt;br /&gt;
    #send ooc Anwen !daily %5;&lt;br /&gt;
    #send ooc Hope !daily %5;&lt;br /&gt;
    #send ooc Aluthal !mission %5;&lt;br /&gt;
    #send ooc Skade !daily %5&lt;br /&gt;
}&lt;br /&gt;
#alias {^dailys %5} {#send ooc Anwen !daily %5; #send ooc Hope !daily %5; #send ooc Aluthal !mission %5; #send ooc Skade !daily %5}&lt;br /&gt;
&lt;br /&gt;
#alias {^pets} {use bump;use grind;use Totemic deer}&lt;br /&gt;
#alias {^buff} {#send ooc Aluthal !buff}&lt;br /&gt;
&lt;br /&gt;
#nop Read in scripts_all first then overwrite standard functions with those that follow.&lt;br /&gt;
#read scripts_all&lt;br /&gt;
&lt;br /&gt;
#nop CUSTOM STUFF FOLLOWS&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Redirects to chat_log}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^[{The Red Court|the red court}] %5$} {&lt;br /&gt;
    #line log {$chat_log}&lt;br /&gt;
} {2}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {sexytimes triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {misc game and partying triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {battle and ooc game triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {fighty time triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#act {^Aluthal goes [IC] In-Character.} {#var alu_ic 1}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;Random Encounter&amp;gt; $playername is ambushed!} {&lt;br /&gt;
    #showme AMBUSHED;&lt;br /&gt;
    #var ambushed 1;&lt;br /&gt;
    #showme BATTLE STARTED;&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #var alu_ic 0;&lt;br /&gt;
    #delay {ambushed} {#var ambushed 0} {60};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;started&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&lt;br /&gt;
    #var hpnow %6; #var hpmax %7;&lt;br /&gt;
    #var ennow %10; #var enmax %11;&lt;br /&gt;
    #math {hpper} {($hpnow/$hpmax) * 100.00};&lt;br /&gt;
    #math {enper} {($ennow/$enmax) * 100.00};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #if {$bat == 0} {&lt;br /&gt;
            #nop {#showme {NOT IN BATTLE}};&lt;br /&gt;
            #if {$hpper &amp;gt;= $hptop &amp;amp;&amp;amp; $enper &amp;gt;= $entop &amp;amp;&amp;amp; $ambushed == 0 &amp;amp;&amp;amp; $alu_ic == 1} {&lt;br /&gt;
                #undelay {search_time};&lt;br /&gt;
                #delay {search_time} {#send search} {10}&lt;br /&gt;
            };&lt;br /&gt;
            #else {&lt;br /&gt;
                #undelay {waiting};&lt;br /&gt;
                #delay {waiting} {#send mprompt} {10}&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #if {$hpper &amp;lt;= $submit} {&lt;br /&gt;
                #var alu_ic 1;&lt;br /&gt;
                #send submit $targeting&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #if {$hpper &amp;lt; 100 || $enper &amp;lt; 100} {&lt;br /&gt;
        #showme STATUS: $hitpoints $energypoints $hpper $enper&lt;br /&gt;
    };&lt;br /&gt;
    time&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Dump battle damage to stats_log.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Auto targeting}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Status stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last is a series of aliases, actions and other functions that are common to all of my characters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config {packet patch} {0.5};    #nop {Fixes rendering issues}&lt;br /&gt;
#message variable off&lt;br /&gt;
&lt;br /&gt;
#gag nop&lt;br /&gt;
#TICKER {keepalive} {#send nop; time; #send mprompt} {60}&lt;br /&gt;
&lt;br /&gt;
#send {pose #prepend &amp;lt;ic&amp;gt;}&lt;br /&gt;
#send {spoof #show}&lt;br /&gt;
#send {tick on}&lt;br /&gt;
#send {botmode off}&lt;br /&gt;
#format {bot_status} {%cBOT%c} {light green} {white}&lt;br /&gt;
&lt;br /&gt;
#alias {^fp} {#send look}&lt;br /&gt;
#alias {^moff} {#var messages 0}&lt;br /&gt;
#alias {^mon} {#var messages 1}&lt;br /&gt;
#alias {^once %5} {#var once_command %5}&lt;br /&gt;
#alias {^gt %1} {#showme gothere %1}&lt;br /&gt;
#alias {^back} {#var bound 1; #py fs.edit_descrip(&amp;quot;home&amp;quot;)}&lt;br /&gt;
#alias {^tied} {#var bound 1; #py fs.edit_descrip(&amp;quot;tied&amp;quot;)}&lt;br /&gt;
#alias {^away} {#var bound 0; #py fs.edit_descrip(&amp;quot;away&amp;quot;)}&lt;br /&gt;
#alias {^fucked} {#py fs.secret($playername, &amp;quot;all&amp;quot;)}&lt;br /&gt;
#alias {^add %5} {#py fs.party_list(&amp;quot;add&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
#alias {^del %5} {#py fs.party_list(&amp;quot;del&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
#alias {^party_check} {#py fs.party_list(&amp;quot;check&amp;quot;, &amp;quot;None&amp;quot;)}&lt;br /&gt;
#alias {^daily?} {#py fs.daily_timer(); #var completion {}; #var reward_lvl {}}&lt;br /&gt;
#alias {^stat on} {#ticker {stats} {#send mprompt} {10}}&lt;br /&gt;
#alias {^stat off} {#unticker {stats}}&lt;br /&gt;
#alias {^pyes} {#var party_invite_status 2; #var party_invite_status_text Open}&lt;br /&gt;
#alias {^pno} {#var party_invite_status 0; #var party_invite_status_text Closed}&lt;br /&gt;
#alias {^ptrust} {#var party_invite_status 1; ; #var party_invite_status_text Trusted}&lt;br /&gt;
#alias {^beeps} {#var beeps 1}&lt;br /&gt;
#alias {^quiet} {#var beeps 0}&lt;br /&gt;
#alias {^pmentor %5} {partymentor %5}&lt;br /&gt;
#alias {^diff %5} {#send web #difficultyLevel %5}&lt;br /&gt;
#alias {^pher %5} {#send web #difficultyQuantity %5}&lt;br /&gt;
#alias {^danger} {ooc $playername !danger}&lt;br /&gt;
#alias {^up} {#var fallen 0;#var down None}&lt;br /&gt;
#alias {^boton} {#send ooc $playername !bot on}&lt;br /&gt;
#alias {^botoff} {&lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        #send once ooc $playername !bot off&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        once ooc $playername !bot off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#alias {^botoff} {&lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        once ooc $playername !bot off&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        #send ooc $playername !bot off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#alias {time}&lt;br /&gt;
{&lt;br /&gt;
    #format clock {%c%t} {light green} {%T};&lt;br /&gt;
    #showme {$clock}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Redirects to chat_log}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^[{Auction|Bile|Bitch|Lfg|Links|Naughty|Newbie|Pickup|Public|Rp|Science|Tg|Update}] %5$} {&lt;br /&gt;
    #line log {$chat_log}&lt;br /&gt;
} {2}&lt;br /&gt;
#act {^&amp;lt;Give&amp;gt; %4 gives %5 to you.} {&lt;br /&gt;
    #format {give} {%c%t %c&amp;lt;%cGIFT%c&amp;gt; %c%s gave %s.} {white} {%T} {yellow} {cyan} {yellow} {white} {%4} {%5};&lt;br /&gt;
    #line log {$chat_log} {$give}&lt;br /&gt;
} {6}&lt;br /&gt;
#nop {#act {^[%2$} {#line log {$chat_log}} {2} }&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;ic&amp;gt; %2$} {#format {ic} {%c%t %c&amp;lt;%cIC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$ic}}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %2$} {#format {ooc} {%c%t %c&amp;lt;%cOOC%c&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$ooc}}&lt;br /&gt;
#act {^[%5(#%6)]: %2$} {#format {spoof} {%c%t %c&amp;lt;%cSP%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$spoof}}&lt;br /&gt;
&lt;br /&gt;
#act {^You %, %2$} {#format {say} {%c%t %c&amp;lt;%cYS%c&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$say}} {6}&lt;br /&gt;
#act {^You page, %2$} {#format {yp} {%c%t %c&amp;lt;&amp;lt;%cYP%c&amp;gt;&amp;gt; %c%s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {$chat_log} {$yp}} {5}&lt;br /&gt;
#act {^In a page-pose to $playername, %2$} {#format {pp} {%c%t %cIn a page-pose to you,%c %c%s} {light green} {%T} {yellow} {cyan} {white} {%2}; #line log {$chat_log} {$pp}}&lt;br /&gt;
#act {^%4 gives %5 to $playername.} {&lt;br /&gt;
    #format {give} {%c%t %c&amp;lt;%cGIFT%c&amp;gt; %c%s %s} {light green} {%T} {yellow} {cyan} {yellow} {white} {%4} {%5};&lt;br /&gt;
    #line log {$chat_log} {$give}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to you, %5 %6} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #nop {#format {ppose} {%c%t %cP-P %c%s %c%s} {light green} {%T} {cyan} {yellow} {%5} {white} {%6} };&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to you and %5, %6 %7} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #nop {#format {ppose} {%c%t %cP-P %c(%s) - %c%s %c%s} {light green} {%T} {cyan} {yellow} {%5} {light blue} {%6} {white} {%7} };&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^In a page-pose to %5 and you, %6 %7} {&lt;br /&gt;
    #format {ppose} {%c%t %cP-P %c%s} {light green} {%T} {cyan} {white} {%0};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$ppose}&lt;br /&gt;
}&lt;br /&gt;
#act {^%5 pages, %2 to you.} {&lt;br /&gt;
    #nop {#py fs.battle_trigger(&amp;quot;%5&amp;quot;, %2);};&lt;br /&gt;
    #format {page} {%c%t %c%5 %cpages,%c %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$page}&lt;br /&gt;
}&lt;br /&gt;
#act {%5 pages, &amp;quot;%6&amp;quot; to you and %7.} {&lt;br /&gt;
    #format {page} {%c%t %c%s %cpages, %c&amp;quot;%s&amp;quot; to you and %s} {white} {%T} {yellow} {%5} {cyan} {white} {%6} {%7};&lt;br /&gt;
    #showme {\a\};&lt;br /&gt;
    #line log {$chat_log} {$page}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {sexytimes triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^&amp;lt;Fuck&amp;gt; %5 wants to fuck you. Type fuck %5 to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;pussy&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Fuck&amp;gt; %5 wants oral sex with you. Type fuck %5 mouth to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;mouth&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Fuck&amp;gt; %5 wants an ass fuck with you. Type fuck %5 ass to agree.} {&lt;br /&gt;
    #var sexy %5;&lt;br /&gt;
    #py fs.taken(&amp;quot;$sexy&amp;quot;, &amp;quot;ass&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!check&amp;quot;} {#py fs.secret(&amp;quot;%5&amp;quot;, &amp;quot;%5&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;Submit&amp;gt; $playername submits to %5} {&lt;br /&gt;
    #py fs.fucked()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {misc game and partying triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {Type +reward now!} {+reward}&lt;br /&gt;
#act {(You sense a new message at OOC - %1 by Avatar: +REWARD)} {+reward}&lt;br /&gt;
#act {You receive a new mission. Clear out opposition at %5!} {#send ooc My daily is: %5; #var daily_status 1}&lt;br /&gt;
#act {^gothere %30} {#var place %30; #py fs.gothere(&amp;quot;$place&amp;quot;)}&lt;br /&gt;
#act {You have been invited to join %5&#039;s party. Type pjoin %5 to accept and meet them.} {#send pjoin %5}&lt;br /&gt;
#act {%5 (Level %6) wishes to join your party. Type pinvite %5 to accept.} {#py fs.party_invite(&amp;quot;%5&amp;quot;, int(&amp;quot;$party_invite_status&amp;quot;))}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {battle and ooc game triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Targeting %4; #send target %4}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !%.aily %5&amp;quot;}{#send daily %5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !pinvite %6&amp;quot;} {#send pinvite %6}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !go %4&amp;quot;} {#var loc %4; #py fs.gothere(&amp;quot;$loc&amp;quot;)}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !auto&amp;quot;} {#send ooc Auto on.; #send auto on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !search&amp;quot;} {#send search}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !bot on&amp;quot;} {#send botmode on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !bot off&amp;quot;} {&lt;br /&gt;
    #var boton 0; &lt;br /&gt;
    #if {$bat == 1} {&lt;br /&gt;
        once botmode off;&lt;br /&gt;
        #send AUTO: Understood. Botmode will be switched off when the current battle is completed.&lt;br /&gt;
    }; &lt;br /&gt;
    #else {&lt;br /&gt;
        botmode off&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !danger&amp;quot;} {#send +haz; #send ooc Danger: $danger Pheromone: $pheromone}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !leave&amp;quot;} {#send pleave}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !home&amp;quot;} {#send home}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;$playername !help&amp;quot;} {&lt;br /&gt;
    #send @paste %5;&lt;br /&gt;
    #send For an automatic pinvite use ooc $playername !pinvite;&lt;br /&gt;
    #send To get me to leave the party use ooc $playername !leave;&lt;br /&gt;
    #send To get me to go home use ooc $playername !home;&lt;br /&gt;
    #send To get me to target an enemy use ooc !target X;&lt;br /&gt;
    #send To get me to switch auto combat on use ooc $playername !auto;&lt;br /&gt;
    #send To get me to search use ooc $playername !search;&lt;br /&gt;
    #send To get me to go somewhere use ooc $playername !go DIR where DIR is one of: [n,e,s,w,ne,nw,se,sw,u,d];&lt;br /&gt;
    #send Switch on botmode with ooc $playername !bot on;&lt;br /&gt;
    #send Switch off botmode with ooc $playername !bot off;&lt;br /&gt;
    #send You can verify my currently set danger levels with ooc $playername !danger;&lt;br /&gt;
    #send Refresh my daily with ooc !daily [daily location] at the correct location;&lt;br /&gt;
    #send .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {fighty time triggers}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {DN%5 PH%6 %7} {#var danger %5; #var pheromone %6}&lt;br /&gt;
#act {^You have been defeated!} {&lt;br /&gt;
    #if {boton == 1} {&lt;br /&gt;
        #if {bat == 1} {&lt;br /&gt;
            once #send ooc $playername !bot off&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #send ooc $playername !bot off&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #showme {\a\}&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now enabled} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light red} {white};&lt;br /&gt;
    #var boton 1;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #send search&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now disabled} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light green} {white};&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #unticker searching&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Botmode is currently on, type botmode off to disable it.} {&lt;br /&gt;
    #format {bot_status} {%cBOT%c} {light red} {white};&lt;br /&gt;
    #send +haz&lt;br /&gt;
}&lt;br /&gt;
#act {NO INFECTION DATA FOUND FOR THIS AREA.} {&lt;br /&gt;
    #showme {Safe Area, botmode being switched off};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #format {bot_status} {%cBOT%c} {light green} {white};&lt;br /&gt;
        #send {ooc $playername !bot off} &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Search&amp;gt; $playername searches for trouble.} {#delay {search_notification} {#line log {$stats_log} {Time to search again!}} {60}}&lt;br /&gt;
#act {^&amp;lt;Random Encounter&amp;gt; $playername is ambushed!} {&lt;br /&gt;
    #showme AMBUSHED;&lt;br /&gt;
    #var ambushed 1;&lt;br /&gt;
    #showme BATTLE STARTED;&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #delay {ambushed} {#var ambushed 0} {60};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;started&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^== ROUND %5 ==} {&lt;br /&gt;
    #var bat 1;&lt;br /&gt;
    #format {round} {%c== ROUND %5 ==} {white};&lt;br /&gt;
    #line log {$stats_log} {$round};&lt;br /&gt;
    #send look&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;/////// Battle %5! ///////&amp;gt;} {&lt;br /&gt;
    #var bat 0;&lt;br /&gt;
    #var ambushed 0;&lt;br /&gt;
    #py fs.config.feral_list = {};&lt;br /&gt;
    #send goic;&lt;br /&gt;
    #send $once_command; #var once_command nop;&lt;br /&gt;
    #py fs.config.feral_list = {};&lt;br /&gt;
    #if {$daily_status == 1} {#send {quest}};&lt;br /&gt;
    #line log {$stats_log} {Battle %5!};&lt;br /&gt;
    #py fs.battle_timer(&amp;quot;finished&amp;quot;);&lt;br /&gt;
    #send fprompt;&lt;br /&gt;
    #send mprompt&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&lt;br /&gt;
    #var hpnow %6; #var hpmax %7;&lt;br /&gt;
    #var ennow %10; #var enmax %11;&lt;br /&gt;
    #math {hpper} {($hpnow/$hpmax) * 100.00};&lt;br /&gt;
    #math {enper} {($ennow/$enmax) * 100.00};&lt;br /&gt;
    #if {$boton == 1} {&lt;br /&gt;
        #if {$bat == 0} {&lt;br /&gt;
            #nop {#showme {NOT IN BATTLE}};&lt;br /&gt;
            #if {$hpper &amp;gt;= $hptop &amp;amp;&amp;amp; $enper &amp;gt;= $entop &amp;amp;&amp;amp; $ambushed == 0} {&lt;br /&gt;
                #undelay {search_time};&lt;br /&gt;
                #delay {search_time} {#send search} {10}&lt;br /&gt;
            };&lt;br /&gt;
            #else {&lt;br /&gt;
                #undelay {waiting};&lt;br /&gt;
                #delay {waiting} {#send mprompt} {10}&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
        #else {&lt;br /&gt;
            #if {$hpper &amp;lt;= $submit} {&lt;br /&gt;
                #send submit $targeting&lt;br /&gt;
            };&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #if {$hpper &amp;lt; $MAX || $enper &amp;lt; $MAX} {&lt;br /&gt;
        #showme STATUS: $hitpoints $energypoints $hpper $enper&lt;br /&gt;
    };&lt;br /&gt;
    time&lt;br /&gt;
}&lt;br /&gt;
#act {^Health: %5 -&amp;gt; %6/%7} {&lt;br /&gt;
    #var hpnow %5; #var hpmax %6;&lt;br /&gt;
    #format hitpoints {%cHP %d/%d%c} {light green} {$hpnow} {$hpmax} {white};&lt;br /&gt;
    #send mprompt;&lt;br /&gt;
    #showme HEALTH&lt;br /&gt;
}&lt;br /&gt;
#act {^Energy: %5 -&amp;gt; %6/%7 --} {&lt;br /&gt;
    #var ennow %5; #var enmax %6;&lt;br /&gt;
    #format energypoints {%cEN %d/%d%c} {light blue} {$ennow} {$enmax} {white};&lt;br /&gt;
    #send mprompt;&lt;br /&gt;
    #showme ENERGY&lt;br /&gt;
}&lt;br /&gt;
#act {Players: %6} {&lt;br /&gt;
    #var player_list %6;&lt;br /&gt;
    #py fs.create_player_list(&amp;quot;$player_list&amp;quot;);&lt;br /&gt;
    #send fprompt;&lt;br /&gt;
    #send mprompt&lt;br /&gt;
}&lt;br /&gt;
#act {^Things: %6} {&lt;br /&gt;
    #var ferals %6;&lt;br /&gt;
    #py fs.create_feral_list(&amp;quot;$ferals&amp;quot;);&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Summon&amp;gt; Pet: %5 appears at %6. %7 side.} {&lt;br /&gt;
    #showme PET SUMMONED, RETARGETING;&lt;br /&gt;
    #var targeting %6;&lt;br /&gt;
    #send Target $targeting;&lt;br /&gt;
    #py fs.config.current_target = int($targeting);&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You make progress towards the daily mission(%5).} {&lt;br /&gt;
    #var completion %5;&lt;br /&gt;
    #if {$messages == 1} {&lt;br /&gt;
        #send ooc Mission completion: $completion;&lt;br /&gt;
        #send quest&lt;br /&gt;
    };&lt;br /&gt;
    #if {$beeps == 1} {&lt;br /&gt;
        #showme {\a\}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {^Your daily mission is in %5: [    %6   ]} {&lt;br /&gt;
    #var reward_lvl %6;&lt;br /&gt;
    #line log {$stats_log} {Reward lvl: $reward_lvl};&lt;br /&gt;
    #if {$daily_reward == &amp;quot;400%&amp;quot;} {&lt;br /&gt;
        #send ooc AUTO: 400% reached! Activate speeeeeedmode!;&lt;br /&gt;
        #var daily_status 0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You have earned a difficulty ratio of %5, this earns you %6 reward tokens!} {&lt;br /&gt;
    #line log {$stats_log} {Got %6 tokens from daily mission!};&lt;br /&gt;
    #var completion;&lt;br /&gt;
    #var reward_lvl&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You have completed the mission!} {&lt;br /&gt;
    #delay {daily_refresh} {#send ooc AUTO: Time to get a new daily!} {64800};&lt;br /&gt;
    #var daily_status 0;&lt;br /&gt;
    #var daily_complete $clock;&lt;br /&gt;
    #py fs.daily_done()&lt;br /&gt;
}&lt;br /&gt;
#act {XP Gained: %5  --  Freecred Gained: %6} {&lt;br /&gt;
    #format {win} {%cXP: %5 FC: %6} {yellow};&lt;br /&gt;
    #line log {$stats_log} {$win}&lt;br /&gt;
}&lt;br /&gt;
#act {^Somewhere on the muck, %5 has disconnected.} {#nop} {5}&lt;br /&gt;
#act {^%5 has disconnected.} {&lt;br /&gt;
    #var boton 0;&lt;br /&gt;
    #format {disconnected} {%c%t %c%5 disconnected!%c} {light green} {$clock} {light red} {white};&lt;br /&gt;
    #line log {$chat_log} {$disconnected};&lt;br /&gt;
    #if {$bat == 1 &amp;amp;&amp;amp; $boton == 1} {&lt;br /&gt;
        once botmode off; &lt;br /&gt;
        #send {ooc AUTO: %5 has dropped, botmode will be automatically switched off at the end of the battle.}&lt;br /&gt;
    }&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;Salvage&amp;gt; $playername manages to salvage %5 %6 salvage!} {&lt;br /&gt;
    #format {sal} {%cSalvage: %5 %6} {red};&lt;br /&gt;
    #line log {$stats_log} {$sal}&lt;br /&gt;
}&lt;br /&gt;
#act {^What a find! $playername&#039;s keen grasp of the scholarly leads them to find a %5! It&#039;s worth %6 Freecreds!} {#line log {$stats_log} {Item: %6FC}}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Dump battle damage to stats log.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7 is cured of %8!} {#format {effect} {%c%6 %c%8%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7 affects $playername!} {#format {effect} {%c%6%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage!} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage! (%10)} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; %8 takes %9 damage! (%10)} {#format {effect} {%c%6 %c%9%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; Pet: %7 %8(%9) takes %10 damage!} {#format {effect} {%c%6 %c%10%c} {magenta} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%4]%5($playername)&amp;gt;&amp;lt;%6&amp;gt; %7. %8 takes %9 damage!} {#format {effect} {%c%5 %c%6 %c%9%c} {magenta} {green} {red} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;%5($playername)&amp;gt;&amp;lt;%6&amp;gt; %7 is healed for %8 damage!} {#format {effect} {%c%5 %c%6 %8%c} {magenta} {green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;$playername&amp;gt;&amp;lt;%5&amp;gt; %6 is healed for %7 damage!} {#format {effect} {%c%5 %c%7 %c} {magenta} {light green} {white}; #line log {$stats_log} {$effect}}&lt;br /&gt;
#act {^&amp;lt;[%5%]$playername&amp;gt;&amp;lt;%6&amp;gt; $playername is led astray by %8. %9 and loses momentum.} {#nop}&lt;br /&gt;
#act {^&amp;lt;Vampiric&amp;gt; $playername draws %5 points of regeneration.} #format {effect} {%cVampiric %c%5 %c} {magenta} {light green} {white}; #line log {$stats_log} {$effect}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
&lt;br /&gt;
#function {stats_formatting} {&lt;br /&gt;
    #nop {input vars: name;hp_now;hp_max;en_now;en_max;name_colour;list_name};&lt;br /&gt;
    #math {hp_per} {(%2/%3) * 100.00};&lt;br /&gt;
    #math {en_per} {(%4/%5) * 100.00};&lt;br /&gt;
    #var hp_col @colourise{$hp_per};&lt;br /&gt;
    #var en_col @colourise{$en_per};&lt;br /&gt;
    #format stats {%s%.22s %s%s/%s %s%s/%s} {%6} {%1} {$hp_col} {%2} {%3} {$en_col} {%4} {%5};&lt;br /&gt;
    #list {%7} {add} {$stats}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#function {colourise} {&lt;br /&gt;
    #if {%0 &amp;gt;= 100} {&lt;br /&gt;
        #nop {bold cyan};&lt;br /&gt;
        #return &amp;lt;168&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 70} {&lt;br /&gt;
        #nop {bold blue};&lt;br /&gt;
        #return &amp;lt;148&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 50} {&lt;br /&gt;
        #nop {bold green};&lt;br /&gt;
        #return &amp;lt;128&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 30} {&lt;br /&gt;
        #nop {bright yellow};&lt;br /&gt;
        #return &amp;lt;138&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 20} {&lt;br /&gt;
        #nop {bold white};&lt;br /&gt;
        #return &amp;lt;178&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #elseif {%0 &amp;gt; 10} {&lt;br /&gt;
        #nop {bright red};&lt;br /&gt;
        #return &amp;lt;118&amp;gt;&lt;br /&gt;
    };&lt;br /&gt;
    #else {&lt;br /&gt;
        #nop {blink red};&lt;br /&gt;
        #return &amp;lt;018&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#nop {Feral pets}&lt;br /&gt;
#act {^Pet: %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format feral_pet_name {Pet: %s} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$feral_pet_name;%7;%8;%9;%10;&amp;lt;218&amp;gt;;fpet}&lt;br /&gt;
} {5}&lt;br /&gt;
#nop {Numbered Ferals}&lt;br /&gt;
#act {%5. %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format feral_name {%s. %s} {%5} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$feral_name;%7;%8;%9;%10;&amp;lt;118&amp;gt;;fer}&lt;br /&gt;
}&lt;br /&gt;
#nop {Player pets}&lt;br /&gt;
#act {%5(%6)%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #format pet_name {%s(%s)} {%5} {%6};&lt;br /&gt;
    #var stats @stats_formatting{$pet_name;%7;%8;%9;%10;&amp;lt;138&amp;gt;;pet}&lt;br /&gt;
} {6}&lt;br /&gt;
#nop {Primes - they don&#039;t have a number so add one.}&lt;br /&gt;
#act {Prime %6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var stats @stats_formatting{%6;%7;%8;%9;%10;&amp;lt;118&amp;gt;;fer}&lt;br /&gt;
} {5}&lt;br /&gt;
#nop {Players}&lt;br /&gt;
#act {%6%s&amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var stats @stats_formatting{%6;%7;%8;%9;%10;&amp;lt;128&amp;gt;;ply}&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {&lt;br /&gt;
    #foreach {$fpet[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$fer[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$pet[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
    #foreach {$ply[%*]} {temp} {#list {stats_list} {add} {$temp}};&lt;br /&gt;
&lt;br /&gt;
    #list {fpet} {size} {fpet_list_size};&lt;br /&gt;
    #list {fer} {size} {fer_list_size};&lt;br /&gt;
    #list {pet} {size} {pet_list_size};&lt;br /&gt;
    #list {ply} {size} {ply_list_size};&lt;br /&gt;
    #format summary {&amp;lt;878&amp;gt;[P:%d p:%d F:%d f:%d] &amp;lt;168&amp;gt;0&amp;lt;148&amp;gt;98&amp;lt;128&amp;gt;76&amp;lt;138&amp;gt;54&amp;lt;178&amp;gt;3&amp;lt;118&amp;gt;2&amp;lt;018&amp;gt;1} {$ply_list_size} {$pet_list_size} {$fer_list_size} {$fpet_list_size};&lt;br /&gt;
    #list {stats_list} {add} {$summary};&lt;br /&gt;
    &lt;br /&gt;
    #math {line_buffer_size} {30 - $stats_list_size};&lt;br /&gt;
    #loop 1 $line_buffer_size blah {#list {stats_list} {insert} {1} { }};&lt;br /&gt;
    #foreach {$stats_list[%*]} {temp} {#line log {$hp_log} {$temp}};&lt;br /&gt;
    #list {fpet} {clear};&lt;br /&gt;
    #list {fer} {clear};&lt;br /&gt;
    #list {pet} {clear};&lt;br /&gt;
    #list {ply} {clear};&lt;br /&gt;
    #list {stats_list} {clear};&lt;br /&gt;
    #sys echo &amp;quot; &amp;quot; &amp;gt; &#039;$hp_log&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Auto targeting}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %3. %4 is defeated by %5!} {&lt;br /&gt;
    #nop {FERAL};&lt;br /&gt;
    #var tgt_no %3; #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%3 %c(%5)%c} {red} {cyan} {white};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #send look;&lt;br /&gt;
    #py fs.target_feral(int($target_mode))&lt;br /&gt;
} {5}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %4(%5) is defeated by %6!} {&lt;br /&gt;
    #nop {PET};&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 Pet down!} {cyan};&lt;br /&gt;
    #line log {$stats_log} {$pwr}&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; Prime %4 is defeated by %5!} {&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 has fallen! (%5)} {light red};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #py fs.player_down_check(&amp;quot;$tgt_name&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {^&amp;lt;Power&amp;gt; %4 is defeated by %5!} {&lt;br /&gt;
    #nop {PLAYER};&lt;br /&gt;
    #var tgt_name %4;&lt;br /&gt;
    #format {pwr} {%c%4 has fallen!} {light red};&lt;br /&gt;
    #line log {$stats_log} {$pwr};&lt;br /&gt;
    #py fs.player_down_check(&amp;quot;$tgt_name&amp;quot;)&lt;br /&gt;
} {8}&lt;br /&gt;
&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {Status stuff}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {--Contents of %6--} {&lt;br /&gt;
    #format current_location {%c%s} {white} {%6}&lt;br /&gt;
} {1}&lt;br /&gt;
&lt;br /&gt;
#gag {^[Tick] %5}&lt;br /&gt;
#act {^[Tick] Avatar  **Global Tick - %5 load**} {&lt;br /&gt;
    #format load {%cLD %s%c} {red} {%5} {white}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#function {bar_formatting} {&lt;br /&gt;
    #math {hp_per} {(%2/%3) * 100.00};&lt;br /&gt;
    #math {en_per} {(%4/%5) * 100.00};&lt;br /&gt;
    #var hp_col @colourise{$hp_per};&lt;br /&gt;
    #var en_col @colourise{$en_per};&lt;br /&gt;
    #format bar_stats {%c%s %s%s/%s %s%s/%s} {%6} {%1} {$hp_col} {%2} {%3} {$en_col} {%4} {%5};&lt;br /&gt;
    #return $bar_stats&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#prompt {^&amp;lt;%6/%7 hp %10 /%11 m 0 /0 mv} {&amp;lt;100&amp;gt;@bar_formatting{$playername:;%6;%7;%10;%11;light magenta}&amp;lt;178&amp;gt; - $current_location - $load - $party_invite_status_text - $bot_status - $clock $completion $reward_lvl}&lt;br /&gt;
#send mprompt&lt;br /&gt;
#send +haz&lt;br /&gt;
daily?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main python script:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
# Remember to double braces - they&#039;re used in string comprehension!&lt;br /&gt;
import datetime&lt;br /&gt;
import cPickle as pickle&lt;br /&gt;
import random&lt;br /&gt;
import re&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import config&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ses = &amp;quot;fs&amp;quot;&lt;br /&gt;
config.time_check = time.clock()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def read_vars():&lt;br /&gt;
    filename = &amp;quot;/home/anwen/tt/fs_vars_{plyr}&amp;quot;.format(plyr=config.player.lower())&lt;br /&gt;
    #print(filename)&lt;br /&gt;
    f = open(filename, &amp;quot;rb&amp;quot;)&lt;br /&gt;
    config.party_list, config.next_daily = pickle.load(f)&lt;br /&gt;
    f.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# write variables to a pickle&lt;br /&gt;
def write_vars():&lt;br /&gt;
    filename = &amp;quot;/home/anwen/tt/fs_vars_{0}&amp;quot;.format(config.player.lower())&lt;br /&gt;
    try:&lt;br /&gt;
        f = open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
        pickle.dump([config.party_list, config.next_daily], f)&lt;br /&gt;
        f.close()&lt;br /&gt;
        #print(&amp;quot;Data successfully written.&amp;quot;)&lt;br /&gt;
    except:&lt;br /&gt;
        #print(&amp;quot;Some data not found.&amp;quot;)&lt;br /&gt;
        f = open(filename, &amp;quot;wb&amp;quot;)&lt;br /&gt;
        config.party_list = []&lt;br /&gt;
        config.last_daily = 0&lt;br /&gt;
        pickle.dump([config.party_list, config.next_daily], f)&lt;br /&gt;
        f.close()&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# Battle related functions&lt;br /&gt;
# =============================================================================&lt;br /&gt;
def create_feral_list(ferals):&lt;br /&gt;
    &#039;&#039;&#039;Compile a dict of ferals based on the contents of the &amp;quot;Things&amp;quot; list.&lt;br /&gt;
    Format is {feral_number: feral_name}&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    config.feral_list = {}&lt;br /&gt;
    temp_list = ferals.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
    for item in temp_list:&lt;br /&gt;
        item = item.strip()&lt;br /&gt;
        if &amp;quot;Pet:&amp;quot; in item:&lt;br /&gt;
            # Ignore player pets, NPCs or enemy pets.&lt;br /&gt;
            if config.debug: print(&amp;quot;pet: {0}&amp;quot;.format(item))&lt;br /&gt;
            continue&lt;br /&gt;
        elif &amp;quot;(!)&amp;quot; in item:&lt;br /&gt;
            # Game NPC&#039;s and items&lt;br /&gt;
            if config.debug: print(&amp;quot;player pet: {0}&amp;quot;.format(item))&lt;br /&gt;
            continue&lt;br /&gt;
        elif &amp;quot;. &amp;quot; in item:&lt;br /&gt;
            # It&#039;s a feral, add it to the dict.&lt;br /&gt;
            if config.debug: print(&amp;quot;Feral! {0}&amp;quot;.format(item))&lt;br /&gt;
            ind, name = item.split(&amp;quot;. &amp;quot;)  # format is 1. name&lt;br /&gt;
            config.feral_list[int(ind)] = name&lt;br /&gt;
        elif &amp;quot;Prime&amp;quot; in item:&lt;br /&gt;
            #special cases for prime fights.&lt;br /&gt;
            name = item[6:]&lt;br /&gt;
            config.feral_list[&amp;quot;Prime&amp;quot;] = name&lt;br /&gt;
        elif &amp;quot;backup&amp;quot; in item:&lt;br /&gt;
            name, ind = item.split(&amp;quot; backup &amp;quot;)&lt;br /&gt;
            config.feral_list[int(ind)] = name&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;not sure about this one&amp;quot;)&lt;br /&gt;
            print(item)&lt;br /&gt;
            continue&lt;br /&gt;
    print(config.feral_list)&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
def target_feral(target_mode):&lt;br /&gt;
    &#039;&#039;&#039;Select a target from the Things list. target_mode 0 broadcasts to all &lt;br /&gt;
    players who react to ooc targeting messages. Target mode 1 is player only.&lt;br /&gt;
    &#039;&#039;&#039;&lt;br /&gt;
    # Check that there&#039;s something in the list:&lt;br /&gt;
    if len(config.feral_list) == 0:&lt;br /&gt;
        #print(&amp;quot;Nothing in feral_list&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
    # Check if the target feral is still there:&lt;br /&gt;
    if config.current_target in config.feral_list.keys():&lt;br /&gt;
        #print(&amp;quot;Still targeting feral: {0} {1}&amp;quot;.format(config.current_target, config.feral_list[config.current_target]))&lt;br /&gt;
        return None&lt;br /&gt;
    # Determine if the feral is a priority target based on its name:&lt;br /&gt;
    for ii in config.feral_list.keys():&lt;br /&gt;
        for item in config.feral_priority:&lt;br /&gt;
            if item in config.feral_list[ii]:&lt;br /&gt;
                config.current_target = ii&lt;br /&gt;
                #print(&amp;quot;targeting {0} {1}&amp;quot;.format(ii, config.feral_list[ii]))&lt;br /&gt;
                if target_mode == 1:&lt;br /&gt;
                    command = [&amp;quot;#send ooc !target {blarg}.&amp;quot;.format(blarg=ii)]&lt;br /&gt;
                else:&lt;br /&gt;
                    command = [&amp;quot;#send target {blarg}. &amp;quot;.format(blarg=ii)]&lt;br /&gt;
                output(ses, command)&lt;br /&gt;
                return&lt;br /&gt;
    # Otherwise just target the lowest numbered feral:&lt;br /&gt;
    feral = config.feral_list.keys()[0]&lt;br /&gt;
    if feral != config.current_target:&lt;br /&gt;
        config.current_target = feral&lt;br /&gt;
        if target_mode == 1:&lt;br /&gt;
            command = [&amp;quot;#send ooc !target {blarg}.&amp;quot;.format(blarg=feral)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#send target {blarg}. &amp;quot;.format(blarg=feral)]&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def create_player_list(players):&lt;br /&gt;
    temp_list = players.split(&amp;quot;,&amp;quot;)&lt;br /&gt;
    config.player_list = []&lt;br /&gt;
    for item in temp_list:&lt;br /&gt;
        item = item.split(&amp;quot;] &amp;quot;)[1]&lt;br /&gt;
        item = item.strip()&lt;br /&gt;
        if &amp;quot;[&amp;quot; in item:&lt;br /&gt;
            item = item.split(&amp;quot;[&amp;quot;)[0]&lt;br /&gt;
        # Ignore &amp;quot;me&amp;quot; and add other players to list&lt;br /&gt;
        if not re.match(config.player, item):&lt;br /&gt;
            config.player_list.append(item)&lt;br /&gt;
    config.player_list.append(config.player)&lt;br /&gt;
    #print(config.player_list)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def battle_timer(status):&lt;br /&gt;
    if status == &amp;quot;started&amp;quot;:&lt;br /&gt;
        config.battle_started = datetime.datetime.now()&lt;br /&gt;
    else:&lt;br /&gt;
        a = datetime.datetime.now()&lt;br /&gt;
        try:&lt;br /&gt;
            diff = a - config.battle_started&lt;br /&gt;
        except NameError:&lt;br /&gt;
            #print(&amp;quot;Doesn&#039;t look like the battle started!&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
        command = [&amp;quot;#showme Battle Duration: {{{0}}}&amp;quot;.format(diff)]&lt;br /&gt;
        #print(&amp;quot;TEST #line log {{stats_{0}}} {1}&amp;quot;.format(config.player.lower(), diff))&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# misc stuff&lt;br /&gt;
# =============================================================================&lt;br /&gt;
def daily_done():&lt;br /&gt;
    &#039;&#039;&#039;saves time of completion of last daily&#039;&#039;&#039;&lt;br /&gt;
    config.next_daily = datetime.datetime.now() + datetime.timedelta(hours=18)&lt;br /&gt;
    write_vars()&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def daily_timer():&lt;br /&gt;
    #print(config.next_daily)&lt;br /&gt;
    if config.next_daily == 0:&lt;br /&gt;
        command = [&amp;quot;#showme No daily data saved!&amp;quot;]&lt;br /&gt;
        output(ses, command)&lt;br /&gt;
        return&lt;br /&gt;
    time_diff = config.next_daily - datetime.datetime.now()&lt;br /&gt;
    hours, rem = divmod(time_diff.total_seconds(), 3600)&lt;br /&gt;
    mins, secs = divmod(rem, 60)&lt;br /&gt;
    #print(&amp;quot;Time check: {0}:{1}:{2}&amp;quot;.format(hours, mins, secs))&lt;br /&gt;
    if time_diff.total_seconds() &amp;lt;= 0:&lt;br /&gt;
        command = [&amp;quot;#var next_daily Ready to get next daily mission.&amp;quot;, &amp;quot;#showme Go get your daily!&amp;quot;]&lt;br /&gt;
    else:&lt;br /&gt;
        a = &amp;quot;{0}h {1}m {2}s left until daily available.&amp;quot;.format(hours, mins, secs)&lt;br /&gt;
        command = [&amp;quot;#var next_daily {0}&amp;quot;.format(a), &amp;quot;#showme {0}&amp;quot;.format(a)]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def edit_descrip(location):&lt;br /&gt;
    msgs = config.descriptions[config.player.lower()]&lt;br /&gt;
&lt;br /&gt;
    #delete current description and write new descrip:&lt;br /&gt;
    if &amp;quot;home&amp;quot; in location:&lt;br /&gt;
        command = msgs[&amp;quot;home&amp;quot;]&lt;br /&gt;
    elif &amp;quot;away&amp;quot; in location:&lt;br /&gt;
        command = msgs[&amp;quot;away&amp;quot;]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gothere(location):&lt;br /&gt;
    if location.lower() in [&amp;quot;n&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;s&amp;quot;,&amp;quot;w&amp;quot;,&amp;quot;ne&amp;quot;,&amp;quot;nw&amp;quot;,&amp;quot;se&amp;quot;,&amp;quot;sw&amp;quot;,&amp;quot;u&amp;quot;,&amp;quot;d&amp;quot;]:&lt;br /&gt;
        command = [&amp;quot;#send {loc}&amp;quot;.format(loc=location)]&lt;br /&gt;
    elif location in config.places:&lt;br /&gt;
        command = config.places[location]&lt;br /&gt;
    else:&lt;br /&gt;
        command = [&amp;quot;#showme I don&#039;t know how to get there!&amp;quot;]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def party_invite(person, status):&lt;br /&gt;
    if status == 2:  # open to invites&lt;br /&gt;
        command = [&amp;quot;#send pinvite {per}&amp;quot;.format(per=person)]&lt;br /&gt;
    elif status == 0:  # closed to invites&lt;br /&gt;
        command = [&amp;quot;#send page {per}=AUTOMSG: Sorry, not inviting at present&amp;quot;.format(per=person)]&lt;br /&gt;
    elif status == 1:  # invite if trusted&lt;br /&gt;
        if person in config.party_list:&lt;br /&gt;
            command = [&amp;quot;#send pinvite {per}&amp;quot;.format(per=person)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#send page {per}=AUTOMSG: Sorry, you are not in my autoinvite list, please wait a few moments.&amp;quot;.format(per=person)]&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def party_list(task, person):&lt;br /&gt;
    a = str(config.party_list)&lt;br /&gt;
    if task == &amp;quot;add&amp;quot;:&lt;br /&gt;
        if person not in config.party_list:&lt;br /&gt;
            config.party_list.append(person)&lt;br /&gt;
            command = [&amp;quot;#showme {per} added to party list!&amp;quot;.format(per=person)]&lt;br /&gt;
        else:&lt;br /&gt;
            command = [&amp;quot;#showme {per} already in the party list! {check}&amp;quot;.format(per=person, check=a)]&lt;br /&gt;
    elif task == &amp;quot;del&amp;quot; and person in config.party_list:&lt;br /&gt;
        try:&lt;br /&gt;
            config.party_list.remove(person)&lt;br /&gt;
            command = [&amp;quot;#showme {per} removed from party list!&amp;quot;.format(per=person),&lt;br /&gt;
                       &amp;quot;#showme {check}&amp;quot;.format(check=str(config.party_list))&lt;br /&gt;
                      ]&lt;br /&gt;
        except:&lt;br /&gt;
            command = [&amp;quot;#showme Couldn&#039;t find this person. {check}&amp;quot;.format(check=a)]&lt;br /&gt;
    elif task == &amp;quot;check&amp;quot;:&lt;br /&gt;
        command = [&amp;quot;#showme {check}&amp;quot;.format(check=a)]&lt;br /&gt;
    else:&lt;br /&gt;
        command = [&amp;quot;#showme What? {task}&amp;quot;.format(task=task)]&lt;br /&gt;
    write_vars()&lt;br /&gt;
    output(ses, command)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# =============================================================================&lt;br /&gt;
# Output to tintin&lt;br /&gt;
# =============================================================================&lt;br /&gt;
&lt;br /&gt;
# Take the input commands and pass them to tt++&lt;br /&gt;
def output(ses, command):&lt;br /&gt;
    for item in command:&lt;br /&gt;
        #print(&amp;quot;#py tintin ({ses}) #showme Sending: {cmd}&amp;quot;.format(ses=ses, cmd=item))&lt;br /&gt;
        print(&amp;quot;#py tintin ({ses}) {cmd}&amp;quot;.format(ses=ses, cmd=item))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
config script:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
#! /usr/bin/env python&lt;br /&gt;
global __DBNAME__&lt;br /&gt;
&lt;br /&gt;
debug = False&lt;br /&gt;
hp = 90&lt;br /&gt;
en = 90&lt;br /&gt;
submit = 10&lt;br /&gt;
next_daily = 0&lt;br /&gt;
feral_list = {}&lt;br /&gt;
current_target = 0&lt;br /&gt;
player_list = []&lt;br /&gt;
player_stats = []&lt;br /&gt;
pets_stats = []&lt;br /&gt;
feral_stats = []&lt;br /&gt;
feral_pets_stats = []&lt;br /&gt;
feral_priority = [&#039;Prime&#039;, &#039;Goo Girl&#039;, &#039;Perplexing&#039;, &#039;Front and Center&#039;, &#039;Regenerator&#039;]&lt;br /&gt;
&lt;br /&gt;
places = {&amp;quot;Ice_Caves&amp;quot; : [&amp;quot;#20 e&amp;quot;, &amp;quot;#2 s&amp;quot;, &amp;quot;#2 e&amp;quot;, &amp;quot;#1 s&amp;quot;, &amp;quot;#3 e&amp;quot;, &amp;quot;#1 n&amp;quot;,&lt;br /&gt;
                         &amp;quot;#5 e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;,&lt;br /&gt;
                         &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;#3 n&amp;quot;,&lt;br /&gt;
                         &amp;quot;e&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;d&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;Scrublands&amp;quot; : [&amp;quot;#20 e&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;#2 e&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;#3 e&amp;quot;, &amp;quot;n&amp;quot;,&lt;br /&gt;
                          &amp;quot;#5 e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;,&lt;br /&gt;
                          &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;sw&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;s&amp;quot;,&lt;br /&gt;
                          &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;s&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
          &amp;quot;Peaks&amp;quot; : [&amp;quot;w&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;w&amp;quot;]&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
anwen_msg = {&amp;quot;home&amp;quot; : [&amp;quot;#send editplayer&amp;quot;, &amp;quot;2&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;A small ornate bell hangs from a ribbon attached above Anwen&#039;s tailbone. It emits an etherial light.&amp;quot;,&lt;br /&gt;
                   &amp;quot;On close inspection it has the word &#039;Yes&#039; scribed in it in flowing letters.&amp;quot;,&lt;br /&gt;
                   &amp;quot;[if [player] is [looker]][line break][player]&#039;s current mutation-strains are:[line break]head: [stat Mutation/head of [player]][line break]torso: [stat Mutation/torso of [player]][line break]arms: [stat Mutation/arms of [player]][line break]legs: [stat Mutation/legs of [player]][line break]skin: [stat Mutation/skin of [player]][line break]ass: [stat Mutation/ass of [player]][line break]groin: [stat Mutation/cock of [player]][end if]&amp;quot;,&lt;br /&gt;
                   &amp;quot;,end&amp;quot;, &amp;quot;q&amp;quot;&lt;br /&gt;
                 ],&lt;br /&gt;
            &amp;quot;away&amp;quot; : [&amp;quot;#send editplayer&amp;quot;, &amp;quot;2&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;, &amp;quot;.del 1&amp;quot;,&lt;br /&gt;
                   &amp;quot;Anwen wears a small, black, tight-fitting shirt adorned with The Red Court logo. A pair of tight shorts serve to cover Anwen&#039;s modesty.&amp;quot;,&lt;br /&gt;
                   &amp;quot;A small ornate bell hangs from a ribbon attached above Anwen&#039;s tailbone. It emits an etherial light. On close inspection it has the word &#039;yes&#039; scribed in it in flowing letters.&amp;quot;,&lt;br /&gt;
                   &amp;quot;Whatever might that mean?&amp;quot;,&lt;br /&gt;
                   &amp;quot;[if [player] is [looker]][line break][player]&#039;s current mutation-strains are:[line break]head: [stat Mutation/head of [player]][line break]torso: [stat Mutation/torso of [player]][line break]arms: [stat Mutation/arms of [player]][line break]legs: [stat Mutation/legs of [player]][line break]skin: [stat Mutation/skin of [player]][line break]ass: [stat Mutation/ass of [player]][line break]groin: [stat Mutation/cock of [player]][end if]&amp;quot;,&lt;br /&gt;
                   &amp;quot;,end&amp;quot;, &amp;quot;q&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this is useful and wish you all the best.&lt;br /&gt;
Your friend, Anwen :3&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Leeching&amp;diff=308904</id>
		<title>Leeching</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Leeching&amp;diff=308904"/>
		<updated>2015-08-20T14:13:14Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Recipe Modifier|name=Leeching|desc=This seems to be quite good at taking things away from others. Perhaps one might say, it&#039;s a little bit greedy.|cred=200%|xp=25%|ingredients=None|salvage=Rare Edible X 1|istats=100% chance of Vampiric at magnitude 3 for 3 rounds.&amp;lt;br&amp;gt;Charge of -10%&amp;lt;br&amp;gt;100% chance of VampiricDebuff at magnitude 2 for 10 rounds.&amp;lt;br&amp;gt;Energy of +20%&amp;lt;br&amp;gt;100% chance of Vampiric at magnitude 1 for 10 rounds.&amp;lt;br&amp;gt;Status Duration of +20%&amp;lt;br&amp;gt;Status Mag of +20%&amp;lt;br&amp;gt;Upkeep of 5&amp;lt;br&amp;gt;Vampiric of +10|skills=None}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that Leeching is not available to purchase, it appears to be a +reward or possibly a randomly dropped Boss reward.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307198</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307198"/>
		<updated>2015-08-16T23:12:49Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is a suggestion/request of sorts. The intention is to allow players to parse battle output more reliably.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable by eye. My current solution to parsing fprompt is to capture each line, format it then add it to an array.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,PLAYERS,rgb,Anwen 11519/11519 28/98,PETS,rgb,GRIND(Anwen) 8798/8798 54/106,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,END&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307197</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307197"/>
		<updated>2015-08-16T23:11:04Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is a suggestion/request of sorts. The intention is to allow players to parse battle output more reliably.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable by eye. My current solution to parsing fprompt is to capture each line, format it then add it to an array.&lt;br /&gt;
Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png|900px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,PLAYERS,rgb,Anwen 11519/11519 28/98,PETS,rgb,GRIND(Anwen) 8798/8798 54/106,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,END&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307196</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307196"/>
		<updated>2015-08-16T23:02:30Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is a suggestion/request of sorts. The intention is to allow players to parse battle output more reliably.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable by eye. My current solution to parsing fprompt is to capture each line, format it then add it to an array. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,PLAYERS,rgb,Anwen 11519/11519 28/98,PETS,rgb,GRIND(Anwen) 8798/8798 54/106,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,END&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307194</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307194"/>
		<updated>2015-08-16T22:55:54Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is a suggestion/request of sorts. The intention is to allow players to parse battle output more reliably.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable by eye. My current solution to parsing fprompt is to capture each line, format it then add it to an array. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,ENEMYPETS,PLAYERS,rgb,Anwen 11519/11519 28/98,PETS,rgb,GRIND(Anwen) 8798/8798 54/106,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,END&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307193</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307193"/>
		<updated>2015-08-16T22:53:26Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is a suggestion/request of sorts. The intention is to allow players to parse battle output more reliably.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable by eye. My current solution to parsing fprompt is to capture each line, format it then add it to an array. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,rgb,12. Accelerated Half-Dragon Stripper 13457/13585 93/100,rgb,11. Half-Dragon Stripper Caregiver 13099/13585 89/100,ENEMYPETS,PLAYERS,rgb,Aluthal 11713/12091 100/100,rgb,Anwen 11519/11519 28/98,rgb,Hope 14557/14557 49/92,PETS,rgb,GRIND(Anwen) 8798/8798 54/106, rgb,Nina(Hope) 11607/11607 129/150,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,rgb,Pheromone Technician(!) 0/104 100/100,rgb,Terminal 0/104 -140/100,END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307192</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307192"/>
		<updated>2015-08-16T22:48:20Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a suggestion/request of sorts. The intention is to allow players to parse battle output.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid and isn&#039;t terribly difficult to parse in MUSHClient or tintin++. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable. My solution to parsing fprompt is to use the following triggers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt and pass to python for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^Pet: %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;1&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
} {5}&lt;br /&gt;
#act {%5. %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_num %5;&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;$feral_num&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {%6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var plyr_name %6;&lt;br /&gt;
    #var plyr_hp %7;&lt;br /&gt;
    #var plyr_maxhp %8;&lt;br /&gt;
    #var plyr_en %9;&lt;br /&gt;
    #var plyr_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;0&amp;quot;, &amp;quot;$plyr_name&amp;quot;, &amp;quot;$plyr_hp&amp;quot;, &amp;quot;$plyr_maxhp&amp;quot;, &amp;quot;$plyr_en&amp;quot;, &amp;quot;$plyr_max_en&amp;quot;)&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {#py fs.stats_output(&amp;quot;99&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;)}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, each line of fprompt is captured and categorised until &amp;lt;ENDLIST&amp;gt; is detected, the lines are then formatted and outputted to the screen. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,rgb,12. Accelerated Half-Dragon Stripper 13457/13585 93/100,rgb,11. Half-Dragon Stripper Caregiver 13099/13585 89/100,ENEMYPETS,PLAYERS,rgb,Aluthal 11713/12091 100/100,rgb,Anwen 11519/11519 28/98,rgb,Hope 14557/14557 49/92,PETS,rgb,GRIND(Anwen) 8798/8798 54/106, rgb,Nina(Hope) 11607/11607 129/150,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,rgb,Pheromone Technician(!) 0/104 100/100,rgb,Terminal 0/104 -140/100,END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307191</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307191"/>
		<updated>2015-08-16T22:47:41Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a suggestion/request of sorts. The intention is to allow players to parse battle output.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid and isn&#039;t terribly difficult to parse in MUSHClient or tintin++. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable. My solution to parsing fprompt is to use the following triggers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt and pass to python for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^Pet: %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;1&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
} {5}&lt;br /&gt;
#act {%5. %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_num %5;&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;$feral_num&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {%6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var plyr_name %6;&lt;br /&gt;
    #var plyr_hp %7;&lt;br /&gt;
    #var plyr_maxhp %8;&lt;br /&gt;
    #var plyr_en %9;&lt;br /&gt;
    #var plyr_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;0&amp;quot;, &amp;quot;$plyr_name&amp;quot;, &amp;quot;$plyr_hp&amp;quot;, &amp;quot;$plyr_maxhp&amp;quot;, &amp;quot;$plyr_en&amp;quot;, &amp;quot;$plyr_max_en&amp;quot;)&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {#py fs.stats_output(&amp;quot;99&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;)}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, each line of fprompt is captured and categorised until &amp;lt;ENDLIST&amp;gt; is detected, the lines are then formatted and outputted to the screen. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,rgb,12. Accelerated Half-Dragon Stripper 13457/13585 93/100,rgb,11. Half-Dragon Stripper Caregiver 13099/13585 89/100,ENEMYPETS,PLAYERS,rgb,Aluthal 11713/12091 100/100,rgb,Anwen 11519/11519 28/98,rgb,Hope 14557/14557 49/92,PETS,rgb,GRIND(Anwen) 8798/8798 54/106, rgb,Nina(Hope) 11607/11607 129/150,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,rgb,Pheromone Technician(!) 0/104 100/100,rgb,Terminal 0/104 -140/100,END&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307190</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=307190"/>
		<updated>2015-08-16T22:46:59Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a suggestion/request of sorts. The intention is to allow players to parse battle output.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid and isn&#039;t terribly difficult to parse in MUSHClient or tintin++. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable. My solution to parsing fprompt is to use the following triggers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt and pass to python for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^Pet: %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;1&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
} {5}&lt;br /&gt;
#act {%5. %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_num %5;&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;$feral_num&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {%6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var plyr_name %6;&lt;br /&gt;
    #var plyr_hp %7;&lt;br /&gt;
    #var plyr_maxhp %8;&lt;br /&gt;
    #var plyr_en %9;&lt;br /&gt;
    #var plyr_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;0&amp;quot;, &amp;quot;$plyr_name&amp;quot;, &amp;quot;$plyr_hp&amp;quot;, &amp;quot;$plyr_maxhp&amp;quot;, &amp;quot;$plyr_en&amp;quot;, &amp;quot;$plyr_max_en&amp;quot;)&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {#py fs.stats_output(&amp;quot;99&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;)}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, each line of fprompt is captured and categorised until &amp;lt;ENDLIST&amp;gt; is detected, the lines are then formatted and outputted to the screen. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,rgb,12. Accelerated Half-Dragon Stripper 13457/13585 93/100,rgb,11. Half-Dragon Stripper Caregiver 13099/13585 89/100,ENEMYPETS,PLAYERS,rgb,Aluthal 11713/12091 100/100,rgb,Anwen 11519/11519 28/98,rgb,Hope 14557/14557 49/92,PETS,rgb,GRIND(Anwen) 8798/8798 54/106, rgb,Nina(Hope) 11607/11607 129/150,THINGS,rgb,Tactics Soldier(!) 0/104 100/100,rgb,Pheromone Technician(!) 0/104 100/100,rgb,Terminal 0/104 -140/100,END&lt;br /&gt;
&lt;br /&gt;
where rgb is the applicable colour value.&lt;br /&gt;
&lt;br /&gt;
Breakdown of sections:&lt;br /&gt;
ENEMIES,rgb,13. Bouncy Half-Gryphon Bartender 12302/13886 72/100,...&lt;br /&gt;
ENEMYPETS,rgb,Pet 1: Blah 11607/11607 129/150,...&lt;br /&gt;
PLAYERS,rgb,Aluthal 11713/12091 100/100,...&lt;br /&gt;
PETS,rgb,GRIND(Anwen) 8798/8798 54/106,...&lt;br /&gt;
THINGS,rgb,Tactics Soldier(!) 0/104 100/100,...&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=305912</id>
		<title>Suggestion: csv output of battle stats</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Suggestion:_csv_output_of_battle_stats&amp;diff=305912"/>
		<updated>2015-08-13T12:51:11Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;This is a suggestion/request of sorts. The intention is to allow players to parse battle output.  Currently there are two methods that I am aware of to determine the health an...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a suggestion/request of sorts. The intention is to allow players to parse battle output.&lt;br /&gt;
&lt;br /&gt;
Currently there are two methods that I am aware of to determine the health and energy of players and ferals: hp and fprompt.&lt;br /&gt;
&lt;br /&gt;
hp outputs a table of coloured bars which is a good visual aid and isn&#039;t terribly difficult to parse in MUSHClient or tintin++. fprompt outputs a much leaner version of this content that is easier to parse but is less immediately interpretable. My solution to parsing fprompt is to use the following triggers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#nop {grab player stats from fprompt and pass to python for logging.}&lt;br /&gt;
#nop {==================================================================}&lt;br /&gt;
#act {^Pet: %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;1&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
} {5}&lt;br /&gt;
#act {%5. %6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var feral_num %5;&lt;br /&gt;
    #var feral_name %6;&lt;br /&gt;
    #var feral_hp %7;&lt;br /&gt;
    #var feral_maxhp %8;&lt;br /&gt;
    #var feral_en %9;&lt;br /&gt;
    #var feral_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;$feral_num&amp;quot;, &amp;quot;$feral_name&amp;quot;, &amp;quot;$feral_hp&amp;quot;, &amp;quot;$feral_maxhp&amp;quot;, &amp;quot;$feral_en&amp;quot;, &amp;quot;$feral_max_en&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
#act {%6       &amp;lt;%7/%8 hp - %9/%10 en&amp;gt;} {&lt;br /&gt;
    #var plyr_name %6;&lt;br /&gt;
    #var plyr_hp %7;&lt;br /&gt;
    #var plyr_maxhp %8;&lt;br /&gt;
    #var plyr_en %9;&lt;br /&gt;
    #var plyr_max_en %10;&lt;br /&gt;
    #py fs.stats_output(&amp;quot;0&amp;quot;, &amp;quot;$plyr_name&amp;quot;, &amp;quot;$plyr_hp&amp;quot;, &amp;quot;$plyr_maxhp&amp;quot;, &amp;quot;$plyr_en&amp;quot;, &amp;quot;$plyr_max_en&amp;quot;)&lt;br /&gt;
} {6}&lt;br /&gt;
#act {^&amp;lt;ENDLIST&amp;gt;} {#py fs.stats_output(&amp;quot;99&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;, &amp;quot;0&amp;quot;)}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, each line of fprompt is captured and categorised until &amp;lt;ENDLIST&amp;gt; is detected, the lines are then formatted and outputted to the screen. Here&#039;s my output as an example, the battle stats are in the top, right pane:&lt;br /&gt;
[[File:Screenshot_2015-08-13_13-00-12.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This works most of the time but there are two issues that make it unreliable and inconvenient.&lt;br /&gt;
&lt;br /&gt;
1. Sometimes a line gets garbled and thus it is missed resulting in incomplete status.&lt;br /&gt;
2. Some ferals (Primes, backups, others) do not have a number and period at the start of the string which makes them harder to categorise. They can, of course, be categorised by looking for &amp;quot;Prime&amp;quot; and &amp;quot;backup&amp;quot; in the name but this leaves the (admittedly unlikely) possibility that a player may choose a name with one of these strings in it at some future point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
A single comma-seperated value (CSV) line. e.g.&lt;br /&gt;
ENEMIES, 13. Bouncy Half-Gryphon Bartender 12302/13886 72/100, 12. Accelerated Half-Dragon Stripper 13457/13585 93/100, 11. Half-Dragon Stripper Caregiver 13099/13585 89/100, ENEMYPETS, PLAYERS, Aluthal 11713/12091 100/100, Anwen 11519/11519 28/98, Hope 14557/14557 49/92, PETS, GRIND(Anwen) 8798/8798 54/106, Nina(Hope) 11607/11607 129/150, THINGS, Tactics Soldier(!) 0/104 100/100, Pheromone Technician(!) 0/104 100/100, Terminal 0/104 -140/100, END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CSV is trivial to parse, the output would be unambiguous and there is no fear of missed lines (either it&#039;s there or it isn&#039;t!). Section names (ENEMIES, THINGS) could be shortened if necessary.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=File:Screenshot_2015-08-13_13-00-12.png&amp;diff=305911</id>
		<title>File:Screenshot 2015-08-13 13-00-12.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=File:Screenshot_2015-08-13_13-00-12.png&amp;diff=305911"/>
		<updated>2015-08-13T12:29:02Z</updated>

		<summary type="html">&lt;p&gt;Anden: Example output in tintin++&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example output in tintin++&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Proficiencies&amp;diff=54843</id>
		<title>Proficiencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Proficiencies&amp;diff=54843"/>
		<updated>2013-11-30T06:31:59Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;In FS, the skill-system works via Proficiencies and Combat Skills, each filling their own role. Proficiencies can be split in two categories, being the knowledge proficiencies...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In FS, the skill-system works via Proficiencies and Combat Skills, each filling their own role.&lt;br /&gt;
Proficiencies can be split in two categories, being the knowledge proficiencies and the combat proficiencies. Both are&lt;br /&gt;
primarily gained via professions, but the rules for them vary slightly.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Before obtaining a proficiency, it is useful to look them all over:&lt;br /&gt;
*&#039;&#039;&#039;list proficiency&#039;&#039;&#039; lists all proficiencies.&lt;br /&gt;
*&#039;&#039;&#039;rpinfo &amp;lt;proficiency&amp;gt;&#039;&#039;&#039; provides info about the chosen proficiency, primarily what it does and which professions have it.&lt;br /&gt;
*&#039;&#039;&#039;list profession&#039;&#039;&#039; lists all professions.&lt;br /&gt;
*&#039;&#039;&#039;rpinfo &amp;lt;profession&amp;gt;&#039;&#039;&#039; provides basic info about a profession, most notably which proficiencies are granted by them.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Once you have decided on a set of professions, simply &#039;&#039;&#039;buy &amp;lt;profession&amp;gt;&#039;&#039;&#039; anywhere outside of a shop. You can have six&lt;br /&gt;
professions at most, each giving up to 10 points in the attached proficiencies, with the first two being free, and subsequent&lt;br /&gt;
ones costing small amounts of experience. Keep in mind that any given proficiency can only reach 60% of the max level via&lt;br /&gt;
professions, so buying any beyond that is a waste of proficiency.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
After having purchased six professions, further training in proficiencies is possible via the training-page on the&lt;br /&gt;
web-interface (http://flexiblesurvival.com/index?training). Training a proficiency past 10 points will infer a token-cost, and&lt;br /&gt;
logically, the price goes up the higher you train your proficiencies. Here, you can also set a tax-rate, which means that a&lt;br /&gt;
part of your earned freecred is invested in the chosen proficiency directly, lowering the cost of leveling over time and&lt;br /&gt;
offering a higher interest-rate the higher you set the tax-rate.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
As noted before, the two types of proficiencies have slightly differing rules, in that you can train a knowledge-proficiency&lt;br /&gt;
up to your level, whereas you can only train a combat-proficiency up to 60% of that. If your professions would grant you more&lt;br /&gt;
than your current (mentored) level would permit, the additional points will show up once you gain a higher level, so nothing&lt;br /&gt;
is lost.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Thematically, all proficiencies mark prowess in their given field, no matter which type. For example, &#039;&#039;&#039;rpinfo medicine&#039;&#039;&#039;. As we&lt;br /&gt;
can see, medicine would allow the character to have a certain degree of medical expertise. Contrast &#039;&#039;&#039;rpinfo first aid&#039;&#039;&#039;, which&lt;br /&gt;
doesn&#039;t bring expanded medical knowledge in and of itself, but instead allows a more efficient use of medicine in stressful&lt;br /&gt;
situations such as combat. The first is a knowledge-proficiency, the second a combat-proficiency.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Note that caps do apply. You can have 10% of proficiencies at 90-100% of the level cap, 20% at 80-90%, 20% at 70-80%, 20% at&lt;br /&gt;
60-70%, and no limits on the number under that. Each of these has the lower bound excluded. Hence, combat-proficiencies will&lt;br /&gt;
never, ever count towards your caps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As always, &#039;&#039;&#039;rpinfo&#039;&#039;&#039; provides useful info, with &#039;&#039;&#039;rpinfo &amp;lt;combat skill&amp;gt;&#039;&#039;&#039; telling what a combat skill does and where to get it, and&lt;br /&gt;
&#039;&#039;&#039;rpinfo &amp;lt;role&amp;gt;&#039;&#039;&#039; noting the skills associated with a role. Likewise &#039;&#039;&#039;list role&#039;&#039;&#039; and &#039;&#039;&#039;list combat skill&#039;&#039;&#039; list all the roles and&lt;br /&gt;
combat-skills, respectively.&lt;br /&gt;
&lt;br /&gt;
To use roles, a few commands are of note, being:&lt;br /&gt;
*&#039;&#039;&#039;role &amp;lt;role&amp;gt;&#039;&#039;&#039; turns a role on or off. Of course, you need to have active role-slots available to turn a role on. If you don&#039;t have the role, you will learn it instead.&lt;br /&gt;
*&#039;&#039;&#039;role &amp;lt;combat skill&amp;gt;&#039;&#039;&#039; will activate all roles with the specified skill.&lt;br /&gt;
*&#039;&#039;&#039;role/lock &amp;lt;role&amp;gt;&#039;&#039;&#039; locks a role to your account at a price of 3 mako, freeing up a known role-slot, and allowing all your characters access to the role at any time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A notable exception to the role-system is a Feral Mode character, having been given pre-defined skillsets depending on their&lt;br /&gt;
feral training.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Scrapyard&amp;diff=50314</id>
		<title>Scrapyard</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Scrapyard&amp;diff=50314"/>
		<updated>2013-11-18T14:37:03Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;Despite being a named area the Scrapyard exists only in name.  It is unknown if it&amp;#039;s a work-in-progress or purely eye-candy.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Despite being a named area the Scrapyard exists only in name.&lt;br /&gt;
&lt;br /&gt;
It is unknown if it&#039;s a work-in-progress or purely eye-candy.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Category:Toy_Factory&amp;diff=50313</id>
		<title>Category:Toy Factory</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Category:Toy_Factory&amp;diff=50313"/>
		<updated>2013-11-18T13:29:42Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;Wondering how to get a key to the Toy Factory in Fairhaven?  Go talk to Rod in The Mall (you&amp;#039;ll need to speak to him more than once).&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wondering how to get a key to the Toy Factory in Fairhaven?&lt;br /&gt;
&lt;br /&gt;
Go talk to Rod in The Mall (you&#039;ll need to speak to him more than once).&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=File:Partymentor_trigger.png&amp;diff=32823</id>
		<title>File:Partymentor trigger.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=File:Partymentor_trigger.png&amp;diff=32823"/>
		<updated>2013-08-20T18:09:02Z</updated>

		<summary type="html">&lt;p&gt;Anden: Shows what one needs to enter into the muschclient trigger dialog to have a group member change the partymentor level.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Shows what one needs to enter into the muschclient trigger dialog to have a group member change the partymentor level.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32797</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32797"/>
		<updated>2013-08-19T02:29:47Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Big hits, all-natural notes:&lt;br /&gt;
&lt;br /&gt;
Aidan suggests a heavy melee is the optimal weapon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Shield drone tips:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14:28:42 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;Bullet Spray first.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:28:59 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;Get the low-energy AI-block and the Always block.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:05 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;make &#039;rest&#039; the low energy move.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:13 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;then bullet-spray on always.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:25 &amp;lt;OOC&amp;gt; Granitek says, &amp;quot;Thanks. I just happend to have a laser emitting and Automated mods I was trying to find a use for.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:39 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;automated is crap.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:02 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;after bullet-spray, electric surge on always.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:20 &amp;lt;OOC&amp;gt; Granitek says, &amp;quot;Really? Looking at the info you would think it would double the damage.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:24 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;this fills the AI-slots, which is cool, since there&#039;s only one more move they have.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:49 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;too much cooldown and charge.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:59 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;and energy.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:31:11 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;your hit might do more damage on the whole, but you pay for it by lowering your DPS.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:31:19 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;AND your DPE.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Science] Dio roars, &amp;quot;As for AI settings, I&#039;ll lay down some basics.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Science] Dio roars, &amp;quot;When you don&#039;t set your AI settings at all, the auto combat will round robin and randomly select your powers to use pretty much.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Science] Dio roars, &amp;quot;You can imagine this could not end in your favor when you use lactaid after taking just a bit of damage when you could&#039;ve attacked.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Science] Dio roars, &amp;quot;So, this is where AI settings come in. For example, it&#039;d be better to set Lactaid on Do not use. This power is best used after/before combat or as an emergency heal. In this regard, set your AI settings to make it fire off only when you&#039;re at 50% health or 25%.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Science] Dio roars, &amp;quot;Now your highest damaging powers are important as well. You&#039;ll want to use these as often as you can, rather than at random. The &#039;Always&#039; condition will make sure this happens (assuming you have the correct energy). You want to make sure stuff like Wild Swing and Sharpshooter are firing the second they get off cooldown.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[Science] Dio roars, &amp;quot;AI settings are also very handy for energy management. Any questions?&amp;quot;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32793</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32793"/>
		<updated>2013-08-17T12:50:08Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Big hits, all-natural notes:&lt;br /&gt;
&lt;br /&gt;
Aidan suggests a heavy melee is the optimal weapon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Shield drone tips:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14:28:42 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;Bullet Spray first.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:28:59 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;Get the low-energy AI-block and the Always block.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:05 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;make &#039;rest&#039; the low energy move.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:13 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;then bullet-spray on always.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:25 &amp;lt;OOC&amp;gt; Granitek says, &amp;quot;Thanks. I just happend to have a laser emitting and Automated mods I was trying to find a use for.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:29:39 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;automated is crap.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:02 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;after bullet-spray, electric surge on always.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:20 &amp;lt;OOC&amp;gt; Granitek says, &amp;quot;Really? Looking at the info you would think it would double the damage.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:24 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;this fills the AI-slots, which is cool, since there&#039;s only one more move they have.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:49 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;too much cooldown and charge.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:30:59 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;and energy.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:31:11 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;your hit might do more damage on the whole, but you pay for it by lowering your DPS.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
14:31:19 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;AND your DPE.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32792</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32792"/>
		<updated>2013-08-17T12:49:10Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Big hits, all-natural notes:&lt;br /&gt;
&lt;br /&gt;
Aidan suggests a heavy melee is the optimal weapon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Shield drone tips:&lt;br /&gt;
&lt;br /&gt;
14:28:42 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;Bullet Spray first.&amp;quot;&lt;br /&gt;
14:28:59 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;Get the low-energy AI-block and the Always block.&amp;quot;&lt;br /&gt;
14:29:05 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;make &#039;rest&#039; the low energy move.&amp;quot;&lt;br /&gt;
14:29:13 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;then bullet-spray on always.&amp;quot;&lt;br /&gt;
14:29:25 &amp;lt;OOC&amp;gt; Granitek says, &amp;quot;Thanks. I just happend to have a laser emitting and Automated mods I was trying to find a use for.&amp;quot;&lt;br /&gt;
14:29:39 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;automated is crap.&amp;quot;&lt;br /&gt;
14:30:02 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;after bullet-spray, electric surge on always.&amp;quot;&lt;br /&gt;
14:30:20 &amp;lt;OOC&amp;gt; Granitek says, &amp;quot;Really? Looking at the info you would think it would double the damage.&amp;quot;&lt;br /&gt;
14:30:24 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;this fills the AI-slots, which is cool, since there&#039;s only one more move they have.&amp;quot;&lt;br /&gt;
14:30:49 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;too much cooldown and charge.&amp;quot;&lt;br /&gt;
14:30:59 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;and energy.&amp;quot;&lt;br /&gt;
14:31:11 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;your hit might do more damage on the whole, but you pay for it by lowering your DPS.&amp;quot;&lt;br /&gt;
14:31:19 &amp;lt;OOC&amp;gt; Hope says, &amp;quot;AND your DPE.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32757</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32757"/>
		<updated>2013-08-14T16:11:32Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Big hits, all-natural notes:&lt;br /&gt;
&lt;br /&gt;
Aidan suggests a heavy melee is the optimal weapon.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=File:Daily_trigger.png&amp;diff=32739</id>
		<title>File:Daily trigger.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=File:Daily_trigger.png&amp;diff=32739"/>
		<updated>2013-08-10T13:54:23Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Shield_Drone/Extra_Notes&amp;diff=32328</id>
		<title>Shield Drone/Extra Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Shield_Drone/Extra_Notes&amp;diff=32328"/>
		<updated>2013-08-01T11:29:09Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Powers and upgrades as of their July 6th redesign:&lt;br /&gt;
&lt;br /&gt;
Combat Skills:&lt;br /&gt;
*Durability 2&lt;br /&gt;
*Health 3&lt;br /&gt;
*Front Row 3&lt;br /&gt;
*Taunting Strikes 3&lt;br /&gt;
*Warded 1&lt;br /&gt;
*Reactive 2&lt;br /&gt;
*Outnumbered 2&lt;br /&gt;
&lt;br /&gt;
Powers:&lt;br /&gt;
*[[Mocking Blow]] 3&lt;br /&gt;
*[[Minion - Robotic Systems]] 5&lt;br /&gt;
*[[Strike]] 3&lt;br /&gt;
*[[Myriad Armor]] 4&lt;br /&gt;
*[[Cure]] 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE&amp;lt;/b&amp;gt;: This unit does not care about the local nanite levels; they carry all the nanites they need with them, and are not equipped to benefit from nanite-rich environments.&lt;br /&gt;
&lt;br /&gt;
This schematic is a reward in the Haunted House of DOOM web mission which is in the SE Woodfield city area.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32327</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32327"/>
		<updated>2013-08-01T10:40:30Z</updated>

		<summary type="html">&lt;p&gt;Anden: /* = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32326</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32326"/>
		<updated>2013-08-01T10:39:21Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32325</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32325"/>
		<updated>2013-08-01T10:38:33Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
&lt;br /&gt;
Want to change your danger and pheremone levels without having to travel to Zephyr? You can do this for some things...&lt;br /&gt;
&lt;br /&gt;
Get your session cookie (I used firebug) and save it in a text file called cookies.txt the string should be in the following format:&lt;br /&gt;
flexiblesurvival.com	FALSE	/	FALSE	1234567890	Session	12345678A12345B1C123456789012345&lt;br /&gt;
&lt;br /&gt;
You can then use curl:&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/index?Changechar=CHARNAME&amp;quot;&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Difficulty&amp;quot;&lt;br /&gt;
curl -b cookies.txt &amp;quot;http://flexiblesurvival.com/ajaxget?Pheromone&amp;quot;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Unpredictable/Extra_Notes&amp;diff=32324</id>
		<title>Unpredictable/Extra Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Unpredictable/Extra_Notes&amp;diff=32324"/>
		<updated>2013-08-01T09:46:07Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;Recipe is a drop from the boss in Church of Promethia&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Recipe is a drop from the boss in Church of Promethia&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32223</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32223"/>
		<updated>2013-07-20T19:12:54Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32156</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=32156"/>
		<updated>2013-07-11T01:06:20Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Suggestion for a gay sex recipient item:&lt;br /&gt;
Item would allow the fuck command to &amp;quot;succeed&amp;quot;, i.e., return a confirmation message.&lt;br /&gt;
Item is intended to allow a male/herm character to provide &#039;evidence&#039; that they were on the receiving end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Current message is in the form:&lt;br /&gt;
&amp;lt;Fuck&amp;gt; X breeds with Y!&lt;br /&gt;
&amp;lt;Fuck&amp;gt; They don&#039;t have any compatible genitals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It would be nice to see something like this:&lt;br /&gt;
&amp;lt;Fuck&amp;gt; X breeds with Y!&lt;br /&gt;
X slides their [horrifically oversized/large, stretching,/slightly small] member into Y&#039;s [large/relaxed/tight] ass and floods them with cum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, it would be nice to see something equivalent to the hetero sex message:&lt;br /&gt;
&amp;lt;Breeding&amp;gt; You catch a peek of Y&#039;s thighs and notice thin rivers of pearly white fluids.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===========================================================================================&lt;br /&gt;
Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=29026</id>
		<title>Tintin</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=29026"/>
		<updated>2013-03-08T19:45:52Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For anyone who wishes to use TinTin++ here are a few handy Flexible Survival scripts which you can use (or cut and paste out of). This probably isn&#039;t the ideal way to go about this and, frankly, I find the scripting language in TinTin++ to be pretty obtuse but it&#039;s a good client otherwise.&lt;br /&gt;
&lt;br /&gt;
The commands that follow should be copied into their own files in a folder of your choosing. Strictly speaking you could copy everything into one text file but I like keeping things seperate for experimenting. My scripts are in a folder called tt in my home directory. You can start them with TinTin++ from the command line using:&lt;br /&gt;
&lt;br /&gt;
 tt++ tt/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generic connection script, note that this is linux based so the log file location needs to be changed if you&#039;re using WinTin in linux I save it with the name &#039;start&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#session fs flexiblesurvival.com 2000&lt;br /&gt;
#split&lt;br /&gt;
#log {overwrite} {/home/user/tt/log}&lt;br /&gt;
&lt;br /&gt;
#nop insert your own login details&lt;br /&gt;
#send connect username password&lt;br /&gt;
&lt;br /&gt;
#nop seems to fix minor formatting issue&lt;br /&gt;
#config {packet patch} {0.5}&lt;br /&gt;
&lt;br /&gt;
#nop Prevent the session from timing out&lt;br /&gt;
#nop some other timed events can be added here too&lt;br /&gt;
#TICKER {keepalive} {#send nop} {240.00}&lt;br /&gt;
#TICKER {timestamp} {time} {120}&lt;br /&gt;
&lt;br /&gt;
#nop you can read in other script files&lt;br /&gt;
#read tt/scripts&lt;br /&gt;
&lt;br /&gt;
#nop this prints out the time, the delay above calls it every two minutes&lt;br /&gt;
#nop handy to remind you it&#039;s 4am and you should probably sleep.&lt;br /&gt;
#alias {time}&lt;br /&gt;
{&lt;br /&gt;
        #format line {%c%t} {light green} {%T};&lt;br /&gt;
        #showme {$line}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the main script - note the extra, unused variables and scope for expansion. I saved mine with the name &#039;scripts&#039;.&lt;br /&gt;
Remember that this needs &#039;&#039;&#039;your&#039;&#039;&#039; character name so replace Anwen in the script where you see it!&lt;br /&gt;
Note that this assumes you want chat channels and health/energy stats in separate windows.&lt;br /&gt;
(I&#039;ve removed the botmode stuff if you&#039;re wondering about the references to the combat triggers)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#send {pose #prepend &amp;lt;ic&amp;gt;}&lt;br /&gt;
#send {spoof #show}&lt;br /&gt;
&lt;br /&gt;
#act {^[Public] %2$} {#format {pub} {%c%t %c[%cPublic%c] %c%s} {white} {%T} {white} {light green} {white} {white} {%2}; #line log {chatlog} {$pub}}&lt;br /&gt;
#act {^[Rp] %2$} {#format {rp} {%c%t %c[%cRp%c] %c%s} {white} {%T} {white} {magenta} {white} {white} {%2}; #line log {chatlog} {$rp}}&lt;br /&gt;
#act {^[Bile] %2$} {#format {bile} {%c%t %c[%cBile%c] %c%s} {white} {%T} {white} {green} {white} {white} {%2}; #line log {chatlog} {$bile}}&lt;br /&gt;
#act {^[Newbie] %2$} {#format {new} {%c%t %c[%cNewbie%c] %c%s} {white} {%T} {green} {white} {green} {white} {%2}; #line log {chatlog} {$new}}&lt;br /&gt;
#act {^[Science] %2$} {#format {sci} {%c%t %c[%cScience%c] %c%s} {white} {%T} {white} {light green} {white} {white} {%2}; #line log {chatlog} {$sci}}&lt;br /&gt;
#act {^[Lfg] %2$} {#format {lfg} {%c%t %c[%cLfg%c] %c%s} {white} {%T} {white} {magenta} {white} {white} {%2}; #line log {chatlog} {$lfg}}&lt;br /&gt;
#act {^[Auction] %2$} {#format {auct} {%c%t %c[%cAuction%c] %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$auct}}&lt;br /&gt;
#act {^[Update] %2$} {#format {up} {%c%t %c[%cUpdate%c] %c%s} {white} {%T} {white} {green} {white} {white} {%2}; #line log {chatlog} {$up}}&lt;br /&gt;
#act {^[Pickup] %2$} {#format {pick} {%c%t %c[%cPickup%c] %c%s} {white} {%T} {white} {red} {white} {white} {%2}; #line log {chatlog} {$pick}}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;ic&amp;gt; %2$} {#format {ic} {%c%t %c&amp;lt;%cIC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$ic}}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %2$} {#format {ooc} {%c%t %c&amp;lt;%cOOC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$ooc}}&lt;br /&gt;
#act {^[%5(#%6)]: %2$} {#format {spoof} {%c%t %c&amp;lt;%cSP%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$spoof}}&lt;br /&gt;
&lt;br /&gt;
#act {^You %, %2$} {#format {say} {%c%t %c&amp;lt;%cYS%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$say}} {6}&lt;br /&gt;
#act {^You page, %2$} {#format {yp} {%c%t %c&amp;lt;&amp;lt;%cYP%c&amp;gt;&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$yp}} {5}&lt;br /&gt;
#act {%5 pages, %2 to you.} {#format {page} {%c%t %c%5 %cpages,%c %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$page}}&lt;br /&gt;
#act {In a page-pose to you, %2$} {#format {pp} {%c%t %cIn a page-pose to you,%c %c%s} {white} {%T} {yellow} {cyan} {white} {%2}; #line log {chatlog} {$pp}}&lt;br /&gt;
&lt;br /&gt;
#send stats&lt;br /&gt;
#act {HP[%6/%7                  %21]} {#var hpnow %6; #var hpmax %7}&lt;br /&gt;
#act {XP [   %8]Freecred[ %9]} {#var xp %8; #var freecred [%9]}&lt;br /&gt;
#act {Energy[ %10/ %11  %21]} {#var ennow %10; #var enmax %11}&lt;br /&gt;
#act {Level[ %12] XP to Level[  %13]Mako [  %14] Tokens[  %15]} {#var lvl %12; #var xpneeded %13; #var mako %14; #var tokens %15}&lt;br /&gt;
#act {Hero               [ %16] Resources          [%17]} {#var heropts %16; #var resources %17}&lt;br /&gt;
&lt;br /&gt;
#highlight {Anwen} {cyan}&lt;br /&gt;
&lt;br /&gt;
#act {Type +reward now!} {+reward}&lt;br /&gt;
#act {(You sense a new message at OOC - %1 by Avatar: +REWARD)} {+reward}&lt;br /&gt;
#act {^%5 offers to let you walk along with %*.  (&amp;quot;Hopon %5&amp;quot; to accept.)} {#send Hopon %5}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !handup&amp;quot;} {#send handup %5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Understood, %5! Targeting %4; #send target %4}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !auto&amp;quot;} {#send ooc Understood, %5! Auto on.; #send auto on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !search&amp;quot;} {#send search}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !botmode&amp;quot;} {#send botmode off}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !danger&amp;quot;} {#send +haz}&lt;br /&gt;
#act {DN+%4 PH+%5} {#send ooc Danger levels: +%4/+%5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !help&amp;quot;}&lt;br /&gt;
{&lt;br /&gt;
    #send @paste %5 For an automatic handup use ooc Anwen !handup;&lt;br /&gt;
    #send To get me to target an enemy use ooc !target X;&lt;br /&gt;
    #send To get me to switch auto combat on use ooc Anwen !auto;&lt;br /&gt;
    #send To get me to search use ooc Anwen !search;&lt;br /&gt;
    #send To get me to go somewhere use ooc Anwen !go DIR where DIR is one of: [n,e,s,w,ne,nw,se,sw,u,d];&lt;br /&gt;
    #send If I have botmode on you can switch it off with ooc Anwen !botmode;&lt;br /&gt;
    #send You can verify my currently set danger levels with ooc Anwen !danger;&lt;br /&gt;
    #send .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#act {== ROUND %5 ==} {#line log {hp} {== ROUND %5 ==}}&lt;br /&gt;
#act {^&amp;lt;/////// Battle %5! ///////&amp;gt;}&lt;br /&gt;
{&lt;br /&gt;
    #line log {hp} {Battle %5!}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;[%4]Anwen&amp;gt;&amp;lt;%5&amp;gt;}&lt;br /&gt;
{&lt;br /&gt;
    #format {power} {%c%s} {white} {%5};&lt;br /&gt;
    #line log {hp} {$power}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You make progress towards the daily mission(%5).} {#send ooc MISSION STATUS: %5}&lt;br /&gt;
#act {XP Gained: %5  --  Freecred Gained: %6}&lt;br /&gt;
{&lt;br /&gt;
    #format {win} {%cXP: %5 FC: %6} {yellow};&lt;br /&gt;
    #line log {hp} {$win}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Power&amp;gt; %3. %4 is defeated by %5!}&lt;br /&gt;
{&lt;br /&gt;
    #var tgt_no %3;&lt;br /&gt;
    #line log {hp} {%5 defeats %3!}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see the kind of arrangement I use here: [http://tinypic.com/view.php?pic=smsmcj&amp;amp;s=6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple botmode triggers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now enabled} {#var boton 1}&lt;br /&gt;
#act {^&amp;lt;Botmode&amp;gt; Your bot mode is now disabled} {#var boton 0}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;InGame&amp;gt; The fight is over %5} {#if {&amp;quot;$boton&amp;quot; == &amp;quot;1&amp;quot;} {search web}}&lt;br /&gt;
#act {&amp;lt;InGame&amp;gt; You ran into a puzzle} {#if {&amp;quot;$boton&amp;quot; == &amp;quot;1&amp;quot;} {search web}}&lt;br /&gt;
#act {&amp;lt;InGame&amp;gt; Your battle ended unexpectedly!} {#if {&amp;quot;$boton&amp;quot; == &amp;quot;1&amp;quot;} {search web}}&lt;br /&gt;
#act {&amp;lt;InGame&amp;gt; The fight is over and you lost!} {#if {&amp;quot;$boton&amp;quot; == &amp;quot;1&amp;quot;} {search web}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this is useful!&lt;br /&gt;
&lt;br /&gt;
Anwen :3&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Prove&amp;diff=29022</id>
		<title>Prove</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Prove&amp;diff=29022"/>
		<updated>2013-03-08T00:52:42Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is intended to be a non-exhaustive list of things you can +prove, remember that if you want to check only for yourself use +prove/silent [variable] otherwise everyone in the room sees the output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stats:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
+prove hp    Hit points.&lt;br /&gt;
&lt;br /&gt;
+prove energy    #unclear (This one doesn&#039;t seem to reflect your character&#039;s energy.)&lt;br /&gt;
&lt;br /&gt;
+prove hero    Remaining Hero points&lt;br /&gt;
&lt;br /&gt;
+prove patrol    #unclear&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Misc:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
+prove web mission goal    Length of web mission (needs clarification).&lt;br /&gt;
&lt;br /&gt;
+gear/prove N    Where N is the item number in your inventory.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Prove&amp;diff=28968</id>
		<title>Prove</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Prove&amp;diff=28968"/>
		<updated>2013-03-07T18:26:27Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;This is intended to be a non-exhaustive list of things you can +prove, remember that if you want to check only for yourself use +prove/silent [variable] otherwise everyone in ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is intended to be a non-exhaustive list of things you can +prove, remember that if you want to check only for yourself use +prove/silent [variable] otherwise everyone in the room sees the output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stats:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
+prove hp    Hit points.&lt;br /&gt;
&lt;br /&gt;
+prove energy    #unclear (This one doesn&#039;t seem to reflect your character&#039;s energy.)&lt;br /&gt;
&lt;br /&gt;
+prove hero    Remaining Hero points&lt;br /&gt;
&lt;br /&gt;
+prove patrol    #unclear&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Misc:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
+prove web mission goal    Length of web mission (needs clarification).&lt;br /&gt;
&lt;br /&gt;
+gear/prove N    Where N is the item number in your inventory.&lt;br /&gt;
&lt;br /&gt;
+prove&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=28956</id>
		<title>Tintin</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=28956"/>
		<updated>2013-03-05T21:42:25Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For anyone who wishes to use TinTin++ here are a few handy Flexible Survival scripts which you can use (or cut and paste out of). This probably isn&#039;t the ideal way to go about this and, frankly, I find the scripting language in TinTin++ to be pretty obtuse but it&#039;s a good client otherwise.&lt;br /&gt;
&lt;br /&gt;
The commands that follow should be copied into their own files in a folder of your choosing. Strictly speaking you could copy everything into one text file but I like keeping things seperate for experimenting. My scripts are in a folder called tt in my home directory. You can start them with TinTin++ from the command line using:&lt;br /&gt;
&lt;br /&gt;
 tt++ tt/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generic connection script, note that this is linux based so the log file location needs to be changed if you&#039;re using WinTin in linux I save it with the name &#039;start&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#session fs flexiblesurvival.com 2000&lt;br /&gt;
#split&lt;br /&gt;
#log {overwrite} {/home/user/tt/log}&lt;br /&gt;
&lt;br /&gt;
#nop insert your own login details&lt;br /&gt;
#send connect username password&lt;br /&gt;
&lt;br /&gt;
#nop seems to fix minor formatting issue&lt;br /&gt;
#config {packet patch} {0.5}&lt;br /&gt;
&lt;br /&gt;
#nop Prevent the session from timing out&lt;br /&gt;
#nop some other timed events can be added here too&lt;br /&gt;
#TICKER {keepalive} {#send nop} {240.00}&lt;br /&gt;
#TICKER {timestamp} {time} {120}&lt;br /&gt;
&lt;br /&gt;
#nop you can read in other script files&lt;br /&gt;
#read tt/scripts&lt;br /&gt;
&lt;br /&gt;
#nop this prints out the time, the delay above calls it every two minutes&lt;br /&gt;
#nop handy to remind you it&#039;s 4am and you should probably sleep.&lt;br /&gt;
#alias {time}&lt;br /&gt;
{&lt;br /&gt;
        #format line {%c%t} {light green} {%T};&lt;br /&gt;
        #showme {$line}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the main script - note the extra, unused variables and scope for expansion. I saved mine with the name &#039;scripts&#039;.&lt;br /&gt;
Remember that this needs &#039;&#039;&#039;your&#039;&#039;&#039; character name so replace Anwen in the script where you see it!&lt;br /&gt;
Note that this assumes you want chat channels and health/energy stats in separate windows.&lt;br /&gt;
(I&#039;ve removed the botmode stuff if you&#039;re wondering about the references to the combat triggers)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#send {pose #prepend &amp;lt;ic&amp;gt;}&lt;br /&gt;
#send {spoof #show}&lt;br /&gt;
&lt;br /&gt;
#act {^[Public] %2$} {#format {pub} {%c%t %c[%cPublic%c] %c%s} {white} {%T} {white} {light green} {white} {white} {%2}; #line log {chatlog} {$pub}}&lt;br /&gt;
#act {^[Rp] %2$} {#format {rp} {%c%t %c[%cRp%c] %c%s} {white} {%T} {white} {magenta} {white} {white} {%2}; #line log {chatlog} {$rp}}&lt;br /&gt;
#act {^[Bile] %2$} {#format {bile} {%c%t %c[%cBile%c] %c%s} {white} {%T} {white} {green} {white} {white} {%2}; #line log {chatlog} {$bile}}&lt;br /&gt;
#act {^[Newbie] %2$} {#format {new} {%c%t %c[%cNewbie%c] %c%s} {white} {%T} {green} {white} {green} {white} {%2}; #line log {chatlog} {$new}}&lt;br /&gt;
#act {^[Science] %2$} {#format {sci} {%c%t %c[%cScience%c] %c%s} {white} {%T} {white} {light green} {white} {white} {%2}; #line log {chatlog} {$sci}}&lt;br /&gt;
#act {^[Lfg] %2$} {#format {lfg} {%c%t %c[%cLfg%c] %c%s} {white} {%T} {white} {magenta} {white} {white} {%2}; #line log {chatlog} {$lfg}}&lt;br /&gt;
#act {^[Auction] %2$} {#format {auct} {%c%t %c[%cAuction%c] %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$auct}}&lt;br /&gt;
#act {^[Update] %2$} {#format {up} {%c%t %c[%cUpdate%c] %c%s} {white} {%T} {white} {green} {white} {white} {%2}; #line log {chatlog} {$up}}&lt;br /&gt;
#act {^[Pickup] %2$} {#format {pick} {%c%t %c[%cPickup%c] %c%s} {white} {%T} {white} {red} {white} {white} {%2}; #line log {chatlog} {$pick}}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;ic&amp;gt; %2$} {#format {ic} {%c%t %c&amp;lt;%cIC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$ic}}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %2$} {#format {ooc} {%c%t %c&amp;lt;%cOOC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$ooc}}&lt;br /&gt;
#act {^[%5(#%6)]: %2$} {#format {spoof} {%c%t %c&amp;lt;%cSP%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$spoof}}&lt;br /&gt;
&lt;br /&gt;
#act {^You %, %2$} {#format {say} {%c%t %c&amp;lt;%cYS%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$say}} {6}&lt;br /&gt;
#act {^You page, %2$} {#format {yp} {%c%t %c&amp;lt;&amp;lt;%cYP%c&amp;gt;&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$yp}} {5}&lt;br /&gt;
#act {%5 pages, %2 to you.} {#format {page} {%c%t %c%5 %cpages,%c %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$page}}&lt;br /&gt;
#act {In a page-pose to you, %2$} {#format {pp} {%c%t %cIn a page-pose to you,%c %c%s} {white} {%T} {yellow} {cyan} {white} {%2}; #line log {chatlog} {$pp}}&lt;br /&gt;
&lt;br /&gt;
#send stats&lt;br /&gt;
#act {HP[%6/%7                  %21]} {#var hpnow %6; #var hpmax %7}&lt;br /&gt;
#act {XP [   %8]Freecred[ %9]} {#var xp %8; #var freecred [%9]}&lt;br /&gt;
#act {Energy[ %10/ %11  %21]} {#var ennow %10; #var enmax %11}&lt;br /&gt;
#act {Level[ %12] XP to Level[  %13]Mako [  %14] Tokens[  %15]} {#var lvl %12; #var xpneeded %13; #var mako %14; #var tokens %15}&lt;br /&gt;
#act {Hero               [ %16] Resources          [%17]} {#var heropts %16; #var resources %17}&lt;br /&gt;
&lt;br /&gt;
#highlight {Anwen} {cyan}&lt;br /&gt;
&lt;br /&gt;
#act {Type +reward now!} {+reward}&lt;br /&gt;
#act {(You sense a new message at OOC - %1 by Avatar: +REWARD)} {+reward}&lt;br /&gt;
#act {^%5 offers to let you walk along with %*.  (&amp;quot;Hopon %5&amp;quot; to accept.)} {#send Hopon %5}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !handup&amp;quot;} {#send handup %5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Understood, %5! Targeting %4; #send target %4}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !auto&amp;quot;} {#send ooc Understood, %5! Auto on.; #send auto on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !search&amp;quot;} {#send search}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !botmode&amp;quot;} {#send botmode off}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !danger&amp;quot;} {#send +haz}&lt;br /&gt;
#act {DN+%4 PH+%5} {#send ooc Danger levels: +%4/+%5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !help&amp;quot;}&lt;br /&gt;
{&lt;br /&gt;
    #send @paste %5 For an automatic handup use ooc Anwen !handup;&lt;br /&gt;
    #send To get me to target an enemy use ooc !target X;&lt;br /&gt;
    #send To get me to switch auto combat on use ooc Anwen !auto;&lt;br /&gt;
    #send To get me to search use ooc Anwen !search;&lt;br /&gt;
    #send To get me to go somewhere use ooc Anwen !go DIR where DIR is one of: [n,e,s,w,ne,nw,se,sw,u,d];&lt;br /&gt;
    #send If I have botmode on you can switch it off with ooc Anwen !botmode;&lt;br /&gt;
    #send You can verify my currently set danger levels with ooc Anwen !danger;&lt;br /&gt;
    #send .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#act {== ROUND %5 ==} {#line log {hp} {== ROUND %5 ==}}&lt;br /&gt;
#act {^&amp;lt;/////// Battle %5! ///////&amp;gt;}&lt;br /&gt;
{&lt;br /&gt;
    #line log {hp} {Battle %5!}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;[%4]Anwen&amp;gt;&amp;lt;%5&amp;gt;}&lt;br /&gt;
{&lt;br /&gt;
    #format {power} {%c%s} {white} {%5};&lt;br /&gt;
    #line log {hp} {$power}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You make progress towards the daily mission(%5).} {#send ooc MISSION STATUS: %5}&lt;br /&gt;
#act {XP Gained: %5  --  Freecred Gained: %6}&lt;br /&gt;
{&lt;br /&gt;
    #format {win} {%cXP: %5 FC: %6} {yellow};&lt;br /&gt;
    #line log {hp} {$win}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Power&amp;gt; %3. %4 is defeated by %5!}&lt;br /&gt;
{&lt;br /&gt;
    #var tgt_no %3;&lt;br /&gt;
    #line log {hp} {%5 defeats %3!}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see the kind of arrangement I use here: [http://tinypic.com/view.php?pic=smsmcj&amp;amp;s=6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this is useful!&lt;br /&gt;
&lt;br /&gt;
Anwen :3&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=28955</id>
		<title>Tintin</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Tintin&amp;diff=28955"/>
		<updated>2013-03-05T21:12:35Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For anyone who wishes to use TinTin++ here are a few handy Flexible Survival scripts which you can use (or cut and paste out of). This probably isn&#039;t the ideal way to go about this and, frankly, I find the scripting language in TinTin++ to be pretty obtuse but it&#039;s a good client otherwise.&lt;br /&gt;
&lt;br /&gt;
The commands that follow should be copied into their own files in a folder of your choosing. Strictly speaking you could copy everything into one text file but I like keeping things seperate for experimenting. My scripts are in a folder called tt in my home directory. You can start them with TinTin++ from the command line using:&lt;br /&gt;
&lt;br /&gt;
 tt++ tt/start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generic connection script, note that this is linux based so the log file location needs to be changed if you&#039;re using WinTin in linux I save it with the name &#039;start&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#session fs flexiblesurvival.com 2000&lt;br /&gt;
#split&lt;br /&gt;
#log {overwrite} {/home/user/tt/log}&lt;br /&gt;
&lt;br /&gt;
#nop insert your own login details&lt;br /&gt;
#send connect username password&lt;br /&gt;
&lt;br /&gt;
#nop seems to fix minor formatting issue&lt;br /&gt;
#config {packet patch} {0.5}&lt;br /&gt;
&lt;br /&gt;
#nop Prevent the session from timing out&lt;br /&gt;
#nop some other timed events can be added here too&lt;br /&gt;
#TICKER {keepalive} {#send nop} {240.00}&lt;br /&gt;
#TICKER {timestamp} {time} {120}&lt;br /&gt;
&lt;br /&gt;
#nop you can read in other script files&lt;br /&gt;
#read tt/scripts&lt;br /&gt;
&lt;br /&gt;
#nop this prints out the time, the delay above calls it every two minutes&lt;br /&gt;
#nop handy to remind you it&#039;s 4am and you should probably sleep.&lt;br /&gt;
#alias {time}&lt;br /&gt;
{&lt;br /&gt;
        #format line {%c%t} {light green} {%T};&lt;br /&gt;
        #showme {$line}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the main script - note the extra, unused variables and scope for expansion. I saved mine with the name &#039;scripts&#039;.&lt;br /&gt;
Remember that this needs &#039;&#039;&#039;your&#039;&#039;&#039; character name so replace Anwen in the script where you see it!&lt;br /&gt;
Note that this assumes you want chat channels and health/energy stats in separate windows.&lt;br /&gt;
(I&#039;ve removed the botmode stuff if you&#039;re wondering about the references to the combat triggers)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#send {pose #prepend &amp;lt;ic&amp;gt;}&lt;br /&gt;
#send {spoof #show}&lt;br /&gt;
&lt;br /&gt;
#act {^[Public] %2$} {#format {pub} {%c%t %c[%cPublic%c] %c%s} {white} {%T} {white} {light green} {white} {white} {%2}; #line log {chatlog} {$pub}}&lt;br /&gt;
#act {^[Rp] %2$} {#format {rp} {%c%t %c[%cRp%c] %c%s} {white} {%T} {white} {magenta} {white} {white} {%2}; #line log {chatlog} {$rp}}&lt;br /&gt;
#act {^[Bile] %2$} {#format {bile} {%c%t %c[%cBile%c] %c%s} {white} {%T} {white} {green} {white} {white} {%2}; #line log {chatlog} {$bile}}&lt;br /&gt;
#act {^[Newbie] %2$} {#format {new} {%c%t %c[%cNewbie%c] %c%s} {white} {%T} {green} {white} {green} {white} {%2}; #line log {chatlog} {$new}}&lt;br /&gt;
#act {^[Science] %2$} {#format {sci} {%c%t %c[%cScience%c] %c%s} {white} {%T} {white} {light green} {white} {white} {%2}; #line log {chatlog} {$sci}}&lt;br /&gt;
#act {^[Lfg] %2$} {#format {lfg} {%c%t %c[%cLfg%c] %c%s} {white} {%T} {white} {magenta} {white} {white} {%2}; #line log {chatlog} {$lfg}}&lt;br /&gt;
#act {^[Auction] %2$} {#format {auct} {%c%t %c[%cAuction%c] %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$auct}}&lt;br /&gt;
#act {^[Update] %2$} {#format {up} {%c%t %c[%cUpdate%c] %c%s} {white} {%T} {white} {green} {white} {white} {%2}; #line log {chatlog} {$up}}&lt;br /&gt;
#act {^[Pickup] %2$} {#format {pick} {%c%t %c[%cPickup%c] %c%s} {white} {%T} {white} {red} {white} {white} {%2}; #line log {chatlog} {$pick}}&lt;br /&gt;
&lt;br /&gt;
#act {^&amp;lt;ic&amp;gt; %2$} {#format {ic} {%c%t %c&amp;lt;%cIC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$ic}}&lt;br /&gt;
#act {^&amp;lt;OOC&amp;gt; %2$} {#format {ooc} {%c%t %c&amp;lt;%cOOC%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$ooc}}&lt;br /&gt;
#act {^[%5(#%6)]: %2$} {#format {spoof} {%c%t %c&amp;lt;%cSP%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$spoof}}&lt;br /&gt;
&lt;br /&gt;
#act {^You %, %2$} {#format {say} {%c%t %c&amp;lt;%cYS%c&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$say}} {6}&lt;br /&gt;
#act {^You page, %2$} {#format {yp} {%c%t %c&amp;lt;&amp;lt;%cYP%c&amp;gt;&amp;gt; %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$yp}} {5}&lt;br /&gt;
#act {%5 pages, %2 to you.} {#format {page} {%c%t %c%5 %cpages,%c %c%s} {white} {%T} {yellow} {cyan} {yellow} {white} {%2}; #line log {chatlog} {$page}}&lt;br /&gt;
#act {In a page-pose to you, %2$} {#format {pp} {%c%t %cIn a page-pose to you,%c %c%s} {white} {%T} {yellow} {cyan} {white} {%2}; #line log {chatlog} {$pp}}&lt;br /&gt;
&lt;br /&gt;
#send stats&lt;br /&gt;
#act {HP[%6/%7                  %21]} {#var hpnow %6; #var hpmax %7}&lt;br /&gt;
#act {XP [   %8]Freecred[ %9]} {#var xp %8; #var freecred [%9]}&lt;br /&gt;
#act {Energy[ %10/ %11  %21]} {#var ennow %10; #var enmax %11}&lt;br /&gt;
#act {Level[ %12] XP to Level[  %13]Mako [  %14] Tokens[  %15]} {#var lvl %12; #var xpneeded %13; #var mako %14; #var tokens %15}&lt;br /&gt;
#act {Hero               [ %16] Resources          [%17]} {#var heropts %16; #var resources %17}&lt;br /&gt;
&lt;br /&gt;
#highlight {Anwen} {cyan}&lt;br /&gt;
&lt;br /&gt;
#act {Type +reward now!} {+reward}&lt;br /&gt;
#act {(You sense a new message at OOC - %1 by Avatar: +REWARD)} {+reward}&lt;br /&gt;
#act {^%5 offers to let you walk along with %*.  (&amp;quot;Hopon %5&amp;quot; to accept.)} {#send Hopon %5}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !handup&amp;quot;} {#send handup %5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Understood, %5! Targeting %4; #send target %4}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !auto&amp;quot;} {#send ooc Understood, %5! Auto on.; #send auto on}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !search&amp;quot;} {#send search}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !botmode&amp;quot;} {#send botmode off}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !danger&amp;quot;} {#send +haz}&lt;br /&gt;
#act {DN+%4 PH+%5} {#send ooc Danger levels: +%4/+%5}&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !help&amp;quot;}&lt;br /&gt;
{&lt;br /&gt;
    #send @paste %5 For an automatic handup use ooc Anwen !handup;&lt;br /&gt;
    #send To get me to target an enemy use ooc !target X;&lt;br /&gt;
    #send To get me to switch auto combat on use ooc Anwen !auto;&lt;br /&gt;
    #send To get me to search use ooc Anwen !search;&lt;br /&gt;
    #send To get me to go somewhere use ooc Anwen !go DIR where DIR is one of: [n,e,s,w,ne,nw,se,sw,u,d];&lt;br /&gt;
    #send If I have botmode on you can switch it off with ooc Anwen !botmode;&lt;br /&gt;
    #send You can verify my currently set danger levels with ooc Anwen !danger;&lt;br /&gt;
    #send .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#act {== ROUND %5 ==} {#line log {hp} {== ROUND %5 ==}}&lt;br /&gt;
#act {^&amp;lt;/////// Battle %5! ///////&amp;gt;}&lt;br /&gt;
{&lt;br /&gt;
    #line log {hp} {Battle %5!}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;[%4]Anwen&amp;gt;&amp;lt;%5&amp;gt;}&lt;br /&gt;
{&lt;br /&gt;
    #format {power} {%c%s} {white} {%5};&lt;br /&gt;
    #line log {hp} {$power}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Daily Mission&amp;gt; You make progress towards the daily mission(%5).} {#send ooc MISSION STATUS: %5}&lt;br /&gt;
#act {XP Gained: %5  --  Freecred Gained: %6}&lt;br /&gt;
{&lt;br /&gt;
    #format {win} {%cXP: %5 FC: %6} {yellow};&lt;br /&gt;
    #line log {hp} {$win}&lt;br /&gt;
}&lt;br /&gt;
#act {&amp;lt;Power&amp;gt; %3. %4 is defeated by %5!}&lt;br /&gt;
{&lt;br /&gt;
    #var tgt_no %3;&lt;br /&gt;
    #line log {hp} {%5 defeats %3!}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this is useful!&lt;br /&gt;
&lt;br /&gt;
Anwen :3&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=28536</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=28536"/>
		<updated>2013-02-22T19:27:08Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&amp;lt;ENDLIST&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=28535</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=28535"/>
		<updated>2013-02-22T19:26:03Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: None, perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like NO, PE, FC, ST?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ENEMIES&amp;gt;&lt;br /&gt;
1. Bouncy Half-Husky &amp;lt;5529/5554 hp - 100/98 en&amp;gt;     C2BO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ALLIES&amp;gt;&lt;br /&gt;
Anwen                &amp;lt;4343/4343 hp - 103/102 en&amp;gt;    A8NO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=28534</id>
		<title>User talk:Anden</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User_talk:Anden&amp;diff=28534"/>
		<updated>2013-02-22T18:51:27Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;Proposed identifier for fprompt:   ABCD  A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)  B. Danger level: Equivalent to relative level (use 0 through ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed identifier for fprompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ABCD&lt;br /&gt;
&lt;br /&gt;
A. Identifier: Friendly. Friendly pet. Enemy. Enemy pet. (A through D?)&lt;br /&gt;
&lt;br /&gt;
B. Danger level: Equivalent to relative level (use 0 through 9?)&lt;br /&gt;
&lt;br /&gt;
CD. Effect: Perplexing, front &amp;amp; centre, starving... (00 through 99? Possibly more meaningful codes like PE, FC, ST?)&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=28532</id>
		<title>Combat triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=28532"/>
		<updated>2013-02-21T22:56:07Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Consider this a brain-storming page*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rationale:&#039;&#039;&#039; Combat in groups often takes the form of one person leading a bunch of players with auto on through a series of battles. Some of these players may be intermittently away from their keyboards (AFK) and be partially relying on the lead player. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On occassion players will fall in battle and, if the group is fighting high-level ferals or lots of challenging ferals the result may be that everyone falls having relied on the group strength to ensure success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another scenario is that players may not uniformly target the most dangerous ferals. Allowing them to persist longer than is necessary hurts the party as a whole as the feral can continue attacking and potentially summoning pets. The exception to this can be seen in boss fights where everyone (generally speaking) knows to target the prime as soon as the battle starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution: Combat triggers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Combat triggers would take the form of triggers in the OOC channel that allow everyone to work in coordination with the lead without having to pay attention to every aspect of the combat. They would take the form of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;!Target X&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !handup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !revive !rejoin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !search&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !botmode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first trigger would guide everyone to target a specific feral&lt;br /&gt;
&lt;br /&gt;
The second trigger would allow a fallen player to request an automatic handup allowing the lead to concentrate on the battle.&lt;br /&gt;
&lt;br /&gt;
The third trigger is a combination that would be used by the lead to first revive (hero revive or guide a healer player to use adrenaline hypos), then if the revive is successful, to automatically rejoin the party.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples of how these would be used in tintin:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !handup&amp;quot;} {#send handup %5}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Understood, %5! Targeting %4; #send target %4}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !auto&amp;quot;} {#send auto on}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !revive&amp;quot;} {#send ooc Understood, %5! Reviving.; #send hero revive}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !search&amp;quot;} {#send search}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !botmode&amp;quot;} {#send botmode off}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pros:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lots of people use MushClient - triggers could be written by a knowledgeable person and shared. Others could share triggers for other clients.&lt;br /&gt;
&lt;br /&gt;
If a player can&#039;t or won&#039;t use triggers then they would still perform battle in the default manner - nothing is lost.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cons:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Triggers involving revives may burn through hero points if the lead makes a bad decision though the player using a !revive action may limit revives to one or two instances. Leads must have an appreciation of party strengths and weaknesses. &lt;br /&gt;
&lt;br /&gt;
Players must either know how to create triggers or know how to add them if they&#039;re already written. &lt;br /&gt;
&lt;br /&gt;
Players must understand the potential limitations of certain trigger combinations.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=28468</id>
		<title>Combat triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=28468"/>
		<updated>2013-02-16T17:09:17Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Consider this a brain-storming page*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rationale:&#039;&#039;&#039; Combat in groups often takes the form of one person leading a bunch of players with auto on through a series of battles. Some of these players may be intermittently away from their keyboards (AFK) and be partially relying on the lead player. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On occassion players will fall in battle and, if the group is fighting high-level ferals or lots of challenging ferals the result may be that everyone falls having relied on the group strength to ensure success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another scenario is that players may not uniformly target the most dangerous ferals. Allowing them to persist longer than is necessary hurts the party as a whole as the feral can continue attacking and potentially summoning pets. The exception to this can be seen in boss fights where everyone (generally speaking) knows to target the prime as soon as the battle starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution: Combat triggers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Combat triggers would take the form of triggers in the OOC channel that allow everyone to work in coordination with the lead without having to pay attention to every aspect of the combat. They would take the form of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;!Target X&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !handup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !revive !rejoin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !search&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first trigger would guide everyone to target a specific feral&lt;br /&gt;
&lt;br /&gt;
The second trigger would allow a fallen player to request an automatic handup allowing the lead to concentrate on the battle.&lt;br /&gt;
&lt;br /&gt;
The third trigger is a combination that would be used by the lead to first revive (hero revive or guide a healer player to use adrenaline hypos), then if the revive is successful, to automatically rejoin the party.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples of how these would be used in tintin:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !handup&amp;quot;} {#send handup %5}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Understood, %5! Targeting %4; #send target %4}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !auto&amp;quot;} {#send ooc Understood, %5! Auto on.; #send auto on}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !revive&amp;quot;} {#send ooc Understood, %5! Reviving.; #send hero revive}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !revive&amp;quot;} {#send ooc OK, searching!; #send search}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pros:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lots of people use MushClient - triggers could be written by a knowledgeable person and shared. Others could share triggers for other clients.&lt;br /&gt;
&lt;br /&gt;
If a player can&#039;t or won&#039;t use triggers then they would still perform battle in the default manner - nothing is lost.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cons:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Triggers involving revives may burn through hero points if the lead makes a bad decision though the player using a !revive action may limit revives to one or two instances. Leads must have an appreciation of party strengths and weaknesses. &lt;br /&gt;
&lt;br /&gt;
Players must either know how to create triggers or know how to add them if they&#039;re already written. &lt;br /&gt;
&lt;br /&gt;
Players must understand the potential limitations of certain trigger combinations.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=28125</id>
		<title>Combat triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=28125"/>
		<updated>2013-02-12T19:49:23Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Consider this a brain-storming page*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rationale:&#039;&#039;&#039; Combat in groups often takes the form of one person leading a bunch of players with auto on through a series of battles. Some of these players may be intermittently away from their keyboards (AFK) and be partially relying on the lead player. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On occassion players will fall in battle and, if the group is fighting high-level ferals or lots of challenging ferals the result may be that everyone falls having relied on the group strength to ensure success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another scenario is that players may not uniformly target the most dangerous ferals. Allowing them to persist longer than is necessary hurts the party as a whole as the feral can continue attacking and potentially summoning pets. The exception to this can be seen in boss fights where everyone (generally speaking) knows to target the prime as soon as the battle starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution: Combat triggers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Combat triggers would take the form of triggers in the OOC channel that allow everyone to work in coordination with the lead without having to pay attention to every aspect of the combat. They would take the form of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;!Target X&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !handup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; Someone says, &amp;quot;playername !revive !rejoin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first trigger would guide everyone to target a specific feral&lt;br /&gt;
&lt;br /&gt;
The second trigger would allow a fallen player to request an automatic handup allowing the lead to concentrate on the battle.&lt;br /&gt;
&lt;br /&gt;
The third trigger is a combination that would be used by the lead to first revive (hero revive or guide a healer player to use adrenaline hypos), then if the revive is successful, to automatically rejoin the party.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples of how these would be used in tintin:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !handup&amp;quot;} {#send handup %5}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;!target %4&amp;quot;} {#send ooc Understood, %5! Targeting %4; #send target %4}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !auto&amp;quot;} {#send ooc Understood, %5! Auto on.; #send auto on}&lt;br /&gt;
&lt;br /&gt;
#act {&amp;lt;OOC&amp;gt; %5 says, &amp;quot;Anwen !revive&amp;quot;} {#send ooc Understood, %5! Reviving.; #send hero revive}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pros:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lots of people use MushClient - triggers could be written by a knowledgeable person and shared. Others could share triggers for other clients.&lt;br /&gt;
&lt;br /&gt;
If a player can&#039;t or won&#039;t use triggers then they would still perform battle in the default manner - nothing is lost.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cons:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Triggers involving revives may burn through hero points if the lead makes a bad decision though the player using a !revive action may limit revives to one or two instances. Leads must have an appreciation of party strengths and weaknesses. &lt;br /&gt;
&lt;br /&gt;
Players must either know how to create triggers or know how to add them if they&#039;re already written. &lt;br /&gt;
&lt;br /&gt;
Players must understand the potential limitations of certain trigger combinations.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=27826</id>
		<title>Combat triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=27826"/>
		<updated>2013-02-07T16:08:11Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Consider this a brain-storming page*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rationale:&#039;&#039;&#039; Combat in groups often takes the form of one person leading a bunch of players with auto on through a series of battles. Some of these players may be intermittently away from their keyboards (AFK) and be partially relying on the lead player. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On occassion players will fall in battle and, if the group is fighting high-level ferals or lots of challenging ferals the result may be that everyone falls having relied on the group strength to ensure success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another scenario is that players may not uniformly target the most dangerous ferals. Allowing them to persist longer than is necessary hurts the party as a whole as the feral can continue attacking and potentially summoning pets. The exception to this can be seen in boss fights where everyone (generally speaking) knows to target the prime as soon as the battle starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution: Combat triggers.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Combat triggers would take the form of triggers in the OOC channel that allow everyone to work in coordination with the lead without having to pay attention to every aspect of the combat. They would take the form of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; !Target X&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; playername !handup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; playername !revive !rejoin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first trigger would guide everyone to target a specific feral&lt;br /&gt;
&lt;br /&gt;
The second trigger would allow a fallen player to request an automatic handup allowing the lead to concentrate on the battle.&lt;br /&gt;
&lt;br /&gt;
The third trigger is a combination that would be used by the lead to first revive (hero revive or guide a healer player to use adrenaline hypos), then if the revive is successful, to automatically rejoin the party.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pros:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lots of people use MushClient - triggers could be written by a knowledgeable person and shared. Others could share triggers for other clients.&lt;br /&gt;
&lt;br /&gt;
If a player can&#039;t or won&#039;t use triggers then they would still perform battle in the default manner - nothing is lost.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cons:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Triggers involving revives may burn through hero points if the lead makes a bad decision though the player using a !revive action may limit revives to one or two instances. Leads must have an appreciation of party strengths and weaknesses. &lt;br /&gt;
&lt;br /&gt;
Players must either know how to create triggers or know how to add them if they&#039;re already written. &lt;br /&gt;
&lt;br /&gt;
Players must understand the potential limitations of certain trigger combinations.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=27825</id>
		<title>Combat triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Combat_triggers&amp;diff=27825"/>
		<updated>2013-02-07T15:58:53Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;*Consider this a brain-storming page*  Rationale: Combat in groups often takes the form of one person leading a bunch of players with auto on through a series of battles. Some...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Consider this a brain-storming page*&lt;br /&gt;
&lt;br /&gt;
Rationale: Combat in groups often takes the form of one person leading a bunch of players with auto on through a series of battles. Some of these players may be intermittently away from their keyboards (AFK) and be partially relying on the lead player. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On occassion players will fall in battle and, if the group is fighting high-level ferals or lots of challenging ferals the result may be that everyone falls having relied on the group strength to ensure success.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another scenario is that players may not uniformly target the most dangerous ferals. Allowing them to persist longer than is necessary hurts the party as a whole as the feral can continue attacking and potentially summoning pets. The exception to this can be seen in boss fights where everyone (generally speaking) knows to target the prime as soon as the battle starts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solution: Combat triggers.&lt;br /&gt;
&lt;br /&gt;
Combat triggers would take the form of triggers in the OOC channel that allow everyone to work in coordination with the lead without having to pay attention to every aspect of the combat. They would take the form of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OOC&amp;gt; !Target X&lt;br /&gt;
&amp;lt;OOC&amp;gt; playername !handup&lt;br /&gt;
&amp;lt;OOC&amp;gt; playername !revive !rejoin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first trigger would guide everyone to target a specific feral&lt;br /&gt;
The second trigger would allow a fallen player to request an automatic handup allowing the lead to concentrate on the battle.&lt;br /&gt;
The third trigger is a combination that would be used by the lead to first revive (hero revive or guide a healer player to use adrenaline hypos), then if the revive is successful, to automatically rejoin the party.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pros: &lt;br /&gt;
Lots of people use MushClient - triggers could be written by a knowledgeable person and shared. Others could share triggers for other clients.&lt;br /&gt;
If a player can&#039;t or won&#039;t use triggers then they would still perform battle in the default manner - nothing is lost.&lt;br /&gt;
&lt;br /&gt;
Cons: &lt;br /&gt;
Triggers involving revives may burn through hero points if the lead makes a bad decision though the player using a !revive action may limit revives to one or two instances. Leads must have an appreciation of party strengths and weaknesses. &lt;br /&gt;
Players must either know how to create triggers or know how to add them if they&#039;re already written. &lt;br /&gt;
Players must understand the potential limitations of certain trigger combinations.&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Woodfield&amp;diff=27694</id>
		<title>Woodfield</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Woodfield&amp;diff=27694"/>
		<updated>2013-02-03T16:26:18Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Woodfield&#039;&#039;&#039;, in Washington state, along with [[Fairhaven]], is one of the first release-points of the [[Promethean Nanites]], and is the location of the headquarters of [[RSX]].  RSX is one of the two corporations who developed the Nanites in the first place.&lt;br /&gt;
&lt;br /&gt;
Woodfield is broken up into a number of general areas: In the north of the city is the [[Industrial Area]] in the south of the city is the residential area.&lt;br /&gt;
&lt;br /&gt;
==Maps==&lt;br /&gt;
A map of Woodfield.&lt;br /&gt;
[[image:Woodfield_Map.png|none]]&lt;br /&gt;
==Major Areas==&lt;br /&gt;
[[Church of Promethea]]&lt;br /&gt;
&lt;br /&gt;
[[Seelie Sweets#Candy Factory|Seelie Sweets Candy Factory]]&lt;br /&gt;
&lt;br /&gt;
[[Woodfield Park]]&lt;br /&gt;
&lt;br /&gt;
[[Graveyard]]&lt;br /&gt;
&lt;br /&gt;
[[Gymnasium]]&lt;br /&gt;
&lt;br /&gt;
[[City Sewers (Woodfield)]]&lt;br /&gt;
&lt;br /&gt;
[[Scrapyard]]&lt;br /&gt;
&lt;br /&gt;
==Group Headquarters==&lt;br /&gt;
[[RSX]]&lt;br /&gt;
&lt;br /&gt;
==Non-Combat Zones==&lt;br /&gt;
[[Jakes Hardware]]&lt;br /&gt;
&lt;br /&gt;
[[General Hospital]]&lt;br /&gt;
&lt;br /&gt;
[[Six-Fingered Inn]]&lt;br /&gt;
[[Category:Locations]]&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27667</id>
		<title>Daily mission locations</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27667"/>
		<updated>2013-01-31T15:05:05Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daily Mission locations can be difficult to find. Here&#039;s a list of places and how to get there:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[City Sewers]]: [[Woodfield]] - [[RSX]] headquarters - Very south end of Jeffreys Street&lt;br /&gt;
&lt;br /&gt;
[[Bozeman South Park]]: [[Fairhaven]] - [[Fairhaven Park]] (NE Fairhaven on the overworld map) - talk to Tiashat (an NPC).&lt;br /&gt;
&lt;br /&gt;
[[Death Valley Scrublands]]: [[Fairhaven]] NE overworld map, (Falcon Street 6504) - Chandler Hospital - talk to Eric (an NPC).&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27666</id>
		<title>Daily mission locations</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27666"/>
		<updated>2013-01-31T15:00:07Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daily Mission locations can be difficult to find. Here&#039;s a list of places and how to get there:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[City Sewers]]: [[Woodfield]] - [[RSX]] headquarters - Very south end of Jeffreys Street&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27665</id>
		<title>Daily mission locations</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27665"/>
		<updated>2013-01-31T14:59:42Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daily Mission locations can be difficult to find. Here&#039;s a list of places and how to get there:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[City Sewers]] [[Woodfield]] - [[RSX]] headquarters - Very south end of Jeffreys Street&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27664</id>
		<title>Daily mission locations</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Daily_mission_locations&amp;diff=27664"/>
		<updated>2013-01-31T14:59:15Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;Daily Mission locations can be difficult to find. Here&amp;#039;s a list of places and how to get there:   City Sewers Woodfield - RSX headquarters - Very south end of Jeff...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daily Mission locations can be difficult to find. Here&#039;s a list of places and how to get there:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[City Sewers]] [[Woodfield]] - [[RSX headquarters]] - Very south end of Jeffreys Street&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Bozeman_South_Park&amp;diff=27643</id>
		<title>Bozeman South Park</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Bozeman_South_Park&amp;diff=27643"/>
		<updated>2013-01-30T13:57:35Z</updated>

		<summary type="html">&lt;p&gt;Anden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bozeman South Park can be reached by going to [[Fairhaven Park]] (NE Fairhaven on the overworld map) and offering to help Tiashat (an NPC).&lt;br /&gt;
&lt;br /&gt;
Talking to Desmos at the camp entering the jungle will get you access to [[Bozeman University]]&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Bozeman_South_Park&amp;diff=27642</id>
		<title>Bozeman South Park</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Bozeman_South_Park&amp;diff=27642"/>
		<updated>2013-01-30T13:49:50Z</updated>

		<summary type="html">&lt;p&gt;Anden: Created page with &amp;quot;Bozeman South Park can be reached by going to Fairhaven Park (NE Fairhaven on the overworld map) and offering to help Tiashat (an NPC).&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bozeman South Park can be reached by going to [[Fairhaven Park]] (NE Fairhaven on the overworld map) and offering to help Tiashat (an NPC).&lt;/div&gt;</summary>
		<author><name>Anden</name></author>
	</entry>
</feed>