NS Parental Control is a simple parental control system for the Nintendo Switch which does not require Internet access or a smartphone to operate.
It can be used freely.
The user manual can be found here.
Needs a CFW (Atmosphère).
Tested with AMS 1.9.4 with FW 20.3.0
Linked with:
- libnx 4.10.0
- libultrahand 2.2.0
- Users categories
- Current features
- Coming features
- Screenshots
- Licence
- Installation
- Build and install
- References
The following users are involved:
- Gamers: the persons who want to play games.
- Administrator: the person who defines the rules and sets the limits.
Parental control has the following features:
Gamers
- Check the played time (since 1.0)
- Check the remaining play time (since 1.0)
- When the time is out, the system is blocked (since 1.0)
- Be notified every 15 minutes and every minute in the last 5 minutes (since 1.2)
- Get usage history (since 1.2)
Administrator (protected by a PIN code)
- Define a PIN to protect setup access - default PIN is A A A A (since 1.0)
- Enable or disable the parental control (since 1.0)
- Enable or disable the notifications (since 1.2)
- Choose the log level between Debug and Information (since 1.2)
- Define individual limits (since 1.3)
Coming features are in the GitHub project page.
Parental control limits settings
The source code and the binaries are under GPL v3 licence.
You can:
- use it freely,
- modify it.
You must:
- share your changes by committing on this repository or your own fork.
You are not allowed to:
- close the sources,
- sell the product,
- reuse the source code in a commercial product,
- use your own modified version.
Libraries linked or code reused:
- AES and SHA256 from Brad Conte (GitHub) - no licence.
- Tesla,
- libNX.
- Install the required Tesla Menu or Ultrahand Overlay.
- Download the latest release from GitHub.
The sysmodule is provided as a ZIP file which can be directly unzipped in the folder /atmosphere/contents/
Here are the files and their destination:
| File | Destination | Description |
|---|---|---|
| exefs.nsp | /atmosphere/contents/4200000000003103 | The core of the system as a sysmodule |
| toolbox.json | /atmosphere/contents/4200000000003103 | A description file for Atmosphère |
| boot2.flag | /atmosphere/contents/4200000000003103/flags | Mandatory file to make the sysmodule start at boot |
| parental_control.ovl | /switch/.overlays | The overlay |
After copying the files, reboot the console.
This section explains how to create and install the binary for NS Parental Control.
This product relies on 2 components: 1 - a sysmodule that monitors the games usage and notifies when limit is reached. 2 - an overlay that shows on demand information about the limits and permits setup of the limits.
The sysmodule and the overlay share a common database file.
- Atmosphere installed
- Tesla menu installed or Ultrahand overlay for notification
- Development computer with
devkitProanddevkitA64(see below) libnx(Switch homebrew SDK) installed via devkitPto- Atmosphere source code (see below)
Installation of devkitPro is described on this page.
Once the code is downloaded or cloned do the following:
Go to the directory NSParentalControl/sysmodule
Run the command $ make. At the end of the build, the out.nosync directory contains the file exefs.nsp.
This file should be copied in the directory /atmosphere/contents/4200000000003103 of the SD card of the Switch.
Go to the directory NSParentalControl/overlay.
Run the command $ make. At the end of the compilation process, the directory contains a file name parental_control.ovl.
Copy this file in the directory /switch/.overlays/ in the SD card of the Switch.
In order for the parental control to load on startup you have to create a new folder named flags into /atmosphere/contents/4200000000003103.
In this folder create an empty file named boot2.flag.
https://github.com/switchbrew/switch-examples/tree/master
- Niels Lohmann https://nlohmann.me for JSON C++ library.
- @SciresM for Atmosphère.
- Sean Barrett for STB Truetype library.
- @WerWolv for Tesla library.
- @ppkantorski for Ultrahand Overlay.
- @tallbl0nde for IPC Server (from TriPlayer)




