Плаваюча платформа

Щоб створити плаваючу платформу з VehicleSeat (наприклад, щось на кшталт літаючого або морського транспорту), потрібно поєднати VehicleSeat з фізикою, яка тримає платформу в повітрі або на воді. Ось покрокова інструкція:


🔧 1. Створення платформи

  1. Відкрий Roblox Studio.

  2. Створи Part (Part -> Block) — це буде основа платформи.

  3. Задай йому бажані розміри (наприклад, 20x1x20).

  4. Увімкни Anchored = false, щоб він міг рухатись.

  5. Увімкни CanCollide = true.


🚗 2. Додай VehicleSeat

  1. Увійди в Model вкладку.

  2. Створи VehicleSeat (Model -> VehicleSeat) або знайди в Explorer -> Right Click -> Insert Object -> VehicleSeat.

  3. Помісти VehicleSeat на верхню частину платформи (центровано).

  4. Увімкни Anchored = false, CanCollide = true.


🧷 3. Об’єднай все в модель

  1. Виділи всі частини: платформу, VehicleSeat.

  2. Натисни Ctrl+G (або правий клік -> Group), щоб створити Model.

  3. Додай PrimaryPart (Platform або VehicleSeat).


🌊 4. Додай "плавання" або "літання"

Тут можна використати BodyPosition або VectorForce для підйому:

Варіант 1: BodyPosition (простий)

  1. Увійди в платформу (не в VehicleSeat).

  2. Правий клік → Insert ObjectBodyPosition.

  3. Налаштуй:

    • Position — де ти хочеш, щоб вона "висіла".

    • MaxForce = Vector3.new(0, 50000, 0) — тільки по осі Y.

    • D = 1000 (демпфування), P = 1000 (сила).

  4. Це триматиме платформу на певній висоті.

Варіант 2: AlignPosition (сучасніший)

  • Аналогічно, додай AlignPosition з Attachment (краще для плавного руху).


🎮 5. Додай скрипт управління (опціонально)

VehicleSeat вже має вбудоване управління:

  • W/S — вперед/назад

  • A/D — поворот

Ти можеш додати скрипт для інших налаштувань:

local Engine = script.Parent.Parent.Engine.BodyThrust --The Force making the boat move local SForce = script.Parent.Parent.Steer.BodyAngularVelocity -- The force making the boat turn local DSeat = script.Parent -- The driver seat local Base = script.Parent.Parent.Base -- The base part of the boat speed = 5000 -- The force of 'Engine' SteerSpeed = 25 -- The force of SForce BaseDensity = .1 -- Lower this is your boat can't float, make it higher to make it go more in the water DSeat.Changed:Connect(function(p) if p == "ThrottleFloat"then Engine.Force = Vector3.new(0,0,speed * DSeat.ThrottleFloat) end if p == "SteerFloat"then SForce.AngularVelocity = Vector3.new(0,-SteerSpeed*DSeat.SteerFloat,0) end end) Base.CustomPhysicalProperties = PhysicalProperties.new(BaseDensity,0,0)

🎮 5. Додай скрипт для зварювання всих частин моделі

local model = script.Parent

local mainPart = model.PrimaryPart or model:FindFirstChild("MainPart")


if not mainPart then

warn("Головна частина (PrimaryPart) не задана!")

return

end


for _, part in pairs(model:GetDescendants()) do

if part:IsA("BasePart") and part ~= mainPart then

local weld = Instance.new("WeldConstraint")

weld.Part0 = mainPart

weld.Part1 = part

weld.Parent = mainPart

end

end

Обов’язково:

  1. Задай PrimaryPart для моделі:

    • Виділи модель.

    • У Properties знайди поле PrimaryPart → вибери центральну частину моделі.

    • Якщо нема — перейменуй головну частину на MainPart, тоді скрипт сам її знайде.

  2. Всі частини мають бути Anchored = false, щоб вони фізично поводились правильно.

  3. Цей скрипт можна запускати один раз, наприклад при створенні моделі — далі з'єднання залишаться.