"Can only tween objects in workspace"

I think it happens when the ModuleScript errors.

Make sure to do some debugging with prints inside the ModuleScript to determine where and where it doesn’t reach. This will help tremendously.

I realize that there is another error that says, " Unable to cast to Dictionary", and that error leads to this line, I think I am not using the tween correctly.

local uptween = tween:Create(clone,info,up)

(The entire script)

local textfunction = {}

--Variables
local text = script.Parent
local clone = text.StatusText:Clone()
local value = script.Value.Value
local tween = game:GetService("TweenService")
local info = TweenInfo.new(1)

local up = {}
local up = UDim2.new(0.25, 0,0.75, 0)

local down = {}
local down = UDim2.new(0.25, 0,1, 0)

local uptween = tween:Create(clone,info,up)
local downtween = tween:Create(clone,info,down)

--The text function
function textfunction.movetext()
	print("The beginning of the function are working")
	clone.Text = value
	clone.TextTransparency = 0
	
	--Moving the text
	uptween:Play()
	uptween.Completed:Connect(function()
		wait(1)
		print("The up tween of the function are working")
		downtween:Play()
		downtween.Completed:Connect(function()
			wait(1)	
			--Destroy the text so it wouldn't just stay there when it's useless
			clone:Destroy()
			print("The function is sucessfully done")
		end)
	end)
end

return textfunction

Try replacing with tween:Create(clone,info,{up}) . Same for the down one.

But that is already in the script

I added one extra thing, which is { }, see closely on the up.

Oh, I added that, but still not working.

I see it now. Try replacing it with tween:Create(clone,info,{Position = up}), and do the same for the down one.

Thanks, there is no error shown anymore, but the tween is not working for some reason. The tween is supposed to move the text up and then down, but I did not see it move at all. Also, the first few lines that is supposed to change the text transparency and the text, it didn’t.

function textfunction.movetext()
	print("The beginning of the function are working")
	clone.Text = value
	clone.TextTransparency = 0
	
	--Moving the text
	uptween:Play()
	uptween.Completed:Connect(function()
		wait(1)
		print("The up tween of the function are working")
		downtween:Play()
		downtween.Completed:Connect(function()
			wait(1)	
			--Destroy the text so it wouldn't just stay there when it's useless
			clone:Destroy()
			print("The function is sucessfully done")
		end)
	end)
end