I'm working on a game where random disasters are generated through a module script, and I'm currently making a flood. However, since the touch event isn't quite the best for this, I am considering region3. I want to make the size of the region3 rise every 2 seconds, however, I can't seem to add a Vector3 to the Region3. I have one error in the output.
Disasters (Module script):
> local TweenService = game:GetService("TweenService")
> local RoundEnded = game.ReplicatedStorage.RoundEnded
> local Disaster = {}
> Disaster.__index = Disaster
>
> function Disaster.new(DisasterType)
> local self = {}
> setmetatable(self, Disaster)
> self.DisasterType = DisasterType
>
>
> if self.DisasterType == "Flood" then
> local floodRegion = Region3.new(workspace.Baseplate.Position - (workspace.Baseplate.Size/2), workspace.Baseplate.Position + (workspace.Baseplate.Size/2))
> self.Flood = Instance.new("Part")
> self.Flood.Position = workspace.Baseplate.Position + Vector3.new(0,0.5,0)
> self.Flood.Size = floodRegion.Size
> self.Flood.Name = "Flood"
> self.Flood.Anchored = true
> self.Flood.CanCollide = false
> self.Flood.Transparency = 1
> self.Flood.Parent = workspace
>
> for round = 30, 1, -1 do
> floodRegion.Size += Vector3.new(0,1,0)
> self.Flood.Size = floodRegion.Size
> workspace.Terrain:FillBlock(self.Flood.CFrame, self.Flood.Size, Enum.Material.Water)
> if self.Flood.Size.X > 18 then
> print("1")
> end
> wait(2)
> end
>
> end
> return self
> end
>
> function Disaster:GetDisaster()
> local disasters = {"Flood"}
> local rng = math.random(1,#disasters)
>
> if rng == 1 then
> Disaster.new(disasters[1])
> return disasters[1]
> end
>
> return disasters
> end
>
> function Disaster:RemoveDisaster()
> self.Parent = nil
> end
>
> return Disaster
>
Error message:
Size cannot be assigned to - Server - Disasters:24
As always, thank you for your time and I appreciate any help.

1 comment
I definetly think there's a better way to do this however, because recalculating region3 every second sounds a bit unoptimised.