trainsaver


A dynamic screensaver that follows trains as they drive around

Utilities
8 days ago
1.1 - 2.0
6.67K
Trains
Owner:
asher_sky
Source:
N/A
Homepage:
N/A
License:
CC BY-NC-SA
Created:
5 years ago
Latest Version:
0.1.0 (8 days ago)
Factorio version:
1.1 - 2.0
Downloaded by:
6.67K users

Sit back, relax, and watch your trains drive around!

This mod creates a dynamic screensaver which follows trains as they drive around from station to station. The screensaver can be started or stopped at any time with cmd/ctrl + t or the /trainsaver chat command. The screensaver can also start automatically when a player is AFK. Most game-control keys will exit the screensaver and return control to the player, except the right/left arrow keys which navigate a history of previously viewed targets.

Please report any issues or suggestions on the Discussion page.


Features

  • Easy Access: start or stop trainsaver at any time with a configurable hotkey (default: cmd/ctrl + t) or use the /trainsaver command in chat console
  • AFK AutoStart: trainsaver can start automatically when player is afk
  • Quick Escape: easily exit trainsaver by pressing any game-control key (movement, inventory, logistic network, train overview, etc.)
  • Fully Configurable: each player has their own individual settings to control how trainsaver behaves (zoom, transitions, AFK AutoStart time, etc.)
  • Time Travel: take control of the focus target and navigate through your history of previously viewed targets (default: right/left arrow keys)
  • Custom Achievements: 8 unique trainsaver achievements to unlock, plus 3 secret hidden ones!
  • Scope Creep: enable the scope creep mod setting to expand trainsaver's focus beyond just trains /|(β—¦.β—¦)/|\

trainsaver demo video

(4 minutes, v0.0.3, December 2020)


trainsaver extended preview video

(30 minutes, v0.0.3, December 2020)


Commands

trainsaver provides the following chat commands:

  • /trainsaver --> toggles trainsaver on or off
  • /ts-start --> starts trainsaver
  • /ts-end --> ends trainsaver
  • /ts-verbose --> toggles verbose mode debug messages on or off
  • /ts-reset_history --> clears the target history for the player
  • /ts-next_target --> tells trainsaver to go forward in history. finds a new target if current target is the newest in history
  • /ts-previous_target --> tells trainsaver to go backward in history. won't do anything if the current target is the oldest in history
  • /ts-ignore_stations <train-stop> --> adds the specified train stations to the ignored stations list
  • /ts-unignore_stations <train-stop> --> removes the specified train stations from the ignored stations list
  • /ts-list_ignored_stations --> lists all currently ignored train stations

Interface

trainsaver provides an interface for other mods to interact with. The interface is named trainsaver and includes the following functions:

  • trainsaver_status(player_index) --> returns the status of trainsaver for a given player, either "active" or "inactive"
  • trainsaver_target(player_index) --> returns the current target (LuaEntity | LuaUnitGroup) trainsaver is following for a given player, or nil if there is none
  • start_trainsaver(player_index) --> starts trainsaver for a given player
  • end_trainsaver(player_index) --> ends trainsaver for a given player
  • toggle_trainsaver(player_index) --> toggles trainsaver for a given player
  • focus_next_target(player_index) --> tells trainsaver to go forward in history. finds a new target if current target is the newest in history
  • focus_previous_target(player_index) --> tells trainsaver to go backward in history. won't do anything if the current target is the oldest in history
  • reset_player_history(player_index) --> clears the target history for a given player

Example interface usage:


Translation

Help translate trainsaver to more languages: https://crowdin.com/project/factorio-mods-localization
Currently available locale:
πŸ‡ΊπŸ‡Έ English (en), πŸ‡·πŸ‡Ί Russian (ru), πŸ‡ΊπŸ‡¦ Ukrainian (uk)


Compatibility

There are currently no known mod compatibility issues. To report a compatibility issue, please make a post on the discussion page.

If you have suggestions or bug fixes that you would like to contribute directly, feel free to open a pull request on GitHub.