=== Thank you for downloading the SMBX Level Player. In this file I will explain in excruciating detail the use and functionality of this packagae.
=== I hope you find a lot of fun using the SMBX Level Player :)


== Table of contents

    1. Installation
    2. Level Selector
    3. Level Player Menu
	4. Misc
	
	
== 1) Installation
  1.1) To install the level player into your SMBX2 package, place the "SMBX Level Player.7z" file into your "data/worlds/" directory. Then extract the file using the default windows extractor, 7z, Winzip, or other achiving programs. This will create a folder called "_SMBX Level Player" in your worlds directory.
  1.2) Then open the file "lunabase.lua" found in the directory "data/scripts/base/game/lunabase.lua". You can open the file using notepad, notepad++, or using other text editing programs.
  1.3) Place the following line at the BOTTOM of the FILE. DO NOT EDIT OR REMOVE ANYTHING OTHER CONTENT INSIDE THE FILE. Doing so may cause damage to SMBX2 basegame. IF YOU ACCIDENTALY DELETE OR EDIT SOMETHING YOU MUST RECOVER THE FILE. PLEASE DO NOT BOTHER THE DEVELOPERS FOR YOUR OWN MISTAKE.
        if not isOverworld and GameData.SMBXLP_activated and Level.filename() ~= "SMBX Level Player.lvlx" then require(getSMBXPath().."\\worlds\\"..GameData.SMBXLP_foldername.."\\SMBXLP.lua") end
	  Make sure you copy + paste the line corectly. It should only be a SINGLE line at the BOTTOM of lunabase.lua. You can still use the level selector if you do not place the line in lunabase.lua, only level player menu will not work once you load a level.
  1.4) If you uninstall the level player, please remove the line you added in lunabase. it wont cause any errors if you leave it, but nice if you remove it nonetheless.
  1.5) You may rename the "_SMBX Level Player" folder to your liking, just be aware that you must also change the name in "_SMBX Level Player/launcher/info.json" in order for the launcher to still work.
  1.6) To launch the level player, open the SMBX2 launcher and click play while selecting the level player. Do not open the level player using the editor.


== 2) Level Selector
  2.1) While in the level selector. You can go through all your files that are inside the "data/" directory in your SMBX2 package.
  2.2) Using your mouse, you can click on the "? Sign" for quick help regarding controls.
  2.3) All menus are compatible with the keyboard, controllers, and mouse.
  2.4) Mouse Controls: Click on an option to select it.
                       Hover over the arrows to scroll. Click on the arrows to scroll faster.
					   Clicking on the arrows when you are at the top or bottom of a list will scroll you to the opposite side.
					   Click outside the box to go back a directory.
  2.5) The level selector will only show folder, ".lvl", and ".lvlx" files. Opening corrupted levels, or non-files with ".lvl" and ".lvlx" extensions will give you an error when the level is loaded. You can quit the level using the Level Player Menu.
  2.6) You can change what music is played in the level selector. Simply drop any ".mp3" or .ogg" files in the "_SMBX Level PLayer/Music" folder. When the game starts, it will select a random music file from that folder :)
  
  
== 3) Level Player Menu
  3.1) The Level Player Menu is a handy menu that allows you to change settings on demand. The menu is divided into modules. Each module will be explained later on. 
  3.2) The menu is compatible with multiplayer. Note that the menu will allow you to edit the player that opened menu using his pause key. See the "Change Player" module for more details.
  3.3) You can drag the menu across the screen using the mouse. Simply drag the top part of the menu to move it. Dragging the menu offscreen will reset the position.
  3.4) You can open REPL by pressing tab while the level player menu is open.
  
=== 3a) Continue
  3a.1) Selecting continue closes the menu. 
  3a.2) The module will show you the name of the level. if the level has no name, it will show you the filename instead.
  3a.3) The mosule will also show you certain statitics of how you have played the level.
  
 === 3b) Restart
   3b.1) You can restart a level from the last checkpoint, from the beggining, from any checkpoint, and from any warp. You can see a preview where you will start from when you hover over an option (except for last checkkpoint option)
   3b.2) The "Last Checkpoint" option is a bit of a misnomer. What it actually does is kill all the players using lua, that way SMBX reloads you to the previous checkpoint. If a level uses custom checkpoints (not default ones) hopefully it might trick their lua to activate their custom checkpoints, but I cant guarantee that.
   3b.3) The "Level Start" option takes you back to the very beggining. If a level uses lua and savedata to create a custom intro, I cant guarantee what the effect will be
   3b.4) The "Checkpoint #" (or "midpoint" if the level only has one checkpoint) will teleport you to that checkpoint. Note that this doesnt work for having multiple vanilla checkpoints. (Having multiple vanilla checkpoints had some weird effects too sooo.... :| )
   3b.5) The "Warp #" option will take you to the EXIT of that warp.
   
 === 3c) Change Player
   3c.1) This option only appears in multiplayer.
   3c.2) When activated it allows you to edit the other player. This option is useful when the Menu Key is set to a Custom Key.
   
 === 3d) Characters
   3d.1) All current available characters will show up in this module. This means that if a new character gets added to basegame, the level player will be able to detect the new chaaracters.
   3d.2) Use the random option to select a random character.
 
 === 3e) Costumes
   3e.1) All current available costumes for that character will show up in this module. This means that if a new costume gets added to the costume folder, the level player will be able to detect the new costume.
   3e.2) The list gets loaded at level - start, that means that if you add a costume mid-level, the costume wont show up in the level until you restart the level.
   3e.3) Also, do note that you are free to add and share as many costumes that you want. Costumes are not basegame protected files. (So if your dream is to have SpongeBob in SMBX, here is your chance)
   3e.4) Use the random option to select a random costume.
   
 === 3f) Power-ups
   3f.1) A hardcoded list of powerups will show up here. That means that if an update comes out and new powerups are added, it won't show the new powerup in the list.
   3f.2) Use the random option to select a random powerup.
   3f.3) Use the Reserve NPC option to set an NPC to your reserve box. While you hover over this option, the NPC ID of the other powerups will appear in green text. As you type the NPC ID, a preview will appear next to it. Setting a Reserve NPC to a character without a reverbox will simply spit the NPC instantly.
   
 === 3g) Mounts
   3f.1) A hardcoded list of all mounts for the current character will show up here. That means that if an update comes out and new mounts are added, it won't show the new powerup in the list.
   3f.2) Use the random option to select a random powerup.
   
 === 3h) Cheats
  3h.1) All cheats will show up in this module automatically. This means that if a new cheat gets added to basegame, the level player will be able to detect the new cheat.
  3h.2) Cheats in orange mean the cheats are off, cheats in green are on. If a cheat is in white, it means the cheat is a single-use only.
  3h.3) Use this list so you dont have to remember 147 cheat names.
  
