Complete guide to installing, using, and modding with Flexlion for Splatoon 3
Flexlion is a mod menu for Splatoon 3 on Nintendo Switch, developed by [forget me]. It provides camera tools, visual effects, custom ink shaders, environment tweaks, modding support, and much more.
.rar archive onto the root of your SD card (or virtual SD card folder if using an emulator). The archive contains atmosphere and flexlion3 folders - both should end up at the root level of the SD card.The same mod works on emulator. If you are trying to use Flexlion on emulator, make sure:
flexlion3 and atmosphere folders from the zip into the virtual SD card folder, not anywhere else like the mod folder. To do that: in the Ryujinx app, in the top left press File, press "Open Ryujinx Folder", then open the sdcard folder (should already be there - if it isn't, something is wrong). Copy the flexlion3 and atmosphere folders there directly, confirm overwrite if prompted.11.1.0), and not something like 1.0.0, or you didn't apply the update correctly.With a stock install and no other mods, this should 100% work. If it doesn't, check if the game itself boots without Flexlion (if not, your PC may not be powerful enough to run the game).
Note: You may need to disable guest internet access in emulator settings if the game is infinitely looping on the boot screen (yellow and purple one) and not entering plaza.
My game crashes…
The mod menu is navigated entirely with the controller. In some game areas the input changes slightly to avoid conflicts.
| Input | Action |
|---|---|
| L | Open menu / Enter selected section / Toggle the selected module on or off |
| L Stick press | Close the current section, or close the menu entirely if already at the top level |
| D-Pad Up / Down | Navigate sections or modules |
| D-Pad Right | Open a module's sub-settings (if it has any) |
| D-Pad Left | Go back from sub-settings |
| Input | Action |
|---|---|
| Up / Down | Navigate between settings entries |
| D-Pad Right | Enter value-edit mode for the selected setting |
| D-Pad Left | Exit value-edit mode |
| Sticks | Used for color pickers |
Flexlion is safe to use online, except for modules explicitly labeled UNSAFE in the menu (such as TriColor in PBs, use at your own risk), or trying to load patches.pchtxt / IPS patches (having an IPS patch applied will be detected - if you are just using stock Flexlion you don't have to worry about this, it's only relevant if you're also installing a patches pchtxt file).
Flexlion does not disable the game's anticheat - it sidesteps detection. If you use detectable code patches or param edits alongside Flexlion, those will still be caught.
Most cosmetic-only features (camera, environment tweaks, ink colors, menu visuals, trails, galaxy hair, etc.) operate client-side and are not known to be detected.
It is recommended to use overclocking when using Flexlion, since any visual modules you enable will strain the game more, while the game itself (even without Flexlion) already relies on dynamic resolution. A tool that can be recommended is Horizon-OC (but note that overclocking obviously comes with risk depending on various factors - research it yourself).
Personal recommendation (docked): 1785 MHz CPU, 1075 MHz GPU, 1996 MHz RAM. I used it on 3 (oled) consoles with no lag, should be good as long as temps stay low enough (should be the case unless thermal paste has dried out). Lower settings like 921 or 998 MHz GPU will work well too(just I am also using Wallhack, which would like some extra gpu usage).
If you want to be on the safer side, you can run GPU at 998 MHz and RAM at 1866 MHz or stock 1600 MHz.
RAM note: In very rare cases, a RAM module may be faulty and barely passed lotcheck - if so, overclocking RAM could risk potential NAND corruption. Otherwise, all RAM modules in OLED Switches are designed to run at 2133 MHz (safely, with actual maxes of 2500–3200 MHz) and are underclocked by Nintendo, so 1996 should be fine.
Recommended settings: at most 1785 MHz CPU, 921 MHz GPU, 1600 MHz RAM (stock, no RAM overclock).
The menu is organized into tabs . Each tab contains modules that can be toggled or triggered.
Camera and rendering tools for screenshots, cinematics, plus extra ui such as kd counter or kill notification.
Self explanatory.
Self explanatory.
Self explanatory.
Record and play back scripted camera paths for smooth cinematic sweeps. Press A to play.
Locks camera position and orientation in place.
Adds motion blur effect.
Depth of field blur effect.
Orthographic projection for whatever reason youd want that.
Replaces the sky(or optionally everything but players) with a solid color.
Disables the game's post-processing shader.
Hides the game's HUD(or parts of it).
Hides the This Way/Booyah ui thing.
Kill/death counter shown during matches.
Kill notification popups shown during matches.
Rotates the minimap to a vertical orientation.
Used together with freecam to lock on to specific players/objects.
Freezes the game(while still allowing Freecam to move around).
Inspect and control animation playback on character models.
Force either 60 or 30 FPS everywhere.
Renders Havok collision shapes and hitboxes.
Client side player info modifications, plus option to spawn bots for offline matches.
Spoof player type and hair(including to stuff like Rival or Sdodr Rival).
Spoof some illegal gear combinations.
Enable offline bot matches for use with Scene Jumper. Disable it before going into an online match.
Client sided override of your, and/or others', splashtag names and tags, if you want to hide your name in clips for example.
Instantly jump to different game scenes.
Jump to the plaza scene.
Jump to an offline match (may be useful for Force Bots from previous section).
Jump to the shooting range.
Jump to the respective lobby scene.
Jump to a custom recreation of Splatoon 2's developer PlayerViewer scene.
Jump to a custom creation of an interpretation of Splatoon 2's developer PhotoForCalico scene. Configure via Configurator.
Jump to a single-player scene from the available list of interesting ones.
Jump to the Grandfest event plaza.
Jump to Salmon run, including option to force a specific boss.
Jump to Side Order scenes from a list of interesting ones.
Change which scene the game boots into. (i.e. LobbyVersus -> you boot into Lobby instead of Plaza).
Customize ink colors, shaders, and paint effects.
Open a color picker to choose a custom ink color, or apply it.
Replace the ground ink shader with a custom one. Types: Rainbow Ink S2, Galaxy, Heart. May affect your performance.
Animated rainbow colors on ground ink(Splatoon 1 style/flat color).
Change teamcolors of players every frame to rainbow colors.
Change the ink rendering type. Available types: Default, Oil, Fuzzy, Splatoween, FrostyFest, SpringFest, SummerFest, GrandFest, GrandFest Plaza, SDODR (Side Order).
Automatically apply your saved(with option for to random pick) custom color palette each match.
Manage named ink color configurations on the SD card.
Control time of day, fog, skybox, lighting, weather, and atmospheric effects.
Force a specific time of day for the environment lighting(Note that evening is "unused" and mostly not present on maps, use Day or Night).
Customize skybox parameters and appearance.
Tune distance-based fog density, color, and range.
Tune height-based fog for atmospheric depth effects.
Adjust lighting parameters.
Use the game's unused weather functionality (Snow, Rain) with adjustable intensity.
i will never be free
Makes your skybox spin.
Make water rainbow colored.
Force Splatfest inside Plaza(with option to choose special fest type).
Randomize environment settings from your saved configs.
Manage named environment presets on the SD card.
Cosmetic effects, player modifications, gameplay tweaks, and utility features.
Free movement / noclip in offline and recon modes. Should be safe to use(it wont let you use it where it wouldnt be safe)
Pretty player trails effect.
Pretty player galaxy hair effect.
Apply cosmic shader to player models.
Glowing aura visual effect around the player.
Special effect when you jump.
uhh some hat thing i forgor.
Make non lobby players holograms, or make lobby players non holograms.
Adjust visual size of the player model.
uhhh your weapon spins and stuff.
Spawn a practice target dummy.
Disable death zones, useful for freefly. Safe to use as it'll auto disable in places it wouldnt be safe.
Show the lobby players and their holograms during matchmaking in modes they are not normally visible (i.e. X Rank).
Side Order drone entity/visual feature.
Customize the boot sequence behavior.
Local two player mode with splitscreen.
Configurable button spammer for various buttons.
Add TriColor to mode select in Private Battles. You will likely get banned if you use this online(as in, actually start a tricolor match. accidentally enabling this wont get you banned).
Map USB keyboard and mouse to game input. See KBM section.
Customize the appearance of the Flexlion menu itself.
Apply a menu theme from a list of default presets made by me, featuring all the different available menu shaders.
Configure menu appearance: shader, colors, shader speed, Starlion style, rainbow text, logo spin, and more.
Outer glow effect around the menu panel. Adjust colors and speed.
Flexlion logo overlay, plus option to globally change the text of the logo.
On-screen list of active modules.
Choose the menu font style.
Adjust the overall UI scale of the menu.
Toggle notifications for modules being enabled/disabled.
Manage named menu style presets saved to /flexlion3/config/style/.
Utilities, configuration management, audio tools, and advanced features.
On-screen debug information, including FPS, memory usage and others. Also needed for shader dumping (see Shader Tools).
Turn off all active modules at once (essentials like autosave and crash handler stay on).
Save or load the full menu configuration as JSON in /flexlion3/config/.
Automatically persist menu state to config file.
Manually check for Flexlion updates. See Auto-Updater.
Catches and reports crashes. Keep this on.
Custom background music. See Custom Music.
Mute the game's background music entirely.
Self explanatory.
Auto-upload clips and screenshots. See Clip Uploader.
Re-queue any failed clip uploads.
Local TCP control server for remote interaction. See FxNetCtrl.
Disable restriction for connecting 1+ controllers.
Make Side Order content loadable when it otherwise wouldn't be.
Render a video file as ink on the floor (offline only). See details below.
Setup:
subsdk0 from latest TOTK). Rename it to subsdk8 (or any subsdk1-9) and place it in your exefs folder.The User Mods tab appears when you have custom mods installed. Each mod loaded from /flexlion3/mods/ becomes a toggleable entry here. PchTxt patches loaded from /flexlion3/patches.pchtxt also appear as individual entries.
You can create and share texture and shader replacement mods. To install a mod, place the mod folder inside /flexlion3/mods/ on your SD card (create the mods folder if it doesn't exist). Each mod folder must contain a config.json.
All file paths are relative to your mod folder (start with /).
Top-level keys:
"mod_name" - required. The name shown in the menu."options" - array of variant names (strings). These are the selectable options in the menu."default_option" - which variant to select by default. Must match one of the options strings exactly."use_options" - if true (default), the user can switch between variants in the menu. If false, the first option is auto-selected and the user can't open the options sub-menu."textures" - texture replacement groups (see below). Optional."shaders" - shader replacement groups (see below). Optional.Texture groups ("textures"):
An object where each key is a label (any name you want) and the value contains:
"target_texture" - path to the original .bftex file that this group replaces. This file must be included in your mod and must be the original unmodified texture."options" - object mapping each variant name to a replacement .bftex file path. Keys must exactly match the top-level options array strings. Replacement textures must have the same dimensions and format as the original.Shader groups ("shaders"):
Same structure, but with "target_shader" instead of "target_texture". The target file is the original shader dump, and replacement files should be compiled with UAM-nvn in epicsh format.
Note on bftex textures: they must match the original dimensions (width/height) and format. If the target texture uses ASTC format in Switch Toolbox, you may need an external converter to produce ASTC first, then import into Toolbox and export as bftex.
Place your pchtxt file as /flexlion3/patches.pchtxt on your SD card. Patches can be toggled live from the menu. Some patches (e.g., Splatfest mode) require a game reboot, but most work immediately.
Enable Cstm Music in the Other tab to use custom background music. This is a work-in-progress feature and defaults/configs may change.
All music files go under /flexlion3/music/. Supported formats: .wav, .mp3, .flac. Here is an example structure:
Playlists: Each subfolder inside /flexlion3/music/playlist/ becomes a selectable playlist. The folder name is the playlist name. Audio files inside are the tracks.
Special tracks: The folders below replace music for specific in-game moments. You can put multiple files in each - one will be picked randomly.
.wav. Other formats (mp3, flac) may cause momentary lag when the audio starts playing. WAV files also support embedded loop points, which Flexlion will automatically read if present.
By default, audio loops from start to end and uses -10.64 dB volume. Embedded loop points in WAV files are read automatically. You can also create a JSON config for any audio file to customize playback (JSON config values override embedded loops).
If your audio file is CoolAudio.mp3, name the config CoolAudio.json. You can also add a default.json to set defaults for the entire folder (individual configs override it).
Example config:
Config options:
-10.64)1.0)MM:SS:cc (centiseconds, 2 digits), MM:SS:mmm (milliseconds, 3 digits), or MM:SS. If omitted, loops from start to end of track.Automatically upload Switch album clips and screenshots to Discord via a webhook.
Setup:
"clip_webhook" field.Flexlion includes a Save Editor that integrates with CloudSave so you don't need external tools to dump/inject saves.
Setup:
Editing flow:
Flexlion provides tools for dumping, decompiling, and compiling custom NVN shaders.
.frag for fragment, .vert for vertex) and compile it with UAM-nvn. You need to export in epicsh format (.epicshf for fragment, .epicshv for vertex).UAM-nvn is a modified version of the deko3d shader compiler that can compile NVN shaders. Flexlion shader mods use the epicsh format (NVN shader control + program in one file).
Usage:
Example - compile a fragment shader in epicsh format:
Known issues: Only fragment and vertex shaders are fully tested. Shaders with bitwise operations (e.g., gsys vertex shaders) may not compile correctly due to a CSE/register allocation issue.
Shaders are searched by their fragment shader hash and saved to /flexlion3/shadertest/.
Then use the decompiler script to convert it into compileable code.
The decompiler script takes shader bytecode + control data and produces code compileable for NVN via UAM-nvn. You need Ryujinx ShaderTools - set SHADERTOOLS_DIR inside the script to the path of Ryujinx's build directory (use this commit).
Flexlion supports USB keyboard and mouse input. The configuration is in /flexlion3/FxKbmConfig.json. Enable Mouse Keyboard Control in the Misc tab.
The config maps keyboard/mouse inputs to controller buttons. Each entry has a controller button name as the key and a keyboard/mouse input name as the value.
Controller button names (map TO these):
A B X Y LStick RStick L R ZL ZR Plus Minus Left Up Right Down LStickLeft LStickUp LStickRight LStickDown
Keyboard/mouse input names (map FROM these):
Mouse: MouseLeft MouseRight MouseMiddle MouseExtra1 MouseExtra2
Keyboard: A–Z, 0–9, Escape, Backspace, Tab, Space, Minus, Plus, CapsLock, F1–F12, RightArrow, LeftArrow, DownArrow, UpArrow, NumPad0–NumPad9, NumPadDivide, NumPadMultiply, NumPadSubtract, NumPadAdd, NumPadEnter, LeftControl, LeftShift, LeftAlt, RightControl, RightShift, RightAlt
Flexlion can check for and download updates directly on the Switch.
"updateonboot": true in /flexlion3/internal_config.json.When an update is found, you'll be prompted to confirm the download. Press A to confirm, B to cancel. When complete, you'll be prompted to restart.
FxNetCtrl is a local TCP control server that lets you interact with Flexlion remotely from a PC or the web interface.
8882 (configurable in module settings)Note: Enabling FxNetCtrl will disable nvnforge and vice versa.