digraph g { concentrate=true; node [shape = record]; Stand [ label = " Stand | | Normal | | Target "]; FaceBack [ label = " FaceBack | | Always "]; subgraph clusterWalking { label = walking; Walk [ label = " Walk | | Normal | | Target "]; WalkStepUp [ label = " WalkStepUp | | Normal "]; WalkStepDown [ label = " WalkStepDown | | Normal "]; } subgraph cluster0 { label = running; Run [ label = " Run | | { Normal | | Target }"]; RunToStop [ label = " RunToStop | | Always "]; RunStepUp [ label = " RunStepUp | | Normal "]; RunStepDown [ label = " RunStepDown | | Normal "]; } Strafe [ label = " Strafe | | Always "]; JumpVertical [ label = " JumpVertical | | Normal | | Target "]; JumpRunning [ label = " JumpRunning | | Normal | | Target "]; MidJump [ label = " MidJump | | Normal | | Target "]; MidJumpFaceBack [ label = " MidJumpFaceBack | | Normal "]; LandVertical [ label = " LandVertical | | Normal | | Target "]; LandRunning [ label = " LandRunning | | Normal | | Target "]; Fall [ label = " Fall | | Normal | | Target "]; FallFaceBack [ label = " FallFaceBack | | Normal "]; Flight [ label = " Flight | | Normal | | Target | | Target | | Target "]; FlightToHover [ label = " FlightToHover | | Normal | | Target "]; FlightStrafe [ label = " FlightStrafe | | Normal "]; subgraph cluster1 { label = FPM; FPMStand [ label = " FPMStand | | Always "]; FPMRotate [ label = " FPMRotate | | Always "]; FPMStep [ label = " FPMStep | | Always "]; FPMCenter [ label = " FPMCenter | | Always "]; } subgraph cluster2 { label = FPMHover; FPMHover [ label = " FPMHover | | Always "]; FPMHoverRotate [ label = " FPMHoverRotate | | Always "]; FPMHoverStep [ label = " FPMHoverStep | | Always "]; FPMHoverCenter [ label = " FPMHoverCenter | | Always "]; } subgraph cluster3 { label = hover; HoverRest [ label = " HoverRest | | Normal | | Target "]; HoverForward [ label = " HoverForward | | Normal | | Target "]; HoverForwardToStop [ label = " HoverForwardToStop | | Normal | | Target "]; HoverFaceBack [ label = " HoverFaceBack | | Normal "]; HoverStrafeToStop [ label = " HoverStrafeToStop | | Normal | | Target "]; HoverStrafe [ label = " HoverStrafe | | Normal | | Target "]; } HoverToFlight [ label = " HoverToFlight | | Normal | | Target "]; Stand:Normal->FPMStand:In Stand:Normal->Fall:In Stand:Normal->JumpVertical:In Stand:Normal->Walk:In Stand:Normal->Strafe:In Stand:Normal->FaceBack:In Stand:Target->FPMStand:In Stand:Target->Fall:In Stand:Target->JumpVertical:In Stand:Target->Walk:In FaceBack:Always->Fall:In FaceBack:Always->JumpVertical:In FaceBack:Always->Stand:In Walk:Normal->Fall:In Walk:Normal->Stand:In Walk:Normal->Stand:In Walk:Normal->JumpRunning:In Walk:Normal->WalkStepUp:In Walk:Normal->WalkStepDown:In Walk:Normal->Run:In Walk:Normal->Strafe:In Walk:Normal->FaceBack:In Walk:Target->Fall:In Walk:Target->Stand:In Walk:Target->Stand:In Walk:Target->JumpRunning:In Walk:Target->WalkStepUp:In Walk:Target->WalkStepDown:In Walk:Target->Run:In WalkStepUp:Normal->Fall:In WalkStepUp:Normal->Walk:In WalkStepDown:Normal->Fall:In WalkStepDown:Normal->Walk:In Run:Normal->Fall:In Run:Normal->RunToStop:In Run:Normal->RunToStop:In Run:Normal->Walk:In Run:Normal->JumpRunning:In Run:Normal->RunStepUp:In Run:Normal->RunStepDown:In Run:Normal->Strafe:In Run:Normal->FaceBack:In Run:Target->Fall:In Run:Target->RunToStop:In Run:Target->RunToStop:In Run:Target->Walk:In Run:Target->JumpRunning:In Run:Target->RunStepUp:In Run:Target->RunStepDown:In RunToStop:Always->Fall:In RunToStop:Always->Stand:In RunToStop:Always->Stand:In RunToStop:Always->Run:In RunToStop:Always->Walk:In RunStepUp:Normal->Fall:In RunStepUp:Normal->Run:In RunStepDown:Normal->Fall:In RunStepDown:Normal->Run:In Strafe:Always->Fall:In Strafe:Always->Stand:In Strafe:Always->Run:In Strafe:Always->Stand:In JumpVertical:Normal->MidJump:In JumpVertical:Target->MidJump:In JumpRunning:Normal->MidJump:In JumpRunning:Target->MidJump:In MidJump:Normal->HoverRest:In MidJump:Normal->Fall:In MidJump:Normal->MidJumpFaceBack:In MidJump:Target->HoverRest:In MidJump:Target->Fall:In MidJumpFaceBack:Normal->HoverRest:In MidJumpFaceBack:Normal->FallFaceBack:In MidJumpFaceBack:Normal->MidJump:In LandVertical:Normal->Stand:In LandVertical:Target->Stand:In LandRunning:Normal->Stand:In LandRunning:Normal->Run:In LandRunning:Target->Stand:In LandRunning:Target->Run:In Fall:Normal->HoverRest:In Fall:Normal->LandVertical:In Fall:Normal->LandRunning:In Fall:Normal->FallFaceBack:In Fall:Target->HoverRest:In Fall:Target->LandVertical:In Fall:Target->LandRunning:In FallFaceBack:Normal->HoverRest:In FallFaceBack:Normal->LandVertical:In FallFaceBack:Normal->LandRunning:In FallFaceBack:Normal->Fall:In HoverRest:Normal->FPMHover:In HoverRest:Normal->Fall:In HoverRest:Normal->HoverToFlight:In HoverRest:Normal->HoverStrafe:In HoverRest:Normal->HoverForward:In HoverRest:Target->FPMHover:In HoverRest:Target->Fall:In HoverRest:Target->HoverToFlight:In HoverRest:Target->HoverStrafe:In HoverRest:Target->HoverForward:In HoverForward:Normal->HoverForwardToStop:In HoverForward:Normal->Fall:In HoverForward:Normal->HoverToFlight:In HoverForward:Normal->HoverForwardToStop:In HoverForward:Normal->HoverStrafe:In HoverForward:Normal->HoverFaceBack:In HoverForward:Target->HoverForwardToStop:In HoverForward:Target->Fall:In HoverForward:Target->HoverToFlight:In HoverForward:Target->HoverForwardToStop:In HoverForward:Target->HoverStrafe:In HoverForwardToStop:Normal->HoverRest:In HoverForwardToStop:Normal->Fall:In HoverForwardToStop:Normal->HoverToFlight:In HoverForwardToStop:Normal->HoverStrafe:In HoverForwardToStop:Normal->HoverForward:In HoverForwardToStop:Normal->HoverRest:In HoverForwardToStop:Target->HoverRest:In HoverForwardToStop:Target->Fall:In HoverForwardToStop:Target->HoverToFlight:In HoverForwardToStop:Target->HoverStrafe:In HoverForwardToStop:Target->HoverForward:In HoverForwardToStop:Target->HoverRest:In HoverFaceBack:Normal->Fall:In HoverFaceBack:Normal->HoverToFlight:In HoverFaceBack:Normal->HoverRest:In HoverStrafe:Normal->HoverStrafeToStop:In HoverStrafe:Normal->Fall:In HoverStrafe:Normal->HoverToFlight:In HoverStrafe:Normal->HoverForward:In HoverStrafe:Normal->HoverStrafeToStop:In HoverStrafe:Target->HoverStrafeToStop:In HoverStrafe:Target->Fall:In HoverStrafe:Target->HoverToFlight:In HoverStrafe:Target->HoverForward:In HoverStrafe:Target->HoverStrafeToStop:In HoverStrafeToStop:Normal->HoverRest:In HoverStrafeToStop:Normal->Fall:In HoverStrafeToStop:Normal->HoverToFlight:In HoverStrafeToStop:Normal->HoverStrafe:In HoverStrafeToStop:Normal->HoverForward:In HoverStrafeToStop:Normal->HoverRest:In HoverStrafeToStop:Target->HoverRest:In HoverStrafeToStop:Target->Fall:In HoverStrafeToStop:Target->HoverToFlight:In HoverStrafeToStop:Target->HoverStrafe:In HoverStrafeToStop:Target->HoverForward:In HoverStrafeToStop:Target->HoverRest:In HoverToFlight:Normal->HoverRest:In HoverToFlight:Normal->Fall:In HoverToFlight:Normal->Flight:In HoverToFlight:Target->HoverRest:In HoverToFlight:Target->Fall:In HoverToFlight:Target->Flight:In Flight:Normal->FlightStrafe:In Flight:Normal->FlightToHover:In Flight:Target->FlightToHover:In Flight:Target->FlightToHover:In FlightToHover:Normal->HoverRest:In FlightToHover:Target->HoverRest:In FlightStrafe:Normal->Flight:In FlightStrafe:Normal->Flight:In FlightStrafe:Normal->FlightToHover:In FPMStand:Always->Stand:In FPMStand:Always->FPMStep:In FPMStand:Always->FPMRotate:In FPMRotate:Always->FPMStep:In FPMRotate:Always->FPMStand:In FPMStep:Always->FPMCenter:In FPMCenter:Always->FPMStep:In FPMCenter:Always->FPMStand:In FPMHover:Always->HoverRest:In FPMHover:Always->FPMHoverStep:In FPMHover:Always->FPMHoverRotate:In FPMHoverRotate:Always->FPMHoverStep:In FPMHoverRotate:Always->FPMHover:In FPMHoverStep:Always->FPMHoverCenter:In FPMHoverCenter:Always->FPMHoverStep:In FPMHoverCenter:Always->FPMHover:In }