| JuiceАнимация | What it doesЧто делает |
| _pop | the panel springs in with an overshoot the moment it appears — start scale and pop time are yours. Put it on anything _open shows, or on a layer that is already on screen at spawn: it plays once on every appearanceпанель влетает с пружинным перелётом в момент появления — начальный размер и время задаются в плагине. Ставьте на всё, что показывает _open, или на слой, который виден сразу при заходе: эффект играет при каждом появлении |
| _reveal | the showcase entrance: the panel grows from half size while rocking through a few decaying swings, then settles. Swing angle, settle time and start scale are sliders; the dial picks the rocking direction (0 = up and down like a display case, 90 = sideways). Replays on every _openвитринное появление: панель вырастает с половины размера, покачиваясь затухающими взмахами, и успокаивается. Угол распаха, время успокоения и начальный размер — ползунки; диск выбирает направление качания (0 — вверх-вниз, как витрина, 90 — вбок). Повторяется при каждом _open |
| _swing | the reward-door entrance: the panel snaps in fast and rocks in true 3D — nodding toward you and away, each rock softer than the last, until it stands still. Rock angle, rocks before settling, settle time and start scale. The card is mounted on a real surface in the world, so the perspective is genuine rather than a squash. Replays on every _openпоявление «дверцей»: панель влетает и качается в настоящем 3D — кивает к вам и от вас, каждый мах мягче предыдущего, пока не встанет. Угол качания, число махов, время успокоения и начальный размер. Карточка живёт на реальной поверхности в мире, поэтому перспектива настоящая, а не сплющивание. Повторяется при каждом _open |
| _drop | the layer falls onto its place when it appears: it speeds up like a weight, squashes where it lands (onto its bottom edge), stretches a touch and bounces once, softly. Height (px), time, bounce, squash, fade-in, delay and a landing sound are yours. Children one after another: the panel stays where it is and what is inside it falls in reading order, top to bottom, with a step you set (a button's shadow falls with its button). Plays at spawn and every time _open shows the layer. With _pop on the same layer, _drop plays. Children mode follows layout order inside a list or grid; if there are no separate visible children, the whole layer falls instead. On a layer hosted in 3D, only the fade playsслой падает на своё место, когда появляется: разгоняется, как под тяжестью, сплющивается при касании (на нижний край), чуть вытягивается и мягко подпрыгивает один раз. Высота (px), время, отскок, сплющивание, проявление, задержка и звук приземления — настраиваются. Дети по очереди: панель остаётся на месте, а то, что в ней, падает по порядку чтения, сверху вниз, с заданным шагом (тень кнопки падает вместе с кнопкой). Играет на спавне и каждый раз, когда _open показывает слой. Если на том же слое есть _pop, играет _drop. В списке или сетке дети идут по порядку раскладки; если отдельных видимых детей нет, падает весь слой. На слое с 3D-хостом работает только проявление |
| _cascade | children of this frame arrive one after another with a spring, top to bottom — the staggered shop-grid entrance. One slider: the delay between items. Only clickable cards are staggered; titles, dividers and decoration come in with the frame, so the panel never looks half-builtсодержимое фрейма приезжает по очереди с пружиной, сверху вниз — та самая лесенка появления карточек в магазине. Один ползунок: задержка между элементами. По очереди выходят только кликабельные карточки; заголовки, разделители и украшения приходят вместе с фреймом, поэтому панель не выглядит недособранной |
| _pulse | a heartbeat: the layer swells and settles forever, pulling the eye to BUY / CLAIM. Beat strength and beats per second. For the smoothest beat add _3d to the same layer — it then scales as a surface in the world instead of the whole-pixel UI grid (set Tilt strength to 0 if you do not want the cursor tilt as well)сердцебиение: слой ритмично раздувается и опадает, притягивая взгляд к BUY / CLAIM. Сила удара и число ударов в секунду. Для самого плавного биения добавьте на тот же слой _3d — тогда слой масштабируется как поверхность в мире, а не по целым пикселям интерфейса (поставьте силу наклона в 0, если наклон к курсору не нужен) |
| _jelly | an idle jelly wobble — a small rotation and a breath of scale, randomised per layer so a whole grid never wobbles in step. Wobble angle and speedжелейное покачивание в покое — небольшой поворот и лёгкое дыхание размера, со случайной фазой на каждом слое, чтобы сетка не качалась в такт. Угол покачивания и скорость |
| _wiggle | rings like a bell: a quick rotational swing that fades out, repeating every few seconds. Swing angle and pause after each short swing — a quiet way to point at a button without shoutingзвенит, как колокольчик: быстрый поворотный мах, который затухает и повторяется раз в несколько секунд. Угол качания и пауза после короткого маха — тихий способ указать на кнопку, не крича |
| _shake | a burst of decaying shudder every few seconds — the “unclaimed reward, look at me” nudge. Shake distance, burst length and pause between burstsвспышка затухающей тряски раз в несколько секунд — толчок «награда не забрана, посмотри сюда». Размах, длина вспышки и пауза между вспышками |
| _glow | a breathing glow around the layer: colour, size and breathe speed. If the layer already has a stroke, that stroke breathes; if it does not, Framewisp draws a halo around it. The ring holds its density and only its size breathes, so it reads as light rather than blinkingдышащее свечение вокруг слоя: цвет, размер и скорость дыхания. Если у слоя есть обводка — дышит она; если нет — рисуется ореол. Плотность кольца постоянна, дышит только размер, поэтому это читается как свет, а не как мигание |
| groups | Uploading for a group. A Roblox sign-in authorises you, never your groups — that is why a group upload answers "user not authenticated" however senior your role is. Roblox opens exactly one door for it: an Open Cloud API key. In the plugin, open "Uploading for a group?", pick the group (the list comes from your sign-in), and paste a key created at create.roblox.com/dashboard/credentials with the API System assets (not legacy-assets and not asset-permissions), adding that group as the creator inside it and ticking Read and Write. Framewisp checks the key against Roblox before saving it, keeps it on the server and never shows it again — "Back to my account" deletes it. This matters when the GAME is owned by the group: an experience can only read assets its own owner uploadedЗагрузка в группу. Вход в Roblox авторизует тебя, а не твои группы — поэтому загрузка в группу отвечает «user not authenticated», какая бы роль в группе ни была. Roblox оставляет ровно одну дверь: ключ Open Cloud API. В плагине открой «Грузить в группу?», выбери группу (список приходит из твоего входа) и вставь ключ, созданный на create.roblox.com/dashboard/credentials с системой assets (не legacy-assets и не asset-permissions), добавив эту группу внутрь неё как создателя и отметив Read и Write. Framewisp проверяет ключ у Roblox до сохранения, держит его на сервере и больше никогда не показывает — «Обратно в мой аккаунт» его удаляет. Это нужно, когда ИГРА принадлежит группе: опыт читает только те ассеты, которые загрузил его собственный владелец |
| _focus | put it on the panel and the world behind it reacts when the panel opens: the camera pushes in, Lighting picks up a blur, and the world can darken. Closing the panel puts all three back, and two panels open at once blur once, not twice. Set the camera push in degrees — added to the game’s own field of view, negative pushes in — the blur, how far the world darkens and how many seconds the move takes. Nothing in your design changes: the tag touches the world, not the UI, so a panel you already built picks it up as it is. Delete the script and the world simply stops reactingповесьте на панель — и мир позади реагирует на её открытие: камера наезжает, в Lighting появляется размытие, мир можно затемнить. При закрытии всё возвращается, а две открытые панели размывают один раз, а не дважды. Задаётся наезд камеры в градусах — прибавляется к углу обзора самой игры, минус — это наезд, — размытие, сила затемнения и время. Сам дизайн не меняется: тег трогает мир, а не интерфейс, поэтому уже готовая панель подхватывает его как есть. Удалите скрипт — мир просто перестанет реагировать |
| _sparkle | Adds stars without uploading images. Choose Always, Hover on the nearest button (including gamepad focus), or Game trigger: your game increments the numeric Sparkle attribute for one finite burst. The game still decides when to award a reward.
Smooth appearance & fade is on by default, with a 0.18 s transition (0.05–1 s). When hover ends, existing stars keep moving and fade out; hovering again continues from their current brightness. Turn smoothing off for immediate visibility changes. It also applies to Always and triggered bursts.
Set count (1–24, default 8), size (2–80 design px), colour, transparency (0–0.95), lifetime (0.25–8 s), upward drift (0–100 design px/s) and signed spin (−360–360°/s). Hidden layers and FW_ReduceMotion=true release the shared pool. Each runtime supports up to 64 sparkle layers and 96 stars in total; removing the tag cleans up its stars.Добавляет звёзды без загрузки картинок. Выберите Всегда, Наведение на ближайшую кнопку, включая фокус геймпада, или Из игры: игровой скрипт увеличивает числовой атрибут Sparkle для одной конечной вспышки. Саму выдачу награды выполняет игра.
Плавное появление и затухание включено по умолчанию: переход занимает 0.18 с, можно задать 0.05–1 с. После ухода курсора существующие звёзды продолжают движение и исчезают; повторное наведение продолжает переход с текущей яркости. Выключите плавность для мгновенного появления и исчезновения. Настройка действует также в постоянном режиме и при игровом триггере.
Настраиваются количество (1–24, по умолчанию 8), размер (2–80 px макета), цвет, прозрачность (0–0.95), время жизни (0.25–8 с), подъём (0–100 px макета/с) и вращение (−360–360°/с). Скрытие и FW_ReduceMotion=true освобождают общий пул. Один runtime обслуживает до 64 слоёв и 96 звёзд суммарно; удаление тега очищает его звёзды. |
| _type | Reveals a native TextLabel or TextButton like a typewriter through MaxVisibleGraphemes. The original Text, RichText formatting, composed emoji and layout stay intact; a text shadow reveals in sync. It does not run on baked text images or TextBox input.
Choose Once (default) or Loop, speed (1–120 graphemes/s, default 30), start delay (0–10 s, default 0) and the full-text pause for Loop (0.1–10 s, default 2). Increment TypeComplete to reveal everything and stop looping, or TypeRestart to start again. Changing the text, including through binding or localisation, starts the new line. Hidden panels pause playback; showing a completed line does not repeat it. Reduced motion shows all text; tag removal restores its previous reveal setting.Раскрывает нативный TextLabel или TextButton как печатная машинка через MaxVisibleGraphemes. Исходный Text, RichText, составные эмодзи и размер строки сохраняются; тень раскрывается вместе с текстом. Эффект не работает на запечённой картинке с текстом и не затрагивает ввод TextBox.
Выберите один проход (по умолчанию) или повтор, скорость (1–120 графем/с, по умолчанию 30), задержку старта (0–10 с, по умолчанию 0) и паузу полного текста при повторе (0.1–10 с, по умолчанию 2). Увеличьте TypeComplete, чтобы показать всё и остановить повтор, или TypeRestart, чтобы начать заново. Смена текста, в том числе биндингом или локализацией, запускает новую строку. Скрытая панель ставит проигрывание на паузу; завершённая строка при показе не повторяется. Reduced motion показывает весь текст; удаление тега возвращает прежнюю настройку раскрытия. |
| _fall | Creates falling copies inside a layer. Add up to 4 images in Effects using + (up to 2 MB per file); × on a hovered or focused thumbnail removes just that image. Pictures are saved on the Figma layer and keep their own proportions. Copy count is shared, not multiplied by the number of pictures.
Without uploads, a tagged picture is the template inside its parent; a tagged container uses its uppermost suitable visible child. Masks, ignored layers and separate native _stroke outlines are skipped, so the frame stays on the card. If there is no suitable artwork, add a template or upload a picture: the whole card is not copied as a fallback. An explicitly tagged _fall_stroke can still be a template. Removing all uploads restores drawn-template behaviour.
Set count, duration, copy transparency, smallest/largest size, initial tilt, spacing and optional spin. Size defaults adapt to the template, so large card artwork does not become card-sized ghosts. The template hides during playback; copies appear and disappear smoothly. CanvasGroup clipping handles rotated copies. The selected template stays separate from the baked background; copies preserve its artwork without rerunning nested effects on every copy.Создаёт падающие копии внутри слоя. В Effects добавьте до 4 картинок кнопкой + (до 2 МБ на файл); × на миниатюре при наведении или фокусе удаляет только её. Набор сохраняется на слое Figma, пропорции картинок сохраняются. Количество копий общее и не умножается на число картинок.
Без загрузок картинка с тегом служит шаблоном внутри родителя, а контейнер выбирает верхний подходящий видимый дочерний слой. Маски, игнорируемые слои и отдельные нативные обводки _stroke пропускаются: рамка остаётся на карточке. Если подходящего рисунка нет, добавьте шаблон или загрузите картинку — вся карточка вместо него не копируется. Явно помеченный _fall_stroke может быть шаблоном. После удаления всех загрузок снова используется нарисованный вариант.
Настройте количество, время падения, прозрачность копий, минимальный/максимальный размер, начальный наклон, расстояние и вращение. Размер по умолчанию зависит от шаблона: крупная иконка не превращается в призраков размером с карточку. Шаблон при проигрывании скрывается, копии плавно появляются и исчезают. CanvasGroup обрезает повёрнутые копии. Выбранный шаблон сохраняется отдельно от запечённого фона; копии сохраняют его вид, не запуская вложенные эффекты заново. |
| _stroke | Animates the gradient inside an existing outline on a Frame, supported native shape or live text. Draw the outline in Figma, then add _stroke. Colours, stop transparency, paint opacity and starting angle survive export. A solid stroke gets a neutral metallic sheen multiplied by its colour; no outline or thickness is invented. Fill and layer rotation stay independent.
Choose Rotate (default 45°/s) or Move (default 0.35 cycles/s). Rotate changes only the gradient angle. Move slides a mirrored repeat without a pause or boundary jump; set direction, speed (0–4), width (0.5–4) and X/Y offset (−2–2). Angle and phase are shared; hidden settings are saved. 0° travels right, 90° down; motion perpendicular to the gradient has no visible effect. Zero speed pauses the selected animation.
Outline colours in Effects edits the actual Stroke channel: 2–18 colours, stop transparency and angle. × removes any colour while at least two remain. A section inside a selected group edits its named child’s outline. Together with _flow, this tag owns the outline’s palette and movement while Flow can animate the fill.
Dashed, mixed-width, multiple or non-linear strokes still bake. Framewisp generates sequences of up to 20 points including endpoints; dense mirrored gradients may be simplified. Manual numeric Stroke* attributes in Studio override exported values.Анимирует градиент внутри существующей обводки Frame, поддерживаемой нативной фигуры или живого текста. Нарисуйте обводку в Figma, затем добавьте _stroke. Цвета, прозрачность точек и краски, начальный угол сохраняются при экспорте. Одноцветная обводка получает нейтральный металлический блик, умноженный на её цвет; новая рамка или толщина не создаётся. Заливка и поворот слоя независимы.
Выберите Вращение (по умолчанию 45°/с) или Перемещение (0.35 цикла/с). Вращение меняет только угол. Перемещение непрерывно сдвигает зеркальное повторение без пауз и скачка на краю; задайте направление, скорость (0–4), ширину (0.5–4) и смещение X/Y (−2–2). Угол и фаза общие, скрытые настройки сохраняются. 0° — вправо, 90° — вниз; движение поперёк градиента визуально ничего не меняет. Скорость 0 ставит анимацию на паузу.
Цвета обводки в Effects редактируют именно Stroke: 2–18 цветов, прозрачность точек и угол. × удаляет любой цвет, пока остаются минимум два. При выборе группы секция редактирует обводку своего подписанного дочернего слоя. Вместе с _flow этот тег управляет палитрой и движением рамки, а Flow может анимировать заливку.
Пунктирные, разнотолщинные, многослойные и нелинейные обводки запекаются. Framewisp создаёт последовательности до 20 точек с учётом краёв; плотное зеркальное повторение может упрощаться. Ручные числовые атрибуты Stroke* в Studio перекрывают настройки экспорта. |
| _flow | Animates a gradient on a shape, image, text or group. Applies to chooses Fill, an existing Stroke, or Both; Colours chooses the layer’s palette or Rainbow. Adding _flow immediately adopts the existing linear gradient’s colours, transparency, angle and offset. Rotating it in the gradient editor updates Flow’s starting angle; changing only colours preserves a manual motion angle. Fill and an independently authored outline keep their own source angles unless you set a shared Flow angle.
Move (default) slides a mirrored repeating gradient continuously, without a pause or jump. Rotate turns it at a signed speed. Set angle and phase, plus direction, speed (0–4 cycles/s, default 0.5), gradient width (0.5–4), colour bands (1–8) and X/Y offset for Move; Rotate has its own speed (−3600–3600°/s, default 180). 0 pauses the selected motion. Direction 0° is right, 90° down; moving perpendicular to the gradient has no visible effect. Dense gradients may use fewer bands to fit Framewisp’s 20-point animation budget.
On an image, Flow uses a separate surface covering the whole shape, including transparent areas, while the original image keeps its RGB and alpha. It follows the corners, contour and supported parent masks. On a filled Frame it sits above the background and below children; on an empty Frame or Group it covers the content. A Group uses its bounds or one unambiguous full-size shape. Complex blends, shared-bake effects or rotated child containers may preserve the static design instead, with a warning.
Fill brightness (default 0.9) and Outline brightness (1.15) change RGB separately in 0–2, increasing colour brightness and saturation without adding white. A colour already at its maximum cannot brighten further. Band contrast (0–1, default 0.35) darkens band edges; 0 keeps the original contrast. Effect opacity (0–1) changes alpha separately: default 0.35 for a separate overlay and 1 for a native gradient. Rainbow preserves source alpha. Own without a source gradient gives a neutral grey–white sheen.
The palette is visible as a static Figma canvas preview; animation runs in the demo and Roblox Play. Both previews the fill and a compatible existing solid outline. Image fills, Overlay, geometry and the original export source are preserved. No outline is invented: a solid outline follows the Flow palette, while its own gradient or _stroke keeps its colours; _stroke also owns its movement. Groups get no helper children on the Figma canvas. The Effects palette editor supports 2–18 colours, per-stop transparency and angle; × removes any stop while at least two remain. Manual numeric Flow* attributes in Studio override exported settings; older projects use FlowTime until a new speed is set.Анимирует градиент на фигуре, картинке, тексте или группе. Применять к выбирает заливку, существующую обводку или оба канала (Both); Цвета — палитру слоя или радугу. При добавлении _flow сразу подхватываются цвета, прозрачность, угол и смещение существующего линейного градиента. Его поворот в редакторе обновляет начальный угол Flow; смена только цветов сохраняет вручную заданный угол движения. Заливка и независимо нарисованная обводка сохраняют свои исходные углы, пока вы не зададите общий угол Flow.
Перемещение (по умолчанию) непрерывно сдвигает зеркально повторяющийся градиент без пауз и скачка. Вращение поворачивает его со скоростью заданного знака. Настройте угол и фазу; для перемещения — направление, скорость (0–4 цикла/с, по умолчанию 0.5), ширину (0.5–4), количество полос (1–8) и смещение X/Y; для вращения — отдельную скорость (−3600–3600°/с, по умолчанию 180). Скорость 0 ставит движение на паузу. 0° — вправо, 90° — вниз; движение поперёк градиента визуально ничего не меняет. Плотная палитра может использовать меньше полос, чтобы уложиться в бюджет анимации Framewisp в 20 точек.
На картинке создаётся отдельная поверхность перелива по всему контуру фигуры, включая прозрачные участки; RGB и alpha картинки остаются исходными. Учитываются углы, контур и поддерживаемые родительские маски. На Frame с заливкой перелив находится над фоном и под детьми; на пустом Frame или Group — поверх содержимого. У группы используются её границы либо одна однозначная фигура размером со всю группу. При сложном смешивании, общем запекании или повёрнутом контейнере с детьми исходный вид может сохраниться статично с предупреждением.
Яркость заливки (по умолчанию 0.9) и Яркость обводки (1.15) отдельно меняют RGB в диапазоне 0–2, усиливая яркость и насыщенность без примеси белого. Уже максимально яркий цвет не станет ярче. Контраст блика (0–1, по умолчанию 0.35) затемняет края полосы; 0 сохраняет исходный контраст. Непрозрачность эффекта (0–1) отдельно меняет alpha: по умолчанию 0.35 для отдельного overlay и 1 для нативного градиента. Радуга сохраняет исходную alpha. Своя палитра без исходного градиента даёт нейтральный серо-белый блик.
Палитра видна как статичное превью на холсте Figma; анимация работает в демо и Roblox Play. Both показывает заливку и совместимую существующую одноцветную обводку. IMAGE, Overlay, геометрия и исходные данные экспорта сохраняются. Новая обводка не создаётся: одноцветная использует палитру Flow, собственный градиент или _stroke сохраняет свои цвета; _stroke также управляет движением рамки. Группам на холсте Figma не добавляются служебные дети. Редактор в Effects поддерживает 2–18 цветов, прозрачность точек и угол; × удаляет любую точку, пока остаются минимум две. Ручные числовые Flow* в Studio перекрывают настройки экспорта; старые проекты используют FlowTime, пока новая скорость не задана. |
| _shadow | a real UIShadow with every setting Roblox has: colour, transparency, offset, blur, spread and Inset for an inner shadow. Use it when the shadow is part of the design rather than a soft drop under a card — Framewisp normally bakes the Figma shadow, and this tag takes that over so the tag owns the look, not the export. Roblox refuses a gradient on a shadow, so "two-tone" is exactly what the engine can draw: turn on the second colour and you get two shadows pulled apart along the offset — a coloured rim on one side, the darker one on the other. A shadow takes the SHAPE of the layer it sits on, so tag the layer that carries the rounding — and if you tag a transparent group whose rounded card fills it, Framewisp lends the shadow that card's corner instead of throwing a square one. Blur, spread and offset are design pixels: they scale with the rest of the UI, so the shadow stays the same size relative to its card on every screenнастоящий UIShadow со всеми свойствами Roblox: цвет, прозрачность, смещение, размытие, разброс и Inset для внутренней тени. Нужен, когда тень — часть дизайна, а не мягкая подложка под карточкой: обычно Framewisp запекает тень из Figma, а с тегом внешний вид задаёте вы, а не экспорт. Градиент на тень Roblox не даёт, поэтому «двухцветность» сделана тем, что движок реально умеет: включаете второй цвет — получаете две тени, разведённые по смещению: цветной кант с одной стороны, тёмный с другой. Тень принимает ФОРМУ слоя, на котором стоит, — вешайте тег на слой со скруглением; а если тег попал на прозрачную группу, внутри которой скруглённая карточка во всю её величину, Framewisp отдаст тени скругление этой карточки, а не нарисует прямоугольник. Размытие, разброс и смещение задаются в пикселях макета и масштабируются вместе с остальным интерфейсом — тень остаётся одного размера относительно своей карточки на любом экране |
| _rays | for the sunburst you drew behind a reward: a slow spin plus a gentle pulse, the classic prize backdrop. Spin speed (either direction) and pulse depthдля лучей, нарисованных за наградой: медленное вращение плюс мягкий пульс — классическая подложка приза. Скорость вращения (в любую сторону) и глубина пульса |
| _pixels | a mosaic shimmer over the layer: little squares light up at random and fade, like a pixel background come alive. Cell size (even or random), twinkles per second, accent colour and max opacity. It stays inside the layer's rounded corners, so a card still looks like a cardмозаичное мерцание поверх слоя: квадратики загораются в случайных местах и гаснут, как ожившая пиксельная подложка. Размер клетки (ровные или вразнобой), вспышек в секунду, цвет и максимальная непрозрачность. Мерцание живёт внутри скруглений слоя, поэтому карточка остаётся карточкой |
| _gleam | a white light sweeps across the TEXT from left to right — fill and outline together — like a title flash. Sweep time, pause between sweeps and wave width. On live Roblox text the light is a white copy of the letters. On a baked title (a display font, or # in front of the name) it works too: the plugin exports a white silhouette of the layer beside its picture, and the sweep travels that — outlines and shadows includedбелый блик проезжает по ТЕКСТУ слева направо — по заливке и обводке сразу — как вспышка на заголовке. Время прохода, пауза между проходами и ширина волны. На живом тексте Roblox свет — белая копия букв. На запечённом заголовке (декоративный шрифт или # перед именем) тоже работает: плагин экспортирует рядом с картинкой её белый силуэт, и блик едет по нему — с обводками и тенями |
| _squish | squash-and-stretch press: the button flattens wide under the press and springs back on release. Squash amount and return time. Makes the layer a buttonнажатие со сплющиванием: кнопка приседает и расплывается вширь при нажатии и упруго возвращается при отпускании. Сила сплющивания и время возврата. Делает слой кнопкой |
| _ripple | a circular wave expands from the exact click point, reaches the farthest corner of the button and fades there. Colour, opacity and expand time. It is clipped by the button's own rounded corners. Makes the layer a buttonкруглая волна расходится ровно от точки клика, добегает до дальнего угла кнопки и там гаснет. Цвет, непрозрачность и время расширения. Обрезается скруглениями самой кнопки. Делает слой кнопкой |
| _burst | every press throws particles out from behind the button: plain circles by default, or your own picture — upload it right in the effect panel. They fly out on all sides — evenly from the centre, or from random points on the edge, a few at once and the rest trickling out — reach as far as the button is big, pop in, and fade to nothing (shrinking too, unless you switch that off). Count, where they come from, time in the air, reach, transparency at start, smallest and largest size (one size by default), spin with its speed, and colour — white leaves your picture as is. They are drawn under the button and over the card it sits on, so a BUY button inside a shop card never loses its sparks behind the card; in a row a layout arranges, they go under the whole row instead of becoming one of its items. From code: button:SetAttribute("Burst", (button:GetAttribute("Burst") or 0) + 1). Makes the layer a buttonкаждое нажатие выбрасывает частицы из-под кнопки: по умолчанию кружки, или ваша картинка — загрузите её прямо в панели эффектов. Разлетаются во все стороны — ровно из центра или из случайных точек по краю (часть сразу, остальные вразнобой), — дальность по размеру кнопки, появляются с «хлопком» и тают до нуля (и уменьшаются, если не выключить). Количество, откуда вылетают, время полёта, дальность, прозрачность на старте, самая мелкая и самая крупная частица (по умолчанию один размер), вращение со скоростью и цвет — белый оставляет картинку как есть. Рисуются под кнопкой и над карточкой, в которой она лежит: у кнопки BUY внутри карточки магазина искры не проваливаются за карточку; в ряду, который раскладывает лейаут, они идут под весь ряд, а не становятся его элементом. Из кода: button:SetAttribute("Burst", (button:GetAttribute("Burst") or 0) + 1). Делает слой кнопкой |
| _pointer | an arrow (or a hand, a chevron — anything you draw) that points at the button under the cursor. Draw it once, next to any button of its group — or inside a button, grouped with it: the side you put it on and the distance from the edge of what you see are the setting. The arrow is no part of the layout: a group of a button and its arrow imports as the button — its size, its centre — and the arrow ships hidden until the runtime brings it in. Which buttons it serves: the buttons of its menu — the group it sits in, or, when that group is just one button and its arrow, the group around it. Draw an arrow next to several buttons of one menu and they become one arrow: it travels between exactly those buttons and sits at each as drawn there (a button with no arrow drawn is skipped). With one arrow for the whole menu, tag a button _nopointer to keep the arrow off it. Hover another button of the group and the arrow crawls there on a spring; leave and it waits half a second (you may come back), then fades. With Gamepad selection enabled (the default), it follows the selection and replaces Roblox's blue selection box; on touch it shows at the tapped button. It is drawn above the group's buttons. Settings: side (as drawn / left / right / top / bottom — turning to face the button), extra distance, how it appears (pop, fade, slide), crawl speed, bounce, a poke toward the button while it is pressed (px, 0 = off), how long it lingers, a gentle breathing (on/off, and its strength in px). A button on a _3d card takes the arrow onto that cardстрелка (или рука, шеврон — что нарисуешь), которая указывает на кнопку под курсором. Нарисуй её один раз рядом с любой кнопкой группы — или внутри кнопки, в одной группе с ней: сторона, на которой она лежит, и расстояние до края видимой части кнопки — это и есть настройка. В раскладку стрелка не входит: группа «кнопка + стрелка» импортируется как кнопка — её размер, её центр, — а стрелка приезжает скрытой, пока её не покажет скрипт. Какие кнопки она обслуживает: кнопки своего меню — группы, где лежит, а если в этой группе одна кнопка со стрелкой — группы вокруг неё. Нарисуйте стрелку рядом с несколькими кнопками одного меню — это станет одной стрелкой: она ходит ровно между этими кнопками и у каждой встаёт так, как нарисовано рядом с ней (кнопка без стрелки пропускается). Если стрелка на всё меню одна, лишнюю кнопку отметьте тегом _nopointer. Навёл на другую кнопку группы — стрелка переползает туда на пружине; увёл курсор — полсекунды ждёт (вдруг вернёшься) и тает. При включённом «Выделении геймпада» (по умолчанию) она следует за выбором и заменяет синюю рамку Roblox; на тач-экране появляется у нажатой кнопки. Рисуется поверх кнопок группы. Настройки: сторона (как нарисовано / слева / справа / сверху / снизу — с разворотом к кнопке), доп. расстояние, появление (pop, проявление, выезд), скорость переползания, упругость, тычок к кнопке, пока она нажата (px, 0 — выкл), сколько ждать после ухода, лёгкое «дыхание» (вкл/выкл и сила в px). Кнопка на _3d-карточке забирает стрелку на эту карточку |
| _nopointer | on a button: the menu's _pointer arrow never points at it — a Settings or Close button among the menu's choices. Only needed when one arrow serves the whole menu; with an arrow drawn at each chosen button, a button without one is skipped anywayна кнопке: стрелка _pointer этого меню на неё не указывает — Settings или Close среди пунктов. Нужен, только когда стрелка на всё меню одна; если стрелки нарисованы у выбранных кнопок, кнопка без стрелки и так пропускается |
| _card | a card you drew — icon, stats, price, rarity, a whole group — appears next to its button on hover. By default its bottom-left corner goes to the button's centre; in the effect panel pick any corner of the card and any point of the button on two 3×3 grids, plus an offset. Tell it whose card it is: _card:Buy (the button's name), or just _card drawn inside the button or right next to it. Ten buttons with the same name (inventory slots) share one card, and it glides between them. At import the card is hidden; in game it is lifted above everything, so a scroll window or a mask never cuts it. It shows after a short delay (no flicker when the cursor passes by), stays open while the cursor is on it (its own buttons stay clickable), flips at the screen edge, follows the gamepad selection and opens on a tap. Fill it from your code: the card's Owner attribute is the hovered button's name and FW_Owner points at the button itself. Turn over on click (off by default): draw the reverse as a group named Back inside the card, over the face (hide it in Figma while you draw the face). A click on the button, on the card itself or a second tap on touch turns the card over about its middle, and again turns it back; put away, it rests face up. The face is everything next to Back — or the group named Front when both sides share a background. A button called Back on the reverse stays a buttonнарисованная карточка — иконка, статы, цена, редкость, целая группа — появляется рядом со своей кнопкой при наведении. По умолчанию её левый нижний угол ставится в центр кнопки; в панели эффекта можно выбрать любой угол карточки и любую точку кнопки на двух сетках 3×3 плюс смещение. Чья это карточка: _card:Buy (имя кнопки) или просто _card, нарисованная внутри кнопки или рядом с ней. Десять кнопок с одним именем (слоты инвентаря) делят одну карточку, и она плавно переезжает между ними. При импорте карточка скрыта; в игре поднимается над всем, так что её не обрежет окно прокрутки или маска. Показывается после короткой задержки (не мигает, когда курсор пролетает мимо), не закрывается, пока курсор на ней (её кнопки нажимаются), отражается у края экрана, следует за выделением геймпада и открывается по тапу. Заполняйте из кода: атрибут Owner карточки — имя наведённой кнопки, FW_Owner — сама кнопка. Переворот при нажатии (по умолчанию выкл): нарисуйте оборот группой Back внутри карточки, поверх лица (в Figma спрячьте её глазом, пока рисуете лицо). Клик по кнопке, по самой карточке или повторный тап на телефоне переворачивает карточку вокруг её середины, ещё раз — обратно; спрятанная, она снова лежит лицом вверх. Лицо — всё, что лежит рядом с Back, или группа Front, если у сторон общая подложка. Кнопка с именем Back на обороте остаётся кнопкой |
| _billboard | import the ROOT frame as a BillboardGui attached to an anchor Part: name plates, health bars or shop stands. Set width in studs, visibility through walls and maximum distance; height follows the design’s aspect ratio. In Lives in → Part (self-contained) mode, the UI and its animation runtime travel with the Part, so copies keep their effects. For buttons and hover input, select Lives in → ScreenGui (clicks & hovers): the BillboardGui stays in StarterGui and follows its anchor through Adornee. Scene lighting does not tint the UI. Use only one root host tag: _billboard or _surface.импортировать КОРНЕВОЙ фрейм как BillboardGui на якоре-Part: подпись, полоска здоровья или стойка магазина. Настраиваются ширина в стадах, видимость сквозь стены и дальность; высота следует пропорциям макета. В режиме «Живёт в → Парте (автономный)» UI и его анимации перемещаются и копируются вместе с Part. Для кнопок и наведения выберите «Живёт в → ScreenGui (клики и ховеры)»: BillboardGui остаётся в StarterGui и следует за якорем через Adornee. Освещение сцены не меняет цвета UI. На корне используйте один тип размещения: _billboard или _surface. |
| _prompt | turn a design into the custom UI of a ProximityPrompt (walk up, press a key). Tag the ROOT frame; _prompt already enables billboard placement, so an extra _billboard tag is optional: the import creates an anchor Part with a ProximityPrompt (Style=Custom) on it and shows your UI when a player approaches. The key, the hold time and the show distance are set in the plugin and travel with the convert; every property stays editable on the prompt itself. Line of sight is off on purpose — a prompt inside a crate or behind glass would otherwise never appear. Connect .Triggered in your own script for the game logicпревращает макет в кастомный UI для ProximityPrompt (подошёл — нажал клавишу). Тег ставится на КОРНЕВОЙ фрейм; _prompt сам включает размещение BillboardGui, поэтому отдельный _billboard необязателен: импорт создаёт якорь-Part с ProximityPrompt (Style=Custom) и показывает UI при приближении игрока. Клавиша, время удержания и дистанция задаются в плагине и едут вместе с конвертом; все свойства при этом остаются правимыми на самом промпте. Line of sight выключен намеренно — иначе промпт в ящике или за стеклом просто не появлялся бы. Логику подключайте сами через .Triggered |
| _surface | import the design as a SurfaceGui — UI on the face of a Part: a sign, a shop board, a computer screen, a leaderboard on a wall. Put the tag on the ROOT frame. The import creates a Part in front of the camera with the UI on its front face; move, rotate or resize it (keep its shape) and the UI follows. Set the width in studs (height follows your design), whether it draws through walls, and a max distance. The canvas is your design's own size, so text and every layer land exactly as drawn. The SurfaceGui itself stays in StarterGui, pointed at the Part through Adornee — that is what lets buttons press, hovers react and effects run in game. Effects that follow the cursor across the screen (_magnet, _3d, _tilt) are made for screen UIимпортировать макет как SurfaceGui — интерфейс на грани Part: вывеска, доска магазина, экран компьютера, лидерборд на стене. Тег ставится на КОРНЕВОЙ фрейм. Импорт создаёт Part перед камерой с UI на передней грани; двигайте, поворачивайте или меняйте размер (сохраняя пропорции) — UI едет вместе с ним. Задаются ширина в стадах (высота из макета), видимость сквозь стены и предельная дальность. Холст равен размеру макета, поэтому текст и все слои встают точно как нарисовано. Сам SurfaceGui остаётся в StarterGui и смотрит на Part через Adornee — благодаря этому в игре нажимаются кнопки, работают ховеры и эффекты. Эффекты, которые следят за курсором по экрану (_magnet, _3d, _tilt), рассчитаны на экранный UI |
| _hold | inside a _prompt design: the layer that fills while the key is held. Tag the element carrying the stroke — usually your button's border — and that outline fills with your colour, left to right, over exactly the prompt's hold time. Let go early and it drains back instead of snapping to zero. The colour is a slider in the plugin, or a HoldColor attribute on the layer in Studio. The fill happens in place: your own stroke is repainted through a gradient, so rounded corners come for free and the layer keeps its exact size and position. A layer with no stroke fills its background insteadвнутри _prompt-макета: слой, который заполняется, пока игрок держит клавишу. Тег вешается на элемент с обводкой — обычно это рамка кнопки — и она заливается вашим цветом слева направо ровно за время удержания. Отпустил раньше — заливка стекает обратно, а не схлопывается. Цвет задаётся ползунком в плагине или атрибутом HoldColor в Studio. Заливка идёт по месту: перекрашивается ваша же обводка через градиент, поэтому скругления работают сами, а размер и позиция слоя не меняются. У слоя без обводки заливается фон |