Optimized Cushions

Quick rating

Community listing page, reviews here may not be monitored by the author.

Optimized Cushions

No reviews yet

Optimizing cushions on client and server

Performance & Optimization
Mod Loaders
Fabric
Minecraft
26.2

Community voices

Reviews

List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Show per page
10
25
50
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

Where It Runs
Either Side

Install on the client or the server — either alone gives full functionality.

About

Project Details

Type
Mod
License
MIT License
Latest Version
Initial version

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

CurseForge ID
Modrinth ID

Resources

External Links

About

Description

Optimized Cushions

Vanilla 26.3 added cushions as entities. A cushion never moves, yet it costs the same as any other entity, both on the client and on the server.

This mod treats a cushion as what it is: a static thing. The client bakes it into the terrain so it renders like a block; the server drops the per-tick tracking and ticking overhead. Gameplay is unchanged: sitting, breaking, picking, sounds, particles, drops and saves are all vanilla.

To be honest: cushions are already a very light entity, especially server-side, so you will only see a difference if you have a LOT of them.

How it works

A cushion is rendered like any other block: baked straight into the chunk mesh and terrain is far cheaper to draw than entities.

On the server, cushions that have nobody sitting on them skip the entity tracker and tick-list and run through one lightweight loop instead. The moment someone sits down (or you /ride one) that cushion snaps back to the full vanilla path, so behavior stays exact.

Features

  • More FPS — cushions are free to render once baked; the boost scales with how many are on screen.
  • Less memory pressure — especially on the client.
  • See them further — baked cushions are visible to full render distance, just like blocks, instead of the shorter vanilla entity range.
  • Lighter servers — big tick-time savings on cushion-heavy worlds (tracker, movement re-checks, and ticking all trimmed).
  • Nothing lost — every cushion interaction works exactly as in vanilla.
  • Resource packs — cushion textures from your resource pack are picked up automatically.

image

Compatibility

  • Vanilla-safe — no protocol or save changes. The client half works on vanilla servers, and the server half serves vanilla clients.
  • Sodium — Client side are automatically disabled when Sodium is installed (will investigate it in the future with Sodium updates). The server optimizations still work.
  • Cushions fall back to the vanilla renderer while glowing, on fire, or invisible, and name tags / F3+B hitboxes always render the vanilla way.

Trade-offs

A few small, deliberate differences from vanilla — none affect gameplay (drops, riding, sounds, damage and saves are identical):

  • Client — because cushions are baked into terrain, a change (place, break, teleport, dye) shows up on the next section rebuild, so it can flicker for a frame or two instead of updating instantly. Textures now mipmap at distance like blocks.
  • Server — spawn/despawn for a moving player is checked on a ~1-block / 1-second grid instead of every packet, so a cushion at the far tracking edge can appear up to one block of walking later than vanilla. Support/fluid checks in unloaded-but-not-ticking chunks are deferred rather than frozen.

Links

Optimized Cushions

Vanilla 26.3 added cushions as entities. A cushion never moves, yet it costs the same as any other entity, both on the client and on the server.

This mod treats a cushion as what it is: a static thing. The client bakes it into the terrain so it renders like a block; the server drops the per-tick tracking and ticking overhead. Gameplay is unchanged: sitting, breaking, picking, sounds, particles, drops and saves are all vanilla.

To be honest: cushions are already a very light entity, especially server-side, so you will only see a difference if you have a LOT of them.

How it works

A cushion is rendered like any other block: baked straight into the chunk mesh and terrain is far cheaper to draw than entities.

On the server, cushions that have nobody sitting on them skip the entity tracker and tick-list and run through one lightweight loop instead. The moment someone sits down (or you /ride one) that cushion snaps back to the full vanilla path, so behavior stays exact.

Features

  • More FPS — cushions are free to render once baked; the boost scales with how many are on screen.
  • Less memory pressure — especially on the client.
  • See them further — baked cushions are visible to full render distance, just like blocks, instead of the shorter vanilla entity range.
  • Lighter servers — big tick-time savings on cushion-heavy worlds (tracker, movement re-checks, and ticking all trimmed).
  • Nothing lost — every cushion interaction works exactly as in vanilla.
  • Resource packs — cushion textures from your resource pack are picked up automatically.

image

Compatibility

  • Vanilla-safe — no protocol or save changes. The client half works on vanilla servers, and the server half serves vanilla clients.
  • Sodium — Client side are automatically disabled when Sodium is installed (will investigate it in the future with Sodium updates). The server optimizations still work.
  • Cushions fall back to the vanilla renderer while glowing, on fire, or invisible, and name tags / F3+B hitboxes always render the vanilla way.

Trade-offs

A few small, deliberate differences from vanilla — none affect gameplay (drops, riding, sounds, damage and saves are identical):

  • Client — because cushions are baked into terrain, a change (place, break, teleport, dye) shows up on the next section rebuild, so it can flicker for a frame or two instead of updating instantly. Textures now mipmap at distance like blocks.
  • Server — spawn/despawn for a moving player is checked on a ~1-block / 1-second grid instead of every packet, so a cushion at the far tracking edge can appear up to one block of walking later than vanilla. Support/fluid checks in unloaded-but-not-ticking chunks are deferred rather than frozen.

Links

Screenshots

Gallery

  • Perfomance without mod
    Perfomance without mod Test world with a lot of cushions without the mod
  • Perfomance with mod
    Perfomance with mod Test world with a lot of cushions with mod installed
  • Cushions on different heigth
    Cushions on different heigth

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

~7,000
Total Downloads
CurseForge
<1,000
Modrinth
~6,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works