Skip to content

Add configurable Workshop dependency manifests#115

Closed
ilker2445 wants to merge 8 commits into
Metastruct:devfrom
ilker2445:dependency-manifest
Closed

Add configurable Workshop dependency manifests#115
ilker2445 wants to merge 8 commits into
Metastruct:devfrom
ilker2445:dependency-manifest

Conversation

@ilker2445

Copy link
Copy Markdown

Summary

  • resolve Workshop dependency graphs without downloading or mounting them
  • let the outfit chooser review, select, reject, and inspect declared dependencies
  • transmit the wearer's selected dependencies as a versioned manifest
  • validate manifests against the actual Workshop graph before mounting
  • enforce each recipient's combined dependency size limit
  • mount accepted dependencies in dependency-first order

Motivation

The preliminary dependency mounting path recursively mounted every declared Workshop child. That gave users no opportunity to reject irrelevant dependencies, and it provided no separate aggregate size policy for dependency content.

This change makes dependency mounting opt-in and explicit. The wearer chooses which declared dependencies belong with the outfit, while every receiving client keeps control through its own dependency mounting setting and size limit.

Behavior

  • dependency mounting remains disabled by default through the existing outfitter_mount_children_test convar
  • outfitter_dependency_maxsize defaults to 60 MB and limits the combined selected dependency size
  • GUI-originated Workshop selections show a dependency review dialog
  • users can select individual dependencies, continue without them, or raise their local limit to accept the selection
  • receiving clients verify every selected item is a real descendant of the root Workshop item
  • malformed, stale, excessive, or over-limit manifests are rejected
  • dependency GMAs receive Outfitter's normal blacklist checks before mounting
  • autowear and repeated selections preserve the chosen manifest
  • enabling dependency mounting or increasing its limit retries relevant visible outfits

Already-mounted Workshop items cannot be unmounted until Garry's Mod restarts; the review dialog mentions this limitation.

Validation

  • full Lua tree passes GLuaLint using the repository configuration
  • git diff --check passes
  • branch is based on the current dev head and is 0 commits behind

This has not yet received live in-game testing.

Comment thread lua/outfitter/cl.lua

function RefreshDependencies()
local players = {}
for _, pl in next, player.GetAll() do

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for _, pl in next, player.GetAll() do
for _, pl in player.Iterator() do

@ilker2445

Copy link
Copy Markdown
Author

Superseded by #116, which contains the cleaned-up, fully validated final branch as a single commit.

@ilker2445 ilker2445 closed this Jun 15, 2026
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.

2 participants