3
Compatibility
Changes
NamlessCheck
Spigot/Paper plugin to log sensitive build/combat actions: monitored block placements, fire ignitions, and End Crystal placements, with output to console, file, or both.
V3 Updates
- Added fire interaction logging for ignitions caused by
FLINT_AND_STEELandFIRE_CHARGE. - Added End Crystal placement logging from player interaction (right-click on
OBSIDIAN/BEDROCK). - Kept whitelist behavior for block placements via
monitored-blocks.
Features
- Monitored player block-place logging (whitelist-based).
- Fire ignition logging (
FLINT_AND_STEEL/FIRE_CHARGEinteractions). - End Crystal placement logging from interaction.
- Configurable block whitelist (
monitored-blocks). - Configurable output:
CONSOLE,FILE,BOTH. - Live config reload command (no restart required).
- Bypass permission for specific players/staff.
- Startup log rotation with
.gzcompression. - Multi-language support with separate files (
it_it/us_en). - Async log queue to reduce main-thread I/O impact.
Installation
- Copy the jar into
plugins/. - Start the server once to generate default files.
- Edit
plugins/NamlessCheck/config.yml. - (Optional) edit language files in
plugins/NamlessCheck/lang/. - Run
/namlesscheck reloadto apply changes.
Configuration (config.yml)
Main keys:
log-mode:FILE,CONSOLE,BOTHlog-file: path relative to plugin folder (examplelogs/blocks.log)async-log-interval-ticks: async flush interval (default20)archive-on-startup: iftrue, archives the previous log on startuparchive-directory: destination folder for compressed archiveslanguage: active language (it_itorus_en)monitored-blocks: list ofMaterialvalues to monitor for block placements
Example:
log-mode: BOTH
log-file: "logs/blocks.log"
async-log-interval-ticks: 20
archive-on-startup: true
archive-directory: "logs/old"
language: "it_it"
monitored-blocks:
- CHEST
- HOPPER
Note: monitored-blocks only filters BlockPlaceEvent logs. Fire ignite and End Crystal logs are tracked independently (unless player has namlesscheck.bypass).
Languages (lang/)
Available files:
plugins/NamlessCheck/lang/it_it.ymlplugins/NamlessCheck/lang/us_en.yml
Main keys:
messages.reload-successmessages.no-permissionmessages.usagelogs.block-placelogs.fire-ignitelogs.end-crystal-place
You can customize messages directly in these files.
Commands
/namlesscheck reload- Aliases:
/nc reload,/check reload
Permissions
namlesscheck.reload(default:op)namlesscheck.bypass(default:false)
Log Format
Example line:
[2026-02-12 21:10:00] Steve placed CHEST in world [120, 64, -44]
Log Rotation
- If
archive-on-startup: true, on startup the current log is: - compressed to
.gz - moved to
archive-directory - replaced with a new fresh log file
Notes
- Whitelist is handled case-insensitively.
- If
log-modeis invalid, the plugin falls back toBOTH. - File writer does not flush every event to reduce I/O; flush is guaranteed on close/reload.
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:lDGXXIBe:PaC4EytL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:lDGXXIBe:PaC4EytL"
}

