Table of Contents

Class Options

Namespace
TinyLife
Assembly
TinyLife.dll

The game's options, which are displayed in the Initialize(UiSystem, bool, Tab) menu and saved to disk

[DataContract]
public class Options : JsonTypeSafeGenericDataHolder, IGenericDataHolder
Inheritance
JsonTypeSafeGenericDataHolder
Options
Implements
IGenericDataHolder
Inherited Members
JsonTypeSafeGenericDataHolder.GetDataKeys()
Extension Methods

Fields

AllowMods

Whether loading mods is allowed.

[DataMember]
public bool AllowMods

Field Value

bool

AnimatedTiles

Whether water and other tiles should be animated.

[DataMember]
public bool AnimatedTiles

Field Value

bool

AutoSaveIntervalSeconds

The auto-save interval in seconds. Note that this value should be set to 30, 60, 180, 300 or 600, as otherwise, the options menu will display it incorrectly.

[DataMember]
public int AutoSaveIntervalSeconds

Field Value

int

AutoTiles

Whether auto-tiles should be used in the world. Note that this excludes water, which always has an auto-tiled border.

[DataMember]
public bool AutoTiles

Field Value

bool

BlurZoomedOut

Whether the camera should be blurred when zoomed out. This value is automatically used by GetMapSampler().

[DataMember]
public bool BlurZoomedOut

Field Value

bool

BrightnessIncrease

A percentage that the game's world's brightness is increased by, mainly intended for users with darker screens

[DataMember]
public float BrightnessIncrease

Field Value

float

BuildModeKeybind

[DataMember]
public readonly Keybind BuildModeKeybind

Field Value

Keybind

CameraDownKeybind

[DataMember]
public readonly Keybind CameraDownKeybind

Field Value

Keybind

CameraLeftKeybind

[DataMember]
public readonly Keybind CameraLeftKeybind

Field Value

Keybind

CameraRightKeybind

[DataMember]
public readonly Keybind CameraRightKeybind

Field Value

Keybind

CameraRotation

The game's camera rotation. To use this value effectively, you can use ToVisualY(Vector2), ApplyCameraRotation(Vector2, bool, Direction2?) and ApplyInverseCameraRotation(Vector2, Direction2?). This value should be changed through RotateCamera(bool).

[DataMember]
public Direction2 CameraRotation

Field Value

Direction2

CameraUpKeybind

[DataMember]
public readonly Keybind CameraUpKeybind

Field Value

Keybind

CheatsKeybind

[DataMember]
public readonly Keybind CheatsKeybind

Field Value

Keybind

ColorSelectionOrder

[DataMember]
public ColorSelectionOrder ColorSelectionOrder

Field Value

ColorSelectionOrder

ColorToolKeybind

[DataMember]
public readonly Keybind ColorToolKeybind

Field Value

Keybind

CopyFurnitureKeybind

[DataMember]
public readonly Keybind CopyFurnitureKeybind

Field Value

Keybind

CurrentFloor

The floor that the game's camera is currently focused on. For the active lot, all floors that are above the current floor are hidden, and all floors below the current floor are always displayed.

[DataMember]
public int CurrentFloor

Field Value

int

CursorScale

The game's TinyLife.Uis.Cursor scale.

[DataMember]
public float CursorScale

Field Value

float

DecreaseSpeedKeybind

[DataMember]
public readonly Keybind DecreaseSpeedKeybind

Field Value

Keybind

DisableEatingSounds

Whether eating and drinking sounds should be disabled.

[DataMember]
public bool DisableEatingSounds

Field Value

bool

DisabledMods

[DataMember]
public readonly Dictionary<string, string> DisabledMods

Field Value

Dictionary<string, string>

EmotionParticles

Whether emotion particles should be displayed.

[DataMember]
public bool EmotionParticles

Field Value

bool

EmotionStingVolume

The volume of emotion sting sound effects. Note that the sting volume is still multiplied with the sound master volume SoundVolume.

[DataMember]
public float EmotionStingVolume

Field Value

float

EventStingVolume

