[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ESB99SV2APM27M4F0ZQSCR":3,"skill-same:01M6ESB99SV2APM27M4F0ZQSCR":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":42,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6ESB99SV2APM27M4F0ZQSCR","unreal-build-gameplay-framework",null,"Build Unreal reflected gameplay classes, Blueprint interfaces and actor lifetimes with explicit server and object ownership.","TimothyMeadows\u002FHephaera","TimothyMeadows","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4072037?v=4","01M6ERVE3WV9X55S1NT4W5FDGA","Timothy D Meadows II","01M6ERVE8H7CBATH6KYFDKG5CJ",4,"MIT","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-gameplay-framework\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"framework","gameplay","build","unreal","unreal build gameplay framework","server","Blueprint","ownership","lifetimes","with","object","2026-11-10 10:12:30",false,"---\nname: unreal-build-gameplay-framework\ndescription: Build Unreal reflected gameplay classes, Blueprint interfaces and actor lifetimes with explicit server and object ownership.\nengines: [UNREAL]\n---\n\n# Unreal Build Gameplay Framework\n\n## When to use\n\nBuild Unreal reflected gameplay classes, Blueprint interfaces and actor lifetimes with explicit server and object ownership. Use this feature for Unreal-owned game code and content.\n\n## Activation and prerequisites\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh unreal-build-gameplay-framework` before edits or tool launches. Continue only when the effective engine is `UNREAL` and `compatible: true`. Skill selection never selects the engine. Revalidate any task override and its permitted isolated output scope before writes. Record observed context and evidence only in the resolved `.hephaera\u002F.cache\u002Ftasks\u002F\u003Ctask>\u002F`; `ENGINE.md` remains the selector.\n\nRead the .uproject engine association, module and plugin list, target configurations, gameplay design and replication model. Bind APIs to the matching Unreal release and compiler toolchain. Distinguish gameplay C++\u002FBlueprints from C# .Build.cs and .Target.cs build rules.\n\n## Workflow\n\n1. Map responsibilities across GameMode, GameState, PlayerState, PlayerController, Pawn\u002FCharacter and components. GameMode is server-side, while replicated shared state belongs in appropriate replicated objects; do not put required client state only in GameMode.\n2. Choose UObject, ActorComponent, Actor or a subsystem by lifetime and world\u002Fplayer scope. Define reflection, module export macros and generated headers deliberately. Keep constructors\u002Fdefault subobjects separate from world-dependent initialization. Use reflected strong references where reachability is intended; Outer alone does not replace a reachable reflected owner. Revalidate weak observers and soft references at use.\n3. Define bounded C++\u002FBlueprint interfaces and validated data surfaces. Distinguish BlueprintNativeEvent from BlueprintImplementableEvent, dispatch Blueprint-capable interfaces through generated Execute_ entry points and keep authoritative permission checks in their trusted owner. Construction Script and Editor rebuilds must be safe to repeat.\n4. Implement construction, initialization, BeginPlay, possession, EndPlay and teardown deliberately. Remove delegates, timers and latent work when the owner leaves the world; do not assume destruction is the only ending path.\n5. Use registered GameplayTags with deliberate exact\u002Fhierarchical queries. Tags are semantic state, not an authorization proof or event bus. Select a messaging implementation explicitly; document listener handles, payload lifetime and dispatch thread. Avoid assuming sample-specific messaging plugins exist.\n6. Integrate asset loading, mutable save state, AI decisions and locomotion through their dedicated feature owners. Framework owns the interfaces and teardown order; do not duplicate their implementations or persist transient object addresses.\n7. Bound ticking and event subscriptions. Group update work by actual need, profile representative actor counts and preserve standalone service architecture independently of Unreal modules.\n\n## Verification\n\n- Compile the intended target and Blueprint assets in real Unreal; test spawn, possession changes, world travel and teardown.\n- Test native and Blueprint interface implementations, repeated initialization, two simultaneous worlds and streamed actor removal during pending work.\n- Check delegate\u002Ftimer cleanup, invalid soft references and target actor budgets in an actual player or representative Editor session.\n\n## Output\n\nFramework ownership diagram, native\u002FBlueprint interfaces and assets, lifecycle and integration contracts, compile evidence and representative gameplay fixtures. Record environment, scope, expected and observed results, evidence paths, and blocked or not-run checks separately from passes.\n\n## Boundaries\n\nA generated C++ file or Blueprint description is not a playable native asset. Preserve package identities and use real engine tooling for asset authoring. Independent tools and services retain their own architecture contracts.\n\n## References\n\nRead [framework lifetimes](references\u002Fframework-lifetimes.md) when implementing reflection, ownership or designer seams.\n\n- [Unreal gameplay framework](https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Fen-us\u002Funreal-engine\u002Fgameplay-framework-in-unreal-engine). Match the documentation version to the project.\n- [Unreal subsystems](https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Fen-us\u002Funreal-engine\u002Fprogramming-subsystems-in-unreal-engine). Match the documentation version to the project.\n\n","# Unreal Build Gameplay Framework\n\n## When to use\n\nBuild Unreal reflected gameplay classes, Blueprint interfaces and actor lifetimes with explicit server and object ownership. Use this feature for Unreal-owned game code and content.\n\n## Activation and prerequisites\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh unreal-build-gameplay-framework` before edits or tool launches. Continue only when the effective engine is `UNREAL` and `compatible: true`. Skill selection never selects the engine. Revalidate any task override and its permitted isolated output scope before writes. Record observed context and evidence only in the resolved `.hephaera\u002F.cache\u002Ftasks\u002F\u003Ctask>\u002F`; `ENGINE.md` remains the selector.\n\nRead the .uproject engine association, module and plugin list, target configurations, gameplay design and replication model. Bind APIs to the matching Unreal release and compiler toolchain. Distinguish gameplay C++\u002FBlueprints from C# .Build.cs and .Target.cs build rules.\n\n## Workflow\n\n1. Map responsibilities across GameMode, GameState, PlayerState, PlayerController, Pawn\u002FCharacter and components. GameMode is server-side, while replicated shared state belongs in appropriate replicated objects; do not put required client state only in GameMode.\n2. Choose UObject, ActorComponent, Actor or a subsystem by lifetime and world\u002Fplayer scope. Define reflection, module export macros and generated headers deliberately. Keep constructors\u002Fdefault subobjects separate from world-dependent initialization. Use reflected strong references where reachability is intended; Outer alone does not replace a reachable reflected owner. Revalidate weak observers and soft references at use.\n3. Define bounded C++\u002FBlueprint interfaces and validated data surfaces. Distinguish BlueprintNativeEvent from BlueprintImplementableEvent, dispatch Blueprint-capable interfaces through generated Execute_ entry points and keep authoritative permission checks in their trusted owner. Construction Script and Editor rebuilds must be safe to repeat.\n4. Implement construction, initialization, BeginPlay, possession, EndPlay and teardown deliberately. Remove delegates, timers and latent work when the owner leaves the world; do not assume destruction is the only ending path.\n5. Use registered GameplayTags with deliberate exact\u002Fhierarchical queries. Tags are semantic state, not an authorization proof or event bus. Select a messaging implementation explicitly; document listener handles, payload lifetime and dispatch thread. Avoid assuming sample-specific messaging plugins exist.\n6. Integrate asset loading, mutable save state, AI decisions and locomotion through their dedicated feature owners. Framework owns the interfaces and teardown order; do not duplicate their implementations or persist transient object addresses.\n7. Bound ticking and event subscriptions. Group update work by actual need, profile representative actor counts and preserve standalone service architecture independently of Unreal modules.\n\n## Verification\n\n- Compile the intended target and Blueprint assets in real Unreal; test spawn, possession changes, world travel and teardown.\n- Test native and Blueprint interface implementations, repeated initialization, two simultaneous worlds and streamed actor removal during pending work.\n- Check delegate\u002Ftimer cleanup, invalid soft references and target actor budgets in an actual player or representative Editor session.\n\n## Output\n\nFramework ownership diagram, native\u002FBlueprint interfaces and assets, lifecycle and integration contracts, compile evidence and representative gameplay fixtures. Record environment, scope, expected and observed results, evidence paths, and blocked or not-run checks separately from passes.\n\n## Boundaries\n\nA generated C++ file or Blueprint description is not a playable native asset. Preserve package identities and use real engine tooling for asset authoring. Independent tools and services retain their own architecture contracts.\n\n## References\n\nRead [framework lifetimes](references\u002Fframework-lifetimes.md) when implementing reflection, ownership or designer seams.\n\n- [Unreal gameplay framework](https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Fen-us\u002Funreal-engine\u002Fgameplay-framework-in-unreal-engine). Match the documentation version to the project.\n- [Unreal subsystems](https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Fen-us\u002Funreal-engine\u002Fprogramming-subsystems-in-unreal-engine). Match the documentation version to the project.\n\n",{"name":5,"engines":35,"description":7},[36],"UNREAL","main","f819d9a9c7d641d8c7e14b59560a4fd358ec4630","skills\u002Funreal-build-gameplay-framework",3,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera","https:\u002F\u002Fhephaera.com\u002F","https:\u002F\u002Fgithub.com\u002FTimothyMeadows","http:\u002F\u002Fwww.timothymeadows.com","Software & AI Systems Architect | Distributed Systems & Agentic Platforms","2026-11-08 22:51:22",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add TimothyMeadows\u002FHephaera --skill unreal-build-gameplay-framework",{"tool":53,"command":54},"bunx","bunx skills add TimothyMeadows\u002FHephaera --skill unreal-build-gameplay-framework",{"tool":56,"command":57},"pnpm","pnpm dlx skills add TimothyMeadows\u002FHephaera --skill unreal-build-gameplay-framework","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-gameplay-framework\u002FSKILL.md",true,[61,67,71,75],{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"agents\u002Fopenai.yaml","REFERENCE","参考文档",300,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-gameplay-framework\u002Fagents\u002Fopenai.yaml",{"path":68,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":69,"sourceHtmlUrl":70},"evals\u002Feval_queries.json",1254,"https:\u002F\u002Fgithub.com\u002Feugenelim\u002Fagent-ready-repo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fauthor-brief\u002Fevals\u002Feval_queries.json",{"path":72,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":73,"sourceHtmlUrl":74},"evals\u002Fevals.json",638,"https:\u002F\u002Fgithub.com\u002Feugenelim\u002Fagent-ready-repo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fauthor-brief\u002Fevals\u002Fevals.json",{"path":76,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fframework-lifetimes.md",3159,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-gameplay-framework\u002Freferences\u002Fframework-lifetimes.md",[80,103,127,146,165,184],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":30},"01M70V3EJ7JDFDFJ3XTKRGKRBP","verify-web3-game-lifecycle","Verify a game's selected Web3 asset, wallet, ownership and trading lifecycle with contract properties, canonical recovery, actual target evidence and separate release readiness.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fverify-web3-game-lifecycle\u002FSKILL.md",[],[87,88,89,90,91,28,92,93,94,95,96,97,98,99,100,101,26,102],"game","verify","lifecycle","verify web3 game lifecycle","web3","evidence","readiness","release readiness","Wallet","recovery","properties","release","contract","canonical","asset","trading",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":30},"01M70V3CS767H4M1FP4C2A7K51","verify-onchain-game-assets","Verify exact on-chain game collection ownership and quantities at canonical blocks, reconcile inventory events, and design honest match admission. Use for ERC721\u002FERC1155 inventory, reorg recovery, reservations, or transfer-during-match rules.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fverify-onchain-game-assets\u002FSKILL.md",[],[87,110,88,111,112,113,114,115,116,117,118,119,120,121,122,123,96,124,125,126],"onchain","game assets","assets","verify onchain game assets","chain","for","inventory","reservations","design","erc721","use","Rules","collection","on-chain","at","blocks","reconcile",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":30},"01M70TZYWE48MTM8CGGDMWSJDN","plan-web3-game-assets","Define an opt-in Ethereum, Base or Immutable game-asset lifecycle, including token identity, supply, rights, custody, game eligibility and chain-specific dependencies.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fplan-web3-game-assets\u002FSKILL.md",[],[87,134,111,112,135,91,136,137,138,139,114,140,89,141,142,143,144,101,145],"plan","plan web3 game assets","supply","opt","immutable","rights","dependencies","token","base","define","ethereum","identity",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":30},"01M70TYYZ7SPZ7PE6A6GQ5RXQ9","integrate-game-wallets","Integrate explicit player-wallet connection, scoped SIWE authentication, authority invalidation and reviewed target-specific handoff without application-held player keys.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fintegrate-game-wallets\u002FSKILL.md",[],[87,153,154,155,156,95,157,158,159,160,161,162,163,164],"integrate game wallets","integrate","wallets","siwe","keys","authentication","player","scoped","connection","authority","application","handoff",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":30},"01M70TYX656BP1R0KWMYRX437R","integrate-game-asset-trading","Integrate explicitly selected game asset settlement with exact unsigned intents, scoped approvals, idempotent operations and canonical receipt reconciliation. Use for NFT listing, buying, cancellation, retries or marketplace integration.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fintegrate-game-asset-trading\u002FSKILL.md",[],[87,172,154,101,102,173,174,115,160,175,120,176,177,28,178,179,180,181,182,183],"integrate game asset trading","reconciliation","idempotent operations","retries","listing","idempotent","nft","approvals","operations","marketplace","integration","intents",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":30},"01M70TWV3J83RAJMA7BC62CPAH","build-evm-game-contracts","Author and verify host-owned EVM game collections and explicit mint, burn, craft or admin rules with pinned Solidity tooling. Use for contract source and deployment candidates; deployment and player signing require separate authorization.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-evm-game-contracts\u002FSKILL.md",[],[87,191,21,192,193,115,194,159,195,99,196,120,121,197,28,198,199,88,200,201],"evm","build evm game contracts","contracts","deployment","collections","host","author","admin","signing","mint","tooling"]