Well Greased

Well Greased

Adds animations to doors, trapdoors, fence gates and lever!

by
419 Downloads
fabricdecoration
Rent Server with this Mod

Screenshots

Door Animation
Trapdoor Animation
Fence Gate Animation
Lever Animation

About this Mod

Well Greased

Adds Animations to doors, trapdoors, fence gates and lever!

door animation

trapdoor animation

fence gate animation

lever animation

Works with redstone too!

Resource Pack Friendly!

For doors and trapdoors, everything is handled automatically.
For the lever and fence gates, there are two possibilities:

  • If the resource pack doesn't change the vanilla models (only the textures), then you don't need to do anything.
  • If the resource pack changes the vanilla models, you'll have to create a resource pack as follows (under assets/well_greased/models/block):
Lever

Basically, you'll have to separate the model to permit the animation of only the handle of the lever because the base is standing still. So one model for the base, one for the handle and one for the handle when the player has clicked on it.

The following shows an example for the vanilla lever:

lever_base.json :

{
  "ambientocclusion": false,
  "textures": {
    "base": "minecraft:block/cobblestone",
    "particle": "#base"
  },
  "elements": [
    {   "from": [ 5, -0.02, 4 ],
      "to": [ 11, 2.98, 12 ],
      "faces": {
        "down":  { "uv": [ 5, 4, 11, 12 ], "texture": "#base", "cullface": "down" },
        "up":    { "uv": [ 5, 4, 11, 12 ], "texture": "#base" },
        "north": { "uv": [ 5, 0, 11,  3 ], "texture": "#base" },
        "south": { "uv": [ 5, 0, 11,  3 ], "texture": "#base" },
        "west":  { "uv": [ 4, 0, 12,  3 ], "texture": "#base" },
        "east":  { "uv": [ 4, 0, 12,  3 ], "texture": "#base" }
      }
    }
  ]
}

lever_handle.json :

{
  "ambientocclusion": false,
  "textures": {
    "lever": "minecraft:block/lever",
    "particle": "#lever"
  },
  "elements": [
    {   "from": [ 7, 1, 7 ],
      "to": [ 9, 11, 9 ],
      "rotation": { "origin": [ 8, 1, 8 ], "axis": "x", "angle": -45 },
      "faces": {
        "up":    { "uv": [ 7, 6, 9,  8 ], "texture": "#lever" },
        "north": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "south": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "west":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "east":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }
      }
    }
  ]
}

lever_handle_on.json :

{
  "ambientocclusion": false,
  "textures": {
    "lever": "minecraft:block/lever",
    "particle": "#lever"
  },
  "elements": [
    {   "from": [ 7, 1, 7 ],
      "to": [ 9, 11, 9 ],
      "rotation": { "origin": [ 8, 1, 8 ], "axis": "x", "angle": 45 },
      "faces": {
        "up":    { "uv": [ 7, 6, 9,  8 ], "texture": "#lever" },
        "north": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "south": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "west":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "east":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }
      }
    }
  ]
}
Fence Gate

Basically, you'll have to separate the model to permit the animation of the left part and the right part of the fence gate separately. So 4 models for the left part (one close, one close next to a wall, one open and one open next to a wall) and 4 for the right part (one close, one close next to a wall, one open and one open next to a wall).

The following shows an example for the vanilla oak fence gate (it's the same for other types of woods, replace just oak with your wood):

oak_fence_gate_left.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 5, 7],
      "to": [2, 16, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [6, 6, 7],
      "to": [8, 15, 9],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 6, 7],
      "to": [6, 9, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 12, 7],
      "to": [6, 15, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_left_open.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 5, 7],
      "to": [2, 16, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [0, 6, 13],
      "to": [2, 15, 15],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "east": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [0, 6, 9],
      "to": [2, 9, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [0, 12, 9],
      "to": [2, 15, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_left_wall.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 2, 7],
      "to": [2, 13, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [6, 3, 7],
      "to": [8, 12, 9],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 3, 7],
      "to": [6, 6, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 9, 7],
      "to": [6, 12, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_left_wall_open.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 2, 7],
      "to": [2, 13, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [0, 3, 13],
      "to": [2, 12, 15],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "east": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [0, 3, 9],
      "to": [2, 6, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [0, 9, 9],
      "to": [2, 12, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 5, 7],
      "to": [16, 16, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [8, 6, 7],
      "to": [10, 15, 9],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 6, 7],
      "to": [14, 9, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 12, 7],
      "to": [14, 15, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right_open.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 5, 7],
      "to": [16, 16, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [14, 6, 13],
      "to": [16, 15, 15],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [14, 6, 9],
      "to": [16, 9, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [14, 12, 9],
      "to": [16, 15, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [14, 3, 10, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right_wall.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 2, 7],
      "to": [16, 13, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [8, 3, 7],
      "to": [10, 12, 9],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 3, 7],
      "to": [14, 6, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 9, 7],
      "to": [14, 12, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right_wall_open.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 2, 7],
      "to": [16, 13, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [14, 3, 13],
      "to": [16, 12, 15],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [14, 3, 9],
      "to": [16, 6, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [14, 9, 9],
      "to": [16, 12, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [14, 3, 10, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}
⚠️ Be sure that your files have the same name ⚠️

Available Versions

Well Greased 1.0.0-betabeta
MC 1.21.4fabric
November 25, 2025

How to Install Well Greased on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21.4).

3

Install Mod

Open the mod browser in the dashboard and search for "Well Greased". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabric

Minecraft Versions

1.21.4

Server-side

Unsupported

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Well Greased server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.4). You can switch loaders with one click in the panel.

Is Well Greased compatible with fabric?

Well Greased officially supports fabric for Minecraft 1.21.4. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Well Greased – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Well Greased consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Well Greased with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
LicenseRef-All-Rights-Reserved
Server-side
Unsupported

Supported Versions

1.21.4