The volume of event sting sound effects, used by PlayEventSting(SoundEffect). Note that the sting volume is still multiplied with the sound master volume SoundVolume.

[DataMember]
public float EventStingVolume

Field Value

float

FenceToolKeybind

[DataMember]
public readonly Keybind FenceToolKeybind

Field Value

Keybind

FloorDownKeybind

[DataMember]
public readonly Keybind FloorDownKeybind

Field Value

Keybind

FloorUpKeybind

[DataMember]
public readonly Keybind FloorUpKeybind

Field Value

Keybind

FurnitureToolKeybind

[DataMember]
public readonly Keybind FurnitureToolKeybind

Field Value

Keybind

GameSpeeds

An array of all defined GameSpeed values

public static readonly GameSpeed[] GameSpeeds

Field Value

GameSpeed[]

GamepadCursorSpeed

The speed of the gamepad's cursor.

[DataMember]
public float GamepadCursorSpeed

Field Value

float

GamepadScreenBorder

A percentual border around the screen's border at which the camera will start scrolling when gamepad controls are used.

[DataMember]
public float GamepadScreenBorder

Field Value

float

GamepadSwapAForB

Whether the A and B buttons' behaviors should be swapped when using a gamepad. This value is used in AButton and BButton.

[DataMember]
public bool GamepadSwapAForB

Field Value

bool

GamepadSwapTriggers

Whether the left and right trigger's behavior should be swapped when using a gamepad. This value is used in LeftTrigger and RightTrigger.

[DataMember]
public bool GamepadSwapTriggers

Field Value

bool

GamepadSwapXForY

Whether the X and Y buttons' behaviors should be swapped when using a gamepad. This value is used in XButton and YButton.

[DataMember]
public bool GamepadSwapXForY

Field Value

bool

GridKeybind

[DataMember]
public readonly Keybind GridKeybind

Field Value

Keybind

HideControlsHints

Whether the ControlsHint in the bottom-right corner of the screen should be hidden.

[DataMember]
public bool HideControlsHints

Field Value

bool

HideDemoHints

Whether "unavailable in demo" hints should be hidden.

[DataMember]
public bool HideDemoHints

Field Value

bool

HideEarlyAccessHints

Whether "on the roadmap" hints should be hidden.

[DataMember]
public bool HideEarlyAccessHints

Field Value

bool

HideGamepadControlsHints

Whether the gamepad controls hints should be hidden, even when using a gamepad. This value is used by GamepadHint(Anchor, Func<Options, Buttons>, Vector2, Vector2?, Func<bool>).

[DataMember]
public bool HideGamepadControlsHints

Field Value

bool

HideHangingObjects

Whether hanging objects should be hidden in the world if walls are down. This property is automatically evaluated when a Furniture object is drawn.

[DataMember]
public bool HideHangingObjects

Field Value

bool

HideSeenObjectHints

[DataMember]
public bool HideSeenObjectHints

Field Value

bool

HigherSpeedIncrease

[DataMember]
public bool HigherSpeedIncrease

Field Value

bool

HighlightTinies

Whether Tinies in the world should be highlighted using the selection outline effect.

[DataMember]
public bool HighlightTinies

Field Value

bool

IncreaseSpeedKeybind

[DataMember]
public readonly Keybind IncreaseSpeedKeybind

Field Value

Keybind

InstantTooltips

Whether a MLEM.Ui.Elements.Tooltip should display instantly, rather than with a short delay.

[DataMember]
public bool InstantTooltips

Field Value

bool

Keybinds

An array that contains all of the fields of type MLEM.Input.Keybind in the Options class

public static readonly FieldInfo[] Keybinds

Field Value

FieldInfo[]

Language

The currently selected language's language code. Determines the language used by Localization.

[DataMember]
public string Language

Field Value

string

LightingKeybind

[DataMember]
public readonly Keybind LightingKeybind

Field Value

Keybind

LongerAiCooldown

[DataMember]
public bool LongerAiCooldown

Field Value

bool

LongerNotifications

Whether Notifications should display with twice the amount of time before they disappear.

[DataMember]
public bool LongerNotifications

Field Value

bool

Migrations

