I'm using OOP to make a Slider but whenever I try to use it in the localscript it say's the start function isn't a thing.
Module
--Slider --Dev_Pashley local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local Player = Players.LocalPlayer local Mouse = Player:GetMouse() local Slider = {} Slider.__index = Slider function Slider.new(Frame) local slider2 = {} setmetatable(Slider, slider2) slider2.obj = Frame slider2.main = Frame.Slider slider2.active = false slider2.lastPos = 0 return slider2 end function Slider:Update() self.main.Slide.Position = UDim2.new(0, (Mouse.X - self.obj.AbsolutePosition.X), 0.5, 0) if (self.main.Slide.AbsolutePosition.X < self.obj.AbsolutePosition.X) then self.main.Slide.Position = UDim2.new(0, 0, 0.5, 0) elseif (self.main.Slide.AbsolutePosition.X + self.main.Slide.AbsoluteSize.X/2 > (self.obj.AbsolutePosition.X + self.obj.AbsoluteSize.X)) then self.main.Slide.Position = UDim2.new(1, -self.main.Slide.AbsoluteSize.X, 0.5, 0) end if (self.active) then local scaled = self.main.Slide.Position.X.Offset / self.obj.AbsoluteSize.X if (scaled <= 0) then if (self.lastPos < 0.5) then scaled = 0 else scaled = 1 end end end end function Slider:Start() self.main.Slide.MouseButton1Down:connect(function() self.active = true end) self.main.Slide.MouseButton1Up:connect(function() self.active = false end) UserInputService.InputChanged:connect(function(input, gpe) if (gpe) then return end if (input.UserInputType == Enum.UserInputType.MouseMovement) then if (self.active) then self:Update() end end end) end return Slider