Object Gimmicks
Sponges
Sponges are internally labelled as type A,B,C,D and E, dictated how they expand. For B, they expand equally in all directions. In A and D, the bottom face of the sponge stays in the same place, causing it to expand upwards. In C and E, the top face stays static, causing it to expand downwars. In D and E, the back face stays in the same place, causing it to expand forward.
An unusual quirk of the way these five classes have been set up is that it causes the sponges to shift from their coordinates. In the above screenshot of J07 Outrageous Station (Fld_OctTrench_OctMsn), we can see Obj_SpongeAOcta and Obj_SpongeCOcta occupying the same coords of (735, 285, -90). In the actual game, these sponges become adjacent to each other, with A moving up 5 units and C moving down 5 units.
Normal sponges scale up to 60 units in all dimensions. Rectangles scale to the same degree except for X, which scale to 90 units. Sponges marked Small only grow to 45 units.
Ink-Switch (Spinning Target)
In order to get obejcts to move in accordance with the progress of an Ink-Switch (SwitchShock), you need RailTogglePoint. These are attached in the same way as Obj_AbstractLift, connect it to the rail with RailableParams_Rail, and connect the objects you want moved with ActorBindable. Connect the SwitchShock to the RailTogglePoint with SwitchableSendTo. As far as I can tell, it must be attached to the destination rail point, not the original position.
In Fld_OctCleaner_OctMsn, every RailTogglePointOcta has the following parameters.
AccOff: 0.01000
AccOn: 0.10000
DetectPlayerIsNearDistanceXZ: 100.00000
IsFollowRailPointRotate: false
IsFollowRailRotate: false
IsLinkDest: true
IsSwitchStopSmooth: true
LayerConfigName: Cmn
ModelName: null
OutAreaSpeedRate: 1.00000
QuakeAmplitudeCoef: 1.00000
QuakeDecrement: 0.20000
QuakeFrequency: 0.50000
RailableParams__SolveType: !l 0
SwitchStopFrame: !l 0
SwitchStopRegist: 0.05000
SwitchableParams__InitialState: !l 0
SwitchableParams__RespawnReset: !l 2
Team: !l 2
However, the following parameters are different.
SpeedOff: 0.15000
SpeedOn: 0.80000
TerminateAtTerminal: false
Objects attached to Ink-Switches typically undo slower than the progress.
Canned Weapons
Canned Main and Sub weapons are handles by an object called Obj_ItemCanMainSub. The “MainWeaponName” parameter is used to decide the main, “SubWeaponName” is for the sub, with these parameters being set to null when the other is in use.
Canned Specials are simply called “Obj_” and the special's internal name, i.e. Obj_SuperLanding for a canned Splashdown.
Obj_CanBuildMachine is used to infinitely spawn canned weapons. Most often it is used to spawn canned specials, but can also be used to spawn Subs or Specials, as seen in Girl Power Station's weapon select podium.
Using it is as simple as linking it to an instance of the relevant can with the DstCan link.
Ink Pistons/Ink Sticks
Internally referred to as Obj_GeyserAuto(Octa).
- DelayFrame: !l 0
DurationFrame: !l 180
IntervalFrame: !l 240
IsDisplayBaseModel: !l 0
IsKeepDuration: false
IsLightType: false
IsLinkDest: false
IsMovedByPlayer: false
IsSetCameraXluFixBB: false
IsSwitchDrivenType: false
LayerConfigName: Cmn
Length: 500.00000
Links: {}
MovingFrame: !l 20
Radius: 20.00000
Team: !l 0
UnitConfigName: Obj_GeyserAutoOcta
- DelayFrame: Frames before the piston first activates
- DurationFrame: Frames that it is active for
- IntervalFrame: Frames between activations
- IsKeepDuration: Boolean that is true if the ink piston never retracts
- Length: Length of piston (note that the game only renders the last 500 units worth of piston. The hitbox is still active, but that's of little use to a player)
- Radius: Radius of piston (note that the object itself never changes size, only the hitbox. It is recommended to keep it as 20)
- Team: If set as 0, the piston's hitbox will repel, but will not damage. The fx surrounding the piston are the player's colour, but not the piston itself.
If you want to have two sets of pistons that alternate, you can use this formula:
x is the time you want the piston to be active for.
y is the time that neither piston is active for.
Piston 1:
- DelayFrame: !l 0
DurationFrame: !l x
IntervalFrame: !l x + 2y
Piston 2:
- DelayFrame: !l x + y
DurationFrame: !l x
IntervalFrame: !l x + 2y
Dash Tracks/Panels
Dash tracks are internally referred to as Obj_DashPanel.
The distances in the below table are measured from the start point of the panel.
| Label | Distance | Height |
|---|---|---|
| Wall | 195 | 0 |
| VTOL1 | 90 | 0 |
| VTOLEx1 | 90 | 0 |
| 10 | 155 | 7 |
| 30 | 180 | 30 |
1VTOL has strange properties compared to other panels, may need further study