The set of migrations that should be applied when options are loaded in TinyLife.Options.Load(). Note that only silent migrations are supported here. Also note that Early migrations are applied when the options instance is first loaded, and Late migrations are applied when the game has finished loading all of its content.

public static readonly List<Migration<Options>> Migrations

Field Value

List<Migration<Options>>

MoveToolKeybind

[DataMember]
public readonly Keybind MoveToolKeybind

Field Value

Keybind

MusicVolume

The current music volume as a percentage, ranging from 0 to 1

[DataMember]
public float MusicVolume

Field Value

float

OpeningToolKeybind

[DataMember]
public readonly Keybind OpeningToolKeybind

Field Value

Keybind

PauseGameKeybind

[DataMember]
public readonly Keybind PauseGameKeybind

Field Value

Keybind

PauseOnInteraction

Whether the game should pause when the PlayModeTool's interaction menu is open.

[DataMember]
public bool PauseOnInteraction

Field Value

bool

PauseOnZoomOut

[DataMember]
public bool PauseOnZoomOut

Field Value

bool

PlayModeMusicFrequency

The frequency with which music plays in play mode.

[DataMember]
public PlayModeMusicFrequency PlayModeMusicFrequency

Field Value

PlayModeMusicFrequency

RepeatLastCheatKeybind

[DataMember]
public readonly Keybind RepeatLastCheatKeybind

Field Value

Keybind

RoofToolKeybind

[DataMember]
public readonly Keybind RoofToolKeybind

Field Value

Keybind

RotateCameraCcwKeybind

[DataMember]
public readonly Keybind RotateCameraCcwKeybind

Field Value

Keybind

RotateCameraKeybind

[DataMember]
public readonly Keybind RotateCameraKeybind

Field Value

Keybind

RotateKeybind

[DataMember]
public readonly Keybind RotateKeybind

Field Value

Keybind

RoundCameraPosition

Whether the Camera's position should be rounded. In Apply(bool), this value is passed to MLEM.Cameras.Camera.RoundPosition.

[DataMember]
public bool RoundCameraPosition

Field Value

bool

SaveCompression

The compression level that should be used by the SaveHandler when saving the game to file. This option is not exposed to the options menu by default, and can only be changed by players by manually editing the options file.

[DataMember]
public CompressionLevel SaveCompression

Field Value

CompressionLevel

ScreenshotKeybind

[DataMember]
public readonly Keybind ScreenshotKeybind

Field Value

Keybind

SeenObjects

The set of objects that have been seen by the player so far.

[DataMember]
public readonly HashSet<string> SeenObjects

Field Value

HashSet<string>

SellHeldObjectKeybind

[DataMember]
public readonly Keybind SellHeldObjectKeybind

Field Value

Keybind

ShowBuildModeGrid

Whether a grid should be displayed in build mode.

[DataMember]
public bool ShowBuildModeGrid

Field Value

bool

ShowSelectionCircle

Whether a green circle should be displayed around the selected PersonLike in the world.

[DataMember]
public bool ShowSelectionCircle

Field Value

bool

SoundVolume

The current sound volume as a percentage, ranging from 0 to 1

[DataMember]
public float SoundVolume

Field Value

float

SoundscapeVolume

The volume of ambiant sounds created by Soundscape. Note that the soundscape volume is still multiplied with the master sound volume SoundVolume.

[DataMember]
public float SoundscapeVolume

Field Value

float

SpeechVolume

The volume of speech sounds, used by Speak(SpeakStyle, float, float). Note that the speech sound volume is still multiplied with the sound master volume SoundVolume.

[DataMember]
public float SpeechVolume

Field Value

float

StairsToolKeybind

[DataMember]
public readonly Keybind StairsToolKeybind

Field Value

Keybind

StoreInHouseholdKeybind

[DataMember]
public readonly Keybind StoreInHouseholdKeybind

Field Value

Keybind

SwitchPersonKeybind

[DataMember]
public readonly Keybind SwitchPersonKeybind

Field Value

Keybind

TabBackKeybind

[DataMember]
public readonly Keybind TabBackKeybind

Field Value

Keybind

TabForwardKeybind

