-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
21 lines (19 loc) · 49.9 KB
/
index.html
File metadata and controls
21 lines (19 loc) · 49.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><title>Home – Blueprint Attributes</title><meta name="robots" content="index,follow"/><meta name="description" content="Blueprint Attributes: A plugin extension for GAS, fully exposing Attribute Sets and Gameplay Attributes to Blueprints"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@mklabs"/><meta name="twitter:creator" content="@mklabs"/><meta property="og:title" content="Home – Blueprint Attributes"/><meta property="og:description" content="Blueprint Attributes: A plugin extension for GAS, fully exposing Attribute Sets and Gameplay Attributes to Blueprints"/><meta property="og:url" content="https://blueprintattributes.github.io/"/><meta property="og:type" content="website"/><meta property="og:image" content="https://blueprintattributes.github.io/banner.png"/><meta property="og:image:alt" content="Banner"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:locale" content="en"/><meta name="theme-color" content="#111" media="(prefers-color-scheme: dark)"/><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"/><style>
:root {
--nextra-primary-hue: 204deg;
--nextra-navbar-height: 4rem;
--nextra-menu-height: 3.75rem;
--nextra-banner-height: 2.5rem;
}
.dark {
--nextra-primary-hue: 204deg;
}
</style><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="manifest" href="/site.webmanifest"/><meta name="twitter:description" content="Blueprint Attributes: A plugin extension for GAS, fully exposing Attribute Sets and Gameplay Attributes to Blueprints"/><meta name="twitter:image" content="https://blueprintattributes.github.io/banner.png"/><meta name="twitter:image:src" content="https://blueprintattributes.github.io/banner.png"/><meta name="twitter:image:alt" content="Banner"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><style>
.dark footer,
.dark body {
background-color: black !important;
}
.dark .nextra-nav-container .nextra-nav-container-blur {
background-color: rgba(0,0,0,.5) !important;
}
</style><meta name="next-head-count" content="30"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /><link rel="preload" href="/_next/static/css/572045afc1a13ae3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/572045afc1a13ae3.css" data-n-g=""/><link rel="preload" href="/_next/static/css/bc5d9e972b621fc8.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc5d9e972b621fc8.css" data-n-p=""/><link rel="preload" href="/_next/static/css/12a9a4c5c532ca70.css" as="style"/><link rel="stylesheet" href="/_next/static/css/12a9a4c5c532ca70.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-dd8919a572f3efbe.js" defer=""></script><script src="/_next/static/chunks/framework-f570b424fd8349c2.js" defer=""></script><script src="/_next/static/chunks/main-666c9018e71bfbfc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-00c3016a85585c23.js" defer=""></script><script src="/_next/static/chunks/2226-48a6b670fac00ec6.js" defer=""></script><script src="/_next/static/chunks/3215-4de0d152e7794cfd.js" defer=""></script><script src="/_next/static/chunks/pages/index-10eb76019f9151ad.js" defer=""></script><script src="/_next/static/RHSUDm1oefzkYbSaT_cX5/_buildManifest.js" defer=""></script><script src="/_next/static/RHSUDm1oefzkYbSaT_cX5/_ssgManifest.js" defer=""></script><style id="__jsx-3d7e09425f778c17">svg.jsx-3d7e09425f778c17{-webkit-mask-image:-webkit-linear-gradient(30deg,black 25%,rgba(0,0,0,.2)50%,black 75%);mask-image:-webkit-linear-gradient(30deg,black 25%,rgba(0,0,0,.2)50%,black 75%);mask-image:-moz-linear-gradient(30deg,black 25%,rgba(0,0,0,.2)50%,black 75%);mask-image:-o-linear-gradient(30deg,black 25%,rgba(0,0,0,.2)50%,black 75%);mask-image:linear-gradient(60deg,black 25%,rgba(0,0,0,.2)50%,black 75%);-webkit-mask-size:400%;mask-size:400%;-webkit-mask-position:0%;mask-position:0%}svg.jsx-3d7e09425f778c17:hover{-webkit-mask-position:100%;mask-position:100%;-webkit-transition:mask-position 1s ease,-webkit-mask-position 1s ease;-moz-transition:mask-position 1s ease,-webkit-mask-position 1s ease;-o-transition:mask-position 1s ease,-webkit-mask-position 1s ease;transition:mask-position 1s ease,-webkit-mask-position 1s ease}</style><style data-href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;800&display=optional">@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/l/font?kit=UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuDyYMZs&skey=c491285d6722e4fa&v=v20) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:optional;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style><style data-href="https://fonts.googleapis.com/css2?family=Montserrat:wght@600&display=swap">@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w9&skey=7bc19f711c0de8f&v=v31) format('woff')}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu173w0aXx-p7K4KLjztg&skey=7bc19f711c0de8f&v=v31) format('woff');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu173w9aXx-p7K4KLjztg&skey=7bc19f711c0de8f&v=v31) format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu173w2aXx-p7K4KLjztg&skey=7bc19f711c0de8f&v=v31) format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu173w3aXx-p7K4KLjztg&skey=7bc19f711c0de8f&v=v31) format('woff');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu173w5aXx-p7K4KLg&skey=7bc19f711c0de8f&v=v31) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style></head><body><div id="__next"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&false)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}else{c.add('dark')}if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'dark'}catch(e){}}()</script><div dir="ltr"><script>document.documentElement.setAttribute('dir','ltr')</script><div class="nextra-nav-container nx-sticky nx-top-0 nx-z-20 nx-w-full nx-bg-transparent print:nx-hidden"><div class="nextra-nav-container-blur nx-pointer-events-none nx-absolute nx-z-[-1] nx-h-full nx-w-full nx-bg-white dark:nx-bg-dark nx-shadow-[0_2px_4px_rgba(0,0,0,.02),0_1px_0_rgba(0,0,0,.06)] dark:nx-shadow-[0_-1px_0_rgba(255,255,255,.1)_inset] contrast-more:nx-shadow-[0_0_0_1px_#000] contrast-more:dark:nx-shadow-[0_0_0_1px_#fff]"></div><nav class="nx-mx-auto nx-flex nx-h-[var(--nextra-navbar-height)] nx-max-w-[90rem] nx-items-center nx-justify-end nx-gap-2 nx-pl-[max(env(safe-area-inset-left),1.5rem)] nx-pr-[max(env(safe-area-inset-right),1.5rem)]"><a class="nx-flex nx-items-center hover:nx-opacity-75 ltr:nx-mr-auto rtl:nx-ml-auto" href="/"><img alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/img/Logo-White-Transparent.png"/><img alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/img/Logo-Black-Transparent.png"/><span style="margin-left:.4em;font-weight:800">Blueprint Attributes</span></a><a class="nx-text-sm contrast-more:nx-text-gray-700 contrast-more:dark:nx-text-gray-100 nx-relative -nx-ml-2 nx-hidden nx-whitespace-nowrap nx-p-2 md:nx-inline-block nx-text-gray-600 hover:nx-text-gray-800 dark:nx-text-gray-400 dark:hover:nx-text-gray-200" aria-current="false" href="/docs"><span class="nx-absolute nx-inset-x-0 nx-text-center">Docs</span><span class="nx-invisible nx-font-medium">Docs</span></a><a class="nx-text-sm contrast-more:nx-text-gray-700 contrast-more:dark:nx-text-gray-100 nx-relative -nx-ml-2 nx-hidden nx-whitespace-nowrap nx-p-2 md:nx-inline-block nx-text-gray-600 hover:nx-text-gray-800 dark:nx-text-gray-400 dark:hover:nx-text-gray-200" aria-current="false" href="/docs/changelog"><span class="nx-absolute nx-inset-x-0 nx-text-center">Changelog</span><span class="nx-invisible nx-font-medium">Changelog</span></a><div class="nextra-search nx-relative md:nx-w-64 nx-hidden md:nx-inline-block mx-min-w-[200px]"><div class="nx-relative nx-flex nx-items-center nx-text-gray-900 contrast-more:nx-text-gray-800 dark:nx-text-gray-300 contrast-more:dark:nx-text-gray-300"><input spellcheck="false" class="nx-block nx-w-full nx-appearance-none nx-rounded-lg nx-px-3 nx-py-2 nx-transition-colors nx-text-base nx-leading-tight md:nx-text-sm nx-bg-black/[.05] dark:nx-bg-gray-50/10 focus:nx-bg-white dark:focus:nx-bg-dark placeholder:nx-text-gray-500 dark:placeholder:nx-text-gray-400 contrast-more:nx-border contrast-more:nx-border-current" type="search" placeholder="Search documentation…" value=""/></div></div><a href="https://www.unrealengine.com/marketplace/en-US/product/gameplay-blueprint-attributes" target="_blank" rel="noreferrer" class="nx-p-2 nx-text-current"><svg width="24" height="24" viewBox="0 0 336 336"><path fill="currentColor" d="M264.11,191.3h0c-2.79,13.44-15.19,47.94-54.74,66.62l-15.88-17.86L166.69,267a98.9,98.9,0,0,1-78.22-40.12,38.53,38.53,0,0,0,8.76,1.65c4.39.08,9.14-1.53,9.14-8.9v-72.7a12,12,0,0,0-15.05-12C78.91,137.79,69,168.75,69,168.75a98.44,98.44,0,0,1,34.07-75.44,99.85,99.85,0,0,1,50.27-23.19c-13.55,7.72-21.16,20.31-21.16,30.87,0,17,10.24,14.94,13.27,12.44v98.12a15.6,15.6,0,0,0,2,3.45,14.49,14.49,0,0,0,11.85,6c10.25,0,23.55-11.7,23.55-11.7V129.88c0-8.08-6.09-17.84-12.19-21.19,0,0,11.29-2,20,4.67h0a74.63,74.63,0,0,1,5.21-5.73C216.2,87.68,235.35,82,251.3,79.16h0s-29,22.79-29,53.37c0,22.74.59,78.2.59,78.2C233.65,221.12,249.65,206.11,264.11,191.3Z"></path><path fill="currentColor" stroke="currentColor" stroke-width="8" d="M168,6.26A161.74,161.74,0,1,0,329.74,168,161.74,161.74,0,0,0,168,6.26Zm0,317A155.27,155.27,0,1,1,323.27,168,155.27,155.27,0,0,1,168,323.27Z"></path></svg><span class="nx-sr-only nx-select-none"> (opens in a new tab)</span></a><a href="https://discord.gg/d4rs4vcX6t" target="_blank" rel="noreferrer" class="nx-p-2 nx-text-current"><svg width="24" height="24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 5 30.67 23.25"><title>Discord</title><path d="M26.0015 6.9529C24.0021 6.03845 21.8787 5.37198 19.6623 5C19.3833 5.48048 19.0733 6.13144 18.8563 6.64292C16.4989 6.30193 14.1585 6.30193 11.8336 6.64292C11.6166 6.13144 11.2911 5.48048 11.0276 5C8.79575 5.37198 6.67235 6.03845 4.6869 6.9529C0.672601 12.8736 -0.41235 18.6548 0.130124 24.3585C2.79599 26.2959 5.36889 27.4739 7.89682 28.2489C8.51679 27.4119 9.07477 26.5129 9.55525 25.5675C8.64079 25.2265 7.77283 24.808 6.93587 24.312C7.15286 24.1571 7.36986 23.9866 7.57135 23.8161C12.6241 26.1255 18.0969 26.1255 23.0876 23.8161C23.3046 23.9866 23.5061 24.1571 23.7231 24.312C22.8861 24.808 22.0182 25.2265 21.1037 25.5675C21.5842 26.5129 22.1422 27.4119 22.7621 28.2489C25.2885 27.4739 27.8769 26.2959 30.5288 24.3585C31.1952 17.7559 29.4733 12.0212 26.0015 6.9529ZM10.2527 20.8402C8.73376 20.8402 7.49382 19.4608 7.49382 17.7714C7.49382 16.082 8.70276 14.7025 10.2527 14.7025C11.7871 14.7025 13.0425 16.082 13.0115 17.7714C13.0115 19.4608 11.7871 20.8402 10.2527 20.8402ZM20.4373 20.8402C18.9183 20.8402 17.6768 19.4608 17.6768 17.7714C17.6768 16.082 18.8873 14.7025 20.4373 14.7025C21.9717 14.7025 23.2271 16.082 23.1961 17.7714C23.1961 19.4608 21.9872 20.8402 20.4373 20.8402Z"></path></svg><span class="nx-sr-only nx-select-none"> (opens in a new tab)</span></a><button type="button" aria-label="Menu" class="nextra-hamburger -nx-mr-2 nx-rounded nx-p-2 active:nx-bg-gray-400/20 md:nx-hidden"><svg fill="none" width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" class=""><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16"></path></g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 12h16"></path><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 18h16"></path></g></svg></button></nav></div><div class="nx-mx-auto nx-flex"><div class="motion-reduce:nx-transition-none [transition:background-color_1.5s_ease] nx-bg-transparent"></div><aside class="nextra-sidebar-container nx-flex nx-flex-col md:nx-top-16 md:nx-shrink-0 motion-reduce:nx-transform-none nx-transform-gpu nx-transition-all nx-ease-in-out print:nx-hidden md:nx-w-64 md:nx-hidden max-md:[transform:translate3d(0,-100%,0)]"><div class="nx-px-4 nx-pt-4 md:nx-hidden"><div class="nextra-search nx-relative md:nx-w-64"><div class="nx-relative nx-flex nx-items-center nx-text-gray-900 contrast-more:nx-text-gray-800 dark:nx-text-gray-300 contrast-more:dark:nx-text-gray-300"><input spellcheck="false" class="nx-block nx-w-full nx-appearance-none nx-rounded-lg nx-px-3 nx-py-2 nx-transition-colors nx-text-base nx-leading-tight md:nx-text-sm nx-bg-black/[.05] dark:nx-bg-gray-50/10 focus:nx-bg-white dark:focus:nx-bg-dark placeholder:nx-text-gray-500 dark:placeholder:nx-text-gray-400 contrast-more:nx-border contrast-more:nx-border-current" type="search" placeholder="Search documentation…" value=""/></div></div></div><div class="nx-overflow-y-auto nx-overflow-x-hidden nx-p-4 nx-grow md:nx-h-[calc(100vh-var(--nextra-navbar-height)-var(--nextra-menu-height))] nextra-scrollbar"></div><div class="nx-sticky nx-bottom-0 nx-bg-white dark:nx-bg-dark nx-mx-4 nx-py-4 nx-shadow-[0_-12px_16px_#fff] nx-flex nx-items-center nx-gap-2 dark:nx-border-neutral-800 dark:nx-shadow-[0_-12px_16px_#111] contrast-more:nx-border-neutral-400 contrast-more:nx-shadow-none contrast-more:dark:nx-shadow-none nx-border-t" data-toggle-animation="off"><div class="nx-grow nx-flex nx-flex-col"><button title="Change theme" class="nx-h-7 nx-rounded-md nx-px-2 nx-text-left nx-text-xs nx-font-medium nx-text-gray-600 nx-transition-colors dark:nx-text-gray-400 hover:nx-bg-gray-100 hover:nx-text-gray-900 dark:hover:nx-bg-primary-100/5 dark:hover:nx-text-gray-50" id="headlessui-listbox-button-:R2njcm:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><div class="nx-flex nx-items-center nx-gap-2 nx-capitalize"><svg fill="none" viewBox="3 3 18 18" width="12" height="12" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="currentColor" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span class="">Light</span></div></button></div></div></aside><div id="reach-skip-nav"></div><div class="nx-w-full nx-break-words"><main class="relative"><div class="font-sans w-auto pb-16 md:pb-24 lg:pb-32 flex justify-between gap-8 items-center flex-col relative z-0" style="opacity:0;transform:none"><div class="z-50 flex items-center justify-center w-full " style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="absolute z-50 flex items-center justify-center w-64 h-64"><span class="absolute gradients_glow__pK1bc gradients_glowBlue__oe4UL gradients_glowSmall__2_iW5 dark:opacity-100 opacity-40" style="width:120px;height:120px;border-radius:100%"></span></div><div class="z-50 -mt-10"><img alt="" loading="lazy" width="512" height="512" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/img/Logo-White-Transparent.png"/><img alt="" loading="lazy" width="512" height="512" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/img/Logo-Black-Transparent.png"/></div></div><span class="absolute gradients_glow__pK1bc gradients_glowBlue__oe4UL top-[-500px] dark:opacity-20 opacity-[0.15]" style="width:1000px;height:1000px;border-radius:100%"></span><div class="absolute top-0 z-10 w-full h-48 dark:from-black from-white to-transparent bg-gradient-to-b"></div><div class="z-50 flex flex-col items-center justify-center gap-5 px-6 text-center lg:gap-6 -mt-20" style="opacity:0;transform:translateY(24px) translateZ(0)"><h1 class="gradients_heroHeading__klEht font-extrabold tracking-[-0.04em] leading-none text-[40px] md:text-5xl lg:text-[80px] max-w-lg md:max-w-xl lg:max-w-4xl text-center text-transparent">Attribute Sets in Blueprints</h1><p class="font-space-grotesk leading-snug dark:text-[#FFFFFFB2] text-[#00000080] text-[18px] lg:text-lg max-w-md md:max-w-xl lg:max-w-[640px] text-center">Blueprint Attributes is a plugin extension for GAS (Gameplay Ability System), fully exposing Gameplay Attributes and Attribute Sets to Blueprints.</p></div><div class="z-50 flex flex-col items-center w-full max-w-md gap-5 px-6" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="flex flex-col w-full gap-3 md:!flex-row"><div class="relative w-full group"><button class="w-full min-w-[120px] text-base font-medium no-underline dark:text-black text-white border-transparent bg-black dark:bg-white rounded md:leading-6 transition-all duration-300 "><a class="block py-3" href="/docs">Get Started</a></button><div class="absolute bg-red-100 w-full h-full top-0 -z-10 rounded-full transition-all duration-300 blur-xl group-hover:opacity-70 opacity-0 gradients_translatingGlow__tUZwO gradients_glowBlue__oe4UL"></div></div><div class="relative w-full group"><button class="w-full min-w-[120px] text-base font-medium no-underline border dark:border-neutral-400 dark:text-neutral-200 dark:hover:border-white dark:hover:text-white border-[#EAEAEA] text-neutral-800 hover:border-black hover:text-black rounded md:leading-6 transition-all duration-300 "><a target="_blank" rel="noreferrer" href="https://www.unrealengine.com/marketplace/en-US/product/gameplay-blueprint-attributes" class="block py-3">Unreal Marketplace</a></button></div></div></div><div class="relative w-full" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="absolute bottom-0 w-full dark:from-black from-white to-transparent h-72 bg-gradient-to-t"></div></div></div><section class="relative overflow-hidden"><div style="opacity:0;transform:none"><span class="w-full absolute white h-[1px] top-0 opacity-25 gradients_gradientSectionBorderDivider__vXXGA"></span><span class="gradients_gradientSectionBorder__otK6A gradients_gradientSectionBorderLeft__6XXiI dark:opacity-35 opacity-[0.15]"></span><span class="gradients_gradientSectionBorder__otK6A gradients_gradientSectionBorderRight__eSMmF dark:opacity-35 opacity-[0.15]"></span></div><div class="py-16 md:py-24 lg:py-32" style="opacity:0;transform:translateY(24px) translateZ(0)"><section class="relative flex flex-col items-center px-6 pb-16 font-sans md:pb-24 lg:pb-32 gap-9 lg:gap-14"><div class="flex flex-col items-center gap-5 md:gap-6" style="opacity:0;transform:translateY(24px) translateZ(0)"><h2 class="gradients_heroHeading__klEht font-bold tracking-[-0.01em] pb-1 text-[32px] md:text-4xl lg:text-[40px] max-w-sm md:max-w-md lg:max-w-2xl text-center text-transparent">Why BlueprintAttributes?</h2><p class="font-space-grotesk leading-snug dark:text-[#FFFFFFB2] text-[#00000080] text-[16px] lg:text-[20px] max-w-md md:max-w-xl lg:max-w-[640px] text-center">Blueprint Attributes enables a workflow 100% within the Editor and Blueprints, when working with Attribute Sets and Gameplay Attributes.</p></div><div class="grid grid-cols-1 gap-x-4 gap-y-4 sm:grid-cols-2 lg:grid-cols-3 lg:gap-x-6 lg:gap-y-6 max-w-[1200px]"><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/refresh-dark.59437629.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/refresh-light.3ef64f5f.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Quicker iterations</h3><p class="m-0 leading-6 opacity-70">Empower Game Designers and Blueprint Developers to quickly iterate on their Attribute design.</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Define Attributes in Blueprint</h3><p class="m-0 leading-6 opacity-70"> Create an Attribute property variable in the Blueprint Editor, use it immediately in Gameplay Effects and K2 Nodes (GetFloatAttribute(), ...) or any other places where a Gameplay Attribute picker can appear.</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Built-in Clamping</h3><p class="m-0 leading-6 opacity-70">Built-in support for clamping via Data Table initialization and handling of "Min Value" and "Max Value" columns. Or using a special Gameplay Clamped Attribute Data property (child of FGameplayAttributeData) with float or Attribute based clamping.</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Customized Blueprint Editor</h3><p class="m-0 leading-6 opacity-70">Blueprint Editor with Data Validation, Toolbar with buttons to quickly add a Gameplay Attribute property, to create Data Tables or port the BP Attribute Set to a standard C++ Attribute Set. Along with Details Customizations to expose Attribute BaseValue to Blueprint and set it directly from the Details panel.</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Interactions with Gameplay Effects</h3><p class="m-0 leading-6 opacity-70">There are several functions that an Attribute Set can override to deal with the way an Attribute responds when a Gameplay Effect attempts to modify it. Most of this API is exposed to Blueprints (PostGameplayEffectExecute, Pre/PostAttributeChange, ...).</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Replication</h3><p class="m-0 leading-6 opacity-70">For multiplayer projects, you can replicate your Gameplay Attribute defined in Blueprints similar to how you would replicate any other property. LifetimeReplicatedProps is handled, and using rep notifies you can handle attributes that will be predictively modified by clients (Blueprint equivalent of C++ GAMEPLAYATTRIBUTE_REPNOTIFY helper macro).</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Integration with K2 Nodes</h3><p class="m-0 leading-6 opacity-70">Any K2 Nodes (Blueprint nodes we use in the Editor) such as GetFloatAttribute() that have a FGameplayAttribute parameter for one of its Pins will now also display the list of Attributes defined in Blueprints in the combo box, just like Gameplay Attribute properties in Gameplay Effects.</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Wizard to port Blueprint defined Attributes to C++</h3><p class="m-0 leading-6 opacity-70">Depending on your team, you may want to eventually move your BP Attributes to the usual pattern of having them defined in C++. The Attribute Wizard and Scaffold module will help in the transition. From a Blueprint defined Attribute Set, it will generate the proper C++ header and source (with preview!) file based on the defined Gameplay Attributes in the BP Attribute Set.</p></div></div></div><div class="flex" style="opacity:0;transform:translateY(24px) translateZ(0)"><div class="box-border relative flex flex-col gap-5 p-8 overflow-hidden text-black no-underline border dark:text-white rounded-xl dark:border-neutral-800"><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/_next/static/media/fingerprint-dark.622b119a.svg"/><img aria-hidden="true" alt="" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="block dark:hidden" style="color:transparent" src="/_next/static/media/fingerprint-light.e65a0cfc.svg"/><div class="flex flex-col gap-2"><h3 class="m-0 font-bold leading-5 text-gray-900 font-space-grotesk dark:text-white">Referencer Handlers</h3><p class="m-0 leading-6 opacity-70">Whenever an Attribute is renamed in the Blueprint Editor, the plugin can detect the operation and offers to replace the previous references to it, in Gameplay Effects, to the new Attribute name. Doing so, it will display the list of modified properties and Blueprint nodes (K2Nodes such as GetFloatAttribute()) in the message log with links you can click navigate to the referencers.</p></div></div></div></div></section></div></section><section class="relative overflow-hidden"><div style="opacity:0;transform:none"><span class="w-full absolute white h-[1px] top-0 opacity-25 gradients_gradientSectionBorderDivider__vXXGA"></span><span class="gradients_gradientSectionBorder__otK6A gradients_gradientSectionBorderLeft__6XXiI dark:opacity-35 opacity-[0.15]"></span><span class="gradients_gradientSectionBorder__otK6A gradients_gradientSectionBorderRight__eSMmF dark:opacity-35 opacity-[0.15]"></span></div><section class="relative flex flex-col items-center px-6 py-16 font-sans md:py-24 lg:py-32 gap-14"><div style="opacity:0;transform:translateY(24px) translateZ(0)"><h2 class="gradients_heroHeading__klEht font-extrabold tracking-[-0.04em] leading-none text-[40px] md:text-5xl lg:text-[80px] max-w-lg md:max-w-xl lg:max-w-4xl text-center text-transparent lg:text-[65px]">Scaling your project<br/>shouldn't be so difficult</h2></div><div class="flex flex-col max-w-xl leading-6 md:text-lg lg:text-lg"><div class="opacity-70" style="opacity:0;transform:translateY(24px) translateZ(0)"><p>Especially for Blueprint Developers.</p><br/><p>By default and without BlueprintAttributes plugin, Attributes and Attribute Sets must be created in native code - they cannot be created in Blueprints.</p><br/><p>This is an engine limitation and BlueprintAttributes aims to alleviate that issue and empower Game Designers and Blueprint Developers to quickly iterate on their Attribute design.</p><br/><p>The bigger your project grows, the slower it gets. Especially if the team has limited C++ resources and few or no C++ developers in the team.</p><br/><p>Things like defining new Attribute Sets, adding, renaming or removing Gameplay Attributes begin to take time and creates bottlenecks on C++ engineers.</p><br/><p>With BlueprintAttributes, we're trying to improve that.</p><br/><p>The plugin comes with nearly 100 C++ classes to try to provide the best developer experience, and stay true to the Gameplay Abilities ecosystem and workflow. Ranging from runtime module with UAttributeSet to inherit from, custom UBlueprint and FBlueprintEditor, to editor modules and dozens of Details Customizations classes and Slate widgets.</p><br/><p>This also includes a fancy "Attribute Wizard" module to help transitioning from Attributes defined in Blueprints to C++ classes when the prototype phase is completed, with header and source preview. The wizard uses the AttributeSet created in Blueprints and the Attributes it defines to generate the proper C++ class that you can then either inherit from (Attribute properties that were defined in Blueprints would be now defined in native, like before. The engine will detect the same type and variable name and update the references), or simply get rid of the previous Blueprint implementation and update each and every Gameplay Attribute references (in Gameplay Effects, K2 Nodes, etc.) to their new natives counterpart.</p></div><div class="relative h-2 md:h-12" style="opacity:0;transform:none"><span class="w-full h-[1px] -bottom-8 md:-bottom-4 lg:-bottom-4 absolute gradients_letterLine__zquxP"></span></div></div><div class="relative flex justify-center w-full mt-16" style="opacity:0;transform:none"><div class="max-w-[180px] w-full"><div class="relative w-full group"><button class="w-full min-w-[120px] text-base font-medium no-underline dark:text-black text-white border-transparent bg-black dark:bg-white rounded md:leading-6 transition-all duration-300 "><a class="block py-3 font-sans" href="/docs">Start Blueprinting</a></button><div class="absolute bg-red-100 w-full h-full top-0 -z-10 rounded-full transition-all duration-300 blur-xl group-hover:opacity-70 opacity-0 gradients_translatingGlow__tUZwO gradients_glowBlue__oe4UL"></div></div></div><span class="absolute gradients_glow__pK1bc gradients_glowBlue__oe4UL bottom-[-200px] -z-10 opacity-20" style="width:1200px;height:300px;border-radius:100%"></span></div></section></section></main></div></div><footer class="nx-bg-gray-100 nx-pb-[env(safe-area-inset-bottom)] dark:nx-bg-neutral-900 print:nx-bg-transparent"><div class="nx-mx-auto nx-flex nx-max-w-[90rem] nx-gap-2 nx-py-2 nx-px-4 nx-flex"><button title="Change theme" class="nx-h-7 nx-rounded-md nx-px-2 nx-text-left nx-text-xs nx-font-medium nx-text-gray-600 nx-transition-colors dark:nx-text-gray-400 hover:nx-bg-gray-100 hover:nx-text-gray-900 dark:hover:nx-bg-primary-100/5 dark:hover:nx-text-gray-50" id="headlessui-listbox-button-:R2jkm:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><div class="nx-flex nx-items-center nx-gap-2 nx-capitalize"><svg fill="none" viewBox="3 3 18 18" width="12" height="12" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="currentColor" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span class="">Light</span></div></button></div><hr class="dark:nx-border-neutral-800"/><div class="nx-mx-auto nx-flex nx-max-w-[90rem] nx-justify-center nx-py-12 nx-text-gray-600 dark:nx-text-gray-400 md:nx-justify-start nx-pl-[max(env(safe-area-inset-left),1.5rem)] nx-pr-[max(env(safe-area-inset-right),1.5rem)]"><div><div class="flex w-full flex-col items-center sm:items-start"><a class="flex items-center gap-1 text-current" target="_blank" rel="noopener noreferrer" title="nextra homepage" href="https://nextra.site"><span>Powered by</span><svg height="20" viewBox="0 0 361 70" fill="none" xmlns="http://www.w3.org/2000/svg" class="jsx-3d7e09425f778c17 inline"><title class="jsx-3d7e09425f778c17">Nextra</title><path d="M114.913 33.2763v28.7642h-11.57V12.9496h11.059v8.3416h.575c1.129-2.7485 2.93-4.9325 5.401-6.5518 2.493-1.6193 5.572-2.429 9.237-2.429 3.388 0 6.339.7244 8.853 2.1733 2.535 1.4489 4.496 3.5476 5.88 6.2962 1.407 2.7486 2.099 6.0831 2.078 10.0035v31.2571h-11.57V32.5732c0-3.2813-.852-5.8487-2.557-7.7024-1.683-1.8537-4.016-2.7806-6.999-2.7806-2.024 0-3.824.4475-5.401 1.3424-1.556.8736-2.781 2.1413-3.676 3.8032-.873 1.662-1.31 3.6755-1.31 6.0405Zm61.407 29.723c-4.922 0-9.172-1.0227-12.752-3.0681-3.558-2.0668-6.296-4.9858-8.214-8.7572-1.917-3.7926-2.876-8.2563-2.876-13.3913 0-5.0497.959-9.4815 2.876-13.2954 1.939-3.8353 4.645-6.8182 8.118-8.9489 3.473-2.152 7.553-3.228 12.241-3.228 3.026 0 5.881.4901 8.565 1.4702 2.706.9588 5.093 2.4503 7.159 4.4744 2.088 2.0242 3.729 4.6023 4.922 7.7344 1.193 3.1108 1.79 6.8182 1.79 11.1221v3.5476h-40.238v-7.7983h29.148c-.021-2.2159-.501-4.1868-1.438-5.9126-.938-1.7472-2.248-3.1215-3.931-4.1229-1.662-1.0014-3.601-1.5021-5.817-1.5021-2.365 0-4.443.5753-6.232 1.7258-1.79 1.1293-3.186 2.6208-4.187 4.4745-.98 1.8324-1.481 3.8459-1.502 6.0405v6.8075c0 2.8551.522 5.3054 1.566 7.3508 1.044 2.0242 2.503 3.5796 4.378 4.6662 1.875 1.0654 4.07 1.598 6.584 1.598 1.683 0 3.207-.2343 4.57-.7031 1.364-.49 2.546-1.2038 3.548-2.1413 1.001-.9375 1.758-2.0987 2.269-3.4837l10.803 1.2145c-.682 2.8551-1.982 5.348-3.9 7.4787-1.896 2.1094-4.325 3.75-7.286 4.9219-2.962 1.1506-6.35 1.7258-10.164 1.7258Zm34.777-50.0497 9.908 18.1215 10.067-18.1215h12.241l-14.798 24.5455 15.054 24.5454h-12.177l-10.387-17.674-10.291 17.674h-12.273l14.957-24.5454-14.574-24.5455h12.273Zm63.878 0v8.9489h-28.221v-8.9489h28.221ZM253.722 1.18825h11.569V47.2749c0 1.5554.235 2.7486.704 3.5795.49.8097 1.129 1.3637 1.917 1.662s1.662.4474 2.621.4474c.724 0 1.385-.0532 1.981-.1598.618-.1065 1.087-.2024 1.407-.2876l1.949 9.0447c-.618.2131-1.502.4475-2.652.7031-1.13.2557-2.515.4049-4.155.4475-2.898.0852-5.508-.3516-7.831-1.3104-2.322-.9801-4.165-2.4929-5.529-4.5383-1.342-2.0455-2.003-4.6023-1.981-7.6705V1.18825Zm29.129 60.85225V12.9496h11.218v8.1818h.512c.895-2.8338 2.429-5.0177 4.602-6.5518 2.173-1.5554 4.677-2.3331 7.511-2.3331 1.321 0 2.535.1598 3.643.4794 1.108.3196 2.088.7564 2.94 1.3104l-3.579 9.588c-.618-.2983-1.3-.5433-2.046-.7351-.745-.1917-1.587-.2876-2.524-.2876-2.003 0-3.814.4474-5.434 1.3423-1.619.8949-2.908 2.1414-3.867 3.7394-.937 1.5767-1.406 3.4091-1.406 5.4971v28.8601h-11.57Zm51.222.863c-3.856 0-7.308-.9908-10.355-2.9723-3.047-1.9816-5.454-4.858-7.223-8.6293-1.768-3.7713-2.652-8.3523-2.652-13.7429 0-5.4546.894-10.0568 2.684-13.8068 1.811-3.7713 4.251-6.6158 7.319-8.5334 3.068-1.9389 6.488-2.9084 10.259-2.9084 2.877 0 5.242.4901 7.095 1.4702 1.854.9588 3.324 2.12 4.411 3.4836 1.087 1.3424 1.928 2.6101 2.525 3.8033h.479v-8.1179h11.602v49.0909h-11.378v-7.7343h-.703c-.597 1.1931-1.46 2.4609-2.589 3.8032-1.129 1.321-2.621 2.4503-4.474 3.3878-1.854.9375-4.187 1.4063-7 1.4063Zm3.228-9.4922c2.451 0 4.539-.6605 6.265-1.9816 1.725-1.3423 3.036-3.2066 3.931-5.593s1.342-5.1669 1.342-8.3416c0-3.1747-.447-5.934-1.342-8.2777-.874-2.3438-2.174-4.1655-3.9-5.4652-1.704-1.2997-3.803-1.9496-6.296-1.9496-2.578 0-4.73.6712-6.456 2.0135s-3.025 3.196-3.899 5.5611c-.873 2.365-1.31 5.071-1.31 8.1179 0 3.0682.437 5.8061 1.31 8.2138.895 2.3863 2.205 4.272 3.931 5.6569 1.747 1.3636 3.889 2.0455 6.424 2.0455Z" fill="currentColor" class="jsx-3d7e09425f778c17"></path><path d="m64.8833 1.81335-2.8464 2.84638C47.1274 19.5692 22.9543 19.5692 8.04485 4.65972L5.19848 1.81335c-.93479-.93478-2.45037-.93478-3.38515 0-.93479.93478-.93478 2.45037 0 3.38515L4.6597 8.04487c14.9095 14.90953 14.9095 39.08263 0 53.99213l-2.84637 2.8463c-.93479.9348-.93479 2.4504 0 3.3852.93478.9348 2.45037.9348 3.38515 0l2.84637-2.8464c14.90955-14.9095 39.08255-14.9095 53.99205 0l2.8464 2.8464c.9348.9348 2.4504.9348 3.3852 0 .9347-.9348.9347-2.4504 0-3.3852l-2.8464-2.8463c-14.9095-14.9095-14.9095-39.0826 0-53.99213l2.8464-2.84637c.9347-.93478.9347-2.45037 0-3.38515-.9348-.93478-2.4504-.93478-3.3852 0Z" fill="currentColor" stroke="currentColor" stroke-width="2" class="jsx-3d7e09425f778c17"></path></svg></a></div></div></div></footer></div><script defer="" src="https://analytics.eu.umami.is/script.js" data-website-id="9108253b-bd4d-49be-87a3-9689be313969"></script></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"RHSUDm1oefzkYbSaT_cX5","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>