
STFO
Sandboxed scripting language and terminal runtime for BetterTerminal pipelines and interactive programs.STFO
STFO is an experimental scripting language and terminal runtime layered on top of BetterTerminal. BetterTerminal works without STFO; STFO requires BetterTerminal. Thunderstore and r2modman install the declared dependency automatically.
Development disclosure: STFO was developed with assistance from OpenAI Codex. AlexanderMakunin directed, reviewed, tested, packaged, and publishes the project. AI assistance does not guarantee correctness. Reproducible bug reports and code review are welcome.
Features
- Interactive programs using
RUN. - Pipeline scripts such as
LIST MEDIPACK | STFO DEMO | QUERY. - Program and pipeline entry points in one
.stfofile. - Variables, functions, conditions, loops, lists, maps and imports.
- Private text and arrow-controlled option input.
PRINT,OUTPUT, static checks and workspace-confined file access.- Configurable instruction, estimated-memory, time, recursion, import, source, collection and string limits.
- Recursive script folders and safe relative imports.
Quick start
STFO creates its script workspace when the plugin loads:
BepInEx/config/STFO/Scripts
SCRIPTS
SCRIPTS FILTER
STFO CHECK DEMO
STFO CONFIG
RUN DEMO
LIST MEDIPACK | STFO DEMO | QUERY
Important limitations
STFO is a bounded interpreter, not a proven security boundary. Memory use is estimated rather than enforced by the operating system, and time checks are cooperative. Bugs or mod conflicts may still cause hangs, crashes or data loss. Review downloaded scripts before running them.
File writes are disabled by default. When enabled, STFO confines resolved paths to its script workspace and rejects reparse points, symlinks and junctions. Private input is not encryption and may still be observable by other mods, logs, memory inspection or networking.
STFO runs client-side. Scripts are not automatically distributed or synchronized with other players. GTFO does not officially support mods, and updates to GTFO, IL2CPP, BepInEx, BetterTerminal or other mods may break it.
Version 1.0.1 compiled without warnings or errors against BetterTerminal 1.1.1 and its package layout was validated. This does not guarantee every rundown, script, multiplayer setup, host migration or long session works correctly.
Configuration
STFO CONFIG
STFO CONFIG RELOAD
STFO CONFIG ENABLED ON|OFF
STFO CONFIG WRITES ON|OFF
STFO CONFIG STATS ON|OFF
STFO CONFIG UPPERCASEINPUT ON|OFF
STFO CONFIG INPUTLIMIT 1-65536
STFO CONFIG LISTLIMIT 1-1000
STFO CONFIG PROMPT TEXT
STFO CONFIG MARKER TEXT
Full documentation and issue reporting: alexandermakunin.github.io/STFO · GitHub source and issues
Credits
- Code and project: AlexanderMakunin
- Icon artwork: Hawry
- AI-assisted development: OpenAI Codex
- License: MIT
Original author note
I know guys that the code is made by AI (with my supervision and testing by myself) isnt the best and maybe bad but wanted do smt for help u (and myself and friends) in common things that happens to all. Ff u got any ideas, recomendation or anything just go to the github and try ask me there, ill be glad to hear your opinions and changes to it. Made with passion, time and suffering asking to codex (chatgpt) to help me build this thing for all.