<?xml version="1.0" encoding="utf-8"?>
<Settings>
	<!-- Key: Name of variable
		DefaultValue: Default value of variable
		Type: int|float|string|bool|vec2|vec3
		Persistence: temporary|persistent|permanent|profile (temporary is per session, persistant is kept until settings are reset, permanent is kept as long as you don't uninstall, profile is saved per player profile (if applicable))
		Visibility: internal|public
		Description: Description of variable
	-->
	
	<!-- Profile Settings -->
	<Setting Key="Profile.SeenIntro" DefaultValue="false" Type="bool" Persistence="profile" Visibility="public" Description="True if this profile has seen the intro."/>
	<Setting Key="Profile.RespawnLevel" DefaultValue="tutorial_1" Type="string" Persistence="profile" Visibility="public" Description="Sets which level should be loaded on respawn."/>
	<Setting Key="Profile.FirstDeath" DefaultValue="true" Type="bool" Persistence="profile" Visibility="public" Description="If it's the first time you ever died."/>
	
	<!-- World Settings -->
	<Setting Key="World.DisableSaves" DefaultValue="false" Type="bool" Persistence="temporary" Visibility="public" Description="If set to true, persistent world data will not be saved or loaded."/>
	<Setting Key="World.LocalAchievements" DefaultValue="false" Type="bool" Persistence="temporary" Visibility="public" Description="If set to true, persistent world data will not be saved or loaded."/>
	
	<!-- Menus settings -->
	<Setting Key="Menus.ShowCredits" DefaultValue="false" Type="bool" Persistence="temporary" Visibility="public" Description="If set to true, will display credits when going to menu."/>
	<Setting Key="Menus.ShowStats" DefaultValue="false" Type="bool" Persistence="temporary" Visibility="public" Description="If set to true, will show profile stats during credits."/>
	<Setting Key="Menus.BackgroundScene" DefaultValue="top_scene" Type="string" Persistence="temporary" Visibility="public" Description="Movie to play in menu background."/>
	<Setting Key="Menus.MainMenuScene" DefaultValue="main_menu" Type="string" Persistence="temporary" Visibility="public" Description="Which set of main menu buttons to show."/>

	<!-- Game Settings -->
	<Setting Key="Game.Gravity" DefaultValue="700" Type="float" Persistence="temporary" Visibility="public" Description="Gravity in pixels/s^2."/>
	<Setting Key="Game.NoiseTinyRadius" DefaultValue="70" Type="float" Persistence="temporary" Visibility="public" Description="Radius for specific noise."/>
	<Setting Key="Game.NoiseSmallRadius" DefaultValue="70" Type="float" Persistence="temporary" Visibility="public" Description="Radius for specific noise."/>
	<Setting Key="Game.NoiseMediumRadius" DefaultValue="110" Type="float" Persistence="temporary" Visibility="public" Description="Radius for specific noise."/>
	<Setting Key="Game.NoiseLargeRadius" DefaultValue="140" Type="float" Persistence="temporary" Visibility="public" Description="Radius for specific noise."/>
	<Setting Key="Game.NoiseHugeRadius" DefaultValue="160" Type="float" Persistence="temporary" Visibility="public" Description="Radius for specific noise."/>
	<Setting Key="Game.NoiseTinyAmount" DefaultValue="2" Type="float" Persistence="temporary" Visibility="public" Description="Amount for specific noise."/>
	<Setting Key="Game.NoiseSmallAmount" DefaultValue="3" Type="float" Persistence="temporary" Visibility="public" Description="Amount for specific noise."/>	
	<Setting Key="Game.NoiseMediumAmount" DefaultValue="6" Type="float" Persistence="temporary" Visibility="public" Description="Amount for specific noise."/>
	<Setting Key="Game.NoiseLargeAmount" DefaultValue="10" Type="float" Persistence="temporary" Visibility="public" Description="Amount for specific noise."/>
	<Setting Key="Game.NoiseHugeAmount" DefaultValue="14" Type="float" Persistence="temporary" Visibility="public" Description="Amount for specific noise."/>
	<Setting Key="Game.JumpPlateImpulse" DefaultValue="825" Type="float" Persistence="temporary" Visibility="public" Description="Impulse when jumping on jump plates."/>
	<Setting Key="Game.MaxRunSpeed" DefaultValue="240" Type="float" Persistence="temporary" Visibility="public" Description="What speed player is pushed out of enemies at."/>
	<Setting Key="Game.PushBackSpeed" DefaultValue="240" Type="float" Persistence="temporary" Visibility="public" Description="What speed player is pushed out of enemies at."/>
	<Setting Key="Game.PushBackMargin" DefaultValue="60" Type="float" Persistence="temporary" Visibility="public" Description="Extra distance to push player back, 0 means just push back from penetration."/>

	<!-- Visualizer settings -->
	<Setting Key="Visualizer.LightBlendFunction" DefaultValue="add" Type="string" Persistence="temporary" Visibility="public" Description="Function to add lights together. Can be 'add' or 'max'. Does not affect tile lights which always use max."/>
	<Setting Key="Visualizer.TileLight" DefaultValue="0.35,0.47" Type="vec2" Persistence="temporary" Visibility="public" Description="Span with value of tile light, with one end being player min light other being player max light."/>
	<Setting Key="Visualizer.LetterBoxingAspectRatio" DefaultValue="2.35" Type="float" Persistence="temporary" Visibility="public" Description="Aspect ratio of letter boxing, used when player input is frozen."/>
	<Setting Key="Visualizer.LetterBoxingEaseTime" DefaultValue="0.2" Type="float" Persistence="temporary" Visibility="public" Description="Aspect ratio of letter boxing, used when player input is frozen."/>
	<Setting Key="Visualizer.BackdropFadeTime" DefaultValue="0.4" Type="float" Persistence="temporary" Visibility="public" Description="Fade in/out time when switching backdrop."/>
	<Setting Key="Visualizer.Bloom" DefaultValue="true" Type="bool" Persistence="persistent" Visibility="public" Description="Enable world bloom filter."/>
	<Setting Key="Visualizer.Brightness" DefaultValue="0.5" Type="float" Persistence="persistent" Visibility="public" Description="World brigthness filter value."/>
	
	<!-- Screen Settings -->
	<Setting Key="Screen.Fullscreen" DefaultValue="true" Type="bool" Persistence="persistent" Visibility="public" Description="Toggle between fullscreen and windowed display mode."/>
	<Setting Key="Screen.WindowSize" DefaultValue="960,540" Type="vec2" Persistence="persistent" Visibility="public" Description="The width and height of the screen in windowed mode."/>
	<Setting Key="Screen.WindowResizable" DefaultValue="true" Type="bool" Persistence="persistent" Visibility="public" Description="If true, make the window borders resizable."/>
	<Setting Key="Screen.VSync" DefaultValue="1" Type="int" Persistence="persistent" Visibility="public" Description="Whether to use vsync for SDL targets, 0 is off, 1 is on, -1 is (if supported) only if we made it in time."/>
	<Setting Key="Screen.ScreenScale" DefaultValue="1" Type="int" Persistence="persistent" Visibility="public" Description="Screen size multiplier, note values other than 1 currently have artifacts."/>
	<Setting Key="Screen.Borderless" DefaultValue="false" Type="bool" Persistence="persistent" Visibility="public" Description="Display window borders."/>
	
	<!-- System/main loop -->
	<Setting Key="System.UpdatesPerSecond" DefaultValue="59.831" Type="float" Persistence="temporary" Visibility="public" Description="Number of times the game is updated per second."/>
	<Setting Key="System.MaxFramesPerSecond" DefaultValue="240" Type="float" Persistence="temporary" Visibility="public" Description="Max number of frames rendered per second."/>
	<Setting Key="System.MinFramesPerSecond" DefaultValue="20" Type="float" Persistence="temporary" Visibility="public" Description="Min acceptable number of frames per second, if it goes below this, the game will slow down."/>
	<Setting Key="System.BusyWait" DefaultValue="false" Type="bool" Persistence="temporary" Visibility="public" Description="If set and reach max frames, avoids trying to suspend the thread for the rest of the frame."/>
	
	<!-- Debug Settings -->
	<Setting Key="Debug.ForceStartPosition" DefaultValue="0,0" Type="vec2" Persistence="temporary" Visibility="public" Description="Set player position to these X and Y world coordinates."/>
	<Setting Key="Debug.ForceSpecificPatch" DefaultValue="" Type="string" Persistence="temporary" Visibility="public" Description="Force load a specific patchset;patch. For example, 'test;Area1'."/>
	<Setting Key="Debug.SetLevel" DefaultValue="" Type="string" Persistence="temporary" Visibility="public" Description="Override the level to start."/>
	<Setting Key="Debug.GiveBaseItems" DefaultValue="false" Type="bool" Persistence="temporary" Visibility="public" Description="If true, give the player basic weapons and items (as if having completed the tutorial)."/>
	
	<!-- Language Settings -->
	<Setting Key="Language.Fallback" DefaultValue="en" Type="string" Persistence="temporary" Visibility="public" Description="Default fallback language if system language is not available."/>
	<Setting Key="Language.Custom" DefaultValue="" Type="string" Persistence="persistent" Visibility="public" Description="If set, will try to use this language instead of the system language."/>

</Settings>
