1.0.0
Compatibility
Required content
Changes
Description
This mod provides system-level window manipulation features. Improper or malicious use may negatively affect user experience. Use responsibly.
This is a script extension mod based on CustomNPCs Unofficial (1.20.1), designed to provide system-level operations that would otherwise require extensive use of Java.type. While this mod does not involve any form of malware, some features are potentially risky. It is strongly recommended that you only grant scripting permissions in CustomNPCs Unofficial to people you trust.
Script Methods
moveWindow(String, int, player) First parameter: direction (left, right, up, down) Second parameter: pixel offset Moves the player's game window in the specified direction.
shakeWindow(float, int, int, player) First parameter: frequency Second parameter: duration (seconds) Third parameter: maximum offset (pixels) Applies a shaking effect to the player's game window.
hideShowWindow(int, int, player) First parameter: interval (milliseconds) Second parameter: duration (seconds) Rapidly hides and shows the game window, creating a flashing effect.
resizeWindow(int, int, player) Parameters: width and height Resizes the game window.
crashGame(player) Immediately crashes the game. (Warning: When used on a server, this may also crash the server.)
Current Status
I am currently working on making these features function reliably on the client side. At the moment, behavior is unstable, and in most cases the effects apply to the host (server side) rather than other players in the session. If you are creating a Minecraft map with “fourth wall breaking” effects similar to Doki Doki Literature Club!, this mod may be a good fit for your project.
The original purpose of this mod is to prevent the misuse of importing system classes via CNPC to create external shell scripts, which may pose security risks. This mod does not execute or rely on shell operations. All provided functions can be used directly within the native CNPC scripting environment after installation.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:LyKJm6uV:AgBD1nmG"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LyKJm6uV:AgBD1nmG"
}

