Alright, what would happen to visuals? and upcoming islands ect, how would that load?
just like normal only thing that changes is that the water is now only loaded around the player
you don’t need to delete the islands, you just have to delete the water
Use this function ReplaceMaterial
the main problems that this have is waterfalls, this is going to delete any water falls you might have on your islands,
how should the script to do this look like?
Alright listen, asking people to make assets and scripts for you is against the rules of developer forum, but I did make the script, next time please try your best to make the script youself.
Also, change the WaterSize
variable to make the water bigger.
And make sure that there is a part called “WaterRef” in your workspace.
Put this script in a LocalScript in the StarterPlayerScripts
--Configuration
local WaterSize = 40;
--Services
local RunService = game:GetService("RunService");
--Assets
local Terrain = game.Workspace:WaitForChild("Terrain");
local WaterRef = game.Workspace:WaitForChild("WaterRef");
--User
local Player = game.Players.LocalPlayer;
local Camera = game.Workspace.CurrentCamera;
local Character;
local HumanoidRootPart;
--Variables
local CreateSize = Vector3.new(WaterSize, WaterSize, WaterSize);
local ClearSize = (CreateSize * 2);
--Functions
local function GetWaterRefTop()
--Get the top position of the water ref
return (WaterRef.Position.Y + (WaterRef.Size.Y / 2));
end
local function ClearWater(Position)
--Create the region
local Region = Region3.new((Position + (ClearSize * -1)), (Position + ClearSize));
--Clear all water neaby
Terrain:ReplaceMaterial(Region, 4, Enum.Material.Water, Enum.Material.Air);
end
local function CreateWater(Position)
--Create the water
Terrain:FillBlock(CFrame.new(Position), CreateSize, Enum.Material.Water);
--Cut off all water above the sea level
Terrain:FillBlock(CFrame.new(Position.X, (GetWaterRefTop() + (WaterSize / 2)), Position.Z), CreateSize, Enum.Material.Air);
end
RunService.RenderStepped:Connect(function()
--Get needed assets and variables
Character = Player.Character;
if Character then
HumanoidRootPart = Character.PrimaryPart;
end
local CameraPosition = Camera.CFrame.Position;
CameraPosition = ((CameraPosition * Vector3.new(1, 0, 1)) + Vector3.new(0, GetWaterRefTop(), 0));
--Clear all water near the Camera and the character
ClearWater(CameraPosition);
if HumanoidRootPart then
ClearWater(HumanoidRootPart.Position);
end
--Create water near the Camera and the characer
CreateWater(CameraPosition);
if HumanoidRootPart then
CreateWater(HumanoidRootPart.Position);
end
end)
Ok i read your topic i guess there’s a solution whenever you think the sea generation, you add a teleportor to another place dividing your game into different oceans and seas.
I mean you will have to make multi place game.
This is a concept map about what i mean to say.
If you were willing to forgo the SmoothTerrain aspect to the water/islands you try to do what Pirates of the Caribbean Online did with its overworld ocean. The boat stayed stationary while tiled meshes of water and small-scale versions of the islands were dotted about. Sailing moved the whole ocean (client sided) rather than moving the boat, and the bouncing of the sea was just lerping the mesh(es) around the boat. You’d lose out on some immersion but it sounds drastically easier to implement and would cut down on the tedium of designing such an enormous map.
would it be single player? and if its multiplayer, would all the players be together?
I see, thank you for this, I see that that was against the TOS, I was more asking of how I am supposed to make that more than the exact script
Yes, this is multiplayer, it’s supposed to be a large player server as well, due to the fact it has a lot to do with multiple people, like a team game.
I see, designs not the problem, it’s lag.
You are describing a 10k x 10k smooth terrain map featuring detailed underwater and overworld features, any implementation of this is likely going to pose problems on the developer/players. There is a way to save terrain in Region3 definitions with TerrainRegion (roblox.com) and you may be able to emulate a chunk-loading system a la Minecraft, but I’d really consider shortcutting this much work with a simple mesh overworld to act in place of physically moving players through an ocean in-between islands. Check out POTCO like I said, it was a very fun game but also a clever way to simplify the vast space of the game by sectioning it into islands or ocean, not both.
he said he DID NOT want to do that tho
I just don’t know if it’s possible to have such a large make with water and it does not crash, I can’t do fake/part water because that is ugly…
Maybe you can use StreamingEnabled.
elaborate, I’m mainly a builder, don’t give exacts but explain a bit.
I don’t suggest that.
I would seriously prefer surfing on a super fast speedboat on a giant ocean instead of a slow one on a smaller ocean.
I fully agree, the game won’t feel fun with a small ocean/sea.