ChainDecor is a Purpur/Paper plugin that adds decorative hanging chains between blocks. You can attach lanterns, banners, and end rods to the chains while preserving banner patterns and visual styling. It supports sagging chains, detailed config customization, individual decoration removal, attachment to multiple anchor types, and lanterns that provide real light to the surrounding area.
It is designed for builders and survival servers that want more detailed decorative options without requiring any client-side mods.
Each chain segment can hold one decoration at a time:
This allows patterns such as:
Using shears on a decorated segment removes the decoration attached to that segment first. If there is no decoration on that segment, the chain itself can be removed.
Config File
Main Options
Anchor Support
By default, chains can be attached to:
You can also enable this option:
support-all-blocks: true
When enabled, chains may be attached to any block.
Commands
| Command | Description |
|---|---|
| /chains reload | Reload the plugin configuration |
Examples
Create a hanging chain
Hang a lantern
Hang a banner
Hang an end rod
Remove a decoration
This is a server-side plugin for Purpur/Paper and is not required on the client.
Language
Plugin language file. Available by default: ru, en, de, es, tt, kk Files are stored in plugins/ChainDecor/lang/ Example: language: ru
language: ru
Chain Settings
Maximum allowed distance between two anchor points.
max-distance: 24.0
How many visual chain segments are created per block of distance (Higher values = smoother chain, but more entities.)
segments-per-block: 1.25
Minimum amount of chain segments.
min-segments: 2
Maximum amount of chain segments.
max-segments: 64
Main sag multiplier (Higher values = stronger hanging curve.)
sag-factor: 0.06
Minimum sag, even for short chains.
min-sag: 0.015
Maximum sag limit for long chains.
max-sag: 1.0
Vertical anchor point inside the block.
anchor-height: 0.55
If true, the chain connects to the block center.
anchor-to-center: true
Horizontal inset used when not anchoring exactly to the center.
anchor-horizontal-inset: 0.12
Extra shortening near the chain ends.
endpoint-gap: 0.0
Thickness of the main chain display.
segment-thickness: 0.82
Height of the invisible interaction hitbox for each chain segment.
segment-hitbox-height: 0.45
Lantern Settings
How far below the chain the lantern hangs.
lantern-hang-offset: 0.78
Height of the small connector chain above the lantern.
lantern-connector-top-offset: 0.1
Thickness of the lantern connector chain.
lantern-connector-thickness: 0.62
Minimum distance between lanterns.
lantern-min-spacing: 1.5
Light level for normal lanterns.
lantern-light-level: 15
Light level for soul lanterns.
soul-lantern-light-level: 10
Drop the lantern item when removed with shears.
drop-lantern-on-remove: true
Banner Settings
How far below the chain the banner hangs.
flag-hang-offset: 0.95
Overall banner scale.
flag-scale: 1.7
Banner width multiplier.
flag-width-scale: 0.86
Banner height multiplier.
flag-height-scale: 0.92
Small side offset between the two rendered banner sides.
flag-side-offset: 0.0015
Extra vertical offset applied to banner rendering.
flag-vertical-nudge: -0.1
How strongly the banner follows the chain angle.
flag-slope-factor: 1
Maximum allowed slope angle in degrees.
flag-max-slope-degrees: 100.0
Extra forward lean applied to the banner.
flag-forward-lean-degrees: 0.0
Additional lean based on slope angle.
flag-extra-lean-per-slope-degree: 0.00
Moves the banner along the chain direction.
flag-along-tangent-offset: 0.0
Drop the banner item when removed with shears.
drop-flag-on-remove: true
End Rod Settings
How far below the chain the end rod hangs.
end-rod-hang-offset: 0.33
Overall end rod scale.
end-rod-scale: 1.6
Extra vertical offset for the end rod.
end-rod-vertical-nudge: -0.06
How strongly the end rod follows the chain angle.
end-rod-slope-factor: 1.0
Maximum allowed slope angle in degrees.
end-rod-max-slope-degrees: 100.0
Extra forward lean for the end rod.
end-rod-forward-lean-degrees: 0.0
Additional lean based on slope angle.
end-rod-extra-lean-per-slope-degree: 0.0
Moves the end rod along the chain direction.
end-rod-along-tangent-offset: 0.0
Drop the end rod item when removed with shears.
drop-end-rod-on-remove: true
Decoration Rules
How many neighbouring segments are blocked when placing a decoration.
0 = only the same segment
1 = same segment + adjacent segments
decoration-exclusion-radius-segments: 0
Anchor Support
Allow chains to connect to walls.
support-walls: true
Allow chains to connect to fences.
support-fences: true
Allow chains to connect to iron bars and copper bars.
support-bars: true
Allow chains to connect to all lightning rod variants.
support-lightning-rods: true
If enabled, chains can connect to any block (This overrides the specific support settings above.)
support-all-blocks: false
Removal Rules
Require sneaking when removing chain connections from anchors.
require-sneak-to-remove: true
Drop chain item when chain is removed.
drop-chain-on-remove: true
Messages