Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Attack on Titan with Genji. Made by VoN#12146. Code:"
  • Description: "Attack on Titan with Genji. Made by VoN#12146. Code: C15TD"
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • Match Voice Chat: Enabled
  • Max Spectators: 6
  • Max Team 1 Players: 10
  • Max Team 2 Players: 2
  • Max Team 1 Players: 5
  • Max Team 2 Players: 1
  • Swap Teams After Match: No
  • }
  • modes
  • {
  • Team Deathmatch
  • {
  • Self Initiated Respawn: Off
  • enabled maps
  • {
  • Eichenwalde Halloween
  • }
  • }
  • General
  • {
  • Allow Hero Switching: Off
  • Game Mode Start: Immediately
  • Hero Limit: Off
  • Kill Cam: Off
  • Kill Feed: Off
  • Respawn As Random Hero: On
  • Spawn Health Packs: Disabled
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Genji
  • {
  • Swift Strike Cooldown Time: 0%
  • Ultimate Generation - Combat Dragonblade: 130%
  • Ultimate Generation - Passive Dragonblade: 130%
  • }
  • Mei
  • {
  • Cryo-Freeze Cooldown Time: 10%
  • }
  • Winston
  • {
  • Barrier Projector: Off
  • Damage Received: 20%
  • Infinite Ultimate Duration: On
  • Movement Speed: 60%
  • Primary Fire: Off
  • Spawn With Ultimate Ready: On
  • Ultimate Duration: 500%
  • Ultimate Generation - Combat Primal Rage: 500%
  • Ultimate Generation - Passive Primal Rage: 500%
  • Ultimate Generation Primal Rage: 500%
  • }
  • Wrecking Ball
  • {
  • Grappling Claw Cooldown Time: 0%
  • }
  • enabled heroes
  • {
  • Genji
  • }
  • }
  • }
  • workshop
  • {
  • Noclip : On
  • Show debug info: On
  • }
  • }
  • variables
  • {
  • global:
  • 0: SpawnPosition
  • 1: SavedSpeed
  • 0: GenjiSpawnPosition
  • 2: GasStation
  • 3: BladeStation
  • 4: TitanSpawnPosition
  • 7: DummyCreated
  • 13: DebugNoclipEnable
  • 13: DebugShowFallSpeed
  • 14: DebugShowInfo
  • 15: DebugAddDummy
  • 16: OptionPlayerCollision
  • 17: OptionEnvCollision
  • 114: cfg_CamDistance
  • 115: cfg_CamRaycastsEyePos
  • 116: cfg_CamHasCrosshairCorrection
  • 117: cfg_CamOverridesGame
  • 118: cfg_CamOverridesEmotes
  • 119: cfg_CamOffset
  • 120: cfg_CamAimDistance
  • 121: cfg_CamBlendSpeed
  • 122: cfg_ScopesDisableCam
  • 123: cfg_StartWithCamActive
  • player:
  • 0: IsGrappling
  • 1: AlreadySet
  • 106: IsNoclipping
  • 2: SavedSpeed
  • 3: DummyBot
  • 4: Gas
  • 5: Blade
  • 6: BladeDmg
  • 7: IsPoweringUp
  • 9: IsUsingUlt
  • 10: Kill
  • 26: color_gas_bar
  • 27: color_gas_text
  • 28: color_blade_bar
  • 29: color_blade_text
  • 30: color_power_bar
  • 31: color_power_text
  • 107: plyr_CamDistance
  • 108: plyr_CamRaycastsEyePos
  • 109: plyr_CamHasCrosshairCorrection
  • 110: plyr_CamOverridesGame
  • 111: plyr_CamOverridesEmotes
  • 112: plyr_CamOffset
  • 113: plyr_CamAimDistance
  • 114: plyr_CamActive
  • 115: plyr_CamBlendSpeed
  • 116: plyr_ScopesDisableCam
  • }
  • subroutines
  • {
  • 0: CreateDummy
  • 1: InitColor
  • 2: RefreshColor
  • 3: StationLocation
  • 4: ShowStations
  • 114: RefreshCam
  • }
  • rule("INIT - Is in setup")
  • rule("INIT - Is In Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • }
  • actions
  • {
  • Global.SpawnPosition = Vector(23, 11, -73);
  • Global.DebugNoclipEnable = Workshop Setting Toggle(Custom String("Debug"), Custom String("Noclip "), False, 2);
  • Global.GenjiSpawnPosition = Vector(23, 11, -73);
  • Global.TitanSpawnPosition = Vector(10, 6, -68);
  • Call Subroutine(StationLocation);
  • Global.DebugShowFallSpeed = Workshop Setting Toggle(Custom String("Debug"), Custom String("Show fall speed"), True, 2);
  • Global.DebugShowInfo = Workshop Setting Toggle(Custom String("Debug"), Custom String("Show debug info"), False, 3);
  • Global.DebugAddDummy = Workshop Setting Toggle(Custom String("Debug"), Custom String("Add dummy"), False, 4);
  • Global.DebugAddDummy = Workshop Setting Toggle(Custom String("Debug"), Custom String("Add dummy titan"), False, 4);
  • Global.OptionPlayerCollision = Workshop Setting Toggle(Custom String("Options"), Custom String("Player Collision"), False, 0);
  • Global.OptionEnvCollision = Workshop Setting Toggle(Custom String("Options"), Custom String("Env Collision when using grapple"),
  • False, 0);
  • Wait(5, Ignore Condition);
  • Communicate(All Players(Team 1), Countdown);
  • Communicate(Players On Hero(Hero(Genji), Team 1), Countdown);
  • }
  • }
  • rule("INIT - Game in Progress")
  • rule("INIT - Game In Progress")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Pause Match Time;
  • disabled Set Match Time(0);
  • Disable Built-In Game Mode Announcer;
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Disable Built-In Game Mode Music;
  • }
  • }
  • rule("INIT - Team 1 Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.AlreadySet == False;
  • }
  • actions
  • {
  • disabled Disable Built-In Game Mode Respawning(Event Player);
  • Create HUD Text(Event Player, Null, Custom String(" \r\nCreated by VoN#12146\r\nCode: PS2NR"), Null, Right, 0, Color(White), Color(
  • Create HUD Text(Event Player, Custom String("{0} Health: {1}", Hero(Winston), Health(Players In Slot(0, Team 2))), Null, Null,
  • Left, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" \r\nCreated by VoN#12146\r\nCode: C15TD"), Null, Right, 0, Color(White), Color(
  • Orange), Color(White), None, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(
  • " \r\nrefill your gas tank and repair your blade\r\nby standing on the stations\r\n "), Null, Right, 1, Color(White), Color(
  • Aqua), Color(White), None, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("{0} to use jetpack", Input Binding String(Button(Jump))), Null, Right, 2, Color(
  • White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("{0} to use 3D Manever Gear", Input Binding String(Button(Secondary Fire))),
  • Null, Right, 3, Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Hold {0} to increase attack power", Input Binding String(Button(Ability 2))),
  • Null, Right, 4, Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Falling deals damage", Input Binding String(Button(Ability 2))), Null, Right, 5,
  • Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Set Respawn Max Time(Event Player, 0);
  • Call Subroutine(InitColor);
  • Create Progress Bar HUD Text(Event Player, Event Player.Gas, Custom String("Gas"), Top, 0, Event Player.color_gas_bar,
  • Event Player.color_gas_text, Visible To Values and Color, Default Visibility);
  • Create Progress Bar HUD Text(Event Player, Event Player.Blade, Custom String("Blade"), Top, 1, Event Player.color_blade_bar,
  • Event Player.color_blade_text, Visible To Values and Color, Default Visibility);
  • Create Progress Bar HUD Text(Event Player, Event Player.BladeDmg, Custom String("Power"), Top, 2, Event Player.color_power_bar,
  • Event Player.color_power_text, Visible To Values and Color, Default Visibility);
  • If(Global.OptionPlayerCollision != True);
  • Disable Movement Collision With Players(Event Player);
  • End;
  • Enable Death Spectate All Players(Event Player);
  • Enable Death Spectate Target HUD(Event Player);
  • Disable Game Mode HUD(Event Player);
  • "after system countdown"
  • Wait(3, Ignore Condition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Disallow Button(Event Player, Button(Primary Fire));
  • Disallow Button(Event Player, Button(Ability 2));
  • Call Subroutine(CreateDummy);
  • Call Subroutine(ShowStations);
  • Event Player.AlreadySet = True;
  • }
  • }
  • rule("INIT - Team 2 Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.AlreadySet == False;
  • }
  • actions
  • {
  • disabled Disable Built-In Game Mode Respawning(Event Player);
  • Create HUD Text(Event Player, Custom String("Kills: {0}", Event Player.Kill), Null, Null, Left, 0, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" \r\nCreated by VoN#12146\r\nCode: C15TD"), Null, Right, 0, Color(White), Color(
  • Orange), Color(White), None, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Eat em' all!!!!"), Null, Right, 1, Color(White), Color(Aqua), Color(White),
  • None, Default Visibility);
  • Set Respawn Max Time(Event Player, 0);
  • If(Global.OptionPlayerCollision != True);
  • Disable Movement Collision With Players(Event Player);
  • End;
  • Enable Death Spectate All Players(Event Player);
  • Enable Death Spectate Target HUD(Event Player);
  • Disable Game Mode HUD(Event Player);
  • If(Slot Of(Event Player) == 0);
  • Start Forcing Player To Be Hero(Event Player, Hero(Winston));
  • End;
  • "after system countdown"
  • Wait(3, Ignore Condition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Event Player.AlreadySet = True;
  • }
  • }
  • rule("INIT - [Sub] Init Color")
  • {
  • event
  • {
  • Subroutine;
  • InitColor;
  • }
  • actions
  • {
  • Event Player.color_gas_bar = Color(White);
  • Event Player.color_gas_text = Color(White);
  • Event Player.color_blade_bar = Color(White);
  • Event Player.color_blade_text = Color(White);
  • Event Player.color_power_bar = Color(White);
  • Event Player.color_power_text = Color(White);
  • }
  • }
  • rule("INIT - [Sub] Station Locations")
  • {
  • event
  • {
  • Subroutine;
  • StationLocation;
  • }
  • actions
  • {
  • "Gas"
  • Modify Global Variable(GasStation, Append To Array, Vector(12.900, 6, -83.500));
  • Modify Global Variable(GasStation, Append To Array, Vector(14, 11, -87.400));
  • Modify Global Variable(GasStation, Append To Array, Vector(9, 10, -40));
  • "Blade"
  • Modify Global Variable(BladeStation, Append To Array, Vector(1.300, 6, -49));
  • Modify Global Variable(BladeStation, Append To Array, Vector(4.800, 4.800, -93.600));
  • }
  • }
  • rule("INIT - [Sub] Create Dummy")
  • {
  • event
  • {
  • Subroutine;
  • CreateDummy;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Wrecking Ball), Team 1, -1, Position Of(Event Player), Vector(0, 0, 0));
  • Event Player.DummyBot = Last Created Entity;
  • Set Status(Event Player.DummyBot, Null, Phased Out, 9999);
  • Set Invisible(Event Player.DummyBot, All);
  • Start Scaling Player(Event Player.DummyBot, 1.100, True);
  • Disable Movement Collision With Players(Event Player.DummyBot);
  • Skip If(Global.OptionEnvCollision == True, 1);
  • Disable Movement Collision With Environment(Event Player.DummyBot, False);
  • Start Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • 50000, To World, Direction and Turn Rate);
  • Attach Players(Event Player.DummyBot, Event Player, Vector(0, 0, 0));
  • }
  • }
  • rule("INIT - [Sub] Show Stations")
  • {
  • event
  • {
  • Subroutine;
  • ShowStations;
  • }
  • actions
  • {
  • "Gas"
  • For Player Variable(Event Player, I, 1, Count Of(Global.GasStation), 1);
  • Create Effect(All Players(Team 1), Ring, Color(Red), Global.GasStation[Event Player.I], 0.500, None);
  • Create In-World Text(All Players(Team 1), Custom String("Refill Gas Here"), Global.GasStation[Event Player.I], 1,
  • Clip Against Surfaces, None, Color(Red), Default Visibility);
  • End;
  • "Blade"
  • For Player Variable(Event Player, I, 1, Count Of(Global.BladeStation), 1);
  • Create Effect(All Players(Team 1), Ring, Color(Green), Global.BladeStation[Event Player.I], 0.500, None);
  • Create In-World Text(All Players(Team 1), Custom String("Repair Blade Here"), Global.BladeStation[Event Player.I], 1,
  • Clip Against Surfaces, None, Color(Green), Default Visibility);
  • End;
  • }
  • }
  • rule("TEAM1 - Genji Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Global.SpawnPosition);
  • Teleport(Event Player, Global.GenjiSpawnPosition);
  • Play Effect(All Players(Team 1), Ring Explosion Sound, Color(White), Event Player, 30);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Set Gravity(Event Player, 120);
  • Start Scaling Player(Event Player, 0.700, True);
  • Event Player.Gas = 15;
  • Allow Button(Event Player, Button(Ability 1));
  • Event Player.Blade = 15;
  • Event Player.BladeDmg = 25;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - Genji In Gas Station")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • (Distance Between(Event Player, Global.GasStation[1]) <= 0.600 || Distance Between(Event Player, Global.GasStation[2])
  • <= 0.600 || Distance Between(Event Player, Global.GasStation[3]) <= 0.600) == True;
  • Event Player.Gas <= 100;
  • }
  • actions
  • {
  • Event Player.Gas += 30;
  • Call Subroutine(RefreshColor);
  • Skip If(Event Player.Gas <= 0, 1);
  • Allow Button(Event Player, Button(Ability 1));
  • Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 30);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji In Blade Station")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • (Distance Between(Event Player, Global.BladeStation[1]) <= 0.600 || Distance Between(Event Player, Global.BladeStation[2])
  • <= 0.600) == True;
  • Event Player.Blade <= 100;
  • }
  • actions
  • {
  • Event Player.Blade += 30;
  • Call Subroutine(RefreshColor);
  • Skip If(Event Player.Blade <= 0, 1);
  • Event Player.BladeDmg = 25;
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 30);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji Start Grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Stunned) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Rooted) == False;
  • Event Player.Gas > 0;
  • }
  • actions
  • {
  • If(Is In Alternate Form(Event Player.DummyBot) == False);
  • Press Button(Event Player.DummyBot, Button(Ability 1));
  • End;
  • Disallow Button(Event Player, Button(Secondary Fire));
  • Detach Players(Event Player.DummyBot);
  • Start Forcing Throttle(Event Player.DummyBot, 1, 1, 0, 1, 0, 1);
  • Wait(0.050, Ignore Condition);
  • Attach Players(Event Player, Event Player.DummyBot, Vector(0, 0, 0));
  • Set Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player.DummyBot), Ray Cast Hit Position(Event Player,
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • To World);
  • Wait(0.016, Ignore Condition);
  • Start Holding Button(Event Player.DummyBot, Button(Secondary Fire));
  • Event Player.IsGrappling = True;
  • Wait(0.200, Ignore Condition);
  • }
  • }
  • rule("TEAM1 - Genji Is Grappling")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Event Player.IsGrappling == True;
  • }
  • actions
  • {
  • Event Player.Gas -= 0.200;
  • Call Subroutine(RefreshColor);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji End Grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == False;
  • }
  • actions
  • {
  • Stop Holding Button(Event Player.DummyBot, Button(Secondary Fire));
  • Detach Players(Event Player);
  • Wait(0.050, Ignore Condition);
  • Attach Players(Event Player.DummyBot, Event Player, Vector(0, 0, 0));
  • Stop Facing(Event Player.DummyBot);
  • Start Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • 50000, To World, Direction and Turn Rate);
  • Stop Forcing Throttle(Event Player.DummyBot);
  • Event Player.IsGrappling = False;
  • Wait(0.300, Ignore Condition);
  • }
  • }
  • rule("TEAM1 - Genji Out Of Gas")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Event Player.Gas < 0;
  • }
  • actions
  • {
  • If(Event Player.IsGrappling == True);
  • Stop Holding Button(Event Player.DummyBot, Button(Secondary Fire));
  • Detach Players(Event Player);
  • Wait(0.050, Ignore Condition);
  • Attach Players(Event Player.DummyBot, Event Player, Vector(0, 0, 0));
  • Stop Facing(Event Player.DummyBot);
  • Start Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • 50000, To World, Direction and Turn Rate);
  • Stop Forcing Throttle(Event Player.DummyBot);
  • Event Player.IsGrappling = False;
  • Wait(0.300, Ignore Condition);
  • End;
  • If(Event Player.IsPoweringUp == True);
  • Stop Forcing Throttle(Event Player);
  • Set Gravity(Event Player, 120);
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ultimate));
  • Set Move Speed(Event Player, 100);
  • Wait(0.300, Ignore Condition);
  • Event Player.IsPoweringUp = False;
  • End;
  • Disallow Button(Event Player, Button(Ability 1));
  • }
  • }
  • rule("TEAM1 - Save Speed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is In Air(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.025, Ignore Condition);
  • Global.SavedSpeed = Speed Of(Event Player);
  • Wait(0.250, Ignore Condition);
  • Event Player.SavedSpeed = Speed Of(Event Player);
  • Loop;
  • }
  • }
  • rule("TEAM1 - Fall Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is On Ground(Event Player) == True;
  • }
  • actions
  • {
  • If(Global.SavedSpeed > 13);
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Dropped to death"));
  • If(Global.DebugShowFallSpeed == True);
  • Small Message(Event Player, Custom String("{0}", Event Player.SavedSpeed));
  • End;
  • If(Event Player.SavedSpeed > 12);
  • Damage(Event Player, Null, (Event Player.SavedSpeed - 12) * 30);
  • Small Message(Event Player, Custom String("Took fall damage"));
  • End;
  • }
  • }
  • rule("3RDCAM - Configuration")
  • rule("TEAM1 - Jet Pack")
  • {
  • event
  • {
  • Ongoing - Global;
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Has Status(Event Player, Hacked) == False;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Asleep) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Stunned) == False;
  • Has Status(Event Player, Rooted) == False;
  • Event Player.Gas > 0;
  • Event Player.IsPoweringUp != True;
  • }
  • actions
  • {
  • "Controls how far behind the player's head camera will be."
  • Global.cfg_CamDistance = 5;
  • "Determines whether the camera will check for surfaces behind the player. Setting this to False can reduce server load, but may result in the camera clipping into terrain."
  • Global.cfg_CamRaycastsEyePos = True;
  • "Controls the offset of the camera from the player's facing direction. X affects the left/right offset, Y controls the up/down offset, and Z controls the forward/back offset. Any X or Y offset can result in misalignment of the player crosshair."
  • Global.cfg_CamOffset = Vector(-0.500, 0, 0);
  • "Determines whether or not the camera will attempt to place the crosshair directly over what the hero is aiming at. Setting this to True will increase server load. Aim may also feel somewhat jittery, especially when cfg_CamOffset is large."
  • Global.cfg_CamHasCrosshairCorrection = False;
  • "Determines the distance at which the crosshair will be exactly accurate to the hero's target. If set to 0, the crosshair aiming line will be parallel to the hero aiming line. (If cfg_CamCrosshairCorrection is enabled, this setting is ignored.)"
  • Global.cfg_CamAimDistance = 0;
  • "Controls the blend speed of the camera."
  • Global.cfg_CamBlendSpeed = 75;
  • "Determines whether the camera will override the game's native third person cameras, such as Reinhardt's shield or Hammond's ball form."
  • Global.cfg_CamOverridesGame = True;
  • "Determines whether or not the camera will override the third person emoting camera."
  • Global.cfg_CamOverridesEmotes = True;
  • "Determines whether scopes such as Ana's, Widow's, or Ashe's disable the camera."
  • Global.cfg_ScopesDisableCam = True;
  • Global.cfg_StartWithCamActive = True;
  • Play Effect(All Players(All Teams), Good Explosion, Color(White), Position Of(Event Player), 0.100 / 10);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Position Of(Event Player), 10);
  • Apply Impulse(Event Player, Up, 0.500, To World, Incorporate Contrary Motion);
  • Event Player.Gas -= 0.050;
  • Call Subroutine(RefreshColor);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("3RDCAM - Start cams")
  • rule("TEAM1 - Genji Start Attacking")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Global.cfg_StartWithCamActive == True;
  • Is Using Ability 1(Event Player) == True;
  • Event Player.Gas > 0;
  • }
  • actions
  • {
  • "Resets a particular player's camera settings back to the defaults listed in Configuration. Make sure not to call this subroutine from a Global rule."
  • Event Player.plyr_CamDistance = Global.cfg_CamDistance;
  • Event Player.plyr_CamRaycastsEyePos = Global.cfg_CamRaycastsEyePos;
  • Event Player.plyr_CamOffset = Global.cfg_CamOffset;
  • Event Player.plyr_CamHasCrosshairCorrection = Global.cfg_CamHasCrosshairCorrection;
  • Event Player.plyr_CamAimDistance = Global.cfg_CamAimDistance;
  • Event Player.plyr_CamBlendSpeed = Global.cfg_CamBlendSpeed;
  • Event Player.plyr_CamOverridesGame = Global.cfg_CamOverridesGame;
  • Event Player.plyr_CamOverridesEmotes = Global.cfg_CamOverridesEmotes;
  • Event Player.plyr_ScopesDisableCam = Global.cfg_ScopesDisableCam;
  • Event Player.plyr_CamActive = True;
  • Call Subroutine(RefreshCam);
  • Event Player.Gas -= 1;
  • If(Event Player.Blade <= 0);
  • Set Damage Dealt(Event Player, 10);
  • Else If(Event Player.BladeDmg < 50);
  • Event Player.Blade -= 5;
  • Set Damage Dealt(Event Player, 100);
  • Else If(Event Player.BladeDmg < 75);
  • Event Player.Blade -= 10;
  • Set Damage Dealt(Event Player, 200);
  • Else If(Event Player.BladeDmg < 100);
  • Event Player.Blade -= 15;
  • Set Damage Dealt(Event Player, 250);
  • Else;
  • Event Player.Blade -= 30;
  • Set Damage Dealt(Event Player, 400);
  • End;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("3RDCAM - [Subroutine] RefreshCam")
  • rule("TEAM1 - Genji End Attacking")
  • {
  • event
  • {
  • Subroutine;
  • RefreshCam;
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Skip If(!Event Player.plyr_ScopesDisableCam, 1);
  • "Refreshes a particular player's camera. Call this after changing a player's camera settings. Make sure not to call this subroutine from a Global rule."
  • Stop Camera(Event Player);
  • If(Event Player.plyr_CamActive);
  • If(!Event Player.plyr_CamRaycastsEyePos && !Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Eye Position(Event Player) + (
  • Event Player.plyr_CamAimDistance <= 0 ? World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • : Facing Direction Of(Event Player) * Event Player.plyr_CamAimDistance), Event Player.plyr_CamBlendSpeed);
  • Else If(Event Player.plyr_CamRaycastsEyePos && !Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset,
  • Event Player, Rotation), Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Null, All Players(All Teams), True), Eye Position(
  • Event Player) + (Event Player.plyr_CamAimDistance <= 0 ? World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • : Facing Direction Of(Event Player) * Event Player.plyr_CamAimDistance), Event Player.plyr_CamBlendSpeed);
  • Else If(!Event Player.plyr_CamRaycastsEyePos && Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 300, All Players(Opposite Team Of(Team Of(Event Player))),
  • All Players(Team Of(Event Player)), True), Event Player.plyr_CamBlendSpeed);
  • Else If(Event Player.plyr_CamRaycastsEyePos && Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset,
  • Event Player, Rotation), Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Null, All Players(All Teams), True),
  • Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player) * 300,
  • All Players(Opposite Team Of(Team Of(Event Player))), All Players(Team Of(Event Player)), True),
  • Event Player.plyr_CamBlendSpeed);
  • Else;
  • Small Message(Host Player, Custom String("Camera error - {0}", Event Player));
  • End;
  • If(Event Player.Blade <= 0);
  • Event Player.BladeDmg = 0;
  • Else If(Event Player.IsUsingUlt == True);
  • Event Player.BladeDmg = 50;
  • Else;
  • Event Player.BladeDmg = 25;
  • End;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("DEBUG - Show info")
  • rule("TEAM1 - Genji Melee")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.DebugShowInfo == True;
  • Is Meleeing(Event Player) == True;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Position Of(Event Player), Null, Null, Left, 100, Color(Red), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Current Speed: {0}", Speed Of(Event Player)), Null, Top, 0, Color(Red), Color(
  • Red), Color(Red), Visible To and String, Default Visibility);
  • If(Event Player.Blade > 0);
  • Event Player.BladeDmg = 25;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("DEBUG - Add dummy")
  • rule("TEAM1 - Genji Start Power Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.DebugAddDummy == True;
  • Is Button Held(Event Player, Button(Ability 2)) == True;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Stunned) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Rooted) == False;
  • Event Player.Gas > 0;
  • }
  • actions
  • {
  • If(Global.DummyCreated != True);
  • Create Dummy Bot(Hero(Ana), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Global.DummyCreated = True;
  • Wait(0.250, Ignore Condition);
  • Set Gravity(Event Player, 0);
  • Start Forcing Throttle(Event Player, 0, 0, 0, 0, 0, 0);
  • Set Move Speed(Event Player, 0);
  • Disallow Button(Event Player, Button(Ability 1));
  • Disallow Button(Event Player, Button(Jump));
  • Disallow Button(Event Player, Button(Ultimate));
  • Event Player.IsPoweringUp = True;
  • }
  • }
  • rule("DEBUG - Toggle noclip")
  • rule("TEAM1 - Genji Is Powering Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Event Player.IsPoweringUp == True;
  • }
  • actions
  • {
  • Event Player.BladeDmg += 1;
  • Event Player.Gas -= 0.020;
  • Play Effect(All Players(All Teams), Good Explosion, Color(White), Position Of(Event Player), 0.100 / 100);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Position Of(Event Player), 10);
  • Call Subroutine(RefreshColor);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji End Power Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Ability 2)) == False;
  • }
  • actions
  • {
  • Stop Forcing Throttle(Event Player);
  • Set Gravity(Event Player, 120);
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ultimate));
  • Set Move Speed(Event Player, 100);
  • Wait(0.300, Ignore Condition);
  • Event Player.IsPoweringUp = False;
  • }
  • }
  • rule("TEAM1 - Genji Using Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Heal(Event Player, Null, 200);
  • Event Player.BladeDmg = 50;
  • Call Subroutine(RefreshColor);
  • Event Player.IsUsingUlt = True;
  • }
  • }
  • rule("TEAM1 - Genji Ult Ended")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Global.DebugNoclipEnable == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Event Player.IsNoclipping = !Event Player.IsNoclipping;
  • If(Event Player.IsNoclipping);
  • Small Message(Event Player, Custom String("Noclip activated"));
  • Event Player.BladeDmg = 25;
  • Event Player.IsUsingUlt = False;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - [Sub] Refresh All Color")
  • {
  • event
  • {
  • Subroutine;
  • RefreshColor;
  • }
  • actions
  • {
  • If(Event Player.Gas <= 0);
  • Event Player.color_gas_bar = Color(Red);
  • Event Player.color_gas_text = Color(Red);
  • Else If(Event Player.Gas <= 15);
  • Event Player.color_gas_bar = Color(Red);
  • Event Player.color_gas_text = Color(White);
  • Else;
  • Event Player.color_gas_bar = Color(White);
  • Event Player.color_gas_text = Color(White);
  • End;
  • If(Event Player.Blade <= 0);
  • Event Player.color_blade_bar = Color(Red);
  • Event Player.color_blade_text = Color(Red);
  • Else If(Event Player.Blade <= 15);
  • Event Player.color_blade_bar = Color(Red);
  • Event Player.color_blade_text = Color(White);
  • Else;
  • Small Message(Event Player, Custom String("Noclip deactivated"));
  • Event Player.color_blade_bar = Color(White);
  • Event Player.color_blade_text = Color(White);
  • End;
  • If(Event Player.BladeDmg <= 0);
  • Event Player.color_power_text = Color(Red);
  • Else If(Event Player.BladeDmg < 50);
  • Event Player.color_power_bar = Color(White);
  • Event Player.color_power_text = Color(White);
  • Else If(Event Player.BladeDmg < 75);
  • Event Player.color_power_bar = Color(Orange);
  • Event Player.color_power_text = Color(White);
  • Else If(Event Player.BladeDmg < 100);
  • Event Player.color_power_bar = Color(Red);
  • Event Player.color_power_text = Color(White);
  • Else;
  • Event Player.color_power_bar = Color(Purple);
  • Event Player.color_power_text = Color(White);
  • End;
  • }
  • }
  • rule("DEBUG - Start noclipping")
  • rule("TEAM1 - Kill")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Player Earned Elimination;
  • Team 1;
  • All;
  • }
  • actions
  • {
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("TEAM2 - Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Event Player.IsNoclipping == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Set Gravity(Event Player, 0);
  • Disable Movement Collision With Environment(Event Player, True);
  • Disable Movement Collision With Players(Event Player);
  • Set Move Speed(Event Player, 0);
  • Disallow Button(Event Player, Button(Jump));
  • Disallow Button(Event Player, Button(Crouch));
  • Teleport(Event Player, Global.TitanSpawnPosition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Set Gravity(Event Player, 100);
  • Start Scaling Player(Event Player, 5, True);
  • Set Max Health(All Players(Team 2), 5000);
  • }
  • }
  • rule("TEAM2 - Kill")
  • {
  • event
  • {
  • Player Earned Elimination;
  • Team 2;
  • All;
  • }
  • actions
  • {
  • Event Player.Kill += 1;
  • }
  • }
  • rule("DEBUG - Stop noclipping")
  • rule("TEAM2 - 100Kills")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Event Player.Kill >= 100;
  • }
  • actions
  • {
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("3RDCAM - Configuration")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "Controls how far behind the player's head camera will be."
  • Global.cfg_CamDistance = 5;
  • "Determines whether the camera will check for surfaces behind the player. Setting this to False can reduce server load, but may result in the camera clipping into terrain."
  • Global.cfg_CamRaycastsEyePos = True;
  • "Controls the offset of the camera from the player's facing direction. X affects the left/right offset, Y controls the up/down offset, and Z controls the forward/back offset. Any X or Y offset can result in misalignment of the player crosshair."
  • Global.cfg_CamOffset = Vector(-0.500, 0, 0);
  • "Determines whether or not the camera will attempt to place the crosshair directly over what the hero is aiming at. Setting this to True will increase server load. Aim may also feel somewhat jittery, especially when cfg_CamOffset is large."
  • Global.cfg_CamHasCrosshairCorrection = False;
  • "Determines the distance at which the crosshair will be exactly accurate to the hero's target. If set to 0, the crosshair aiming line will be parallel to the hero aiming line. (If cfg_CamCrosshairCorrection is enabled, this setting is ignored.)"
  • Global.cfg_CamAimDistance = 0;
  • "Controls the blend speed of the camera."
  • Global.cfg_CamBlendSpeed = 75;
  • "Determines whether the camera will override the game's native third person cameras, such as Reinhardt's shield or Hammond's ball form."
  • Global.cfg_CamOverridesGame = True;
  • "Determines whether or not the camera will override the third person emoting camera."
  • Global.cfg_CamOverridesEmotes = True;
  • "Determines whether scopes such as Ana's, Widow's, or Ashe's disable the camera."
  • Global.cfg_ScopesDisableCam = True;
  • Global.cfg_StartWithCamActive = True;
  • }
  • }
  • rule("3RDCAM - Start Cams")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Event Player.IsNoclipping == False;
  • Global.cfg_StartWithCamActive == True;
  • }
  • actions
  • {
  • Set Gravity(Event Player, 100);
  • Enable Movement Collision With Environment(Event Player);
  • Enable Movement Collision With Players(Event Player);
  • Set Move Speed(Event Player, 100);
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Crouch));
  • "Resets a particular player's camera settings back to the defaults listed in Configuration. Make sure not to call this subroutine from a Global rule."
  • Event Player.plyr_CamDistance = Global.cfg_CamDistance;
  • Event Player.plyr_CamRaycastsEyePos = Global.cfg_CamRaycastsEyePos;
  • Event Player.plyr_CamOffset = Global.cfg_CamOffset;
  • Event Player.plyr_CamHasCrosshairCorrection = Global.cfg_CamHasCrosshairCorrection;
  • Event Player.plyr_CamAimDistance = Global.cfg_CamAimDistance;
  • Event Player.plyr_CamBlendSpeed = Global.cfg_CamBlendSpeed;
  • Event Player.plyr_CamOverridesGame = Global.cfg_CamOverridesGame;
  • Event Player.plyr_CamOverridesEmotes = Global.cfg_CamOverridesEmotes;
  • Event Player.plyr_ScopesDisableCam = Global.cfg_ScopesDisableCam;
  • Event Player.plyr_CamActive = True;
  • Call Subroutine(RefreshCam);
  • }
  • }
  • rule("3RDCAM - [Sub] Refresh Cam")
  • {
  • event
  • {
  • Subroutine;
  • RefreshCam;
  • }
  • actions
  • {
  • Skip If(!Event Player.plyr_ScopesDisableCam, 1);
  • "Refreshes a particular player's camera. Call this after changing a player's camera settings. Make sure not to call this subroutine from a Global rule."
  • Stop Camera(Event Player);
  • If(Event Player.plyr_CamActive);
  • If(!Event Player.plyr_CamRaycastsEyePos && !Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Eye Position(Event Player) + (
  • Event Player.plyr_CamAimDistance <= 0 ? World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • : Facing Direction Of(Event Player) * Event Player.plyr_CamAimDistance), Event Player.plyr_CamBlendSpeed);
  • Else If(Event Player.plyr_CamRaycastsEyePos && !Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset,
  • Event Player, Rotation), Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Null, All Players(All Teams), True), Eye Position(
  • Event Player) + (Event Player.plyr_CamAimDistance <= 0 ? World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • : Facing Direction Of(Event Player) * Event Player.plyr_CamAimDistance), Event Player.plyr_CamBlendSpeed);
  • Else If(!Event Player.plyr_CamRaycastsEyePos && Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 300, All Players(Opposite Team Of(Team Of(Event Player))),
  • All Players(Team Of(Event Player)), True), Event Player.plyr_CamBlendSpeed);
  • Else If(Event Player.plyr_CamRaycastsEyePos && Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset,
  • Event Player, Rotation), Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Null, All Players(All Teams), True),
  • Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player) * 300,
  • All Players(Opposite Team Of(Team Of(Event Player))), All Players(Team Of(Event Player)), True),
  • Event Player.plyr_CamBlendSpeed);
  • Else;
  • Small Message(Host Player, Custom String("Camera error - {0}", Event Player));
  • End;
  • End;
  • }
  • }
  • rule("DEBUG - Noclip propulsion")
  • rule("DEBUG - Show Info")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.IsNoclipping == True;
  • (Is Button Held(Event Player, Button(Crouch)) || Is Button Held(Event Player, Button(Jump)) || Throttle Of(Event Player) != Vector(
  • 0, 0, 0)) == True;
  • Is Game In Progress == True;
  • Global.DebugShowInfo == True;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Velocity Of(Event Player) * -1, Speed Of(Event Player) * 0.030, To World, Incorporate Contrary Motion);
  • Apply Impulse(Event Player, Normalize(Facing Direction Of(Event Player) * Z Component Of(Throttle Of(Event Player))
  • + World Vector Of(Left, Event Player, Rotation) * X Component Of(Throttle Of(Event Player)) + Up * (Is Button Held(
  • Event Player, Button(Jump)) - Is Button Held(Event Player, Button(Crouch)))), (60 + 400 * Is Button Held(Event Player, Button(
  • Reload)) - Speed Of(Event Player)) / 62.500, To World, Incorporate Contrary Motion);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • Create HUD Text(Event Player, Position Of(Event Player), Null, Null, Left, 100, Color(Red), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Current Speed: {0}", Speed Of(Event Player)), Null, Top, 0, Color(Red), Color(
  • Red), Color(Red), Visible To and String, Default Visibility);
  • }
  • }
  • rule("DEBUG - Noclip air resistance")
  • rule("DEBUG - Add Dummy Titan")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.IsNoclipping == True;
  • (Is Button Held(Event Player, Button(Crouch)) || Is Button Held(Event Player, Button(Jump)) || Throttle Of(Event Player) != Vector(
  • 0, 0, 0)) == False;
  • Speed Of(Event Player) > 0.010;
  • Is Game In Progress == True;
  • Global.DebugAddDummy == True;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Velocity Of(Event Player) * -1, Speed Of(Event Player) * 0.060, To World, Incorporate Contrary Motion);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • If(Global.DummyCreated != True);
  • Create Dummy Bot(Hero(Winston), Team 2, 0, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Global.DummyCreated = True;
  • Wait(0.250, Ignore Condition);
  • }
  • }
Join the Workshop.codes Discord