• Lua scripting patch for Syncterm(send/expect,recorder)

    From Heisenberg@VERT/HEISEN to All on Mon Oct 19 14:01:11 2026
    Hi everyone
    I wanted to script some of my BBS logins and routine visits(log in, page past the bulletins, check mail, log off), so i added a small Lua scripting layer to SyncTERM 1.9. Its working well for me and i thought others might find it usefull.

    What it does:
    send/expect scripting in Lua 5.4:expect("Login:, sendln(bbs/user),
    with timeouts and if/then on whichever prompt showed up

    background triggers, e.g. answer every "--More--" automaticly

    plain text, Lua pattern, or PCRE regex matching

    a recorder: Alt-R, use the BBS, Alt-R again and you get a script you can replay (passwords are not saved to the file)

    run a script with -x on the command line, from a new "Script" field on a directory entry, or with Alt-S while connected

    The script runs inside the terminal's main loop, so the screen and keyboard stay live while its waiting and you can take over any time. Without a script, nothing changes.

    Source patches and a Linux build are here: https://github.com/Heisenberg61/syncterm-lua

    The first commit is the stock 1.9 source tarball, so the diff against it shows the whole change. Its mostly one new file (script.c) plus small hooks in term.c, bbslist.c, menu.c and the makefiles, and it builds without Lua via WITHOUT_LUA=1.

    I tested it with a script that can play through a full game of Lord 4.6 hands off.. but its a little buggy so far

    Its only been tested on Linux, but it _SHOULD_ compile and run on windows.

    To be clear, this is an unofficial fork. Please send any problems with it to
    me not to Deuce

    Thanks

    ---
    þ Synchronet þ Kalgoorlie Retro BBS, Kalgoolrie, WA
  • From Digital Man@VERT to Heisenberg on Mon Oct 19 11:37:33 2026
    Re: Lua scripting patch for Syncterm(send/expect,recorder)
    By: Heisenberg to All on Mon Oct 19 2026 02:01 pm

    I wanted to script some of my BBS logins and routine visits(log in, page past the bulletins, check mail, log off), so i added a small Lua scripting layer to SyncTERM 1.9. Its working well for me and i thought others might find it usefull.

    Deuce added scripting (using the 'wren' engine/language instead of Lua) to SyncTERM v1.10a - you might consider using that instead.
    --
    digital man (rob)

    Rush quote #29:
    Nowhere is the dreamer or the misfit so alone
    Norco, CA WX: 88.8øF, 20.0% humidity, 0 mph SSW wind, 0.00 inches rain/24hrs ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Heisenberg@VERT/HEISEN to Digital Man on Tue Oct 20 00:06:11 2026
    Hi Rob,

    Thanks for the pointer. I hadn't seen the Wren work, since I'd only been following the 1.9 release. I've now had a read through Wren.adoc in git
    and it's far more extensive than what I put together. It goes a long way
    past session automation.

    The two things my patch adds that I couldn't find there are a blocking send/expect style of script (expect "Login:", send the name, wait for
    one of several prompts with a timeout, branch on which one came back),
    and a recorder that turns a live session into a replayable script.
    Those are what I was mainly after, for login scripts and for driving
    door games.

    My patch is against 1.9 and won't carry over to 1.10, since the menu
    code it hooks into has moved to Wren. So rather than maintain a Lua fork
    long term, I'll look at doing expect/send and the recorder as a Wren
    package for 1.10, along the lines of the Yankee Trader one. In the
    meantime the Lua patch will stay a clearly labelled 1.9 add-on.

    If Deuce has any thoughts on whether something like that would be
    useful, or would rather it be done a particular way, I'm happy to hear
    them.

    Thanks again,
    Michael

    ---
    þ Synchronet þ Kalgoorlie Retro BBS, Kalgoolrie, WA
  • From poindexter FORTRAN@VERT/REALITY to Heisenberg on Tue Oct 20 09:53:31 2026
    Heisenberg wrote to All <=-

    Hi everyone
    I wanted to script some of my BBS logins and routine visits(log in,
    page past the bulletins, check mail, log off), so i added a small Lua scripting layer to SyncTERM 1.9. Its working well for me and i thought others might find it usefull.

    I would love to see this in SyncTerm. Telix's SALT language was popular
    back in the day, and I scripted whole interactions with BBSes from
    login, hitting escape to get past the EMSI banner, passing creds,
    downloading/uploading messages, and logging off.


    ... ZIMA TASTES BETTER WHEN IT'S ILLEGAL
    --- MultiMail/Win v0.52
    þ Synchronet þ .: realitycheckbbs.org :: scientia potentia est :.
  • From MRO@VERT/BBSESINF to all on Thu Oct 22 00:16:23 2026
    Re: Re: Lua scripting patch for Syncterm(send/expect,recorder)
    By: poindexter FORTRAN to Heisenberg on Tue Oct 20 2026 09:

    Heisenberg wrote to All <=-

    Hi everyone I wanted to script some of my BBS logins and routine visits(log in, page past the bulletins, check mail, log off), so i added a small Lua scripting layer to SyncTERM 1.9. Its working well
    for me and i thought others might find it usefull.

    I would love to see this in SyncTerm. Telix's SALT language was
    popular back in the day, and I scripted whole interactions with BBSes
    from login, hitting escape to get past the EMSI banner, passing
    creds, downloading/uploading messages, and logging off.


    it's crazy what you can do with ai now. i told claude make me a terminal program in go lang and make sure it does 16cols and 256 colors. and i told
    it i wanted themes to choose from and ssh and rlogin. and it shot it out.

    then i told it to take doc's python television ansi server thing and make it
    in go lang and make it easier to setup and here i am streaming iptv in ansi
    on my server.

    and i'm watching it using the terminal program it made.

    --
    https://i.imgur.com/MNKA5U0.png
    President of BBS Sysop's Union +++ https://bbses.info/union

    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::