Attempt to call a nil value

Just can’t figure this out, help would be appreicated:

Module:

local Module = {}

function Module.new(Label)
	local self = {}
	self.Label = Label
	
	return setmetatable(self, Module)
end

function Module:GetCurrentText()
	return self.Label.Text
end

function Module:SetSound(SoundID)
	print('Called')
	if SoundID:lower() == 'Default' then
		local Sound = Instance.new('Sound')
		Sound.Name = tostring(workspace.DistributedGameTime)
		Sound.SoundId = 'rbxassetid://163233363'
		Sound.PlaybackSpeed = .8
		Sound.Volume = 2
		Sound.Parent = workspace.Cache
		SoundID = Sound.Name
	end
	
	return SoundID
end

return Module

Local script:

local ReplicatedStorage = game:GetService('ReplicatedStorage')
local Modules = ReplicatedStorage:WaitForChild('Modules')

local Frame = script.Parent:WaitForChild('Frame')
local Text = Frame:WaitForChild('Text')

local req = require(Modules:WaitForChild('TypeWritter'))

local Module = req.new(Text)

print(Module)

if not game:IsLoaded() then
    game.Loaded:Wait()
end

task.wait(.2)

local SD = Module:SetSound('Default')

Error: (on line with: local SD = Module:SetSound(‘Default’))
image

Thanks again!

In the module you’re setting the metatable of the new table to Module but Module has no metamethods
I think you forgot to put Module.__index = Module on line 2