An animation module for Roblox interface, with Signals, Motors, and Springs.
- Download the
rbxm
model file attached to the latest release from the GitHub releases page. - Insert the model into Studio into a place like
ReplicatedStorage
- Copy the
src
directory into your codebase - Rename the folder to
Otter
- Use a plugin like Rojo to sync the files into a place
For a detailed guide and examples, check out the official Otter documentation.
--[[
This code demonstrates Otter capabiltiies.
It makes a frame that will follow the mouse.
Make sure to have Otter in ReplicatedStorage!
]]
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Otter = require(ReplicatedStorage.Otter)
local localPlayer = Players.LocalPlayer
local mouse = localPlayer:GetMouse()
local container = Instance.new("ScreenGui")
container.ResetOnSpawn = false
container.Parent = localPlayer:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.AnchorPoint = Vector2.new(1, 1)
frame.Size = UDim2.new(0, 20, 0, 20)
frame.BorderSizePixel = 0
frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
frame.Parent = container
local positionMotor = Otter.createGroupMotor({
x = 0,
y = 0,
})
positionMotor:onStep(function(values)
frame.Position = UDim2.new(0, values.x, 0, values.y)
end)
local function updateMotor()
positionMotor:setGoal({
x = Otter.spring(mouse.X),
y = Otter.spring(mouse.Y),
})
end
updateMotor()
mouse.Move:Connect(updateMotor)
This package uses the MIT License. You may find it by viewing the LICENSE file in the repository. (I am not sure what license Otter actually uses)