Skip to content

Expose opt-in classic combat physics and off-hand eligibility APIs #14376

Closed as not planned

Description

@BriceFab

Is your feature request related to a problem?

Plugins supporting classic combat on modern clients need native hooks for projectile collision/flight, player knockback and movement, and off-hand equipment eligibility. Replacing native simulation or repeatedly correcting velocity/inventory after events can lose the original collision state or produce prediction mismatches. Modern vanilla behavior is intentional; this is an optional extension request, not a vanilla bug report.

Describe the solution you would like

Expose default-native, opt-in runtime capabilities:

  • Player classic combat physics: legacy component clipping/jump arithmetic, accepted knockback, ordinary fall/fire behavior and classic explosion damage/attribution, with modern weapon impulses retained.
  • Arrow, throwable and fishing-hook legacy flight/intersections/owner grace; initial launch position through a generic projectile API. Launch velocity and gameplay policy stay with the plugin.
  • Player off-hand equipment eligibility, including native menu routing, merge candidates and indirect held-item selectors. Stored residual items are retained. Plugins still control swap/creative/interact/resurrection events through existing public APIs.

Native damage acceptance, event cancellation, protection checks and ownership remain authoritative. No global combat configuration, balance preset, custom item identity or anti-cheat exemption is included. Matching client and anti-cheat prediction remains the integrator's responsibility.

Describe alternatives you have considered

Existing combat plugins already handle configuration, damage/event policy, cooldowns and launch values. They cannot select the native flight/intersection order or all equipment consumers through current public APIs. Packet simulation or copying native engines increases maintenance and risks bypassing native event/protection handling.

Other

The proposed implementation is isolated on the maintained ver/26.2 branch, current base 58e6e45d67c998909581f9079189ef51eb6f1267. It has been validated there, not against main/26.3. Default-native regression controls are included. API/server checks and Paperclip assembly passed: 519 API and 9330 server XML executions, no failures/errors, 2/22 skips (suite duplication means these are not unique test counts). No connected-client campaign is attributed to this public export.

Activity

  1. mbax commented on Oct 12, 2026

    @mbax
    SponsorMember

    Closing this as it violates agents.md, with the human not reviewing the change or writing communication themselves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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