Skip to content

Environment Variables

Snip edited this page Jun 19, 2026 · 6 revisions

Environment variables can be used to affect Everest, sometimes overlapping with in-game Settings or Command Line Arguments.
Variables can also be added to an everest-env.txt file next to everest-launch.txt, and will be loaded automatically by Everest.

Note that some of these variables are not maintained/tested, and may not work as intended. Please open an issue 🔗 and update this page if a broken variable is not already documented as such.

everest-env.txt format

  • Lines starting with a hash # are comments.
  • Each line is expected to be a key-value pair separated by an equals sign =, much like shell variables.
  • The key and value may be enclosed in single quotes '.
    • If whitespace is included within the quotes, it is preserved.
  • The value accepts \r and \n escape sequences and variable substitution with ${key}.
    • Variable substitution only accepts key being the key of the line being currently parsed.
  • If the key name ends with an exclamation mark !, the value is interpreted verbatim without any further processing; meaning, the above is skipped.
Practical examples
# Define the "MY_ENVIRONMENT_VARIABLE" environment variable with the value of "Hello world!".
MY_ENVIRONMENT_VARIABLE=Hello world!

# Surrounding whitespace is insignificant.
# All of the definitions below are the same as the one at the top.
MY_ENVIRONMENT_VARIABLE= Hello world!
MY_ENVIRONMENT_VARIABLE =Hello world!
MY_ENVIRONMENT_VARIABLE = Hello world!
  MY_ENVIRONMENT_VARIABLE  =  Hello world!

# The variable and its value may be enclosed in single quotes.
# All of the definitions below are the same as the one at the top.
'MY_ENVIRONMENT_VARIABLE'=Hello world!
MY_ENVIRONMENT_VARIABLE='Hello world!'
'MY_ENVIRONMENT_VARIABLE'='Hello world!'

# Leading/trailing whitespace enclosed in single quotes is preserved.
# The definition below will include two spaces after the period.
MY_SENTENCE='I have trailing space.  '

# The definition below will define a variable name with two spaces at the end
# as part of its name.
# (not sure why you'd ever need an envvar with spaces, but it's there)
'MY_CURRENT_MOOD  '=Spacing out.

# The value accepts \r and \n escape sequences.
# The definition below has three Window-style line breaks.
MY_HAIKU=First line of haiku.\r\nOh! Second line of haiku.\r\nThird line of haiku.

# Variable substitution with ${key} is possible, but the key must be the same
# as the variable name being currently defined.
# The definition below appends two new lines and "Bottom text" to the end of
# the MY_MEME environment variable.
MY_MEME=${MY_MEME}\r\n\r\nBottom Text

# Attempting to do variable substitution with environment variables other
# than the one being defined will not work.
# The definition below will evaluate to the literal string
# "I'm ${MY_COLOR} (da ba dee da ba da)".
MY_CONDITION=I'm ${MY_COLOR} (da ba dee da ba da)

# If the variable name ends with an exclamation mark (!), escape sequences and
# variable substitution are not performed.
# The definition below will evaluate to the literal string
# "${MY_MEME}\r\n\r\nBottom Text".
MY_BAD_MEME!=${MY_MEME}\r\n\r\nBottom Text

Everest Variables

EVEREST_LOG_FILENAME

Determines the name of the log.txt file that Everest writes to. If the file does not have a trailing .txt extension, one will be appended before writing to the file.

Value: file name

EVEREST_NEW_KEYBOARD_INPUT

If set, uses the XNA keyboard driver instead of FNA's. This can help with input latency or certain keys not being registered.

Values: 1 or 0 (default)

EVEREST_NO_ERRORLOG_ON_CRASH

Suppresses the automatic opening of the Error Log on crash.

Values: 1 or 0 (default)

EVEREST_SAVEPATH

Overrides the directory where the Saves folder is located.

Value: path

EVEREST_SKIP_REQUEST_FOCUS_AFTER_SPLASH

Enables or disables requesting window focus after the game window shows up. When empty the focus request will only be triggered if the everest boot splash was enabled, but if its assigned to 1 or 0 the focus request will be performed/skipped regardless of the splash configuration, respectively.

Values: 1, 0 or empty (default)

EVEREST_TMPDIR

Determines the location where temporary files, like mod updates and/or dependencies, are stored. When empty, defaults to the location of Celeste.

Value: path

LOCAL_LUA_DEBUGGER_VSCODE

Initializes the Local Lua Debugger 🔗 when loading a LuaModule.

Values: 1 or 0 (default)

Obsolete Variables

Variables listed here used to be recognized by Everest but no longer are.

EVEREST_NO_RT

Everest would avoid using RenderTargets.

Values: 1 or 0 (default)

EVEREST_HEADLESS

Used to enable headless mode for Everest. Re-implemented to be specified as an argument for MiniInstaller, see Command Line Arguments.

Other Variables

Other libraries used by Everest and Celeste have their own environment variables that can be set to configure their behaviour. Any notable examples will be included here, but for a full reference please see the documentation for those libraries.

Clone this wiki locally