TinyFuge


  • Pitcrew

    So, I tried out Potato's linux version and didn't care for the fact that I had to leave a term window open for the entirety of using the program. It bugged me. It's also possible I was not opening it correctly. However... I digress.

    Anyone know how to set up .tfrc for the following?

    Setting up a world
    highlighting incoming/outgoing pages
    spawn chat windows
    auto log by date



  • I use...

    /addworld GameAlias 127.0.0.1 1234

    (which you then use to /connect GameAlias)

    /set hiliteattr=BCgreen
    /hilite_page on
    /hilite From afar, *
    /hilite * pages: {*}
    /hilite Long distance to *
    /hilight You paged *


  • Coder

    @blackdahlia said in TinyFuge:

    So, I tried out Potato's linux version and didn't care for the fact that I had to leave a term window open for the entirety of using the program. It bugged me. It's also possible I was not opening it correctly.

    I know for a fact this isn't actually required but I don't remember how I set up my linux box or if I had to do anything special to get a proper launcher. What distro do you use?


  • Pitcrew

    This post is deleted!

  • Tutorialist

    I have a tiny.world file on the server I have a TF account on and in that file is basically this:

    /test addworld("<my alias>", "tiny", "<web address or ip>", "<port>", "<character>", "<password>", "", "", "<the server ip i'm connecting from>")
    /test addworld("reno", "tiny", "reno.mechanipus.com", "7639", "", "", "", "", "1.1.1.1")
    /test addworld("rom", "tiny", "fallenworldmux.com", "1984", "Romance", "pword", "", "", "1.1.1.1.1")
    

    Then when I load up I'm able to just: /world rom, /world reno, etc. And it would load up reno and i'd put in what character I wanted to log into. Or it'd load up fallen world and log me into Romance.

    My .tfrc file is this (truncated):

    ; ########################################
    ; ## REQUIRES
    ; ########################################
    
    ; Change the status bar. The default one is boring and useless.
    /load -q activity_status.tf
    
    ; Tab completeion is useful. Let's load it up, then rebind it to use TAB
    ; instead of ESC-TAB.  Note that this overwrites the typical TAB
    ; functionality of moving forward an entire page.
    /load -q completion.tf
    
    ; Use keyboard stacks to push text into a stack for a temporary period.
    ; ESC-DOWN will store data in the stack. ESC-UP will recall it, and (if
    ; necessary) push the current line to the bottom of the stack.
    /load -q ~/tflib/kbdoublestack.tf
    
    ; This will make ESC-W foreground the world with the most recent activity.
    /load -q worldqueue.tf
    
    ; ########################################
    ; ## CONFIGURATION
    ; ########################################
    
    ; Set the size of the input window.
    /set isize=7
    
    ; Turn off the regexp message about curly braces.
    ; Turn off the regexp message about curly braces.
    /set warn_curly_re=off
    
    ; Turn off the indent on wrapped lines.
    /set wrapspace=2
    
    ; Set the history size to something really big.
    /set histsize=10000
    
    ; Turning this on causes TinyFugue to pause when a full screen of text
    ; is reached. This is very useful stuff, man.
    /set more=on
    
    ; Turn off the annoying ===== message.
    /set textdiv=off
    
    ; Don't prompt me when I do an /sh. Just go straight to the shell.
    /set shpause=off
    
    ; Set up a page, channel and no-page/no-channel regexp patterns to be used in
    ; hilights and /limits.
    ; You paged (Satoshi, Lien) with 'Are Karl and Edmund going to come play?'.
    /set regexp_page=^(\[[-.\w ]+(\(\#[0-9]+\)(,\w+)?(\{[-.\w ]+\}<-\(\#[0-9]+\))?|:)][ ])?(\
    You paged [-.\w ]+ with '.*'\.?|\
    You paged [-.\w ]+ and [-.\w ]+ with '.*'\.?|\
    You paged ([-.\w ]+, ){2,}and [-.\w ]+ with '.*'\.?|\
    You paged \(([-.\w ]+, )+[-.\w ]+\) with '.*'\.?|\
    Long distance to [-.\w ]+: .*|\
    Long distance to ([-.\w ]+, ){2,}and [-.\w ]+: .*|\
    Long distance to \(([-.\w ]+, )+[-.\w ]+\): .*|\
    Long distance to \(([-.\w ]+, ){2,}and [-.\w ]+\): .*|\
    [-\w ]+ pages: .*|\
    \(To: [-.\w ]+ and [-.\w ]+\) [-.\w ]+ pages: .*|\
    \(To: ([-.\w ]+, ){2,}and [-.\w ]+\) [-.\w ]+ pages: .*|\
    To:? \(([-.\w ]+, )+[-.\w ]+\), [-.\w ]+ pages: .*|\
    From afar,? .*|\
    \(To: [-.\w ]+ and [-.\w ]+\) From afar, .*|\
    \(To: ([-.\w ]+, ){2,}and [-.\w ]+\) From afar, .*|\
    [-.\w ]+ pages: .*|\
    [-.\w ]+ pages [-.\w ]+ and [-.\w ]+: .*|\
    [-.\w ]+ pages ([-.\w ]+, ){2,}and [-.\w ]+: .*)$
    
    
    /set regexp_whisper=^(\[[-.\w ]+(\(\#[0-9]+\)(,\w+)?|:)][ ])?(\
    You whisper \".*\" to [-\w ]+\.|\
    You whisper \".*\" to [-\w ]+ and [-\w ]+\.|\
    You whisper \".*\" to ([-\w ]+, ){2,}and [-\w ]+\.|\
    You whisper \".*\" to ([-\w ]+, )+ [-\w ]+\.|\
    [-\w ]+ senses \"[-\w ]+ test\"|\
    [-\w ]+ whispers \".*\"|\
    You sense [-\w ]+ .*|\
    [-\w ]+ whispers something to [-\w ]+\.|\
    [-\w ]+ and [-\w ]+ sense \".*\"|\
    ([-\w ]+, ){2,}and [-\w ]+ sense \".*\"|\
    ([-\w ]+, )+[-\w ]+ sense \".*\"|\
    [-\w ]+ whispers \".*\")$
    
    /set regexp_chat=^(\[[-.\w ]+(\(\#[0-9]+\)(,\w+)?|:)][ ])?(\
    \[[-\w ]{1,24}] .*|\
    \<[-\w ]{1,24}\> .*|\
    Faction: \[[-\w ]{1,24}] .*)$
    
    /set regexp_nopagechat=^([-\w ]{1,24} pages( ([-\w ]{1,24}(, (and )?)?)+)?: .*|You paged (\()?([-\w ]{1,$
    
    /set regexp_name=\b(\
    belle|\
    nika|\
    nik(ki)?|\
    ada(let)?|\
    ari(adne)?|\
    nicotine\
    )\b
    
    /def name_hilite = /eval -s0 /def -F -p1 -P0Crgb145 -mregexp -t"%{regexp_name}" name_hilite
    /name_hilite
    /def -b'^x^n'=/limit -mregexp %{regexp_name}
    
    ; ########################################
    ; ## WORLDS
    ; ########################################
    
    ; Create a dummy world, just to avoid loading something unnecessarily.
    /addworld -e -Tdummy dummy
    
    ; If we haven't already loaded our .tfworlds file, load it now.
    /if ( lworlds !~ "loaded" ) /require -q ~/tiny.world%; /endif
    
    ; Mark our worlds file as loaded.
    /set lworlds=loaded
    
    /def myworlds=/world hm1%;/world hm2%;/world hm3%;/world hm5%;/world tmush1%;/world lon1%;/world lon2%;/$
    
    ; ########################################
    ; ## HOOKS
    ; ########################################
    
    ; Set up to log everything on connect.  This requires a log/<world name>/
    ; directory to already exist for the world being connected to.
    /def -p1 logger = /log -w%1 OFF %;  /log -w%1 ~/public_html/rplogs/%1.$[ftime("%F")].log %; /at 00:01 /l$
    /def -p0 -hCONNECT log_all = /eval /logger ${world_name}
    /def -p1 -mglob -h'CONFAIL|ICONFAIL *' recon_on_failure = /log -w%1 OFF%; /repeat -30 1 /connect -b %1
    
    ; ########################################
    ; ## TRIGGERS
    ; ########################################
    ; Set up page hilighting
    /def page_hilite = /eval -s0 /def -F -p5 -ahCcyan -mregexp -t"%{regexp_page}" page_hilite
    /page_hilite
    /def whisper_hilite = /eval -s0 /def -p6 -F -PhCgreen -mregexp -t"%{regexp_whisper}" whisper_hilite
    /whisper_hilite
    
    ; ########################################
    ; ## MACROS
    ; ########################################
    ; CTRL-L clears the screen
    /def -b'^L'=/dokey CLEAR
    
    ; CTRL-LEFT goes left one word
    /def -b'^[[D'=/dokey WLEFT
    
    ; CTRL-RIGHT goes right one word
    /def -b'^[[C'=/dokey WRIGHT
    
    ;/ls performs a /listsockets command
    /def ls=/listsockets
    
    ; /mc feeds mushcode through the unformatter, removing newlines and cleaning up
    ; commeents.  This requires the mushcode script in my ~/bin directory.  It will
    ; be made available upon request.
    ; USAGE: /mc <path/to/code>
    /def mc=/quote -0 !bin/mushcode %*
    ; /. will collect the contents of an attribute and put it in the input buffer for
    ; editing.  Really, this is a replacement for /grab.
    ; USAGE: /. <object>/<attribute>
    /def .=/set tester=$[rand()] %;/def -mregexp -n1 -ag -t"%{tester}>(.*)" autoedit=/input %%P1 %;/if ({#} $
    
    ;/unidle sends a ping every 10 minutes to keep me alive.
    ;USAGE: /unidle <world>
    /def unidle=/send THINK%; /repeat -w%1 -600 1 /unidle %1
    
    ; CTRL-X-P will limit my input to only pages
    /def -b'^x^p'=/limit -mregexp %{regexp_page}
    
    ; CTRL-X-T limits my input to only channel chatter
    /def -b'^x^t'=/limit -mregexp %{regexp_chat}
    ; CTRL-X-R limits my input to non-page non-channel content.
    /def -b'^x^r'=/limit -v -mregexp %{regexp_nopagechat}
    
    ; CTRL-X-X unlimits everything
    /def -b'^x^x'=/unlimit
    
    
    
    ; ########################################
    ; ## GAGS
    ; ########################################
    /def -p0 -ag -mglob -t'SAVE:*' gag1
    /def -p0 -ag -mglob -t'GAME: *Database*' gag2
    /def -p0 -ag -mglob -t'<DB>*' gag3
    /def -p0 -ag -mglob -t'GAME: Visit http://www.dlaom.org/register/login.php to vote on *\'s app.' gag4
    /def -p0 -ag -mglob -t'GAME: You are set DARK. This is just a friendly reminder.' gag5
    /def -p0 -ag -mglob -t'Database checkpoint*' gag6
    /def -p0 -ag -mglob -t'<<Database saving.>>' gag7
    /def -p0 -ag -mglob -t'<<Finished.>>' gag8
    /def -p0 -ag -mglob -t'[GAME] Yarr! We be savin\' now!!' gag9
    /def -p0 -ag -mglob -t'[GAME] The savin\' be complete! Back to yer pillagin\', me hearties!' gag10
    /def -p0 -ag -mglob -t'JESUS: Save complete.*' gag11
    /def -p0 -ag -mglob -t'<backup> Performing nightly backups.*' gag12
    /def -p0 -ag -mglob -t'<<Game>> Backup to offline*' gag13
    /def -p0 -ag -mglob -t'* has partially disconnected.' gag14
    /def -p0 -ag -mglob -t'* has reconnected.' gag15
    /def -p0 -ag -mglob -t'<+meetme> * is being teleported away.' gag16
    /def -p0 -ag -mglob -t'Writing reality out to disk. Please wait...' gag17
    /def -p0 -ag -mglob -t'Reality saved. Thank you for your patience.' gag18
    /def -p0 -ag -mglob -t'FAE JOBS: *' gag19
    /def -p0 -ag -mglob -t'BUILD JOBS: *' gag20
    /def -p0 -ag -mglob -t'FERAL JOBS: *' gag21
    /def -p0 -ag -mglob -t'HUNT JOBS: *' gag23
    /def -p0 -ag -mglob -t'IMM JOBS: *' gag24
    /def -p0 -ag -mglob -t'LAW JOBS: *' gag25
    /def -p0 -ag -mglob -t'M JOBS: *' gag26
    /def -p0 -ag -mglob -t'M+ JOBS: *' gag27
    /def -p0 -ag -mglob -t'POSS JOBS: *' gag28
    /def -p0 -ag -mglob -t'MAGE JOBS: *' gag29
    /def -p0 -ag -mglob -t'WERE JOBS: *' gag30
    
    
    ; ########################################
    ; ## TRIGGERS
    ; ########################################
    


  • @ixokai said in TinyFuge:

    @blackdahlia said in TinyFuge:

    So, I tried out Potato's linux version and didn't care for the fact that I had to leave a term window open for the entirety of using the program. It bugged me. It's also possible I was not opening it correctly.

    I know for a fact this isn't actually required but I don't remember how I set up my linux box or if I had to do anything special to get a proper launcher. What distro do you use?

    'nohup command &'



  • Just create a launcher for Potato and then you won't have to worry about using the terminal to start it. The process is slightly different from distro to distro but the basics are the same. Check out this quick and dirty video tutorial.


  • Pitcrew

    @rnmissionrun Genius. This worked, thank you.



  • I was gonna say, I've never had to leave a term window open. I just created a launcher.



  • What is this goo-ey you speak of?