Rather than trying to tween the transparency you could always tween a number value between 0 and 1 (i.e. 0-100%) and then hook Change:Connect() each time the Value changes, and apply those to whatever property you wish:
local number_value = Instance.new("NumberValue");
number_value.Value = 0; -- start at 0 (0%)
-- everytime the Tween changes the number_value's Value it is sent here
-- so we can either store it or apply it to whatever property we wish
number_value.Changed:Connect(function(progress)
-- apply the progress (inputted to this function) to the property we want to change
workspace.CoreLasers.CoreLaser1.Cone.Attachment.Beam.Transparency = progress;
end)
local tweenInfo = TweenInfo.new(1); -- 1 second time length
local tween = game.TweenService:Create(number_value,tweenInfo,{Value=1}); -- finish at 1 (100%)
-- play the tween, wait for it to complete, and destroy it...
tween:Play();
tween.Completed:Wait();
tween:Destroy();
Okay, but I would encourage this way because it is transferable to any tween you require, you can always use this and store the values into a table and apply them to a NumberSequence using the stored table values. You can also store all tween transitions across multiple timescales and use them to move the camera, move parts, tween GUI transparencies, tween part colours and transparencies. And all using the same piece of code if you Modularise it.
it said precisely everytime it tried effecting a laser (theres multiple, now you know), it gave me the error "Unable to assign property Transparency. Numbersequence expected, got number", but continued with the script?
Okay you may be better to store the values in a table and build the number sequence after the tween completes. Or you could just apply them like this in the Connect function:
local ns = NumberSequence.new{ NumberSequenceKeypoint.new(progress, progress) };
-- then apply ns to the beam transparencies
workspace.CoreLasers.CoreLaser1.Cone.Attachment.Beam.Transparency = ns;
-- etc