[DataMember]
public readonly Keybind TabForwardKeybind

Field Value

Keybind

TileToolKeybind

[DataMember]
public readonly Keybind TileToolKeybind

Field Value

Keybind

TimeDisplay

The time display that should be used for the game's clock.

[DataMember]
public TimeDisplay TimeDisplay

Field Value

TimeDisplay

TransparentTooltips

Whether a MLEM.Ui.Elements.Tooltip should be displayed with transparency.

[DataMember]
public bool TransparentTooltips

Field Value

bool

UiAnimations

Whether ui animations should be enabled. This value is automatically used by CoveringGroup.

[DataMember]
public bool UiAnimations

Field Value

bool

UiScale

A modifier that is applied to the game's MLEM.Ui.UiSystem's MLEM.Ui.UiSystem.GlobalScale

[DataMember]
public float UiScale

Field Value

float

UnbindKeybind

The keybind used to unbind other keybinds in the options menu, which is set to Microsoft.Xna.Framework.Input.Keys.Escape.

public static readonly Keybind UnbindKeybind

Field Value

Keybind

WallDisplays

An array of all defined WallDisplay values

public static readonly WallDisplay[] WallDisplays

Field Value

WallDisplay[]

WallMode

The currently selected WallMode.

[DataMember]
public WallDisplay WallMode

Field Value

WallDisplay

WallToolKeybind

[DataMember]
public readonly Keybind WallToolKeybind

Field Value

Keybind

WallpaperToolKeybind

[DataMember]
public readonly Keybind WallpaperToolKeybind

Field Value

Keybind

WallsDownKeybind

[DataMember]
public readonly Keybind WallsDownKeybind

Field Value

Keybind

WallsUpKeybind

[DataMember]
public readonly Keybind WallsUpKeybind

Field Value

Keybind

WorldSoundVolume

The volume of in-world sounds, used by PlaySound(SoundEffect, Vector2, float, float, float, bool, bool) and its overloads. Note that the world sound volume is still multiplied with the sound master volume SoundVolume.

[DataMember]
public float WorldSoundVolume

Field Value

float

ZoomInCameraKeybind

[DataMember]
public readonly Keybind ZoomInCameraKeybind

Field Value

Keybind

ZoomOutCameraKeybind

[DataMember]
public readonly Keybind ZoomOutCameraKeybind

Field Value

Keybind

ZoomToMapKeybind

[DataMember]
public readonly Keybind ZoomToMapKeybind

Field Value

Keybind

Properties

AButton

Returns the Microsoft.Xna.Framework.Input.Buttons value that is currently considered to be the A (or accept) button. This value is based on GamepadSwapAForB.

public Buttons AButton { get; }

Property Value

Buttons

BButton

Returns the Microsoft.Xna.Framework.Input.Buttons value that is currently considered to be the B (or deny) button. This value is based on GamepadSwapAForB.

public Buttons BButton { get; }

Property Value

Buttons

Instance

The static singleton instance of Options

public static Options Instance { get; }

Property Value

Options

LeftTrigger

Returns the Microsoft.Xna.Framework.Input.Buttons value that is currently considered to be the left trigger. This value is based on GamepadSwapTriggers.

public Buttons LeftTrigger { get; }

Property Value

Buttons

RightTrigger

Returns the Microsoft.Xna.Framework.Input.Buttons value that is currently considered to be the right trigger. This value is based on GamepadSwapTriggers.

public Buttons RightTrigger { get; }

Property Value

Buttons

XButton

Returns the Microsoft.Xna.Framework.Input.Buttons value that is currently considered to be the X button. This value is based on GamepadSwapXForY.

public Buttons XButton { get; }

Property Value

Buttons

YButton

Returns the Microsoft.Xna.Framework.Input.Buttons value that is currently considered to be the Y button. This value is based on GamepadSwapXForY.

public Buttons YButton { get; }

Property Value

Buttons

Methods

Apply(bool)

Applies the currently selected options of this instance to the game

public void Apply(bool fullyLoaded = true)

Parameters

fullyLoaded bool

Save()

Saves the options to the default options file path

public void Save()