#Why when i call a method the self.Button returns nil?

1 messages · Page 1 of 1 (latest)

patent breach
#

i tried any things that i know but it still returns nil


local button = {}
button.__index = button

local SizeMultiple = 1.1
local SizeShrink = .9

function button.new(ButtonToClick)
    local self = setmetatable({}, button)
    
    local LocalPlayer = Players.LocalPlayer
    local PlayerGui = script.Parent.Parent.Parent.Parent
    
    local AudioFolder = ReplicatedStorage:WaitForChild("Sound")
    local SFXFolder = AudioFolder:WaitForChild("SFX")
    
    local MouseEnterSFX = SFXFolder:WaitForChild("UI Click")
    
    local NormalSize = ButtonToClick.Size
    
    local HoverSize = UDim2.new(NormalSize.X.Scale * SizeMultiple, NormalSize.X.Offset, NormalSize.Y.Scale * SizeMultiple, NormalSize.Y.Offset)
    local ClickSize = UDim2.new(NormalSize.X.Scale * SizeShrink, NormalSize.X.Offset, NormalSize.Y.Scale * SizeShrink, NormalSize.Y.Offset)

    local HoverTween = TweenService:Create(ButtonToClick, Tweeninfo, {Size = HoverSize})
    self.ShrinkTween = TweenService:Create(ButtonToClick, Tweeninfo, {Size = NormalSize})
    
    ButtonToClick.MouseEnter:Connect(function()
        HoverTween:Play()
        MouseEnterSFX:Play()    
    end)
    
    ButtonToClick.MouseLeave:Connect(function()
        self.ShrinkTween:Play()
    end)
    
    self.Button = ButtonToClick 
    return self
end

function button:Onclick()
    local ButtonToClick : TextButton = self.Button
    local CurrentSize : UDim2 = ButtonToClick.Size
    
    local ShrinkButtonSize = UDim2.new(CurrentSize.X.Scale * SizeShrink, CurrentSize.X.Offset, CurrentSize.Y.Scale * SizeShrink, CurrentSize.Y.Offset)
    
    local ClickSizeTween = TweenService:Create(self.Button, Tweeninfo, {Size = ShrinkButtonSize})
    local ClickSFX = ReplicatedStorage:WaitForChild("Sound"):WaitForChild("SFX"):WaitForChild("MouseEnterSoundEffect")
    
    ClickSizeTween:Play()

    ClickSizeTween.Completed:Connect(function()
        self.ShrinkTween:Play()
    end)

    ClickSFX:Play()
end

return button
#

ignore the reference cuz i got max characters length

dark herald
#

Did you defined services?

late scaffoldBOT
#

studio** You are now Level 1! **studio

sullen shuttle
patent breach
#

i already have it but i deleted the services because the limitation on discord

patent breach
#

Nvm i fixed it because on another script i called ButtonClass:OnClick() instead of self:OnClick()