Mod

Synchronised Blockstates

Quick rating

Synchronised Blockstates

No reviews yet

A mod to synchronise the list of blockstates from server to client to prevent mismatches

Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Optional

About

Project Details

Type
Mod
License
GNU General Public License v2.0 or later
Latest Version
2.0.0+1.20.1
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

Synchronised Blockstates

Modded multiserver setups can be... complicated.

When you have multiple connected servers that all have different modlists, it's not uncommon for different servers to have mismatched blocks, leaving you with sights like this: An image of a minecraft world (seed 4443874797342797) but many of the blocks are incorrect, having been corrupted by the inconsistent network order of blockstates between client/server. Sandstone is replaced by waterlogged cherry leaves. Dead bushes are replaced by noteblocks. Brown, light grey, white, red, brown and orange terracotta are replaced by birch buttons in multiple rotations. Uncoloured terracotta appears as waterlogged spruce stairs. Dripstone us replaced by various forms of copper. Etc

Obviously this isn't ideal, so this mod takes the approach of synchronising all of the blockstates from the server to the client side when the player joins, allowing the client to compensate.

For example, that same image with synchronised blockstates enabled: The above image, but the world looks as it is meant to, no blocks were incorrectly replaced

Note: if the client doesn't receive blockstate info from the server, it'll fall back to using vanilla states.

This mod is still a W.I.P. and there are plenty of improvements yet to be made, but it should function for the time being.

Configuration

In lieu of a proper config at this point in time, Synchronised Blockstates has several behaviours that can be enabled or customised using JVM arguments or environment variables:

  • -Dmod.synchronisedblockstates.dumpAllStates

    • Client-only.
    • Accepted values: true, 1, yes, on.
    • On startup, encodes all blockstates (using the same format as if it were sending a single, unchunked, state registry packet) and writes it to <minecraft run directory>/synchronized_blockstates/vanillablockstates.dat (note: not necessarily only vanilla blockstates, will also include modded blockstates if there are any modded blocks).
    • -Dmod.synchronisedblockstates.ouputMissingStates

      • Client-only.
      • Accepted values: true, 1, yes, on.
      • When the client recieves a packet and remaps its local registry, outputs any mismatches between the client and server registries to <minecraft run directory>/synchronized_blockstates/missing-states-<current time>.dat
    • -Dmod.synchronisedblockstates.propertyChunkingThreshold

      • Logical Server only.
      • Accepted values: any integer, default 1024.
      • Max limit on properties before the server starts chunking data before sending it to the client. Additionally, the maximum number of properties that can be sent in a single property chunk.
    • -Dmod.synchronisedblockstates.blockChunkingThreshold

      • Logical Server only.
      • Accepted values: any integer, default 4096.
      • Max limit on blocks before the server starts chunking data before sending it to the client. Additionally, the maximum number of blocks there can be sent in a single blockstate chunk.
    • -Dmod.synchronisedblockstates.stateChunkingThreshold

      • Logical Server only.
      • Accepted values: any integer, default 32768.
      • Max limit on blockstates before the server starts chunking data before sending it to the client.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
CurseForge
Created
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync