Porting From NewSmooth
Warning
This tutorial is still a work in progress
For this tutorial, we will be referencing the Intamin NewSmooth converter.
Specifically, we will be looking at the SuperSpine TrackType.
Additionally, we will be adding our own twist to the crossbeams that you cannot normally do with NewSmooth without switching converters.
Warning
This tutorial will not go over setting up physics for physics based coasters.
Rails
-- physics rails
local rails = {
leftrail = {
current = Vector3.new(-3,0,0),
previous = Vector3.new(-3,0,0),
Horizontal = true,
BrickColor = ba.RailColor,
Size = Vector3.new(1,1,0),--width is X, height is Y, and length is Z ALWAYS
Rotation = Vector3.new(),
Mesh = "CylinderMesh",
Meshscale = Vector3.new(1,1,0.2),--width is X, height is Y, and length is Z ALWAYS
Meshoffset = Vector3.new(),
Properties = {--any properties you want on the bricks like Friction or Material or Transparency
Friction = 0,
}
},
rightrail = {
current = Vector3.new(3,0,0),
previous = Vector3.new(3,0,0),
Horizontal = true,
BrickColor = ba.RailColor,
Size = Vector3.new(1,1,0),--width is X, height is Y, and length is Z ALWAYS
Rotation = Vector3.new(),
Mesh = "CylinderMesh",
Meshoffset = Vector3.new(),
Meshscale = Vector3.new(1,1,0.2),--width is X, height is Y, and length is Z ALWAYS
Properties = {
Friction = 0,
},
},
}
--- Super Spine rails
rails = {
beam1 = {
current = Vector3.new(0,-1-0.3,0),
previous = Vector3.new(0,-1-0.3,0),
Horizontal = false,
BrickColor = ba.SpineColor,
Size = Vector3.new(1.8,2,0),--width is X, height is Y, and length is Z ALWAYS
Rotation = Vector3.new(),
Mesh = "BlockMesh",
Meshscale = Vector3.new(1,1,0),--width is X, height is Y, and length is Z ALWAYS
Meshoffset = Vector3.new(),
Properties = {
CanCollide = false,
},
},
beam2 = {
current = Vector3.new(0,-2.3,0),
previous = Vector3.new(0,-2.3,0),
Horizontal = true,
BrickColor = ba.SpineColor,
Size = Vector3.new(1.8,1.8,0),--width is X, height is Y, and length is Z ALWAYS
Rotation = Vector3.new(),
Mesh = "CylinderMesh",
Meshscale = Vector3.new(1,1,0),--width is X, height is Y, and length is Z ALWAYS
Meshoffset = Vector3.new(),
Properties = {
CanCollide = false,
},
},
},
RailSegment
Misc Part Properties
- BrickColor
- Properties
Works by cloning the given part.
See size for Size property
Current and Previous
For all rails, the current and previous are the exact same. Crossbeams have a different current and previous.
RailSegment.Offset
Horizontal
Horizontal is a value which tells if this rail should be rotated along the _ axis. It is used primarily by CylinderMesh rails.
In the future, this could be changed to allow all axis.
RailSegment.Horizontal
Size
RailSegment.Size
Rotation
RailSegment.Rotation
Ties
-- Super Spine ties
ties = {
tie1 = {
ClassName = "Part",
offset = CFrame.new(0,0,0),
BrickColor = ba.TieColor,
Mesh = "BlockMesh",
Meshscale = Vector3.new(1,1,1),--width is X, height is Y, and length is Z ALWAYS
Meshoffset = Vector3.new(),
Properties = {
CanCollide = false,
Size = Vector3.new(6, .6, .6),
},
},
},
TrackObject
A TrackObject is an object placed at a given point on the track. It does not require resizing as Rails and Crossbeams stretch to expand to the whole segment.
A TrackObject's object can be either anything that is a BasePart or a Model with it's PrimaryPart set.
It was named TrackObject instead of Tie to signify the versatility of this Segment. You will see in the later section Brakes, Transport, and MagLaunch/Brakes how it could it be used for these elements.
Misc Part Properties
- ClassName
- BrickColor
- Mesh
- MeshScale
- MeshOffset
- Properties
TrackObject.Object
Offset
TrackObject.Offset
Crossbeams
-- Super Spine Crossbeams
crossbeams = {
crossbeam = {
current = Vector3.new(3,0,0),
previous = Vector3.new(-3,0,0),
Horizontal = false,
BrickColor = ba.SpineColor,
Size = Vector3.new(.6,.6,0),--width is X, height is Y, and length is Z ALWAYS
Rotation = Vector3.new(),
Mesh = "BlockMesh",
Meshscale = Vector3.new(1,1,0),--width is X, height is Y, and length is Z ALWAYS
Meshoffset = Vector3.new(),
Properties = {
CanCollide = false,
},
},
},
Misc Part Properties
- BrickColor
- Properties
Current
CrossbeamSegment.EndOffset
Previous
CrossbeamSegment.StartOffset
Horizontal
CrossbeamSegment.Horizontal
Size
CrossbeamSegment.Size
Rotation
CrossbeamSegment.Rotation
MeshData
CrossbeamSegment.MeshData
Similar to RailSegment's MeshData.
Chainlift
A Chainlift is just a square rail with a chain texture.
Brakes, Transport, and MagLaunch/Brakes
These elements in NewSmooth are designed to stretch to fit a variety of Segment lengths.
It is recommended you convert these to a model and use them as TrackObjects.