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.
- The mod is now more interactive and gamified
- Players can react to puns and air their opinions directly in‑game and vocalize on how cringe they find the puns!
- Ratings are shared through the server, letting the community collectively decide which puns shine
- Each reaction contributes to approval ratings of individual puns
- Added support for online communication with a backend server when
**enableOnline** (_config_)is true - Approval ratings and pun statistics are now fetched and updated live
- Pun screen reworked with new logic
- Client can now communicate with a remote server to fetch pun data and stats
- Added configs options for toggle server communication, choose continuous pun flow or return to menu and toggle detailed logging for troubleshooting
- Improved JSON parsing and validation for pun entries
- Players always have access to the latest pun list if online, otherwise uses the locally bundled json
- Overall smoother and more resilient pun delivery



