BetterTerminal
Improved GTFO terminal with fuzzy search, pipelines, consumable tracking, localization and searchable command history.
| Date uploaded | 3 days ago |
| Version | 1.1.1 |
| Download link | Daem0n-BetterTerminal-1.1.1.zip |
| Downloads | 0 |
| Dependency string | Daem0n-BetterTerminal-1.1.1 |
This mod requires the following mods to function
BepInEx-BepInExPack_GTFO
BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.
Preferred version: 3.2.2README
BetterTerminal
BetterTerminal 1.1.1 expands GTFO's computer terminals with faster search, command pipelines, item tracking, configurable visuals, localization, guided help, and extended command history.
Development disclosure: this project was created with assistance from OpenAI Codex. Design decisions, testing, packaging, and publication remain the author's responsibility.
BetterTerminal is designed as a convenience layer over GTFO's native terminal, not as a replacement for its command system.
What's new in 1.1.0
- Guided help, command topics, status diagnostics, and documentation links.
- Command and configuration autocomplete.
- Configuration profiles, section views, validation, reset, and text glow intensity.
- Better token-by-token fuzzy matching, spacing recovery, pipelines, and visible history.
- Interactive web documentation and terminal trainer.
- Visual, localization, consumable, map-marker, and runtime-safety improvements.
See CHANGELOG.md for detailed verification notes and limitations.
Main features
- Fuzzy completion for commands and terminal item identifiers.
- Common-prefix completion or interactive arrow selection for ambiguous matches.
- Configurable Levenshtein distance.
- Searchable extended command history inspired by interactive shells.
- Session-only history by default. Optional disk persistence with
CONFIG HISTORYMODE DISK; clear it withHISTORY CLEAR. LISTandQUERYsupport for ID ranges and result limits.- Typed pipelines with filtering, sorting, limiting, querying, pinging, marking, and text processing.
- Terminal registration,
QUERY,PING, and map markers for uncollected consumables. - Runtime settings through
CONFIG; most changes apply without restarting GTFO. - JSON localization with runtime language switching and custom language files.
- Configurable neofetch-style terminal status.
- Optional sleeping-terminal image and interactive background customization.
- Optional STFO scripting support through the separate STFO package.
Installation
Mod manager
Install BetterTerminal through r2modman or Thunderstore Mod Manager. Required dependencies are installed automatically.
Manual
Install the GTFO BepInEx pack, then place BetterTerminal.dll inside:
GTFO/BepInEx/plugins/BetterTerminal/
Getting started
Use these commands in any GTFO terminal:
COMMANDS
HELP
CONFIG
NEOFETCH
IDLESCREEN
HELP BETTERTERMINAL
BETTERTERMINAL STATUS
DOCS
Examples:
LIST MEDIPACK 3
LIST MEDIPACK_100-500
QUERY MEDIPACK 2
LIST GLOW_STICK | WHERE ZONE 49 | TAKE 1 | PING
LIST TOOL_REFILL | SORT ID | TAKE 3 | QUERY
COMMANDS | WHERE TEXT PING
Item filters and queries
LIST keeps GTFO's native substring-filter behavior. For predictable results,
prefer a complete item type instead of a single letter:
LIST GLOW_STICK
LIST MEDIPACK
LIST CONSUMABLES
LIST NATIVE | WHERE ZONE 49
LIST CONSUMABLES shows only supported consumables registered by
BetterTerminal. LIST NATIVE is available as a pipeline source and excludes
those added consumables.
Direct and piped queries both accept native terminal objects and supported consumables:
QUERY GLOW_STICK_001
LIST GLOW_STICK | WHERE ZONE 49 | TAKE 1 | QUERY
LIST MEDIPACK | TAKE 1 | QUERY
Consumable queries show type, current zone and area, placement state, use, and ping availability. Registration occurs while level objects initialize, so results can briefly change during level loading or host migration.
Press Up on an empty command line to open searchable history. Type to narrow results, use Up/Down to select, then press Enter.
Consumable tracking
BetterTerminal can expose supported consumables that vanilla terminals do not normally list. Only items still present in the level are tracked. Supported categories include:
- Fog repellers
- C-Foam grenades
- Lock melters
- Glow sticks
- Long-range flashlights
- I2-LP syringes
- IIx syringes
- Explosive tripmines
- C-Foam tripmines
This feature is experimental and can be disabled per category through CONFIG or BetterTerminal.cfg.
Picked-up items are removed from terminal results. Dropped supported items are registered again after GTFO reports their new placement. Zone data comes from the item's current course node rather than its original spawn metadata.
Localization
Language files are created under:
BepInEx/config/BetterTerminal/Localization/
English and Spanish are included. template.json can be copied and translated to add another language. Change language at runtime:
CONFIG LANGUAGE EN
CONFIG LANGUAGE ES
CONFIG RELOAD
Terminal appearance
BetterTerminal exports replaceable files under:
BepInEx/config/BetterTerminal/neofetch.txt
BepInEx/config/BetterTerminal/idle-screen.png
Neofetch output is configurable. Sleeping-terminal replacement is configurable; the experimental interactive background is disabled by default. Image rotation, flipping, opacity, intensity, color behavior, and terminal text color can be adjusted through CONFIG or BetterTerminal.cfg.
Multiplayer and achievements
- BetterTerminal is client-side for its interface and convenience features.
- Other players do not need it for you to use local terminal improvements.
- GTFO does not officially support mods; use a modded profile and private sessions.
- BetterTerminal does not intentionally disable Steam achievements. This is not a guarantee from GTFO or Steam.
- Tracking and pipeline features may expose information unavailable through vanilla terminal commands.
STFO compatibility
STFO is optional. BetterTerminal works without STFO. STFO requires BetterTerminal and declares it as a Thunderstore dependency.
Support
When reporting a problem, include:
BepInEx/LogOutput.log- BetterTerminal version
- GTFO rundown/version
- Command entered
- Relevant configuration values
- Reproduction steps
For consumable-list reports, also include the exact commands used and whether
the result changed after waiting, changing terminal, dropping an item, or host
migration. Single-letter filters such as LIST U are broad substring searches;
use LIST CONSUMABLES when testing consumable registration specifically.
Issues and source: github.com/AlexanderMakunin/BetterTerminal
Detailed documentation: alexandermakunin.github.io/BetterTerminal
GTFO does not officially support mods. Game updates, IL2CPP changes, rundowns, and other mods can expose untested behavior. Local validation cannot guarantee every runtime combination.
Credits
- Code and project: AlexanderMakunin
- Icon artwork: hawry
- AI-assisted development: OpenAI Codex
License
MIT License.
CHANGELOG
Changelog
1.1.3
- Register supported consumables when GTFO finishes their factory/culling
setup, instead of waiting for
LIST CONSUMABLESto refresh the registry. - Add
CONFIG CONSUMABLESINLIST ON|OFF. DefaultOFFkeeps broad native searches such asLIST Ufree from BetterTerminal consumables; explicitLIST CONSUMABLESand pipeline sources remain available. - Expire direct and piped consumable locator pings after five seconds, matching native terminal-item behavior more closely.
- Preserve persistent
MARKmap markers when a temporary ping expires.
Verification and limitations
- Debug build completed with no compiler errors or warnings.
- Factory/culling timing and five-second cleanup require in-game verification.
LIST ... | PINGstill requires exactly one resulting item. UseTAKE 1when a filter returns multiple matches.
1.1.2
saying a word was triggering thunderstore making my mod be down
- Replaced potentially moderated wording in the linked project README.
- No runtime behavior changed in this release.
Transparency
- Thunderstore reported only
Invalid submission; it did not identify the rejected word or confirm that wording caused the rejection. - This release tests that plausible cause without presenting it as proven.
1.1.1
Command history previously always loaded and rewrote history.txt. This made
old commands return after closing GTFO or restarting the computer.
- Changed history persistence to session-only by default.
- Added
CONFIG HISTORYMODE SESSION|DISKfor explicit persistence control. - Added
HISTORY CLEARto remove in-memory and saved history. - Updated autocomplete, localization, help, and documentation.
Verification and limitations
- Release build completed with no compiler errors or warnings.
- Existing
history.txtremains on disk in session mode but is not loaded.HISTORY CLEARremoves it. - Runtime deployment requires GTFO to be closed because the game locks the DLL.
1.1.0
This update focuses on making BetterTerminal easier to discover, configure, and use without replacing GTFO's native terminal behavior.
- Added guided help, documentation topics, status diagnostics, and documentation links.
- Added command and configuration autocomplete.
- Added configuration profiles, section views, validation, reset support, and text glow intensity.
- Improved token-by-token fuzzy matching, spacing recovery, pipelines, and visible command history.
- Added the interactive GitHub Pages documentation and terminal trainer.
- Improved terminal visuals, localization, consumable tracking, map markers, and runtime safeguards.
- Added
LIST CONSUMABLESand pipeline category filtering for tracked consumables. - Improved direct and piped
QUERYoutput with native details and localized consumable uses. - Changed command history to session-only storage by default. Earlier builds
always loaded and rewrote
BepInEx/config/BetterTerminal/history.txt, which made old commands return after GTFO and the computer restarted. - Added optional
CONFIG HISTORYMODE DISKpersistence andHISTORY CLEAR.
Verification and known limitations
- Release build and Thunderstore package format validated locally.
- Changes iterated using GTFO runtime logs and in-game testing.
- AI-assisted development is disclosed; AlexanderMakunin directed and tested the work.
- GTFO updates and other mods can change IL2CPP behavior, so untested combinations may still expose issues.
1.0.0
- Initial public release.
- Added fuzzy completion for commands and terminal identifiers.
- Added common-prefix and arrow-selection modes for ambiguous matches.
- Added configurable Levenshtein distance and uppercase behavior.
- Added searchable extended command history.
- Added ID ranges and result limits for
LISTandQUERY. - Added typed command pipelines with item and text sources.
- Added pipeline filtering, sorting, limiting, counting, querying, pinging, marking, and unmarking.
- Added configurable tracking, queries, pings, locators, and map markers for uncollected consumables.
- Added runtime configuration commands and configuration reload.
- Added English, Spanish, and custom JSON localization with runtime language switching.
- Added configurable neofetch-style terminal status output.
- Added optional sleeping-terminal image and interactive background customization.
- Added terminal image rotation, flipping, opacity, intensity, color mode, and text-color settings.
- Added extension APIs used by optional STFO integration.
- Added safeguards for image size, ASCII dimensions, terminal input, and generated output.