PageSourceSearch

https://elmarathstudio.netlify.app/assets/js/f46fe275.aa7add54.js

js elmarathstudio.netlify.app collected 2026-10-03 10:42:23 UTC 12,898 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5839],{2499:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/T_DynamicInputSystemThumbanil-9c7851a4088f539fcaeee5ba4ce6fd52.png"},8516:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/T_EasyAbilitySetSystem_Logo-a3d2776b41f405833c0fede2397ff5b1.png"},10968:(e,t,i)=>{i.d(t,{J:()=>s,u:()=>a});var n=i(25901);const s=[{id:"StagedInteractionSystem",title:"Staged Interaction System",Img:i(33037).A,description:"Staged Interaction System that uses stages as a way to create complex player interactions with ease.",DocLink:"docs/Staged-Interaction-System/Overview",FabLink:"https://www.fab.com/listings/ea6cda8e-25b1-434e-a9ab-1c2bbaa5fe67"},{id:"EasyTraceTrailSystem",title:"Easy Trace-Trail System",Img:i(45155).A,description:"A modular, optimized solution for easily controlling and extending hit results from continuous hit trails.",DocLink:"/docs/Easy-Trace-Trail-System/EasyTraceTrailSystem",FabLink:"https://www.fab.com/listings/86d9af14-9ab3-4c47-83b2-96eb6a4b5957"},{title:"Ability Queue Task System",Img:i(67886).A,description:"Extension of Epic's Gameplay Ability System. Enables queueable abilities with priority-based activation.",DocLink:"/docs/Ability-Queue-Task-System/Overview",FabLink:"https://www.fab.com/listings/554398ff-338b-43da-bf43-b081ef166b92"},{title:"Nested Inventory Architecture",Img:i(67378).A,description:"Create customizable, nested, section-based, object-oriented inventory systems for intuitive gameplay.",DocLink:"/docs/Nested-Invnetory-Architecture/AboutNestedInventoryArchitecture",FabLink:"https://www.fab.com/listings/320f157f-9241-47ee-9f32-63aaf744f509"},{title:"Modular Action System",Img:i(60229).A,description:"A modular, data-driven action system for games. Network-ready and easy to customize.",DocLink:"/docs/Modular-Action-System/About-Modular-Action-System",FabLink:"https://www.fab.com/listings/6ef3ecaa-1a2f-4056-a209-cf228df40c3f"},{title:"Easy Skeletal Mesh Merge Async",Img:i(88612).A,description:"A simple and optimized workflow to create modular characters via skele merging.",DocLink:"/docs/Easy-Skeletal-Mesh-Merge-Async/EasySkeletalMeshMergeAsync",FabLink:"https://www.fab.com/listings/616906a0-c73d-4e7a-9002-866a6d9751d5",GitHubLink:"https://github.com/Elmarath/EasySkeletalMeshMergeAsync"},{title:"Easy Ability Set System",Img:i(8516).A,description:"Ability Set Management System that handles both granting and input binding for Gameplay Ability System.",DocLink:"/docs/Easy-Ability-Set-System/EasyAbilitySetSystemStartup",FabLink:"https://www.fab.com/sellers/Elmarath"},{title:"Dynamic Input System",Img:i(2499).A,description:"A flexible, runtime input management system that allows dynamic binding and modification of input mappings during gameplay.",DocLink:"/docs/Dynamic-Input-System/DynamicInputSystem",GitHubLink:"https://www.fab.com/listings/cdf2ad8e-b9b7-4b4e-87bb-fdcfbe3c3b2b",FabLink:"https://www.fab.com/listings/cdf2ad8e-b9b7-4b4e-87bb-fdcfbe3c3b2b"}],a=[{id:"email",label:"Email",value:n.ku.email,link:`mailto:${n.ku.email}`,icon:"mail",action:"link"},{id:"resume",label:"Resume/CV",value:"View my professional CV",link:"/docs/DenizhanToprak_Resume.pdf",icon:"resume",action:"resume"},{id:"linkedin",label:"LinkedIn",value:"Connect with me on LinkedIn",link:n.ku.linkedinUrl,icon:"linkedin",action:"external"},{id:"github",label:"GitHub Profile",value:"View all my projects",link:n.ku.githubUrl,icon:"github",action:"external"},{id:"blog",label:"About Me Blog",value:"Read my personal story and journey",link:n.ku.blogPath,icon:"blog",action:"navigate"}]},25901:(e,t,i)=>{i.d(t,{ku:()=>n});const n={name:"Denizhan Toprak",title:"C++ Gameplay Programmer",email:"[email protected]",github:"https://github.com/elmarath",githubUrl:"https://github.com/elmarath",linkedin:"https://www.linkedin.com/in/denizhan-toprak-006073193/",linkedinUrl:"https://www.linkedin.com/in/denizhan-toprak-006073193/",resume:"https://docs.google.com/document/d/1NyO2H-jLeTuhU76wPoMm6xU3kDFCQn3Dn-A5imPmtfA/edit?tab=t.0",resumeUrl:"https://docs.google.com/document/d/1NyO2H-jLeTuhU76wPoMm6xU3kDFCQn3Dn-A5imPmtfA/edit?tab=t.0",avatar:"https://avatars.githubusercontent.com/u/65414809?v=4",description:"Unreal Engine C++ Developer. Creator of this platform and it's listed tools. Let's connect!",blogPath:"/blog/About Me"}},28453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>o});var n=i(96540);const s={},a=n.createContext(s);function r(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(a.Provider,{value:t},e.children)}},33037:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/T_StagedInteractionThumbnail-f52c7615a1914b0a177bf067ac5236f8.png"},45155:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/T_EasyTraceTrailSystemThumbnail-4b9937a81de461b0f69e6d4907adc5b7.png"},51519:(e,t,i)=>{i.d(t,{A:()=>n});const n={pluginLinksContainer:"pluginLinksContainer_Xbps",linksTitle:"linksTitle_v6Hv",linksGrid:"linksGrid_l5Uu",linkButton:"linkButton_FFVW",linkIcon:"linkIcon_j8va",docsButton:"docsButton_y6Gg",fabButton:"fabButton_l3ky",githubButton:"githubButton_eyFH"}},60229:(e,t,i)=>{i.d(t,{A:()=>n});
1const n=i.p+"assets/images/T_ModularActionSystemLogo-8f65d3ec08ebf7cac0efeb4e8a2e5f96.png"},67378:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/T_NIA_Thumbnail-88027eb5cb699b50479f5d97e32f4ec9.png"},67886:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/T_AbilityQueueTaskSystemThumbnail-5f7d91c59f3881b0d5809c82cb6e6f83.png"},85139:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"Staged-Interaction-System/Overview","title":"Overview","description":"Video Overview","source":"@site/docs/Staged-Interaction-System/Overview.md","sourceDirName":"Staged-Interaction-System","slug":"/Staged-Interaction-System/Overview","permalink":"/docs/Staged-Interaction-System/Overview","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1},"sidebar":"tutorialSidebar","previous":{"title":"Staged Interaction System","permalink":"/docs/category/staged-interaction-system"},"next":{"title":"Setup","permalink":"/docs/Staged-Interaction-System/Setup"}}');var s=i(74848),a=i(28453),r=i(85843);const o={sidebar_position:1},l="Overview Staged Interaction System",c={},d=[{value:"Video Overview",id:"video-overview",level:2},{value:"Overview",id:"overview",level:2},{value:"\u2b50 Key Benefits",id:"-key-benefits",level:3},{value:"\ud83c\udfae Typical Use Cases",id:"-typical-use-cases",level:3}];function m(e){const t={em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.A,{pluginId:"Staged-Interaction-System"}),"\n",(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"overview-staged-interaction-system",children:"Overview Staged Interaction System"})}),"\n",(0,s.jsx)(t.h2,{id:"video-overview",children:"Video Overview"}),"\n",(0,s.jsxs)(t.p,{children:["Watch this comprehensive tutorial to see ",(0,s.jsx)(t.strong,{children:"Staged Interaction System"})," in action:"]}),"\n",(0,s.jsx)("iframe",{width:"100%",height:"400",src:"https://www.youtube.com/embed/N_uTlWtp7rg?si=a3h-qjauFSfyuG0J",title:"Local Staged Interaction Framework Tutorial",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:!0}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"This video demonstrates the complete workflow from setup to implementation."})}),"\n",(0,s.jsx)(t.h2,{id:"overview",children:"Overview"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Staged Interaction System"})," is a ",(0,s.jsx)(t.em,{children:"lightweight"}),", ",(0,s.jsx)(t.em,{children:"flexible"}),", and ",(0,s.jsx)(t.em,{children:"modular"})," ",(0,s.jsx)(t.em,{children:"runtime interaction framework"})," for Unreal Engine that supports both ",(0,s.jsx)(t.em,{children:"indication"})," and ",(0,s.jsx)(t.em,{children:"gameplay interactions"})," in single-player and ",(0,s.jsx)(t.em,{children:"multiplayer"})," games. By breaking interactions into clear, designer-friendly ",(0,s.jsx)(t.strong,{children:"stages"}),", the system makes it dramatically easier to communicate intent to players and implement gameplay logic."]}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Indication stages"})," let you create visuals such as proximity-based outlines, hover effects, or shared feedback that shows when other players are interacting with an object. ",(0,s.jsx)(t.strong,{children:"Gameplay stages"})," enable reliable, conflict-free interaction logic\u2014such as determining what happens when multiple players or AI characters attempt to interact with the same object."]}),"\n",(0,s.jsx)(t.p,{children:"Everything is fully customizable and can be built using Blueprints, State Trees, or your preferred gameplay logic."}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h3,{id:"-key-benefits",children:"\u2b50 Key Benefits"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Easy to implement:"})," Minimal setup to get staged interactions working in your project."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Modular, reusable logic:"})," Build stage behaviours that can be shared across actors and projects."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Multiplayer support:"})," Designed to work in both single-player and networked games."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Fully customizable:"})," Architect interactions using Blueprints, State Trees, or code."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Debugger included:"})," Visual runtime tools to inspect stages, interactors, and conflicts."]}),"\n"]}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h3,{id:"-typical-use-cases",children:"\ud83c\udfae Typical Use Cases"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Multi-user interactions with a single actor (or restricting to a single interactor)."}),"\n",(0,s.jsx)(t.li,{children:'Interaction indicators (e.g., "Press E to interact").'}),"\n",(0,s.jsx)(t.li,{children:"Reusable interaction behaviours for different actor types."}),"\n",(0,s.jsx)(t.li,{children:"AI-driven interactions with actors."}),"\n"]}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.p,{children:"This plugin is ready to use for any project! But we have to do some setups and understand the core logic behind this plugin. Let's start!"})]})}function u(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},85843:(e,t,i)=>{i.d(t,{A:()=>r});i(96540);var n=i(10968),s=i(51519),a=i(74848);const r=({pluginId:e})=>{const t=n.J.find((t=>t.DocLink.includes(e)||t.title.toLowerCase().includes(e.toLowerCase())));return t?(0,a.jsxs)("div",{className:s.A.pluginLinksContainer,children:[(0,a.jsx)("h3",{className:s.A.linksTitle,children:"Qu
1ick Links"}),(0,a.jsxs)("div",{className:s.A.linksGrid,children:[t.FabLink&&(0,a.jsxs)("a",{href:t.FabLink,target:"_blank",rel:"noopener noreferrer",className:`${s.A.linkButton} ${s.A.fabButton}`,title:"View on Fab",children:[(0,a.jsx)("img",{src:"/img/T_Epic_Games_Fab_2024_icon.svg",alt:"Fab",className:s.A.linkIcon}),(0,a.jsx)("span",{children:"Fab"})]}),t.GitHubLink&&(0,a.jsxs)("a",{href:t.GitHubLink,target:"_blank",rel:"noopener noreferrer",className:`${s.A.linkButton} ${s.A.githubButton}`,title:"View on GitHub",children:[(0,a.jsx)("svg",{className:s.A.linkIcon,viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("path",{d:"M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"})}),(0,a.jsx)("span",{children:"GitHub"})]})]})]}):null}},88612:(e,t,i)=>{i.d(t,{A:()=>n});const n=i.p+"assets/images/EasySkeletalMeshMergeAsync-f341c8b592d95242c5ff7171ba714117.png"}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.