Flipper
A motion library for Roblox
Install / Use
/learn @Reselim/FlipperREADME
Installation
Rojo
0.6.x+
Add this repository as a submodule into your packages directory. This example assumes the directory is packages.
git submodule add https://github.com/Reselim/Flipper packages/Flipper
0.5.x
Copy the src folder from this repository into your packages directory.
npm (for roblox-ts)
Install the @rbxts/flipper package using npm or yarn.
npm i @rbxts/flipper
Without Rojo
Download the latest .rbxm file from the releases page and drag it into studio.
Usage
With Roact
This example creates a button that shrinks when pressed.
local Example = Roact.Component:extend("Example")
function Example:init()
self.motor = Flipper.SingleMotor.new(0)
local binding, setBinding = Roact.createBinding(self.motor:getValue())
self.binding = binding
self.motor:onStep(setBinding)
end
function Example:render()
return Roact.createElement("ImageButton", {
Size = self.binding:map(function(value)
return UDim2.new(0, 100, 0, 100):Lerp(UDim2.new(0, 80, 0, 80), value)
end),
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
[Roact.Event.MouseButton1Down] = function()
self.motor:setGoal(Flipper.Spring.new(1, {
frequency = 5,
dampingRatio = 1
}))
end,
[Roact.Event.MouseButton1Up] = function()
self.motor:setGoal(Flipper.Spring.new(0, {
frequency = 4,
dampingRatio = 0.75
}))
end
})
end
return Example
Flipper works wonderfully with Roact on its own, but if you plan on using it for a lot of your components, roact-flipper will make that much easier.
Without Roact
Check out the demo script in the test project!
License
Flipper is licensed in full under the MIT license. Note that it contains code from another author, which is also under the MIT license.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
