Skip to content

Custom enchantment with apply_impulse component prevents clients from connecting (versions 1.21.8 and 26.2) #1281

Description

@134jijie

'/viaversion dump' Output

https://dump.viaversion.com/03feee658f30009b5f45b5e6395b318e01512fde78d705cb191e644111e04e95

Server/Client Error

Put the mclo.gs link or text here.

Bug Description

We run a Spigot/folia server with ViaVersion and ViaBackwards (version 26.1.2) installed on the backend to allow cross‑version connections. We added a data pack that introduces a custom enchantment (intended for leg armor) defined by the following JSON file placed in data/minecraft/enchantment/:

json
{
"anvil_cost": 1,
"description": {
"text": "后撤步"
},
"effects": {
"minecraft:tick": [
{
"effect": {
"type": "minecraft:all_of",
"effects": [
{
"type": "apply_exhaustion",
"amount": 2
},
{
"type": "minecraft:play_sound",
"sound": "minecraft:entity.player.attack.sweep",
"pitch": 1.2,
"volume": 0.8
},
{
"type": "minecraft:apply_impulse",
"direction": [0, 0, -1],
"coordinate_scale": [1, 0, 1],
"magnitude": 0.8
},
{
"type": "minecraft:apply_impulse",
"direction": [0, 1, 0],
"coordinate_scale": [0, 1, 0],
"magnitude": 0.15
},
{
"type": "minecraft:run_function",
"function": "134addition:backstep/start"
}
]
},
"requirements": {
"condition": "minecraft:all_of",
"terms": [
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"backstep_cooldown": 0
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "minecraft:player",
"type_specific": {
"type": "minecraft:player",
"input": {
"backward": true,
"jump": true
}
},
"flags": {
"is_flying": false,
"is_fall_flying": false
}
}
},
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"vehicle": {}
}
}
}
]
}
},
{
"effect": {
"type": "minecraft:run_function",
"function": "134addition:backstep/check_cooldown"
},
"requirements": {
"condition": "minecraft:all_of",
"terms": [
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"backstep_cooldown": 1
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"periodic_tick": 20
}
}
]
}
},
{
"effect": {
"type": "minecraft:run_function",
"function": "134addition:backstep/init"
},
"requirements": {
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"backstep_cooldown": {}
}
}
}
}
]
},
"max_cost": {
"base": 5,
"per_level_above_first": 0
},
"max_level": 1,
"min_cost": {
"base": 1,
"per_level_above_first": 0
},
"slots": [
"legs"
],
"supported_items": "#minecraft:enchantable/leg_armor",
"weight": 1
}
When a player tries to join with a Minecraft 1.21.8 client or a version 26.2 client, the connection fails – they cannot enter the server at all with "Network protocol error". Other client versions haven't been tested yet.
We suspect that the apply_impulse component is not being correctly translated or handled by ViaVersion/ViaBackwards for those particular client versions.

Steps to Reproduce

1.Set up a server with ViaVersion and ViaBackwards (version 26.1.2) installed on the backend only (no proxy such as Velocity or BungeeCord).

2.Create a data pack and place a JSON file (any filename, e.g., backstep.json) inside the data/minecraft/enchantment/ folder of that data pack, with the exact full JSON content provided above in the Bug Description.

3.Load the data pack on the server (by placing it in the datapacks folder and running /reload or restarting the server).

4.Start the server and try to connect using a Minecraft 1.21.8 client.

5.Observe that the connection is rejected – the player cannot join.

6.Repeat step 4 with a client that reports its version as 26.2 – the same failure occurs.

7.Connect with a client of a different version (e.g., 1.20.4) – the connection succeeds normally, confirming the issue is version‑specific.

Additional Server Info

just original datapack language's error

Checklist

  • Via plugins are only running on EITHER the backend servers (e.g. Paper) OR the proxy (e.g. Velocity), not on both.
  • I have included a ViaVersion dump.
  • If applicable, I have included a paste (not a screenshot) of the error.
  • I have tried a build from https://ci.viaversion.com/ and the issue still persists.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions