Links
Tags
Creators
Details
Licensed BSD-2-Clause
Published 11 months ago
Updated 11 months ago
All versions
1.2
Release
Puns 1.211 months ago 87
Compatibility
Minecraft: Java Edition
1.20–1.20.1
Platforms
Forge
NeoForge
Supported environments
Client-side
Client and server
Changes
Screens & UI
Pre-title pun reaction screen:
- Stats system refactored:
- Old: local
PunStatswith optional online sync. - New: unified
IPunStatsinterface with hybrid persistence (local + server facade).
- Old: local
- Wheel of Fortune integration:
- Added reaction wheel and dedicated wheel button.
- Supports blur effects and dynamic placement of approval rating when wheel is active.
- Animation improvements:
- Floating text effects for reactions.
- Shake/blur transitions and fade-out timing.
- Hover scaling and shockwave effects for reaction buttons.
- Auto-refresh of stats:
- Stats now refresh periodically automatically.
- Approval rating rendering:
- Emoticons (
:),:(,... nice) added. - Smarter placement depending on wheel state.
- Emoticons (
- Reload behavior:
- Reloading puns via keybind only allowed when wheel inactive.
- Background rendering:
- Dirt background with configurable fade.
- Blur applied when wheel is active.
- Closing behavior:
- Fades back to parent screen instead of chaining into another intro screen.
Entirely new vote screen for in-game:
- Entirely new screen class (
PunVoteScreen) introduced. - Can be started in-game via commands.
- Uses the server connection directly for reactions (no local stats fallback).
- Renders as a normal GUI overlay with the world visible behind.
- Custom panel texture (
pun_vote.png) replaces dirt background. - ESC key records a neutral reaction before closing.
- Fade-out logic simplified: after a reaction, closes directly back to the game.
- Approval rating display consistent with new intro screen.
Commands
Expanded upon commands:
- Command structure overhaul:
- Old: single
puncommand with optional target, color, bold, italic. - New: modular
punscommand namespace with multiple subcommands.
- Old: single
- Send commands:
puns sendsends a random pun to all or specific targets.- Supports color, bold, italic styling.
- Voting commands:
puns votestarts voting sessions.- Modes include:
vote randomstarts a random pun vote for all or specific players.vote createcreates a new pun and immediately opens a vote.vote findsearches for puns by text fragments (question, answer, both).vote byIDopens a vote by pun ID.
- Search improvements:
- Flexible search modes:
any,question,answer,both. - Supports fuzzy and exact matching.
- Handles quoted strings and strips punctuation for cleaner matching.
- Flexible search modes:
- Admin commands (requires permission level 2):
puns addadds a custom pun.puns removeremoves a custom pun by ID.puns reloadreloads the pun database and syncs to clients.puns listlists all active puns (sent to client or logged server-side).puns deleteFiledeletes authoritativepuns.json.puns clearFileclears authoritativepuns.json.puns clearCustomclears all custom puns.
- Networking integration:
- Uses
PunPacketsto sync pun lists and open vote screens on clients. - Broadcasts
SyncPunsPayloadafter reloads to keep all players in sync
- Uses
In Summary (i.e. what "matters")
- Pre-title reaction screen improved with "prize/fortune" wheel mechanics, hybrid stats, auto-refresh, richer animations, and improved approval rating display.
- An in-game vote screen added as a brand-new GUI for voting for your favourite puns, command-driven, server-bound, and world-overlay style.
- In-game commands expanded into a full command suite with voting, searching, adding/removing, file management, and syncing capabilities.
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:HKzO2lRQ:zrmU12Tj"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:HKzO2lRQ:zrmU12Tj"
}

