{"id":"da22a936-29c4-4bc4-92c5-d6a3398480f3","shortId":"mrxZXH","kind":"skill","title":"ue5-world-interaction","tagline":"UE5.6/UE5.7 world interaction systems for pickups, spawners, overlap/trace checks, and visual feedback. Use when requests involve interactive world actors, spawn logic, pickup behavior, interaction radius checks, success/failure feedback, and actor lifecycle control.","description":"# Quick Start\n- Define interaction model: overlap-driven, trace-driven, or explicit use key.\n- Define actor set: pickup actor, optional spawner, optional visual mapping data asset.\n- Output runtime state transitions from spawn to interaction resolution.\n\n# UE5.7 API Anchors\n- Detection anchors:\n  - `USphereComponent`, `UBoxComponent`\n  - `UPrimitiveComponent::OnComponentBeginOverlap`\n  - `UPrimitiveComponent::OnComponentEndOverlap`\n  - `FHitResult`\n- Trace anchors:\n  - `UWorld::LineTraceSingleByChannel(...)`\n  - `UWorld::SweepSingleByChannel(...)`\n  - `UKismetSystemLibrary::SphereTraceSingle(...)`\n- Lifecycle anchors:\n  - `AActor::SetActorHiddenInGame(...)`\n  - `AActor::SetActorEnableCollision(...)`\n  - `AActor::Destroy(...)`\n  - `AActor::SetActorTickEnabled(...)`\n- Networking anchors:\n  - server authority validation for interaction success\n  - replicated result state for client feedback\n\n# Interaction Stage Contract\n- Every interaction feature must define:\n  - Detection source (overlap/trace/use-key)\n  - Eligibility checks (distance, tags, inventory/capacity, authority)\n  - Success and failure result payloads\n  - Feedback path (VFX/SFX/UI)\n  - Post-interaction lifecycle policy (destroy/disable/cooldown/respawn)\n- If any item is missing, interaction behavior is underspecified.\n\n# Workflow\n## 1) Actor and Component Setup\n- Build root + collision + visual components with explicit collision channels.\n- Define default states (`active`, `cooldown`, `consumed`) and replication needs.\n- Keep collision shape and bounds aligned with intended interaction distance.\n\n## 2) Detection Path\n- Overlap model: bind begin/end overlap delegates on collision component.\n- Trace model: run line/sphere traces on input request and validate hit actor/component.\n- Keep detection deterministic by explicit channels/profiles.\n\n## 3) Eligibility and Authority\n- Validate target state, range, actor validity, and gameplay conditions.\n- In multiplayer, validate success on server before mutating shared state.\n- Return structured failure reason on rejection.\n\n## 4) Resolve Interaction\n- On success: apply effect (grant item, trigger state change, start cooldown).\n- On failure: keep state stable and emit reason-specific feedback.\n- Prevent re-entrant execution during in-progress resolution.\n\n## 5) Feedback Path\n- Emit VFX/SFX/UI feedback for both success and failure paths.\n- Separate cosmetic-only effects from authoritative gameplay mutations.\n- Keep feedback idempotent for repeated client updates.\n\n## 6) Lifecycle and Cleanup\n- Choose lifecycle explicitly: destroy, hide+disable collision, or reuse via respawn timer.\n- If spawner exists, track spawned instances and cleanup on reset/despawn.\n- Disable tick for dormant interaction actors when not needed.\n\n# Constraints\n- Keep interaction validation server-authoritative in multiplayer.\n- Ensure collision channels and trace responses are explicit.\n- Keep spawner randomization deterministic when reproducibility is needed.\n- Avoid hidden side effects in `Tick` without clear need.\n- Do not destroy actors before broadcasting required success/failure feedback.\n- Keep overlap and trace paths functionally equivalent when both are enabled.\n\n# Failure Handling\n- Symptom: overlap never triggers.\n  - Locate: collision enabled state, overlap flags, collision channel responses.\n  - Fix: enable overlap generation, set proper channel responses, verify component bounds.\n- Symptom: trace path misses obvious targets.\n  - Locate: trace channel/profile and ignore actor list.\n  - Fix: align trace channel/profile and reduce self/owner ignore misuse.\n- Symptom: interaction triggers multiple times.\n  - Locate: missing in-progress guard and duplicated delegate bindings.\n  - Fix: add state guard and ensure single bind per component.\n- Symptom: client sees success but server rejects.\n  - Locate: authority checks and RPC validation path.\n  - Fix: move final validation to server and replicate authoritative result.\n- Symptom: consumed pickup remains interactable.\n  - Locate: lifecycle state and collision disable logic.\n  - Fix: disable collision/interaction immediately after confirmed success.\n- Symptom: spawned interactables leak over time.\n  - Locate: spawner bookkeeping and reset cleanup path.\n  - Fix: track spawned instances and destroy/disable stale instances on respawn cycle.\n- Symptom: frame spikes near dense interaction areas.\n  - Locate: per-frame trace/overlap workload and unnecessary ticking.\n  - Fix: reduce polling frequency, gate traces by input/distance, disable idle tick.\n\n# Interaction Authority Ops\n- Use server-validated interaction resolution for shared gameplay effects.\n- Use client-side prediction only for cosmetic feedback when acceptable.\n- Replicate result state, not raw input spam.\n- Keep cooldown/timer ownership on authority side for deterministic multiplayer behavior.\n\n# UE5.6 / UE5.7 Compatibility Notes\n- Overlap, trace, and actor lifecycle APIs listed above are stable across UE5.6 and UE5.7.\n- Prefer explicit collision profile/channel configuration in both versions.\n\n# Escalation\n- Escalate when design requires persistent world state synchronization across sessions.\n- Escalate when system must integrate with GAS ability targeting rules.","tags":["ue5","world","interaction","unrealengine5","skills","teixasalone","aec","agent-skills","animations","blender","camera","collisions"],"capabilities":["skill","source-teixasalone","skill-ue5-world-interaction","topic-aec","topic-agent-skills","topic-animations","topic-blender","topic-camera","topic-collisions","topic-computer-vision","topic-dotnet","topic-embodied-ai","topic-game-framework","topic-gaussian-splatting","topic-graphics"],"categories":["UnrealEngine5-Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/teixasalone/UnrealEngine5-Skills/ue5-world-interaction","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add teixasalone/UnrealEngine5-Skills","source_repo":"https://github.com/teixasalone/UnrealEngine5-Skills","install_from":"skills.sh"}},"qualityScore":"0.456","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 12 github stars · SKILL.md body (5,240 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:07:26.247Z","embedding":null,"createdAt":"2026-05-10T01:06:37.986Z","updatedAt":"2026-05-18T19:07:26.247Z","lastSeenAt":"2026-05-18T19:07:26.247Z","tsv":"'1':158 '2':191 '3':221 '4':250 '5':285 '6':313 'aactor':95,97,99,101 'abil':654 'accept':592 'across':624,645 'activ':175 'actor':23,34,53,56,159,229,344,385,439,617 'actor/component':214 'add':466 'align':186,442 'anchor':75,77,86,94,104 'api':74,619 'appli':255 'area':548 'asset':63 'author':106,133,224,483,570,604 'authorit':303,354,497 'avoid':373 'begin/end':197 'behavior':27,154,609 'bind':196,464,472 'bookkeep':526 'bound':185,427 'broadcast':387 'build':163 'chang':261 'channel':171,359,415,423 'channel/profile':436,444 'channels/profiles':220 'check':13,30,129,484 'choos':317 'cleanup':316,336,529 'clear':380 'client':115,311,476,584 'client-sid':583 'collis':165,170,182,201,323,358,409,414,508,630 'collision/interaction':513 'compat':612 'compon':161,167,202,426,474 'condit':233 'configur':632 'confirm':516 'constraint':348 'consum':177,500 'contract':119 'control':36 'cooldown':176,263 'cooldown/timer':601 'cosmet':299,589 'cosmetic-on':298 'cycl':541 'data':62 'default':173 'defin':39,52,124,172 'deleg':199,463 'dens':546 'design':639 'destroy':100,320,384 'destroy/disable':536 'destroy/disable/cooldown/respawn':147 'detect':76,125,192,216 'determinist':217,368,607 'disabl':322,339,509,512,566 'distanc':130,190 'dormant':342 'driven':44,47 'duplic':462 'effect':256,301,376,581 'elig':128,222 'emit':270,288 'enabl':401,410,418 'ensur':357,470 'entrant':278 'equival':397 'escal':636,637,647 'everi':120 'execut':279 'exist':331 'explicit':49,169,219,319,364,629 'failur':136,246,265,295,402 'featur':122 'feedback':16,32,116,139,274,286,290,307,390,590 'fhitresult':84 'final':491 'fix':417,441,465,489,511,531,558 'flag':413 'frame':543,552 'frequenc':561 'function':396 'gameplay':232,304,580 'gas':653 'gate':562 'generat':420 'grant':257 'guard':460,468 'handl':403 'hidden':374 'hide':321 'hit':213 'idempot':308 'idl':567 'ignor':438,448 'immedi':514 'in-progress':281,457 'input':209,598 'input/distance':565 'instanc':334,534,538 'integr':651 'intend':188 'interact':4,7,21,28,40,71,109,117,121,144,153,189,252,343,350,451,503,520,547,569,576 'inventory/capacity':132 'involv':20 'item':150,258 'keep':181,215,266,306,349,365,391,600 'key':51 'leak':521 'lifecycl':35,93,145,314,318,505,618 'line/sphere':206 'linetracesinglebychannel':88 'list':440,620 'locat':408,434,455,482,504,524,549 'logic':25,510 'map':61 'miss':152,431,456 'misus':449 'model':41,195,204 'move':490 'multipl':453 'multiplay':235,356,608 'must':123,650 'mutat':241,305 'near':545 'need':180,347,372,381 'network':103 'never':406 'note':613 'obvious':432 'oncomponentbeginoverlap':81 'oncomponentendoverlap':83 'op':571 'option':57,59 'output':64 'overlap':43,194,198,392,405,412,419,614 'overlap-driven':42 'overlap/trace':12 'overlap/trace/use-key':127 'ownership':602 'path':140,193,287,296,395,430,488,530 'payload':138 'per':473,551 'per-fram':550 'persist':641 'pickup':10,26,55,501 'polici':146 'poll':560 'post':143 'post-interact':142 'predict':586 'prefer':628 'prevent':275 'profile/channel':631 'progress':283,459 'proper':422 'quick':37 'radius':29 'random':367 'rang':228 'raw':597 're':277 're-entr':276 'reason':247,272 'reason-specif':271 'reduc':446,559 'reject':249,481 'remain':502 'repeat':310 'replic':111,179,496,593 'reproduc':370 'request':19,210 'requir':388,640 'reset':528 'reset/despawn':338 'resolut':72,284,577 'resolv':251 'respawn':327,540 'respons':362,416,424 'result':112,137,498,594 'return':244 'reus':325 'root':164 'rpc':486 'rule':656 'run':205 'runtim':65 'see':477 'self/owner':447 'separ':297 'server':105,239,353,480,494,574 'server-authorit':352 'server-valid':573 'session':646 'set':54,421 'setactorenablecollis':98 'setactorhiddeningam':96 'setactorticken':102 'setup':162 'shape':183 'share':242,579 'side':375,585,605 'singl':471 'skill' 'skill-ue5-world-interaction' 'sourc':126 'source-teixasalone' 'spam':599 'spawn':24,69,333,519,533 'spawner':11,58,330,366,525 'specif':273 'spheretracesingl':92 'spike':544 'stabl':268,623 'stage':118 'stale':537 'start':38,262 'state':66,113,174,227,243,260,267,411,467,506,595,643 'structur':245 'success':110,134,237,254,293,478,517 'success/failure':31,389 'sweepsinglebychannel':90 'symptom':404,428,450,475,499,518,542 'synchron':644 'system':8,649 'tag':131 'target':226,433,655 'tick':340,378,557,568 'time':454,523 'timer':328 'topic-aec' 'topic-agent-skills' 'topic-animations' 'topic-blender' 'topic-camera' 'topic-collisions' 'topic-computer-vision' 'topic-dotnet' 'topic-embodied-ai' 'topic-game-framework' 'topic-gaussian-splatting' 'topic-graphics' 'trace':46,85,203,207,361,394,429,435,443,563,615 'trace-driven':45 'trace/overlap':553 'track':332,532 'transit':67 'trigger':259,407,452 'uboxcompon':79 'ue5':2 'ue5-world-interaction':1 'ue5.6':610,625 'ue5.6/ue5.7':5 'ue5.7':73,611,627 'ukismetsystemlibrari':91 'underspecifi':156 'unnecessari':556 'updat':312 'uprimitivecompon':80,82 'use':17,50,572,582 'uspherecompon':78 'uworld':87,89 'valid':107,212,225,230,236,351,487,492,575 'verifi':425 'version':635 'vfx/sfx/ui':141,289 'via':326 'visual':15,60,166 'without':379 'workflow':157 'workload':554 'world':3,6,22,642","prices":[{"id":"340258b5-e43d-4a73-aaf7-d7401945d327","listingId":"da22a936-29c4-4bc4-92c5-d6a3398480f3","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"teixasalone","category":"UnrealEngine5-Skills","install_from":"skills.sh"},"createdAt":"2026-05-10T01:06:37.986Z"}],"sources":[{"listingId":"da22a936-29c4-4bc4-92c5-d6a3398480f3","source":"github","sourceId":"teixasalone/UnrealEngine5-Skills/ue5-world-interaction","sourceUrl":"https://github.com/teixasalone/UnrealEngine5-Skills/tree/main/skills/ue5-world-interaction","isPrimary":false,"firstSeenAt":"2026-05-10T01:06:37.986Z","lastSeenAt":"2026-05-18T19:07:26.247Z"}],"details":{"listingId":"da22a936-29c4-4bc4-92c5-d6a3398480f3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"teixasalone","slug":"ue5-world-interaction","github":{"repo":"teixasalone/UnrealEngine5-Skills","stars":12,"topics":["2d","aec","agent-skills","animations","blender","camera","collisions","computer-vision","dotnet","embodied-ai","game-framework","gaussian-splatting","graphics","machine-learning","ue4-program","unreal-engine","virtual-worlds","webgl","webgl2","webxr"],"license":"mit","html_url":"https://github.com/teixasalone/UnrealEngine5-Skills","pushed_at":"2026-05-18T15:42:31Z","description":"Provide reusable workflows for Unreal Engine 5.6/5.7 to simplify Blueprint, C++, UI, PCG, replication, debugging, and performance tasks.","skill_md_sha":"112eaa21e01e72161b07dda21216041ecc32cc06","skill_md_path":"skills/ue5-world-interaction/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/teixasalone/UnrealEngine5-Skills/tree/main/skills/ue5-world-interaction"},"layout":"multi","source":"github","category":"UnrealEngine5-Skills","frontmatter":{"name":"ue5-world-interaction","description":"UE5.6/UE5.7 world interaction systems for pickups, spawners, overlap/trace checks, and visual feedback. Use when requests involve interactive world actors, spawn logic, pickup behavior, interaction radius checks, success/failure feedback, and actor lifecycle control."},"skills_sh_url":"https://skills.sh/teixasalone/UnrealEngine5-Skills/ue5-world-interaction"},"updatedAt":"2026-05-18T19:07:26.247Z"}}