Links
Tags
Creators
Details
Licensed GPL-3.0-only
Published 7 months ago
Updated 3 months ago
All versions
2.9
Release
Math Function 2.94 months ago 99
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client and server
Changes
【中文更新日志】
2.9 版本更新 - 递归调用安全防护:
- 修复了自定义函数互相调用或自身调用自身时导致的栈溢出崩溃漏洞(StackOverflowError),该问题曾导致服务器崩溃甚至存档损坏。
- 新增递归调用检测机制,当检测到函数存在直接或间接的循环调用时,会抛出友好的“循环调用”错误提示,而非崩溃。
- 设定了最大递归深度限制(64 层),防止意外深度递归导致性能问题。
- 现在你可以安全地定义和测试自定义函数,即使不小心写出了递归调用,游戏也会优雅地给出错误提示而不会崩溃。
【English Changelog】
Version 2.9 - Recursive call protection:
- Fixed a critical crash vulnerability where custom functions calling themselves or mutually referencing each other would cause StackOverflowError, potentially crashing the server or corrupting saves.
- Added recursive call detection mechanism that throws a friendly "circular call" error when direct or indirect recursion is detected, instead of crashing.
- Implemented a maximum recursion depth limit (64 layers) to prevent performance issues from accidental deep recursion.
- You can now safely define and test custom functions – even if you accidentally write recursive calls, the game will gracefully display an error message instead of crashing.
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:PCGFmGm4:fZXvUg1L"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:PCGFmGm4:fZXvUg1L"
}

