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.
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)
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.
Here are the files and their destination:
| File | Destination | Description |
|---|---|---|
| exefs.nsp | /atmosphere/contents/420000000003103 | The core of the system as a sysmodule |
| toolbox.json | /atmosphere/contents/420000000003103 | A description file for Atmosphère |
| boot2.flag | /atmosphere/contents/420000000003103/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/420000000003103 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/420000000003103.
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)




