Actions

SCHG

Sonic Generations/Objects

From Sonic Retro

SCHG: Sonic Generations
Main Article

Objects
Collision Properties

File Index
BB

BB2
BB3

How-To
Import Levels

Create Breakable Objects
Create Splines

In Sonic Generations, there are several objects that have special properties to them. If Sonic can interact with something in the level (such as push it, ride it if it's moving, or destroy it), chances are it's an object. Almost anything that moves, or can be moved, is an object with the exception of a few dynamic terrain objects (such as the Eagles in Dragon Road Day in Sonic Unleashed; no such similarity seems to be in Sonic Generations).

There are a vast amount of objects, some that are general purpose objects and others that are level specific, but can be added to other levels if necessary (through modifying the resources, but that's for another guide).

Contents

Common

Common Properties

The following properties are common to many objects. However, some of the properties listed here are not in some objects.

IsCastShadow

  • If true, this will make the object cast a shadow. If false, the object won't cast a shadow.
    • Some objects don't cast a shadow regardless, clouds being one of them even though they have this property.

Range

  • This property sets the draw distance of the object. If the range is really low, it probably won't be able to be seen from far away. If it's really high, then you can see it from a mile away.
    • Sometimes this needs to be set really high in the case of cameras and camera changes; not only is this the draw distance, but it is also the distance at which an object exists. If objects try reacting with other objects that aren't loaded / in the same range, expect a crash.

SetObjectID

  • This is the object's ID, which is used to link it with other objects. You shouldn't really mess with this property.

OutOfControl

  • This sets how long the controls lock up after touching the object.
    • Oddly enough, boost doesn't seem to be affected. The only time it is seems to be on rails... sometimes.

IsTo3D

  • If true, Sonic will revert to the 3D perspective if he's in a 2D section. If false, Sonic will not switch back to the 3D perspective.

Ring

IsLightSpeedDashTarget

  • If set to true, you can use the light dash on the ring, and the ring will emit a glow. If false, you cannot use the light dash on the ring.

Item

ItemType

  • 0 = 1-Up

NOTE: ItemType of 1 or higher will cause the object to not exist.

GoalSignboard/GoalRing

ResultsPosition

  • This is the place where the results screen happens. If you want to modify the rotation of the results screen, rotate the goal object itself.

ClassicItemBox

IsRevive

  • If set to true, the item box will respawn after use. If false, once the item box is used, it will not respawn.

ItemType

  • 1 = 10 Rings
  • 2 = 1-Up
  • 3 = Speed Shoes
  • 4 = Invincibility
  • 5 = Skateboard
  • 6 = Undefined
  • 7 = Undefined (presumably 0)
  • 8 = Fire Shield
  • 9 = Bubble Shield
  • 10 = Thunder Shield

NOTE: An ItemType of 0/Undefined will simply cause the item box to not exist.

TreasureSearchHideType

  • If 0, the item cannot be detected via the treasure search skill. If 1, it can be found through the treasure search skill.

Springs

FirstSpeed

  • This sets Sonic's initial speed from the spring.

KeepVelocityDistance

  • This parameter sets how long Sonic keeps his velocity for before gravity starts acting on him. If you set it to a very high number (such as 5000), gravity will not work on Sonic and he'll keep on going forward until he hits another spring or object that snaps him out of it.

MotionType (Modern)

NOTE: A MotionType of 7 or higher will cause the game to crash when the spring is touched.

m_IsMonkeyHunting

  • If false, the spring acts normally. If true, Sonic will be steered automatically to m_MonkeyTarget after using the spring. Note that an accurate angle/speed is still needed to reach the point.

AdlibTrickJump

SizeType

  • If set to 1, the trick panel will be its normal size (like the trick panel before the waterfall in Green Hill Act 2). If 0, the trick panel will be slightly smaller than 1.

UpReel

IsWaitUp

  • If false, the UpReel will be down by default so Sonic can use it anytime that he wants to. If true, the UpReel will wait for an event to activate it, then Sonic can use it.
    • This was used in Unleashed a lot, but in Generations it's broken and has no fix as of yet. Not recommended at all.

ObjectPhysics

These are objects that are usually breakable, however some of them are simply scenery objects.

Type

  • bpc_obj_debrisA
  • bpc_obj_debrisB
  • bpc_obj_debrisC
  • bpc_obj_debrisDa
  • bpc_obj_debrisDb
  • Bpc_obj_redcar
  • Bpc_obj_taxi
  • BrkDice
  • BrkTip
  • cmn_obj_tripplate
  • cpz_obj_breakbox
  • cpz_obj_breakboxtall
  • cpz_obj_pipelinecapA
  • cpz_obj_pushbox
  • cpz_obj_roundirontower
  • cpz_obj_shutter
  • csc_obj_barricadeA
  • csc_obj_barricadeB
  • csc_obj_roadconeA
  • csc_obj_roadconeB
  • csc_obj_roadconeC
  • csc_obj_roadconeD
  • cte_obj_barricadeA
  • cte_obj_bench
  • cte_obj_cablecar
  • cte_obj_chairA
  • cte_obj_house
  • cte_obj_house02
  • cte_obj_hydrantA
  • cte_obj_paperbox
  • cte_obj_parasolA
  • cte_obj_parasolB
  • cte_obj_parkingmeter
  • cte_obj_parkingsign
  • cte_obj_post
  • cte_obj_pushbox
  • cte_obj_signal
  • cte_obj_tableA
  • cte_obj_telbox
  • cte_obj_trashbox
  • cte_obj_tree
  • cte_obj_woodboxA
  • euc_obj_barrel
  • euc_obj_barrelgold
  • euc_obj_boardA
  • euc_obj_boardB
  • euc_obj_breakirongate
  • euc_obj_breakirongates
  • euc_obj_chain
  • euc_obj_chair01
  • euc_obj_chair02
  • euc_obj_fence
  • euc_obj_flagA
  • euc_obj_librarydoor
  • euc_obj_librarydoorside
  • euc_obj_lid
  • euc_obj_manyflagA
  • euc_obj_ObstructwindowB
  • euc_obj_parasol01
  • euc_obj_pole
  • euc_obj_polebase
  • euc_obj_potplant_benjaminJ
  • euc_obj_potplant_dracaenaH
  • euc_obj_potplant_green
  • euc_obj_potplant_ivyH
  • euc_obj_potplant_mixFF
  • euc_obj_pushbox
  • euc_obj_smallbarrel
  • euc_obj_tableA
  • euc_obj_tableB
  • Floor_4bxh8
  • ghz_obj_tn1_purplerock
  • ghz_obj_tn1_purplerockmini
  • IronBox
  • IronWoodBox
  • MotionTest
  • pipe1
  • pipe2
  • pla_ks2_barricade
  • pla_ks2_oildrum
  • pla_ks2_plabox
  • pla_ks2_safetydrum
  • pla_obj_ExcavatorCutter
  • pla_obj_ExcavatorDrill
  • pla_obj_Redlight
  • pla_obj_signarrowA
  • PulleyBase
  • PulleyStand
  • sph_obj_barricadeA
  • sph_obj_breakwindowA
  • sph_obj_breakwindowB
  • sph_obj_breakwindowC
  • sph_obj_breakwindowD
  • sph_obj_cartA
  • sph_obj_chairA
  • sph_obj_doorA
  • sph_obj_drumA
  • sph_obj_drumsetA
  • sph_obj_exhaustportA
  • sph_obj_glassgroundA_000
  • sph_obj_glassgroundA_001
  • sph_obj_guardrailA
  • sph_obj_helicopter_stop
  • sph_obj_hoteltableA
  • sph_obj_nolightcarA
  • sph_obj_nolightcarB
  • sph_obj_nolightcarC
  • sph_obj_nolightcarD
  • sph_obj_potplantB
  • sph_obj_roadcornA
  • sph_obj_roadcornB
  • sph_obj_roketglassA
  • sph_obj_roketglassB
  • sph_obj_searchlight_blue
  • sph_obj_searchlight_red
  • sph_obj_searchlight_ylw
  • sph_obj_sofaA
  • sph_obj_tableA
  • sph_obj_trunk
  • ssh_obj_bobsleigh_gate
  • ssh_obj_breakroof01A
  • ssh_obj_breakroof01B
  • ssh_obj_breakroof02
  • ssh_obj_broken-door
  • ssh_obj_flagA
  • ssh_obj_floorx
  • ssh_obj_pot
  • ssh_obj_pushbox
  • ssh_obj_signarrow
  • ssh_obj_whalehead
  • ssh_obj_whalestatue
  • ssz_obj_breakgroundA_02_brk_001
  • ssz_obj_breakgroundA_02_brk_002
  • ssz_obj_breakgroundA_02_brk_003
  • ssz_obj_breakgroundA_02_brk_004
  • ssz_obj_breakgroundA_02_brk_005
  • ssz_obj_breakgroundA_02_brk_006
  • ssz_obj_breakgroundA_02_brk_007
  • ssz_obj_breakgroundA_02_brk_008
  • ssz_obj_breakgroundA_02_brk_010
  • ssz_obj_breakgroundA_02_brk_011
  • ssz_obj_breakgroundA_02_brk_012
  • ssz_obj_breakgroundA_02_brk_013
  • ssz_obj_breakgroundA_02_brk_014
  • ssz_obj_breakgroundA_02_brk_015
  • ssz_obj_breakgroundA_02_brk_016
  • ssz_obj_breakwindowA
  • ssz_obj_breakwindowB
  • ssz_obj_breakwindowC
  • ssz_obj_breakwindowD
  • ssz_obj_brkwinAnoBound
  • ssz_obj_debrisA_000
  • ssz_obj_fallingdebris_000
  • ssz_obj_guidestick_20M
  • ssz_obj_guidestick_7M
  • ssz_obj_signarrow
  • ThornBallDynamic
  • ThornContainerSideBrk
  • ThornContainerUpBrk
  • ThornCylinder2M
  • ThornCylinder3M
  • WoodBox

Switch

Type

  • 0 = Once turned on, it will not turn off.
  • 1 = Once turned on, it will turn off once stepped off.
  • 2 = Once turned on, it will not turn off until it reaches the time specified (in seconds) by "OffTimer"

General Floor

The model of the floors depend on the stage. The types and sizes are specific to each stage's resources.

Amplitude

  • This sets how far the platform moves if movement is enabled.

Cycle

  • This sets the movement speed of the floor if movement is enabled.

MoveType

  • 0 = No movement
  • 1 = Up and down movement
  • 2 = Left and right movement

FloorSize

  • Normally between 0-3. The bigger the FloorSize, the bigger the platform will be.

FloorType

  • 0 = Regular Platform
  • 1 = Falling Platform
  • 2 = Block

DashPanel/ClassicDashPanel

IsUseDelayCamera

  • If set to true, the camera will be delayed upon touching the dash panel. If set to false, the dash panel will not delay the camera.

SetRigidBody

This object creates an invisible wall, but however, the collision is a little off in SonicGLVL for whatever reason.

Collision_Height

  • Sets the invisible wall's height.

Collision_Length

  • Sets the invisible wall's length.

Collision_Width

  • Sets the invisible wall's width.

Cannon

BaseVel

  • This parameter sets how hard the cannon launches Sonic. If it's too high, Sonic will miss the target(DstPos). Likewise, if it's too low, Sonic will fall short of the targeted position.

DstPos

  • This sets the position to where the cannon launches Sonic.

Collision Triggers

The following properties are common to all collision triggers.

Common Properties

Collision_Height

  • Sets the collision trigger's height.

Collision_Length

  • Sets the collision trigger's length.

Collision_Width

  • Sets the collision trigger's width.

GravityChangeCollision

This collision trigger changes the gravity inside of the collision box.

JumpCollision

This object is basically a scripted slope, though it can be used with a high enough pitch to help a spring (like in Crisis City Act 2).

ImpulseSpeedOnBoost

  • Sets the speed which Sonic is launched at when boosting.

ImpulseSpeedOnNormal

  • Sets the speed which Sonic is launched at normally (without boosting).

Pitch

  • Sets the pitch of which Sonic is launched at.

SpeedMin

  • This sets how fast Sonic has to go in order to trigger the collision.

LaunchSpinCollision

This object makes Classic Sonic spin at a set velocity. However, it has no effect on Modern Sonic.

StumbleCollision

This object makes Sonic trip.

LaunchVelocity

  • Sets Sonic's speed after tripping.

NoControlTime

  • This sets how much time that you lose control after tripping.

FallDeadCollision

When Sonic passes through this object, he dies.

SlidingCollision

This object makes Sonic start sliding.

Cameras

Common Properties

The following properties are common to many cameras. However, some of the properties listed here are not in some cameras.

Collision_Height

  • Sets the camera's collision height.

Collision_Length

  • Sets the camera's collision length.

Collision_Width

  • Sets the camera's collision width.

IsCastShadow

  • This property doesn't seem to do anything with cameras.

Range

  • This property doesn't seem to do anything with cameras.

SetObjectID

  • This is the object's ID, which is used to link it with other cameras.

Distance

  • This sets how far away the camera is from Sonic.

Pitch

  • This sets the pitch of the camera.

ChangeVolumeCamera

Many camera objects are activated via a nearby ChangeVolumeCamera, which sets the collision area where a custom camera will be active (e.g. ObjCameraPan).

Ease_Time_Enter

  • This sets how fast the camera switches to the custom camera.

Ease_Time_Leave

  • This sets how fast the custom camera switches back to the normal camera.

Target

  • This is the custom camera's SetObjectID (e.g. 10005).

ObjCameraBlend

  • Presumably blends two cameras together.

ObjCameraFix

TargetPosition

  • This is the position that the camera will lock onto. The direction that the camera points is from the camera object itself.

ObjCameraNormal

Resets the camera, after being activated by a ChangeVolumeCamera or CameraCollisionBoard presumably.

CameraCollisionBoard

Used in the beginning of Seaside Hill, this is like a ChangeVolumeCamera since it activates cameras, but instead of using a rectangle to define the area, it acts more like a wall. When Sonic passes it, the B camera activates. When he passes in the opposite direction, the A camera activates (defined by the SetObjectID for ACameraID and BCameraID respectively). However, if Sonic doesn’t pass the collision exactly, the camera will be stuck until Sonic hits another CameraCollisionBoard or dies. The LinkObjID Property can be used to link other CameraCollisionBoards by ID into a set, so that when Sonic passes through all of them, the camera returns to normal (by setting an ID of 0). The camera also returns to normal when you go into a 2D section and leave it.

ObjCameraParallel

This camera stays a set distance away from Sonic and always points in the same direction regardless of Sonic’s own direction.

Yaw

  • This rotates the camera. Do not rotate the actual object itself; it does nothing.

ObjCameraPan

Camera looks at Sonic from the location of the camera itself.

CameraPositionMode

  • This sets whether the camera’s position stays stationery or follows Sonic at a user-set distance.

ObjCameraPanVertical

Similar to ObjCameraPan, but the camera aligns vertically to Sonic’s level.

ObjCameraPoint

Camera stares at this object, regardless of the Target property.

ObjCameraObjectLook

Stares at an object, even if it moves.

TargetObject

  • The object that it looks at. Target doesn't seem to do anything.

ObjCameraPathPath

Hooks to a set path ID to move the camera. Crashes if the ID doesn’t exist.

ObjCameraPathParallel

Acts much like the ObjCameraParallel, but will auto-rotate if the path Sonic is currently on turns (works best in 2D sections, see my video at http://www.youtube.com/watch?v=eyeWQ-G_5lI&feature=player_detailpage#t=55s for a demonstration)

ObjCameraVertical

Like the ObjCameraPanVertical, but the camera faces this object, rather than pointing away.

ObjCameraTube

Made for places like Green Hill Modern’s cave after the waterfall, the camera “rides” the path set by the PathID, and points forward.

ChangeNormalCameraParam

Changes the default camera to different settings (e.g. distance, Fovy, etc). Dying and going into a 2D section will revert the camera to defaults. I don't think that there's any other way to reset the camera back to the defaults, however.

Sonic Community Hacking Guide
General
Sonic Music Hacking Guide | SonED2 Manual
Game-Specific
Sonic the Hedgehog (16-bit) | Sonic the Hedgehog (8-bit) | Sonic Eraser | Sonic CD (prototype 510) | Sonic CD | Sonic CD (PC) | Sonic 2 (Nick Arcade prototype) | Sonic 2 (Simon Wai prototype) | Sonic 2 (16-bit) | Sonic 2 (8-bit) | Sonic 2 & Knuckles | Dr. Robotnik's Mean Bean Machine | Sonic Triple Trouble | Sonic 3 | Sonic & Knuckles | Sonic 3 & Knuckles | Sonic & Knuckles Collection | Sonic Crackers | Sonic 3D: Flickies' Island | Chaotix | Sonic R PC | Sonic Jam 6 | Sonic Advance | Sonic Advance 2 | Sonic Advance 3 | Sonic Battle | Sonic Adventure | Sonic Adventure DX: Director's Cut | Sonic Adventure DX: PC | Sonic Adventure (2010) | Sonic Adventure 2 | Sonic Adventure 2: Battle | Sonic Adventure 2 (PC) | Sonic Heroes | Shadow the Hedgehog | Sonic Riders | Sonic the Hedgehog (2006) | Sonic & Sega All-Stars Racing | Sonic Unleashed (Xbox 360/PS3) | Sonic Generations
Legacy Guides
The Nemesis Hacking Guides The Esrael Hacking Guides
ROM: Sonic 1 | Sonic 2 | Sonic 2 Beta | Sonic 3

Savestate: Sonic 1 | Sonic 2 Beta/Final | Sonic 3

Sonic 1 (English / Portuguese) | Sonic 2 Beta (English / Portuguese) | Sonic 2 and Knuckles (English / Portuguese)
Move to Sega Retro
Number Systems (or scrap) | Assembly Hacking Guide | Subroutine Equivalency List | 68000 Instruction Set | 68000 ASM-to-Hex Code Reference | VDP Documentation | Official Sega 32X Documentation | Official Mega-CD Documentation | Official Sega Mega Drive Documentation