Skip to content

Fix visual parameter wire serialization - #177

Merged
cinderblocks merged 1 commit into
cinderblocks:masterfrom
lyrae-versebound:lyrae/issue-176-visual-param-wire-order
Aug 29, 2026
Merged

Fix visual parameter wire serialization#177
cinderblocks merged 1 commit into
cinderblocks:masterfrom
lyrae-versebound:lyrae/issue-176-visual-param-wire-order

Conversation

@lyrae-versebound

Copy link
Copy Markdown
Contributor

Description

Make AppearanceManager.MakeAppearancePacket() serialize the complete generated visual-parameter wire sequence instead of truncating it to 218 entries, or 251 when physics is worn.

Motivation

AgentSetAppearance.VisualParam is positional. Truncating the sequence shifts later values onto unrelated sliders, which can deform avatar bodies on OpenSim. Using VisualParams.Group0ParamIds keeps packet membership, ordering, and length aligned with the generated wire table.

Changes

  • Derive the outgoing visual-parameter count from VisualParams.Group0ParamIds.
  • Serialize every value in the generated ascending-ID wire order.
  • Add regression coverage for the 253-entry ordered, unique group-0/group-3 sequence.
  • Align related comments with the actual wire ordering.

Testing

  • Release solution build completed with no errors and no warnings from changed lines.
  • Focused appearance serialization and decode tests passed on net481, net8.0, net9.0, and net10.0.
  • Complete LibreMetaverse.Tests suite: 4,232 passed; 76 live-grid tests skipped.
  • Complete rendering suite: 225 passed.
  • Local OpenSim validation confirmed 253 visual parameters after login, adjacent-region crossing, and inter-region teleport; observer visual check passed.

Breaking changes

None.

Related issues

Fixes #176

@cinderblocks
cinderblocks merged commit dab1a1d into cinderblocks:master Aug 29, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AgentSetAppearance sends 218 VisualParams (viewers send 253) — positional mismatch deforms the avatar body on OpenSim

2 participants