Troubleshooting
Diagnose missing greetings, failed reloads, history surprises, and dependency problems.
Each entry follows the same pattern: symptom, likely cause, resolution, verification.
No greeting appears
- Symptom: A player joins and no greeting is delivered.
- Likely cause:
enabledis false, the relevant pool is disabled/empty, the player left beforedelayTickselapsed, or the JAR is missing. - Resolution: Run
/joingreetings status. Confirmenabled, pool enabled flags, and message counts. Confirm only one Dynamic Join Greetings JAR is present. - Verification: Run
/joingreetings simulate returningin-game and wait for the configured delay.
Configuration reload fails
- Symptom:
/joingreetings reloadreports failure. - Likely cause: Invalid JSON, unsupported
configVersion, emptyserverName, out-of-rangedelayTicks, duplicate ids, invalid weights, or invalid formatting. - Resolution: Check the server console for the validation error. Fix the file. Remember the previous configuration remains active until a reload succeeds.
- Verification: Reload again and confirm the success message, then run
/joingreetings status.
Invalid JSON
- Symptom: Reload fails immediately after an edit.
- Likely cause: Trailing commas, missing quotes, or broken brackets.
- Resolution: Validate the JSON in an editor, restore from backup if needed, then reload.
- Verification: Successful
/joingreetings reload.
Invalid formatting
- Symptom: Reload fails with a formatting error for a specific message line.
- Likely cause: Broken Simplified Text Format tags in
lines. - Resolution: Fix or remove the offending line. See Formatting.
- Verification: Reload succeeds and
/joingreetings preview returningrenders the fixed line.
A returning player receives a first-time greeting
- Symptom: An established player gets a first-time message.
- Likely cause: Their UUID is missing from
players.json, or history was reset/rebuilt incorrectly. - Resolution: Confirm the UUID is present in
<world>/dynamic-join-greetings/players.jsonwhile the server is stopped. Re-add it if needed. - Verification: Next join uses the returning pool.
A new player receives a returning greeting
- Symptom: A brand-new player gets a returning message.
- Likely cause: Their UUID was already imported from
playerdata, or was previously recorded. - Resolution: Stop the server and remove that UUID from
players.jsonif you intentionally want a first-time greeting. - Verification: Next join uses the first-time pool and re-adds the UUID.
Greetings are delayed
- Symptom: Messages appear several seconds after join.
- Likely cause: Expected
delayTicksbehavior. Default is40ticks (~2 seconds). Maximum is1200. - Resolution: Lower
delayTicksif you want faster delivery, then reload. - Verification:
/joingreetings statusshows the new delay; simulate once.
Broadcast behavior is unexpected
- Symptom: The joining player does or does not see the message.
- Likely cause: Audience misunderstanding.
- Resolution: Remember
PLAYER= joiner only,BROADCAST= everyone except joiner,BOTH= everyone including joiner. - Verification: Simulate with two online accounts and the target audience.
Duplicate mod versions
- Symptom: Confusing behavior or duplicate class/mod load warnings.
- Likely cause: Multiple Dynamic Join Greetings JARs in
mods. - Resolution: Stop the server and leave only one JAR.
- Verification: Restart and confirm a single mod entry in the startup log.
Missing Fabric API
- Symptom: The server refuses to load the mod or dependency checks fail.
- Likely cause: Fabric API is missing or too old.
- Resolution: Install Fabric API
0.160.0+26.2or newer. - Verification: Server starts and
/joingreetings statusworks.
Incorrect Loader version
- Symptom: Dependency failure mentioning Fabric Loader.
- Likely cause: Loader older than
0.19.3. - Resolution: Upgrade Fabric Loader, then restart.
- Verification: Startup succeeds without loader dependency errors.
Incorrect Java version
- Symptom: The server fails because Java is too old.
- Likely cause: Runtime below Java 25.
- Resolution: Run the server on Java 25+.
- Verification:
java -versionreports 25 or newer and the server starts.
Compatibility with other chat or message mods
- Symptom: Greetings, previews, or simulations fail to appear when another message API is present.
- Likely cause: Conflicting chat delivery stacks.
1.0.2+26.2fixed a known failure with Fabric Essentials Message API by switching to native components via Placeholder API. - Resolution: Confirm you are on
1.0.4+26.2or newer. Test with/joingreetings preview returning. Check both mods’ logs. - Verification: Preview and a real join both deliver messages.
Restoring the default configuration
- Symptom: You want the packaged defaults again.
- Likely cause: Customized config no longer desired.
- Resolution: Stop the server, delete or rename
config/dynamic-join-greetings.json, start the server. - Verification: Status shows 10 first-time and 50 returning messages.
Locating console errors
- Symptom: Reloads or history recovery fail without an obvious in-game explanation.
- Likely cause: Details are logged server-side.
- Resolution: Search the console/log for
dynamic-join-greetings. - Verification: The log line identifies the file, validation rule, or recovery action.
Found a problem in these docs? Report a documentation issue on GitHub.