=== 3i) Filters
  3i.1) A list of filers. Currenly they all are for color blindness, but in the future I may add more goofy and fun filters.
  
=== 3j) Camera Pan
  3j.1) Use the arrow keys or move the cursor to the edge of the screen to move the camera.
  3j.2) Useful module for levels with leaps  of faith, or mazes that you got lost in! :)

=== 3k) Speedrun
  3k.1) Even if you dont plan to speedrun, there may be a few options here that interest you.
  3k.2) There are different kind of formats for speedrunning and the level player will save each different format sepereately. You can see all speedrun runs by clicking on the "Timer" options.
  3k.3) LE (Level Exit), AS (Advantage Start), MP (Multiplayer). Check the speedrun formats foe more help.
  3k.4) Use "Create SaveState" to create a save state (duh). You can load that savestate using "Reload SaveState" (duh x2). Note that savestates are very limited and do not carry across level deaths and reset when you exit the game. It also does not save lua, so creating and loading savestates in a very heavy lua level may cause a few issues ("maybe"). Either way, it should be very useful to practice very hard sections for speedrunning, or maybe if you have trouble fighting s boss :)
  3k.5) Set Starting Advantage will allow you to set how you start the level. Advanate Start means the player powerup, mount, reserve NPC, and health. When you click this option it will remember your current set up. Every time you start a level from the beggining it will set the player to the set advantage state.
  3k.6) Enabling the timer will show the current time in your level. If the timer is red, that means the run is invalid. That means you used cheats, or you set your character, powerup, mount, etc in the level player menu. Green means that you are currently beating your best time. This is decided by the current format set in the menu.
  3k.7) Ebaling the pop-up will show a pop-up box when you complete the level. This pop-up has useful information.
  3k.8) Disable Checkpoint option will make you start at the very beggining. That way when speedrunning, you dont have to reload the level if you die! :)
  3k.9) Show Inputs will show inputs on screen.
  3k.10) Force reload will reload the level when you complete it instead of taking you back to the level selector.
  3k.11) Allow cheat validation will allow you to tyoe cheats without invalidating the timer. Useful for level where you MUST type a cheat (like SMBX Teaches Typing).
  3k.12) Will not show death markers. This belongs on a settings module, but I dont have enough options so for now it will be in the speedrun module. (For some reasons speedrunners really wanted this option, hmmmm....)
  
=== 3l) Controller
  3l.1) You can set the controls to your liking
  3l.2) Clicking "Set All Keys" will cycle through all the controls for quick and easy way to choos your controls.
  
== 3m) Settings
  3m.1) So a feature in SMBX2 is the ability to cancel the pause menu and replace it with your own. This is a cool feature (thats how this menu works after all) but what if a level also has a custom pause menu?
  3m.2) You can set the menu key to any valid key on your keyboard, that way it doesnt interfere with the level's custom pasue menu.
  3m.3) Music volume option will allow you to edit the volume of the background music.
  3m.4) Effect volume option will allow you to edit the volume of sound effects. This option is experimental and needs testing to make sure it fully works.
  3m.5) The show framerate option will toggle the framerate. Note that the framerate is frozen when the menu is open, so you have to close the menu to see the framerate.
  3m.6) Force reload option will reload the level you are playing upon completion. Normally you get sent back to the level player.
  3m.7) Infinite lives will force your lives counter to 99.
  3m.8) Tab hotkey allows you to do a variety of actions by pressing the tab key.
  
=== 3n) Exit Level
  3n.1) Go to level selector.
  3n.2) Go to main menu.

== 4) Misc
  4.1) The Level Player is made by SetaYoshi (aka. Yoshi021). if you have any questions please ask him for help. Do not ask for suggestion or report bugs and errors to other people.
  4.2) Haha, Answer to the Ultimate Question of Life, the Universe, and Everything
  4.3) Best way to contact me is using discord (im in the SMBX discord). I do not checks any forums frequently.
  4.4) Some content in the game is not made by me. Check the credits file to see what is not made by me.