Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • global:
  • 0: BerserkerBuyPos
  • 1: GlobalSpawn
  • 2: PacifistBuyPos
  • 4: FarmerBuyPos
  • 5: GladiatorBuyPos
  • 6: LightBuyPos
  • 7: EventType
  • 8: Gen1Pos
  • 9: Gen2Pos
  • 10: DamageBuyPos
  • 11: DefenseBuyPos
  • 12: HealthBuyPos
  • 13: SpeedBuyPos
  • 14: Setup
  • 15: HeroChangePos
  • 16: BloodCrystalPos
  • 17: Overflow
  • 18: XPToGoldPos
  • 19: XPPumpPos
  • 20: ScaleUpPos
  • 21: ScaleDownPos
  • 22: BankDepositPos
  • 23: BankWithdrawPos
  • 24: RegenBuyPos
  • 25: StunBuyPos
  • 26: DoubleShotBuyPos
  • 27: InterestBuyPos
  • 29: CorrosiveBuyPos
  • 30: MoveOrDie
  • 31: XPKillEvent
  • 32: NextToKill
  • 33: StartingMoney
  • 34: TenacityPos
  • 35: ContractPosition
  • 36: DarkShopPos
  • 37: DarkShopOutPos
  • 38: ResetPos
  • 39: ResetPoints
  • 40: ResetLevel
  • 41: ChanceWheelPos
  • 42: HealBubblePos
  • 43: DarkPointsBurning
  • 44: MoneyToDarkPos
  • 45: StrengthTrainingPos
  • 46: OneShotPos
  • 47: DarkClassesPos
  • 48: GhostPos
  • 49: TrollPos
  • 50: BillionairePos
  • 51: AngelPos
  • 52: DarkXPBoostPos
  • 53: BerserkererPos
  • 54: OrbPosition
  • 55: OrbPositionType
  • 56: OrbID
  • 57: OrbTextID
  • 58: OrbTimer
  • 61: EmptyPos
  • 62: HelperPos
  • 64: LifestealPos
  • 65: ThirdPersonPos
  • 66: SpectatePos
  • player:
  • 0: LastTextDamage
  • 1: Berserker
  • 2: HasClass
  • 3: SwitchingClass
  • 4: Pacifist
  • 5: Level
  • 6: XP
  • 7: LevelUpPoints
  • 8: Money
  • 10: Farmer
  • 12: Gladiator
  • 13: Lightweight
  • 14: Killstreak
  • 15: Damage
  • 16: Health
  • 17: Speed
  • 18: DamageTaken
  • 19: ClassName
  • 21: Scale
  • 22: Bank
  • 23: Regen
  • 24: Stun
  • 25: DoubleShot
  • 26: Interest
  • 27: BloodCrystalBeam
  • 28: BloodEnergySound
  • 29: XpPumpBeam
  • 30: XpPumpSound
  • 31: XpPumpSound2
  • 32: CorrosiveAmmunition
  • 33: Poison
  • 34: Poisoner
  • 35: Tenacity
  • 37: ContractText
  • 38: RandomGenerator
  • 39: RandomBloodCrystal
  • 40: HudDone
  • 41: DarkPoints
  • 42: WheelOfChance
  • 43: WheelMoneyReward
  • 44: WheelXPReward
  • 45: WheelLevelReward
  • 46: WheelCooldown
  • 47: Bounty
  • 48: ReturnToSpawnReward
  • 49: ContractKill
  • 50: OnContract
  • 51: ContractCoins
  • 52: ContractXP
  • 53: XPKillReward
  • 54: StrengthTraining
  • 55: StrengthTrainingScore
  • 56: StrengthTrainingCooldown
  • 57: XPMultiplier
  • 59: OneShot
  • 60: DarkClasses
  • 61: Ghost
  • 62: Troll
  • 63: ClassText
  • 64: Billionaire
  • 65: Angel
  • 66: Berserkerer
  • 67: Flight
  • 68: Helper
  • 69: DarkRegen
  • 70: Empty
  • 71: Lifesteal
  • 72: ThirdPerson
  • 73: Spectating
  • 74: SpectatorPlayer
  • 75: TrollMode
  • 76: PoisonDamage
  • 77: DoubleJump
  • 78: DoubleJump2
  • }
  • subroutines
  • {
  • 0: PreInitiate
  • 1: PostInitiate
  • 2: Default
  • 3: ClassPurge
  • 4: Events
  • 5: WheelOfChance
  • 6: Spawn
  • 7: RewardOrb
  • }
  • disabled rule("Made by ShadowDragon#1166969")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • disabled rule("Position test")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Custom String("{0}", Position Of(Event Player)), Null, Null, Left, 0, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • }
  • }
  • rule("Local Player Hud")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • disabled Create In-World Text(All Players(All Teams), Custom String("Class: {2} | Level {0}", Local Player.Level, Round To Integer(
  • Max Health(Local Player), To Nearest), Local Player.ClassName), Local Player, 1.200, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create Progress Bar HUD Text(Local Player, Local Player.XP, Custom String("Level: {0}", Local Player.Level), Left, 100,
  • Local Player.XP < 75 ? Color(White) : Color(Green), Color(White), Visible To Values and Color, Default Visibility);
  • Create HUD Text(Local Player, Null, Null, Custom String("Killstreak: {0} \r\nFlight: {1}s \r\nContract: {2}",
  • Local Player.Killstreak, Local Player.Flight, Local Player.ContractText), Top, 10, Color(White), Color(Green), Color(Green),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Local Player, Custom String("Class: {0} \r\nMoney: {1} \r\nLevel Up Points: {2}", Local Player.ClassName,
  • Local Player.Money, Local Player.LevelUpPoints), Null, Null, Right, -101, Color(Aqua), Color(White), Color(Aqua),
  • Visible To and String, Default Visibility);
  • Create In-World Text(Local Player, Custom String("Speed ({0}) (R to reset)", Local Player.Speed), Vector(X Component Of(
  • Global.SpeedBuyPos), Y Component Of(Global.SpeedBuyPos) + 1, Z Component Of(Global.SpeedBuyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(Local Player, Custom String("Damage ({0})", Local Player.Damage), Vector(X Component Of(Global.DamageBuyPos),
  • Y Component Of(Global.DamageBuyPos) + 1, Z Component Of(Global.DamageBuyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(Local Player, Custom String("Health ({0}%)", Local Player.Health), Vector(X Component Of(Global.HealthBuyPos),
  • Y Component Of(Global.HealthBuyPos) + 1, Z Component Of(Global.HealthBuyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(Local Player, Custom String("Defence ({0}% Damage)", Local Player.DamageTaken), Vector(X Component Of(
  • Global.DefenseBuyPos), Y Component Of(Global.DefenseBuyPos) + 1, Z Component Of(Global.DefenseBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "scale up"
  • Global.ScaleUpPos = Vector(-267.750, -5.070, 30.230);
  • Create Effect(Local Player, Ring, Color(Yellow), Global.ScaleUpPos, 1, Visible To Position and Radius);
  • Create In-World Text(Local Player, Custom String("Scale up | 20 coins ({0}%)", Local Player.Scale * 100), Vector(X Component Of(
  • Global.ScaleUpPos), Y Component Of(Global.ScaleUpPos) + 1, Z Component Of(Global.ScaleUpPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "scale down"
  • Global.ScaleDownPos = Vector(-265, -5.050, 34);
  • Create Effect(Local Player, Ring, Color(Yellow), Global.ScaleDownPos, 1, Visible To Position and Radius);
  • Create In-World Text(Local Player, Custom String("Scale down | 20 coins ({0}%)", Local Player.Scale * 100), Vector(X Component Of(
  • Global.ScaleDownPos), Y Component Of(Global.ScaleDownPos) + 1, Z Component Of(Global.ScaleDownPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(Local Player, Custom String("Bank | ${0} ({1}% interest)", Local Player.Bank, Local Player.Interest * 100),
  • Vector(-280, -1, 50), 1.150, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • Create In-World Text(Local Player, Custom String("Dark Points: {0} | XP Boost: {1}%", Local Player.DarkPoints,
  • Local Player.XPMultiplier * 100, Custom String("Magic Regen: {1}% Max HP/s | Dark Lifesteal: {2}% Damage dealt", Null,
  • Local Player.DarkRegen, Local Player.Lifesteal)), Vector(-301.700, -2, 55.080), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Purple), Default Visibility);
  • }
  • }
  • rule("Call Initiate")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Start Rule(PreInitiate, Do Nothing);
  • Start Rule(PostInitiate, Do Nothing);
  • Start Rule(Default, Restart Rule);
  • }
  • }
  • rule("Initiate")
  • {
  • event
  • {
  • Subroutine;
  • PreInitiate;
  • }
  • actions
  • {
  • Set Match Time(5);
  • disabled Disable Inspector Recording;
  • Disable Built-In Game Mode Music;
  • Disable Built-In Game Mode Announcer;
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Global.GlobalSpawn = Vector(-280, -3.300, 40);
  • "spawn bubble"
  • Create Effect(All Players(All Teams), Sphere, Color(Green), Vector(-280, -3.300, 40), 26, Visible To Position and Radius);
  • "Berserker class"
  • Global.BerserkerBuyPos = Vector(-287, -3.300, 31);
  • Create Effect(All Players(All Teams), Ring, Color(Red), Global.BerserkerBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Berserker | Receive and deal 40% extra damage."), Vector(-287, -2.300,
  • 31), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "pacifist class"
  • Global.PacifistBuyPos = Vector(-284, -3.300, 29);
  • Create Effect(All Players(All Teams), Ring, Color(Aqua), Global.PacifistBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Pacifist | Receive 75% less and deal 90% less damage. Gain passive XP and regenerate while outside."), Vector(X Component Of(
  • Global.PacifistBuyPos), Y Component Of(Global.PacifistBuyPos) + 1, Z Component Of(Global.PacifistBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Classes Text"
  • Create In-World Text(All Players(All Teams), Custom String("Classes | 15 seconds to switch"), Vector(-282, -1.300, 35), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "jump pad"
  • Create Effect(All Players(All Teams), Ring, Color(Green), Vector(-250, -3, 40), 1, Visible To Position and Radius);
  • "Farmer Class"
  • Global.FarmerBuyPos = Vector(-280, -3.300, 30);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.FarmerBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Farmer | Gain 50% extra XP. Heal 30% of damage dealt, but deal 25% less."), Vector(-280, -2.300, 30), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Gladiator class"
  • Global.GladiatorBuyPos = Vector(-278, -3.300, 32.500);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.GladiatorBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Gladiator | take 25% less damage and deal 10% more but move 30% slower"), Vector(-278, -2.300, 32.500), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Lightweight class"
  • Global.LightBuyPos = Vector(-282.500, -3.300, 32);
  • Create Effect(All Players(All Teams), Ring, Color(White), Global.LightBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Lightweight | Increased mobility, gain double jump, and take 20% more damage"), Vector(-282.500, -2.300, 32), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Level Up Shop | 1 point per upgrade"), Local Vector Of(Vector(-270.500,
  • 0, 46), Event Player, Rotation), 1.250, Clip Against Surfaces, Visible To Position and String, Color(Yellow),
  • Default Visibility);
  • "XP To Coins"
  • Global.XPToGoldPos = Vector(-153, -3.410, -86);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.XPToGoldPos, 3, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Convert level up points to coins | 1:15 (reload to convert all)",
  • Global.XPPumpPos), Vector(X Component Of(Global.XPToGoldPos), Y Component Of(Global.XPToGoldPos) + 1, Z Component Of(
  • Global.XPToGoldPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Generator 1"
  • Global.Gen1Pos = Vector(-203, 0, -22);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.Gen1Pos, 2, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Generator (Coins)"), Vector(X Component Of(Global.Gen1Pos),
  • Y Component Of(Global.Gen1Pos) + 1, Z Component Of(Global.Gen1Pos)), 1, Clip Against Surfaces, Visible To Position and String,
  • Color(Green), Default Visibility);
  • "Generator 2"
  • Global.Gen2Pos = Vector(-215, 0, -10);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.Gen2Pos, 2, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Generator (Coins)"), Vector(X Component Of(Global.Gen2Pos),
  • Y Component Of(Global.Gen2Pos) + 1, Z Component Of(Global.Gen2Pos)), 1, Clip Against Surfaces, Visible To Position and String,
  • Color(Green), Default Visibility);
  • "xp shop"
  • Global.DamageBuyPos = Vector(-266.500, -1.300, 50.250);
  • Create Effect(All Players(All Teams), Ring, Color(Red), Global.DamageBuyPos, 1, Visible To Position and Radius);
  • Global.HealthBuyPos = Vector(-268, -1.300, 47);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.HealthBuyPos, 1, Visible To Position and Radius);
  • Global.DefenseBuyPos = Vector(-272, -1.300, 49.500);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.DefenseBuyPos, 1, Visible To Position and Radius);
  • Global.SpeedBuyPos = Vector(-270, -1.300, 52);
  • Create Effect(All Players(All Teams), Ring, Color(White), Global.SpeedBuyPos, 1, Visible To Position and Radius);
  • Global.HeroChangePos = Vector(-284.500, -3.300, 44);
  • Create In-World Text(All Players(All Teams), Custom String("Change Hero"), Vector(X Component Of(Global.HeroChangePos),
  • Y Component Of(Global.HeroChangePos) + 1, Z Component Of(Global.HeroChangePos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.HeroChangePos, 1.250, Visible To Position and Radius);
  • Global.BloodCrystalPos = Vector(-258.030, -4.730, 12.730);
  • Create Effect(All Players(All Teams), Ring, Color(Red), Global.BloodCrystalPos, 3, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Orb, Color(Red), Vector(X Component Of(Global.BloodCrystalPos), Y Component Of(
  • Global.BloodCrystalPos) + 3, Z Component Of(Global.BloodCrystalPos)), 0.200, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Blood Crystal ", Icon String(Arrow: Down)), Vector(X Component Of(
  • Global.BloodCrystalPos), Global.BloodCrystalPos + -0.500, Z Component Of(Global.BloodCrystalPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Bank Deposit"
  • Global.BankDepositPos = Vector(-279, -3.300, 49);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.BankDepositPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Deposit (reload to deposit all)"), Vector(X Component Of(
  • Global.BankDepositPos), Y Component Of(Global.BankDepositPos) + 1, Z Component Of(Global.BankDepositPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Bank Withdraw"
  • Global.BankWithdrawPos = Vector(-281.600, -3.300, 51);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.BankWithdrawPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Withdraw (reload to withdraw all)"), Vector(X Component Of(
  • Global.BankWithdrawPos), Y Component Of(Global.BankWithdrawPos) + 1, Z Component Of(Global.BankWithdrawPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "XP Pump"
  • Global.XPPumpPos = Vector(-179.380, -4.740, -66.060);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.XPPumpPos, 5, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("XP Pump (4 XP/s)"), Vector(X Component Of(Global.XPPumpPos),
  • Y Component Of(Global.XPPumpPos) + 3, Z Component Of(Global.XPPumpPos)), 0.900, Clip Against Surfaces,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.XPPumpPos, Vector(X Component Of(Global.XPPumpPos), Y Component Of(
  • Global.XPPumpPos) + 3, Z Component Of(Global.XPPumpPos)), Color(White), Visible To Position and Radius);
  • "Regen"
  • Global.RegenBuyPos = Vector(-275.350, -5, 24.450);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.RegenBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Regen | +0.1% max health per second (currently {0}%, 3000 coins)",
  • Local Player.Regen * 100), Vector(X Component Of(Global.RegenBuyPos), Y Component Of(Global.RegenBuyPos) + 1, Z Component Of(
  • Global.RegenBuyPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Stun"
  • Global.StunBuyPos = Vector(-273.390, -5, 26.840);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.StunBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Stun Bullets | >40 damage attacks have 15% chance to stun (3000 coins)"), Vector(X Component Of(Global.StunBuyPos),
  • Y Component Of(Global.StunBuyPos) + 1, Z Component Of(Global.StunBuyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • "landmark"
  • Create Icon(All Players(All Teams), Vector(X Component Of(Global.ChanceWheelPos), Y Component Of(Global.ChanceWheelPos) + 2,
  • Z Component Of(Global.ChanceWheelPos)), Question Mark, Visible To and Position, Color(Orange), True);
  • "Double shot"
  • Global.DoubleShotBuyPos = Vector(-271.790, -5, 28.930);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.DoubleShotBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Double Shot | 25% chance to deal damage twice (6000 coins)"), Vector(
  • X Component Of(Global.DoubleShotBuyPos), Y Component Of(Global.DoubleShotBuyPos) + 1, Z Component Of(Global.DoubleShotBuyPos)),
  • 1, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Bank interest"
  • Global.InterestBuyPos = Vector(-273.520, -5, 22.960);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.InterestBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Bank Interest | +1% per 2 minutes (200 coins)"), Vector(X Component Of(
  • Global.InterestBuyPos), Y Component Of(Global.InterestBuyPos) + 1, Z Component Of(Global.InterestBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Corrosive"
  • Global.CorrosiveBuyPos = Vector(-271.610, -5, 25.430);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.CorrosiveBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Corrosive | >60 damage attacks apply poison, dealing damage over time (10000 coins)"), Vector(X Component Of(
  • Global.CorrosiveBuyPos), Y Component Of(Global.CorrosiveBuyPos) + 1, Z Component Of(Global.CorrosiveBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Starting Money"
  • Global.StartingMoney = Workshop Setting Integer(Custom String("Starting"), Custom String("Money"), 500, 0, 15000, 0);
  • "Tenacity"
  • Global.TenacityPos = Vector(-270, -5, 27.450);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.TenacityPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Tenacity | Heal 10% max health on kill (7500 coins)"), Vector(
  • X Component Of(Global.TenacityPos), Y Component Of(Global.TenacityPos) + 1, Z Component Of(Global.TenacityPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Contracts"
  • Global.ContractPosition = Vector(-261.020, -5.090, 28.260);
  • Create Effect(All Players(All Teams), Ring, Color(White), Global.ContractPosition, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("New kill contract (7 second cooldown)"), Vector(X Component Of(
  • Global.ContractPosition), Y Component Of(Global.ContractPosition) + 1, Z Component Of(Global.ContractPosition)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Disabler"
  • Disable Built-In Game Mode Music;
  • Disable Built-In Game Mode Scoring;
  • Disable Built-In Game Mode Completion;
  • "The Dark Shop"
  • Global.DarkShopPos = Vector(-278, -3.300, 39.500);
  • Create In-World Text(All Players(All Teams), Custom String("The Dark Shop (resets)"), Vector(X Component Of(Global.DarkShopPos),
  • Y Component Of(Global.DarkShopPos) + 1, Z Component Of(Global.DarkShopPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Violet), Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.DarkShopPos, 1, Visible To Position and Radius);
  • "The Dark Shop Teleport Out"
  • Global.DarkShopOutPos = Vector(-293.450, -4.180, 49.720);
  • Create In-World Text(All Players(All Teams), Custom String("Teleport Out"), Vector(X Component Of(Global.DarkShopOutPos),
  • Y Component Of(Global.DarkShopOutPos) + 1, Z Component Of(Global.DarkShopOutPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Violet), Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.DarkShopOutPos, 1, Visible To Position and Radius);
  • "Reset"
  • Global.ResetPos = Vector(-312.970, -3.960, 62.560);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Global.ResetPos, 1, Visible To Position and Radius);
  • Global.ResetPoints = Workshop Setting Integer(Custom String("Resetting"), Custom String("Points On Reset"), 100, 0, 1500, 0);
  • Global.ResetLevel = Workshop Setting Integer(Custom String("Resetting"), Custom String("Minimum Level"), 0, 30, 400, 0);
  • Create In-World Text(All Players(All Teams), Custom String("Reset! (Level {0})", Global.ResetLevel), Vector(X Component Of(
  • Global.ResetPos), Y Component Of(Global.ResetPos) + 2, Z Component Of(Global.ResetPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Orange), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Upon resetting, all your stats will reset and you will gain {0} Dark Points.", Global.ResetPoints), Vector(X Component Of(
  • Global.ResetPos), Y Component Of(Global.ResetPos) + 1.500, Z Component Of(Global.ResetPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Orange), Default Visibility);
  • "Wheel Of Chance"
  • Global.ChanceWheelPos = Vector(-141.770, -1.410, -75.370);
  • Create In-World Text(All Players(All Teams), Custom String("Wheel Of Chance (Level 15, 500 coins)"), Vector(X Component Of(
  • Global.ChanceWheelPos), Y Component Of(Global.ChanceWheelPos) + 1, Z Component Of(Global.ChanceWheelPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Global.ChanceWheelPos, 2, Visible To Position and Radius);
  • "Heal Bubble"
  • Global.HealBubblePos = Vector(-218.900, 0, -26.950);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.HealBubblePos, 2, Visible To Position and Radius);
  • Create Icon(All Players(All Teams), Vector(X Component Of(Global.HealBubblePos), Y Component Of(Global.HealBubblePos) + 2.500,
  • Z Component Of(Global.HealBubblePos)), Heart, Visible To and Position, Color(Red), True);
  • "Money to dark"
  • Global.MoneyToDarkPos = Vector(-314.250, -3.960, 60.750);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Global.MoneyToDarkPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Money To Dark Points | 100k to 20"), Vector(X Component Of(
  • Global.MoneyToDarkPos), Y Component Of(Global.MoneyToDarkPos) + 1, Z Component Of(Global.MoneyToDarkPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Purple), Default Visibility);
  • "Dark Points Burning"
  • Global.DarkPointsBurning = Vector(-311.770, -3.960, 64.490);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Global.DarkPointsBurning, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Burn dark points for coins (1:20)"), Vector(X Component Of(
  • Global.DarkPointsBurning), Y Component Of(Global.DarkPointsBurning) + 1, Z Component Of(Global.DarkPointsBurning)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Green), Default Visibility);
  • "Strength Training"
  • Global.StrengthTrainingPos = Vector(-190, 1, -3.290);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.StrengthTrainingPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Strength Training (Level 5)"), Vector(X Component Of(
  • Global.StrengthTrainingPos), Y Component Of(Global.StrengthTrainingPos) + 1, Z Component Of(Global.StrengthTrainingPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Green), Default Visibility);
  • Create Icon(All Players(All Teams), Vector(X Component Of(Global.StrengthTrainingPos), Y Component Of(Global.StrengthTrainingPos)
  • + 2, Z Component Of(Global.StrengthTrainingPos)), Diamond, Visible To and Position, Color(Orange), True);
  • "One Shot"
  • Global.OneShotPos = Vector(-304.300, -4.300, 64.710);
  • Create Effect(All Players(All Teams), Ring, Color(Rose), Global.OneShotPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("One Shot | Kill and die in 1 shot."), Vector(X Component Of(
  • Global.OneShotPos), Y Component Of(Global.OneShotPos) + 1, Z Component Of(Global.OneShotPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Dark Classes"
  • Global.DarkClassesPos = Vector(-303, -4.180, 60);
  • Create Effect(All Players(All Teams), Ring, Color(Violet), Global.DarkClassesPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Unlock Dark Classes (1500 dark points)"), Vector(X Component Of(
  • Global.DarkClassesPos), Y Component Of(Global.DarkClassesPos) + 1, Z Component Of(Global.DarkClassesPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Ghost"
  • Global.GhostPos = Vector(-302.720, -4.300, 63.490);
  • Create Effect(All Players(All Teams), Ring, Color(White), Global.GhostPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Ghost | Become invisible but deal 1% damage"), Vector(X Component Of(
  • Global.GhostPos), Y Component Of(Global.GhostPos) + 1, Z Component Of(Global.GhostPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Troll"
  • Global.TrollPos = Vector(-300.740, -4.300, 62.220);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.TrollPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Troll | Deal 1% damage but take 50% less and gain special abilities (f + r to toggle ability)"), Vector(X Component Of(
  • Global.TrollPos), Y Component Of(Global.TrollPos) + 1, Z Component Of(Global.TrollPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Billionaire"
  • Global.BillionairePos = Vector(-298.470, -4.300, 61);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.BillionairePos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Billionaire | Deal 2x damage but each hit costs 1000 coins"), Vector(
  • X Component Of(Global.BillionairePos), Y Component Of(Global.BillionairePos) + 1, Z Component Of(Global.BillionairePos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Angel Perk"
  • Global.AngelPos = Vector(-314.110, -4.300, 54.520);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.AngelPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Angel | Pacifist class gains flight (300 dark points)"), Vector(
  • X Component Of(Global.AngelPos), Y Component Of(Global.AngelPos) + 1, Z Component Of(Global.AngelPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Dark XP Boost Perk"
  • Global.DarkXPBoostPos = Vector(-311.950, -4.300, 53.100);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.DarkXPBoostPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Dark XP Boost | +1% permanent xp multiplier (25 dark points)",
  • Event Player.XPMultiplier * 100), Vector(X Component Of(Global.DarkXPBoostPos), Y Component Of(Global.DarkXPBoostPos) + 1,
  • Z Component Of(Global.DarkXPBoostPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White),
  • Default Visibility);
  • "Berserkerer"
  • Global.BerserkererPos = Vector(-296.630, -4.300, 59.730);
  • Create Effect(All Players(All Teams), Ring, Color(Red), Global.BerserkererPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Berserkerer | Deal 2.5x and take 3x damage"), Vector(X Component Of(
  • Global.BerserkererPos), Y Component Of(Global.BerserkererPos) + 1, Z Component Of(Global.BerserkererPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • End;
  • "Empty"
  • Global.EmptyPos = Vector(-280.430, -3.300, 34.290);
  • Create Effect(All Players(All Teams), Ring, Color(Gray), Global.EmptyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Empty | Deal +0% damage and receive 0% less"), Vector(X Component Of(
  • Global.EmptyPos), Y Component Of(Global.EmptyPos) + 1, Z Component Of(Global.EmptyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Helper"
  • Global.HelperPos = Vector(-306.040, -4.300, 66.020);
  • Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.HelperPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Helper | Heal and give coins and xp (to others) on attack. Take -90% damage"), Vector(X Component Of(Global.HelperPos),
  • Y Component Of(Global.HelperPos) + 1, Z Component Of(Global.HelperPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Lifesteal"
  • Global.LifestealPos = Vector(-305.680, -4.300, 48.710);
  • Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.LifestealPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Lifesteal | +0.1% (currently {0}%) of damage dealt (50 dark, 10 level up points)", Local Player.Lifesteal), Vector(
  • X Component Of(Global.LifestealPos), Y Component Of(Global.LifestealPos) + 1, Z Component Of(Global.LifestealPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Third Person"
  • Global.ThirdPersonPos = Vector(-279.140, -3.300, 42.580);
  • Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.ThirdPersonPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Toggle third person"), Vector(X Component Of(Global.ThirdPersonPos),
  • Y Component Of(Global.ThirdPersonPos) + 1, Z Component Of(Global.ThirdPersonPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Spectate"
  • Global.SpectatePos = Vector(-281.160, -3.300, 39.550);
  • Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.SpectatePos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Spectate"), Vector(X Component Of(Global.SpectatePos), Y Component Of(
  • Global.SpectatePos) + 1, Z Component Of(Global.SpectatePos)), 1, Clip Against Surfaces, Visible To Position and String, Color(
  • White), Default Visibility);
  • }
  • }
  • rule("Call Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.HudDone != True;
  • }
  • actions
  • {
  • Call Subroutine(Spawn);
  • }
  • }
  • rule("Spawn")
  • {
  • event
  • {
  • Subroutine;
  • Spawn;
  • }
  • actions
  • {
  • disabled Create HUD Text(Event Player, Custom String("{1} Level Up Points: {0}", Event Player.LevelUpPoints, Icon String(Happy)), Null,
  • Null, Right, 0, Color(Sky Blue), Color(White), Color(White), Visible To and String, Default Visibility);
  • disabled Create HUD Text(Event Player, Custom String("{1} Coins: {0}", Event Player.Money, Icon String(Diamond)), Null, Null, Right, 0,
  • Color(Yellow), Color(White), Color(White), Visible To and String, Default Visibility);
  • disabled Disable Built-In Game Mode Respawning(Event Player);
  • Create In-World Text(All Players(All Teams), Custom String("Class: {2} | Level {0}", Event Player.Level, Round To Integer(
  • Max Health(Event Player), To Nearest), Event Player.ClassName), Event Player, 1.200, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Event Player.ClassText = Last Text ID;
  • disabled Create Progress Bar HUD Text(Event Player, Event Player.XP, Custom String("Level: {0}", Event Player.Level), Left, 100, Color(
  • Aqua), Color(White), Visible To Values and Color, Default Visibility);
  • disabled Create HUD Text(Event Player, Null, Null, Custom String("Killstreak: {0} \r\nFlight: {1}s \r\nContract: {2}",
  • Event Player.Killstreak, Event Player.Flight, Event Player.ContractText), Top, 10, Color(White), Color(Green), Color(Green),
  • Visible To and String, Default Visibility);
  • Event Player.Health = 100;
  • Event Player.Speed = 100;
  • Event Player.DamageTaken = 100;
  • Event Player.Damage = 100;
  • Event Player.ClassName = Custom String("None");
  • disabled Create HUD Text(Event Player, Custom String("Class: {0} \r\nMoney: {1} \r\nLevel Up Points: {2}", Event Player.ClassName,
  • Event Player.Money, Event Player.LevelUpPoints), Null, Null, Right, -101, Color(Aqua), Color(White), Color(Aqua),
  • Visible To and String, Default Visibility);
  • "needs event player"
  • disabled If(Global.Setup != True);
  • disabled Create In-World Text(Event Player, Custom String("Speed ({0}) (F + R to decrease speed)", Event Player.Speed), Vector(
  • X Component Of(Global.SpeedBuyPos), Y Component Of(Global.SpeedBuyPos) + 1, Z Component Of(Global.SpeedBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • disabled Create In-World Text(Event Player, Custom String("Damage ({0})", Event Player.Damage), Vector(X Component Of(Global.DamageBuyPos),
  • Y Component Of(Global.DamageBuyPos) + 1, Z Component Of(Global.DamageBuyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • disabled Create In-World Text(Event Player, Custom String("Health ({0}%)", Event Player.Health), Vector(X Component Of(Global.HealthBuyPos),
  • Y Component Of(Global.HealthBuyPos) + 1, Z Component Of(Global.HealthBuyPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • disabled Create In-World Text(Event Player, Custom String("Defence ({0}% Damage)", Event Player.DamageTaken), Vector(X Component Of(
  • Global.DefenseBuyPos), Y Component Of(Global.DefenseBuyPos) + 1, Z Component Of(Global.DefenseBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "scale up"
  • Global.ScaleUpPos = Vector(-267.750, -5.070, 30.230);
  • disabled Create Effect(Event Player, Ring, Color(Yellow), Global.ScaleUpPos, 1, Visible To Position and Radius);
  • disabled Create In-World Text(Event Player, Custom String("Scale up | 20 coins ({0}%)", Event Player.Scale * 100), Vector(X Component Of(
  • Global.ScaleUpPos), Y Component Of(Global.ScaleUpPos) + 1, Z Component Of(Global.ScaleUpPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "scale down"
  • Global.ScaleDownPos = Vector(-265, -5.050, 34);
  • disabled Create Effect(Event Player, Ring, Color(Yellow), Global.ScaleDownPos, 1, Visible To Position and Radius);
  • disabled Create In-World Text(Event Player, Custom String("Scale down | 20 coins ({0}%)", Event Player.Scale * 100), Vector(X Component Of(
  • Global.ScaleDownPos), Y Component Of(Global.ScaleDownPos) + 1, Z Component Of(Global.ScaleDownPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • disabled Create In-World Text(Event Player, Custom String("Bank | ${0} ({1}% interest)", Event Player.Bank, Event Player.Interest * 100),
  • Vector(-280, -1, 50), 1.150, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • disabled Global.Setup = True;
  • disabled End;
  • Event Player.Money = Global.StartingMoney;
  • Event Player.Scale = 1;
  • Start Scaling Player(Event Player, Event Player.Scale, True);
  • disabled Create HUD Text(Event Player, Null, Null, Custom String("Contract: {0}", Event Player.ContractText), Top, 9, Color(White), Color(
  • Green), Color(Green), Visible To and String, Default Visibility);
  • Event Player.LevelUpPoints = Workshop Setting Integer(Custom String("Starting"), Custom String("Level Up Points"), 0, 0, 200, 0);
  • disabled Create In-World Text(Event Player, Custom String("Dark Points: {0} | XP Boost: {1}%", Event Player.DarkPoints,
  • Event Player.XPMultiplier * 100, Custom String("Magic Regen: {1}% Max HP/s | Dark Lifesteal: {2}% Damage dealt", Null,
  • Event Player.DarkRegen, Event Player.Lifesteal)), Vector(-301.700, -2, 55.080), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Purple), Default Visibility);
  • Event Player.ContractText = Custom String("None");
  • Event Player.XPMultiplier = Workshop Setting Real(Custom String("Starting"), Custom String("XP Multiplier"), 1, 1, 100, 0);
  • disabled Create HUD Text(Event Player, Custom String(""), Custom String("", Event Player.Flight), Custom String("Flight: {0}s",
  • Event Player.Flight), Top, 11, Color(White), Color(White), Color(Yellow), Visible To and String, Default Visibility);
  • Event Player.HudDone = True;
  • }
  • }
  • rule("Leaving bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) > 26;
  • Is Dummy Bot(Event Player) != True;
  • }
  • actions
  • {
  • If(Event Player.HasClass != True);
  • Teleport(Event Player, Global.GlobalSpawn);
  • Small Message(Event Player, Custom String("Choose a class first! Look around before leaving."));
  • Else;
  • Small Message(Event Player, Custom String("Leaving safe zone."));
  • Clear Status(Event Player, Phased Out);
  • Allow Button(Event Player, Button(Primary Fire));
  • Allow Button(Event Player, Button(Secondary Fire));
  • Allow Button(Event Player, Button(Ultimate));
  • Allow Button(Event Player, Button(Melee));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ability 2));
  • Stop All Heal Over Time(Event Player);
  • disabled Clear Status(Event Player, Hacked);
  • End;
  • }
  • }
  • rule("Entering bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) < 26;
  • Is Dummy Bot(Event Player) != True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Disallow Button(Event Player, Button(Primary Fire));
  • Disallow Button(Event Player, Button(Secondary Fire));
  • Disallow Button(Event Player, Button(Ultimate));
  • disabled Disallow Button(Event Player, Button(Melee));
  • Disallow Button(Event Player, Button(Ability 1));
  • Disallow Button(Event Player, Button(Ability 2));
  • Start Heal Over Time(Event Player, Event Player, 9999, 20);
  • If(Event Player.Killstreak > 0);
  • Event Player.Killstreak = 0;
  • Small Message(Event Player, Custom String("Killstreak reset for entering spawn."));
  • }
  • }
  • rule("On Damage")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Victim != Event Player;
  • }
  • actions
  • {
  • Destroy In-World Text(Victim.LastTextDamage);
  • If(Event Was Critical Hit == False);
  • Create In-World Text(Event Player, Round To Integer(Event Damage, Up), Vector(X Component Of(Eye Position(Victim)), Y Component Of(
  • Eye Position(Victim)) + 0.350, Z Component Of(Eye Position(Victim))), 1.500, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Victim.LastTextDamage = Last Text ID;
  • Else If(Event Was Critical Hit == True);
  • Create In-World Text(Event Player, Round To Integer(Event Damage, Up), Vector(X Component Of(Eye Position(Victim)), Y Component Of(
  • Eye Position(Victim)) + 0.350, Z Component Of(Eye Position(Victim))), 1.500, Clip Against Surfaces,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • Victim.LastTextDamage = Last Text ID;
  • End;
  • Event Player.XP += Min(Random Real(Event Damage * 0.060, Event Damage * 0.100), 30) * Event Player.XPMultiplier;
  • If(Event Player.Farmer == True);
  • Heal(Event Player, Null, Event Damage * 0.300);
  • }
  • }
  • rule("Remove damage text")
  • {
  • event
  • {
  • Player Took Damage;
  • All;
  • All;
  • }
  • actions
  • {
  • Wait(1, Restart When True);
  • Destroy In-World Text(Event Player.LastTextDamage);
  • }
  • }
  • rule("death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • Destroy In-World Text(Event Player.LastTextDamage);
  • disabled If(Event Player.Killstreak >= 10);
  • disabled Event Player.XP += 200;
  • disabled Small Message(All Players(All Teams), Custom String("+200 xp for high streak"));
  • disabled If(Event Player.Killstreak >= 15);
  • disabled Small Message(All Players(All Teams), Custom String("+300 xp for high streak"));
  • disabled Event Player.XP += 300;
  • disabled If(Event Player.Killstreak >= 20);
  • disabled Small Message(All Players(All Teams), Custom String("+500 xp for high streak"));
  • disabled Event Player.XP += 500;
  • disabled End;
  • Event Player.Killstreak = 0;
  • Event Player.Poison = 0;
  • Clear Status(Event Player, Invincible);
  • }
  • }
  • rule("Berserker Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.BerserkerBuyPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Berserker != True;
  • }
  • actions
  • {
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Berserker class selected."));
  • Event Player.Berserker = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Berserker = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Berserker class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Berserker");
  • }
  • }
  • rule("Pacifist Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.PacifistBuyPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Pacifist != True;
  • }
  • actions
  • {
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Pacifist class selected."));
  • Event Player.Pacifist = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Pacifist = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Pacifist class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • If(Event Player.Angel == False);
  • Event Player.ClassName = Custom String("Pacifist");
  • Else;
  • Event Player.ClassName = Custom String("Angel");
  • }
  • }
  • rule("respawn")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • Wait Until(Is Alive(Event Player) == True, 99999);
  • Wait(0.016, Ignore Condition);
  • Teleport(Event Player, Vector(0, 400, 0));
  • Wait(0.016, Ignore Condition);
  • Teleport(Event Player, Global.GlobalSpawn);
  • }
  • }
  • rule("Level Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.XP >= 100;
  • }
  • actions
  • {
  • Event Player.LevelUpPoints += 1 * Event Player.Level + 10;
  • Small Message(Event Player, Custom String("{0} Level Up", Icon String(Checkmark)));
  • Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 100);
  • Play Effect(Event Player, Good Explosion, Color(White), Event Player, 10);
  • Event Player.XP -= 100;
  • Event Player.Level += 1;
  • Set Player Score(Event Player, Event Player.Level);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("On Kill")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player != Victim;
  • }
  • actions
  • {
  • Event Player.XPKillReward = Random Real(25, 35) * Event Player.XPMultiplier;
  • Small Message(Event Player, Custom String("+{0} xp", Event Player.XPKillReward));
  • Event Player.XP += Event Player.XPKillReward;
  • Event Player.Killstreak += 1;
  • Small Message(Victim, Custom String("-{0} coins (-20%)", Round To Integer(Victim.Money * 0.200, To Nearest) * 1));
  • Small Message(Event Player, Custom String("+{0} coins", Round To Integer(Victim.Money * 0.200, To Nearest) + 50));
  • Event Player.Money += Round To Integer(Victim.Money * 0.200, To Nearest) + 50;
  • Victim.Money -= Round To Integer(Victim.Money * 0.200, To Nearest);
  • If(Event Player.Tenacity == True);
  • Heal(Event Player, Null, Max Health(Event Player) * 0.100);
  • End;
  • If(Global.XPKillEvent == True);
  • Small Message(Event Player, Custom String("+{0} extra xp", Event Player.XPMultiplier * 70));
  • Event Player.XP += 70 * Event Player.XPMultiplier;
  • End;
  • If(Victim.Bounty > 1);
  • Small Message(Event Player, Custom String("+{0} coins for claiming bounty.", Victim.Bounty));
  • Small Message(Victim, Custom String("Bounty cleared"));
  • Event Player.Money += Victim.Bounty;
  • Wait(0.016, Ignore Condition);
  • Victim.Bounty = 0;
  • }
  • }
  • rule("Pacifist's passive XP")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.Pacifist == True;
  • Distance Between(Position Of(Event Player), Global.GlobalSpawn) >= 26;
  • Has Status(Event Player, Invincible) == False;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Event Player.XP += 1 * Event Player.XPMultiplier;
  • Loop If Condition Is True;
  • }
  • }
  • rule("Jump pad")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Vector(-250, -3, 40), Position Of(Event Player)) <= 1;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Up, 12, To Player, Cancel Contrary Motion);
  • }
  • }
  • rule("Farmer Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.FarmerBuyPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Farmer != True;
  • }
  • actions
  • {
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Farmer class selected."));
  • Event Player.Farmer = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Farmer = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Farmer class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Farmer");
  • Event Player.XPMultiplier += 0.500;
  • }
  • }
  • rule("Gladiator Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.GladiatorBuyPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Gladiator != True;
  • }
  • actions
  • {
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Gladiator class selected."));
  • Event Player.Gladiator = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Gladiator = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Gladiator class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Gladiator");
  • }
  • }
  • rule("Lightweight Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.LightBuyPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Lightweight != True;
  • }
  • actions
  • {
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Lightweight class selected."));
  • Event Player.Lightweight = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Lightweight = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Lightweight class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Lightweight");
  • }
  • }
  • rule("Default values")
  • {
  • event
  • {
  • Subroutine;
  • Default;
  • }
  • actions
  • {
  • If(Event Player.HasClass == False);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • Set Max Health(Event Player, Event Player.Health);
  • Else If(Event Player.Berserker == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 1.400);
  • Set Damage Dealt(Event Player, Event Player.Damage * 1.400);
  • Set Max Health(Event Player, Event Player.Health);
  • Else If(Event Player.Pacifist == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 0.250);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.100);
  • Set Max Health(Event Player, Event Player.Health);
  • Else If(Event Player.Farmer == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.750);
  • Set Max Health(Event Player, Event Player.Health);
  • Else If(Event Player.Gladiator == True);
  • Set Move Speed(Event Player, Event Player.Speed * 0.750);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 0.750);
  • Set Damage Dealt(Event Player, Event Player.Damage * 1.100);
  • Set Max Health(Event Player, Event Player.Health);
  • Else If(Event Player.Lightweight == True);
  • Set Move Speed(Event Player, Event Player.Speed * 1.600);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 1.200);
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Lightweight == True);
  • Set Gravity(Event Player, 75);
  • Set Jump Vertical Speed(Event Player, 125);
  • Else;
  • Set Jump Vertical Speed(Event Player, 100);
  • Set Gravity(Event Player, 100);
  • End;
  • If(Event Player.OneShot == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Ghost == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Troll == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 0.500);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Billionaire == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • If(Event Player.Money >= 1000);
  • Set Damage Dealt(Event Player, Event Player.Damage * 2);
  • Else;
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • End;
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Berserkerer == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 3);
  • Set Damage Dealt(Event Player, Event Player.Damage * 2.500);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.OneShot == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Empty == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken);
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • If(Event Player.Helper == True);
  • Set Move Speed(Event Player, Event Player.Speed);
  • Set Damage Received(Event Player, Event Player.DamageTaken * 0.100);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
  • Set Max Health(Event Player, Event Player.Health);
  • End;
  • }
  • }
  • rule("Pacifist Regen")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Pacifist == True;
  • Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) > 20;
  • }
  • actions
  • {
  • Heal(Event Player, Null, Max Health(Event Player) * 0.020);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("set values")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) != True;
  • }
  • actions
  • {
  • Call Subroutine(Default);
  • Wait(1, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Class Purge")
  • {
  • event
  • {
  • Subroutine;
  • ClassPurge;
  • }
  • actions
  • {
  • If(Event Player.Ghost == True);
  • Create In-World Text(All Players(All Teams), Custom String("Class: {2} | Level {0}", Event Player.Level, Round To Integer(
  • Max Health(Event Player), To Nearest), Event Player.ClassName), Event Player, 1.200, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • Event Player.ClassText = Last Text ID;
  • Set Invisible(Event Player, None);
  • End;
  • If(Event Player.Farmer == True);
  • Event Player.XPMultiplier -= 0.500;
  • End;
  • Event Player.Berserker = False;
  • Event Player.Pacifist = False;
  • Event Player.Farmer = False;
  • Event Player.Lightweight = False;
  • Event Player.Gladiator = False;
  • Event Player.OneShot = False;
  • Event Player.Ghost = False;
  • Event Player.Troll = False;
  • Event Player.Billionaire = False;
  • Event Player.Berserkerer = False;
  • Event Player.Empty = False;
  • Event Player.Helper = False;
  • Event Player.ClassName = Custom String("None (waiting to change)");
  • }
  • }
  • rule("Event")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.EventType == 0;
  • }
  • actions
  • {
  • Wait(Random Real(120, 210), Abort When False);
  • Global.EventType = Random Integer(1, 7);
  • Call Subroutine(Events);
  • }
  • }
  • rule("EventSubroutine")
  • {
  • event
  • {
  • Subroutine;
  • Events;
  • }
  • actions
  • {
  • If(Global.EventType == 1);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Global.EventType = 22222222;
  • Wait(5, Ignore Condition);
  • Global.EventType = 1;
  • Big Message(All Players(All Teams), Custom String("Next person to die earns a reward"));
  • Else If(Global.EventType == 2);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Wait(5, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("+30 Level Up Points for all"));
  • All Players(All Teams).LevelUpPoints += 30;
  • Global.EventType = 0;
  • Else If(Global.EventType == 3);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Wait(5, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Generators work 20x better for 30 seconds"));
  • Global.Overflow = True;
  • Wait(30, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Event Over"));
  • Global.EventType = 0;
  • Global.Overflow = False;
  • Else If(Global.EventType == 4);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Wait(5, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Standing still will deal damage for 15 seconds"));
  • Global.MoveOrDie = True;
  • Wait(15, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Event Over"));
  • Global.EventType = 0;
  • Global.MoveOrDie = False;
  • Else If(Global.EventType == 5);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Wait(5, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Gain +70 xp per kill for 40 seconds"));
  • Global.XPKillEvent = True;
  • Wait(40, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Event Over"));
  • Global.EventType = 0;
  • Global.XPKillEvent = False;
  • Else If(Global.EventType == 6);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Wait(5, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Next person to kill will earn a reward"));
  • Global.NextToKill = True;
  • Else If(Global.EventType == 7);
  • Big Message(All Players(All Teams), Custom String("Event Starting..."));
  • Wait(5, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Reward Orb Spawning, press f to collect..."));
  • Call Subroutine(RewardOrb);
  • }
  • }
  • rule("Self kill Event")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.EventType == 1;
  • }
  • actions
  • {
  • Big Message(All Players(All Teams), Custom String("{0} won the event!", Event Player));
  • Event Player.Money += 1000;
  • Event Player.XP += 200;
  • Small Message(Event Player, Custom String("+1000 coins, +200 xp"));
  • Global.EventType = 0;
  • }
  • }
  • rule("Generator 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.Gen1Pos) <= 2;
  • }
  • actions
  • {
  • If(Global.Overflow != True);
  • Wait(3, Abort When False);
  • Event Player.RandomGenerator = Random Integer(8, 20);
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator));
  • Event Player.Money += Event Player.RandomGenerator;
  • Loop If Condition Is True;
  • Else If(Global.Overflow == True);
  • Wait(3, Abort When False);
  • Event Player.RandomGenerator = Random Integer(8, 20);
  • Event Player.Money += Event Player.RandomGenerator * 20;
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator * 20));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Generator 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.Gen2Pos) <= 2;
  • }
  • actions
  • {
  • If(Global.Overflow != True);
  • Wait(3, Abort When False);
  • Event Player.RandomGenerator = Random Integer(8, 20);
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator));
  • Event Player.Money += Event Player.RandomGenerator;
  • Loop If Condition Is True;
  • Else If(Global.Overflow == True);
  • Wait(3, Abort When False);
  • Event Player.RandomGenerator = Random Integer(8, 20);
  • Event Player.Money += Event Player.RandomGenerator * 20;
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator * 20));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Health Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Distance Between(Event Player, Global.HealthBuyPos) <= 1;
  • Event Player.LevelUpPoints >= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Health < 1000);
  • Event Player.LevelUpPoints -= 1;
  • Event Player.Health += 1;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max Health!"));
  • }
  • }
  • rule("Defence Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.DefenseBuyPos) <= 1;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.LevelUpPoints >= 1;
  • }
  • actions
  • {
  • If(Event Player.DamageTaken > 40);
  • Event Player.LevelUpPoints -= 1;
  • Event Player.DamageTaken -= 0.100;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max Defence!"));
  • }
  • }
  • rule("Damage Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.DamageBuyPos) <= 1;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.LevelUpPoints >= 1;
  • }
  • actions
  • {
  • If(Event Player.Damage < 1000);
  • Event Player.LevelUpPoints -= 1;
  • Event Player.Damage += 1;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max Damage!"));
  • }
  • }
  • rule("Speed Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.SpeedBuyPos) <= 1;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.LevelUpPoints >= 1;
  • }
  • actions
  • {
  • If(Event Player.Speed < 700);
  • Event Player.Speed += 1;
  • Event Player.LevelUpPoints -= 1;
  • Else;
  • Small Message(Event Player, Custom String("Max Speed!"));
  • End;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("Speed Reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.SpeedBuyPos) <= 1;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Event Player.Speed > 100;
  • }
  • actions
  • {
  • Event Player.LevelUpPoints += Event Player.Speed - 100;
  • Event Player.Speed = 100;
  • Small Message(Event Player, Custom String("Reset speed"));
  • }
  • }
  • rule("Killstreak Announcements")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • actions
  • {
  • If(Event Player.Killstreak == 10);
  • Big Message(All Players(All Teams), Custom String("{0} is on a killstreak of 10!", Event Player));
  • End;
  • If(Event Player.Killstreak == 15);
  • Big Message(All Players(All Teams), Custom String("{0} is on a killstreak of 15!", Event Player));
  • End;
  • If(Event Player.Killstreak == 20);
  • Big Message(All Players(All Teams), Custom String("{0} is on a killstreak of 20!", Event Player));
  • End;
  • }
  • }
  • rule("Hero Change")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.HeroChangePos) <= 1.500;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Change heroes"));
  • }
  • }
  • rule("Blood Crystal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.BloodCrystalPos) <= 3;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Create Beam Effect(All Players(All Teams), Bad Beam, Vector(X Component Of(Global.BloodCrystalPos), Y Component Of(
  • Global.BloodCrystalPos) + 3, Z Component Of(Global.BloodCrystalPos)), Event Player, Color(Red),
  • Visible To Position and Radius);
  • Event Player.BloodCrystalBeam = Last Created Entity;
  • Create Effect(Event Player, Energy Sound, Color(White), Position Of(Event Player), 300, Visible To Position and Radius);
  • Event Player.BloodEnergySound = Last Created Entity;
  • Damage(Event Player, Null, Max Health(Event Player) * 0.200);
  • Event Player.RandomBloodCrystal = Random Integer(8, 14);
  • Event Player.Money += Event Player.RandomBloodCrystal;
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomBloodCrystal));
  • disabled Set Status(Event Player, Null, Burning, 0.750);
  • Wait(0.750, Ignore Condition);
  • Destroy Effect(Event Player.BloodCrystalBeam);
  • Destroy Effect(Event Player.BloodEnergySound);
  • Loop If Condition Is True;
  • }
  • }
  • rule("LevelUpPoints To Coins")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.XPToGoldPos) <= 3;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.LevelUpPoints >= 1;
  • }
  • actions
  • {
  • Event Player.Money += 15;
  • Event Player.LevelUpPoints -= 1;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Scale Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.ScaleUpPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 20;
  • Event Player.Scale < 3;
  • }
  • actions
  • {
  • Event Player.Scale += 0.005;
  • Event Player.Money -= 20;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Ignore Condition);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("Scale Down")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.ScaleDownPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 20;
  • Event Player.Scale > 0.350;
  • }
  • actions
  • {
  • Event Player.Scale -= 0.005;
  • Event Player.Money -= 20;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Ignore Condition);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("Bank Deposit")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.BankDepositPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Money >= 10);
  • Event Player.Bank += 10;
  • Event Player.Money -= 10;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("Bank Withdraw")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.BankWithdrawPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Bank >= 10);
  • Event Player.Money += 10;
  • Event Player.Bank -= 10;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("XP Pump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Global.XPPumpPos, Event Player) <= 5;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, XP, 10000, 4 * Event Player.XPMultiplier, Destination and Rate);
  • End;
  • Small Message(Event Player, Custom String("Gaining XP"));
  • Create Beam Effect(All Players(All Teams), Bad Beam, Vector(X Component Of(Global.XPPumpPos), Y Component Of(Global.XPPumpPos) + 3,
  • Z Component Of(Global.XPPumpPos)), Event Player, Color(Blue), Visible To Position and Radius);
  • Event Player.XpPumpBeam = Last Created Entity;
  • Create Effect(Event Player, Beacon Sound, Color(White), Event Player, 200, Visible To Position and Radius);
  • Event Player.XpPumpSound = Last Created Entity;
  • Create Effect(Event Player, Decal Sound, Color(White), Event Player, 200, Visible To Position and Radius);
  • Event Player.XpPumpSound2 = Last Created Entity;
  • }
  • }
  • rule("Stepping off XP Pump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Global.XPPumpPos, Event Player) > 5;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, XP);
  • Destroy Effect(Event Player.XpPumpBeam);
  • Destroy Effect(Event Player.XpPumpSound);
  • Destroy Effect(Event Player.XpPumpSound2);
  • }
  • }
  • rule("Regen Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 3000;
  • Distance Between(Event Player, Global.RegenBuyPos) <= 1;
  • }
  • actions
  • {
  • If(Event Player.Regen < 0.015);
  • Event Player.Money -= 3000;
  • Event Player.Regen += 0.001;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max Regen!"));
  • End;
  • }
  • }
  • rule("Stun Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Stun == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 3000;
  • Distance Between(Event Player, Global.StunBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.Money -= 3000;
  • Event Player.Stun = True;
  • Small Message(Event Player, Custom String("Stun Bought"));
  • }
  • }
  • rule("Regen")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Regen == True;
  • }
  • actions
  • {
  • Heal(Event Player, Null, Min(Event Player.Regen * Max Health(Event Player), 40));
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Stun")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Stun == True;
  • Victim != Event Player;
  • (Event Damage >= 40) == True;
  • }
  • actions
  • {
  • If(Random Real(1, 100) <= 15);
  • Set Status(Victim, Null, Stunned, 0.650);
  • }
  • }
  • rule("Interest Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 200;
  • Distance Between(Event Player, Global.InterestBuyPos) <= 1;
  • Event Player.Interest < 0.400;
  • }
  • actions
  • {
  • Event Player.Money -= 200;
  • Event Player.Interest += 0.010;
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("Double Shot Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.DoubleShot == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 6000;
  • Distance Between(Event Player, Global.DoubleShotBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.Money -= 6000;
  • Event Player.DoubleShot = True;
  • Small Message(Event Player, Custom String("Double-Shot Bought"));
  • }
  • }
  • rule("Corrosive Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.CorrosiveAmmunition == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 10000;
  • Distance Between(Event Player, Global.CorrosiveBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.Money -= 10000;
  • Event Player.CorrosiveAmmunition = True;
  • Small Message(Event Player, Custom String("Corrosive Bought"));
  • }
  • }
  • rule("Interest")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Interest > 0;
  • }
  • actions
  • {
  • Wait(120, Abort When False);
  • Event Player.Bank += Round To Integer(Event Player.Bank * Event Player.Interest, Up);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Double Shot")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.DoubleShot == True;
  • Victim != Event Player;
  • }
  • actions
  • {
  • If(Random Real(1, 100) <= 25);
  • Damage(Victim, Event Player, Event Damage);
  • }
  • }
  • rule("Inflict Poison")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.CorrosiveAmmunition == True;
  • Victim != Event Player;
  • Event Damage >= 60;
  • Event Player.PoisonDamage != True;
  • }
  • actions
  • {
  • Victim.Poison += 3;
  • Small Message(Victim, Custom String("+3 Poison"));
  • Victim.Poisoner = Event Player;
  • }
  • }
  • rule("Poison Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Poison > 0;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("Poison: {0}", Event Player.Poison));
  • Event Player.PoisonDamage = True;
  • Damage(Event Player, Event Player.Poisoner, Min(Event Player.Poison, 20));
  • Event Player.PoisonDamage = False;
  • Event Player.Poison -= 1;
  • Wait(1, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Next To Kill Event")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.NextToKill == True;
  • }
  • actions
  • {
  • Big Message(All Players(All Teams), Custom String("{0} won the event!", Event Player));
  • Event Player.Money += 1000;
  • Event Player.XP += 200;
  • Small Message(Event Player, Custom String("+1000 coins, +200 xp"));
  • Global.EventType = 0;
  • Global.NextToKill = 0;
  • }
  • }
  • rule("Move Event")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.MoveOrDie == True;
  • Is Moving(Event Player) == False;
  • }
  • actions
  • {
  • Wait(0.250, Abort When False);
  • Damage(Event Player, Null, Max Health(Event Player) / 16);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Tenacity Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Tenacity == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 7500;
  • Distance Between(Event Player, Global.TenacityPos) <= 1;
  • }
  • actions
  • {
  • Event Player.Money -= 7500;
  • Event Player.Tenacity = True;
  • Small Message(Event Player, Custom String("Tenacity Bought"));
  • }
  • }
  • rule("Contract")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.ContractPosition) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Number Of Players(All Teams) >= 3);
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 200);
  • Event Player.ContractKill = Random Value In Array(Filtered Array(All Players(All Teams), Current Array Element != Event Player));
  • Event Player.OnContract = True;
  • Event Player.ContractXP = Random Real(70, 120);
  • Event Player.ContractCoins = Random Integer(400, 700);
  • Event Player.ContractText = Custom String("Kill {0} ({1} coins, {2} xp)", Event Player.ContractKill, Event Player.ContractCoins,
  • Event Player.ContractXP);
  • Small Message(Event Player, Custom String("Contract Started"));
  • Wait(7, Ignore Condition);
  • Else;
  • Small Message(Event Player, Custom String("Must have at least 3 players to start a contract."));
  • }
  • }
  • rule("Bank Deposit All")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.BankDepositPos) <= 1;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • }
  • actions
  • {
  • Event Player.Bank += Event Player.Money;
  • Event Player.Money = 0;
  • }
  • }
  • rule("Bank Withdraw All")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.BankWithdrawPos) <= 1;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • }
  • actions
  • {
  • If(Is Button Held(Event Player, Button(Reload)) == True);
  • Event Player.Money += Event Player.Bank;
  • Event Player.Bank = 0;
  • }
  • }
  • rule("Dark Shop Teleport In")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.DarkShopPos) < 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.HasClass == True);
  • Teleport(Event Player, Vector(-290, -2, 50));
  • Set Status(Event Player, Null, Invincible, 9999);
  • Else;
  • Small Message(Event Player, Custom String("Choose a class first!"));
  • }
  • }
  • rule("Dark Shop Teleport Out")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.DarkShopOutPos) < 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(-266.330, -5.090, 31.670));
  • Clear Status(Event Player, Invincible);
  • }
  • }
  • rule("Reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.ResetPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Level >= Global.ResetLevel);
  • Big Message(All Players(All Teams), Custom String("{0} has reset!", Event Player));
  • Small Message(Event Player, Custom String("+{0} Dark Points", Global.ResetPoints));
  • Set Player Score(Event Player, 0);
  • Event Player.Level = 0;
  • Event Player.XP = 0;
  • Event Player.LevelUpPoints = 50;
  • Event Player.Health = 100;
  • Event Player.Speed = 100;
  • Event Player.DamageTaken = 100;
  • Event Player.Damage = 100;
  • Event Player.Money = Global.StartingMoney;
  • Event Player.Scale = 1;
  • Event Player.Bank = 0;
  • Event Player.CorrosiveAmmunition = 0;
  • Event Player.Tenacity = 0;
  • Event Player.Regen = 0;
  • Event Player.DoubleShot = 0;
  • Event Player.Stun = 0;
  • Event Player.Interest = 0;
  • Event Player.DarkPoints += Global.ResetPoints;
  • Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 200);
  • Else;
  • Small Message(Event Player, Custom String("You must be at least level {0} to reset.", Global.ResetLevel));
  • }
  • }
  • rule("Wheel Of Chance")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.ChanceWheelPos) <= 2;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.WheelCooldown < 1);
  • If(Event Player.Money >= 500);
  • If(Event Player.Level >= 15);
  • Event Player.Money -= 500;
  • Event Player.WheelOfChance = Random Integer(1, 12);
  • Call Subroutine(WheelOfChance);
  • Event Player.WheelCooldown = 20;
  • Else;
  • Small Message(Event Player, Custom String("You must be at least level 15 to use this."));
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Not enough money."));
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Wait {0} seconds before trying again.", Event Player.WheelCooldown));
  • }
  • }
  • rule("Wheel Of Chance Subroutine")
  • {
  • event
  • {
  • Subroutine;
  • WheelOfChance;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("Spinning..."));
  • Wait(4, Ignore Condition);
  • If(Event Player.WheelOfChance == 1);
  • Event Player.WheelMoneyReward = Random Integer(4000, 6000);
  • Event Player.Money += Event Player.WheelMoneyReward;
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.WheelMoneyReward));
  • Else If(Event Player.WheelOfChance == 2);
  • All Players(All Teams).Money += Round To Integer(1000 / Number Of Players(All Teams), Up);
  • Small Message(Event Player, Custom String("Gave everyone {0} coins (including you)", Round To Integer(1000 / Number Of Players(
  • All Teams), Up)));
  • Small Message(Filtered Array(All Players(All Teams), Current Array Element != Event Player), Custom String("{0} gave you {1}",
  • Event Player, Round To Integer(1000 / Number Of Players(All Teams), Up)));
  • Else If(Event Player.WheelOfChance == 3);
  • Small Message(Event Player, Custom String("Lose half of your held coins!"));
  • Event Player.Money /= 2;
  • Else If(Event Player.WheelOfChance == 4);
  • Event Player.WheelLevelReward = Random Integer(-3, -1);
  • Small Message(Event Player, Custom String("{0} Levels", Event Player.WheelLevelReward));
  • Event Player.XP = 0;
  • Event Player.Level += Event Player.WheelLevelReward;
  • Else If(Event Player.WheelOfChance == 5);
  • Event Player.WheelXPReward = Random Integer(250, 400);
  • Event Player.XP += Event Player.WheelXPReward;
  • Small Message(Event Player, Custom String("+{0} xp", Event Player.WheelXPReward));
  • Else If(Event Player.WheelOfChance == 6);
  • Set Player Health(Event Player, 1);
  • Set Status(Event Player, Null, Hacked, 15);
  • Set Status(Event Player, Null, Frozen, 5);
  • Small Message(Event Player, Custom String("Something bad happened..."));
  • Else If(Event Player.WheelOfChance == 7);
  • Small Message(Event Player, Custom String("Nothing happened."));
  • Else If(Event Player.WheelOfChance == 8);
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("You died?"));
  • Else If(Event Player.WheelOfChance == 9);
  • Event Player.Bounty += 2000;
  • Big Message(Filtered Array(All Players(All Teams), Current Array Element != Event Player), Custom String(
  • "{0} has a bounty of {1} coins! Kill them to receive it", Event Player, Event Player.Bounty));
  • Small Message(Event Player, Custom String("+2000 bounty! (others might target you)"));
  • Else If(Event Player.WheelOfChance == 10);
  • Event Player.ReturnToSpawnReward = True;
  • Small Message(Event Player, Custom String("Return to spawn for a reward! "));
  • Else If(Event Player.WheelOfChance == 11);
  • Small Message(Event Player, Custom String("Lose half of your banked coins!"));
  • Event Player.Bank /= 2;
  • Else If(Event Player.WheelOfChance == 12);
  • Event Player.WheelMoneyReward = Random Integer(1000, 2000);
  • Event Player.Money += Event Player.WheelMoneyReward;
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.WheelMoneyReward));
  • }
  • }
  • rule("Wheel Cooldown Counting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.WheelCooldown > 0;
  • }
  • actions
  • {
  • Event Player.WheelCooldown -= 1;
  • Wait(1, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Return")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.ReturnToSpawnReward == True;
  • Distance Between(Position Of(Event Player), Global.GlobalSpawn) <= 26;
  • }
  • actions
  • {
  • Event Player.Money += 3000;
  • Event Player.XP += 300;
  • Small Message(Event Player, Custom String("+300 xp, +3000 coins"));
  • Event Player.ReturnToSpawnReward = False;
  • }
  • }
  • rule("Heal Bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.HealBubblePos) <= 2;
  • }
  • actions
  • {
  • If(Health(Event Player) != Max Health(Event Player));
  • Wait(1.500, Abort When False);
  • Small Message(Event Player, Custom String("Healed {0} ", Max Health(Event Player) * 0.100));
  • Heal(Event Player, Null, Max Health(Event Player) * 0.100);
  • Loop If Condition Is True;
  • Else;
  • Wait(1.500, Abort When False);
  • Small Message(Event Player, Custom String("Healed 0 (Max health)"));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Contract Finish")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.OnContract == True;
  • (Victim == Event Player.ContractKill) == True;
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 200);
  • Event Player.Money += Event Player.ContractCoins;
  • Event Player.XP += Event Player.ContractXP;
  • Event Player.ContractText = Custom String("None");
  • Event Player.OnContract = False;
  • Event Player.ContractKill = Null;
  • Small Message(Event Player, Custom String("Contract complete!"));
  • }
  • }
  • rule("Money to Dark")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.MoneyToDarkPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 100000;
  • }
  • actions
  • {
  • Event Player.Money -= 100000;
  • Event Player.DarkPoints += 20;
  • Play Effect(Event Player, Ring Explosion, Color(White), Event Player, 15);
  • If(Is Button Held(Event Player, Button(Crouch)) == True);
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • rule("Dark Points Burning")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.DarkPointsBurning) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 1;
  • }
  • actions
  • {
  • Event Player.Money += 20;
  • Event Player.DarkPoints -= 1;
  • If(Is Crouching(Event Player) == True);
  • Wait(0.020, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Strength Training")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.StrengthTrainingPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Level >= 5);
  • If(Event Player.StrengthTrainingCooldown >= 1);
  • Small Message(Event Player, Custom String("You must wait {0} seconds before trying again.",
  • Event Player.StrengthTrainingCooldown));
  • Else;
  • Small Message(Event Player, Custom String("Strength training starting in 5 seconds"));
  • Event Player.StrengthTraining = True;
  • Set Status(Event Player, Null, Rooted, 9999);
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Press space as many times as you can!"));
  • Wait(3.500, Ignore Condition);
  • Small Message(Event Player, Custom String("5"));
  • Wait(1, Ignore Condition);
  • Small Message(Event Player, Custom String("4"));
  • Wait(1, Ignore Condition);
  • Small Message(Event Player, Custom String("3"));
  • Wait(1, Ignore Condition);
  • Small Message(Event Player, Custom String("2"));
  • Wait(1, Ignore Condition);
  • Small Message(Event Player, Custom String("1"));
  • Wait(1, Ignore Condition);
  • Event Player.StrengthTraining = False;
  • Event Player.Money += Event Player.StrengthTrainingScore * 6;
  • Event Player.XP += Event Player.StrengthTrainingScore * 3;
  • Small Message(Event Player, Custom String("Training ended. {2} presses, +{0} xp, +{1} coins",
  • Event Player.StrengthTrainingScore * 3, Event Player.StrengthTrainingScore * 6, Event Player.StrengthTrainingScore));
  • Event Player.StrengthTrainingCooldown = 120;
  • Clear Status(Event Player, Rooted);
  • Wait(0.016, Ignore Condition);
  • Event Player.StrengthTrainingScore = 0;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("You must be at least level 5 to use this."));
  • }
  • }
  • rule("Strength Training Scoring")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.StrengthTraining == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • }
  • actions
  • {
  • Event Player.StrengthTrainingScore += 1;
  • }
  • }
  • rule("Strength Training Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.StrengthTrainingCooldown > 0;
  • }
  • actions
  • {
  • Event Player.StrengthTrainingCooldown -= 1;
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("One Shot Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.OneShotPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.OneShot != True;
  • }
  • actions
  • {
  • If(Event Player.DarkClasses == True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("One Shot class selected."));
  • Event Player.OneShot = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.OneShot = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("One Shot class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("One Shot");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • }
  • }
  • rule("One Shot Death")
  • {
  • event
  • {
  • Player Took Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.OneShot == True;
  • Attacker != Null;
  • }
  • actions
  • {
  • Kill(Event Player, Attacker);
  • }
  • }
  • rule("One Shot Kill")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.OneShot == True;
  • }
  • actions
  • {
  • Kill(Victim, Event Player);
  • }
  • }
  • rule("Unlock Dark Classes")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.DarkClasses == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.DarkClassesPos) <= 1;
  • }
  • actions
  • {
  • If(Event Player.DarkPoints >= 1500);
  • Small Message(Event Player, Custom String("Bought"));
  • Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), Event Player, 1);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Aqua), Event Player, 5);
  • Event Player.DarkPoints -= 1500;
  • Event Player.DarkClasses = True;
  • Else;
  • Small Message(Event Player, Custom String("You do not have 1500 dark points"));
  • }
  • }
  • rule("Ghost Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.GhostPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Ghost != True;
  • }
  • actions
  • {
  • If(Event Player.DarkClasses == True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Ghost class selected."));
  • Event Player.Ghost = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Ghost = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Ghost class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Ghost");
  • Destroy In-World Text(Event Player.ClassText);
  • Set Invisible(Event Player, All);
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • }
  • }
  • rule("Troll Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.TrollPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Troll != True;
  • }
  • actions
  • {
  • If(Event Player.DarkClasses == True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Troll class selected."));
  • Event Player.Troll = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Troll = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Troll class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Troll ");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • }
  • }
  • rule("Troll Effects")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Troll == True;
  • }
  • actions
  • {
  • If(Event Player.TrollMode == 1);
  • Apply Impulse(Victim, Facing Direction Of(Event Player), 25, To World, Cancel Contrary Motion);
  • Apply Impulse(Victim, Vector(0, 10000, 0), 3, To World, Cancel Contrary Motion);
  • Set Environment Credit Player(Victim, Event Player);
  • Else If(Event Player.TrollMode == 2);
  • Apply Impulse(Victim, Facing Direction Of(Event Player) - Facing Direction Of(Event Player) * 1000, 25, To World,
  • Cancel Contrary Motion);
  • Apply Impulse(Victim, Vector(0, 10000, 0), 3, To World, Cancel Contrary Motion);
  • Set Environment Credit Player(Victim, Event Player);
  • Else If(Event Player.TrollMode == 3);
  • Set Facing(Victim, Vector(Random Real(-1000, 1000), Random Real(-100, 250), Random Real(-1000, 1000)), To World);
  • Else If(Event Player.TrollMode == 4);
  • Set Status(Victim, Null, Frozen, 2);
  • Set Status(Victim, Null, Hacked, 4);
  • }
  • }
  • rule("Troll Change")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Troll == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • }
  • actions
  • {
  • If(Event Player.TrollMode == 0);
  • Event Player.TrollMode = 1;
  • Small Message(Event Player, Custom String("Knockback Mode"));
  • Else If(Event Player.TrollMode == 1);
  • Event Player.TrollMode = 2;
  • Small Message(Event Player, Custom String("Pull Mode"));
  • Else If(Event Player.TrollMode == 2);
  • Event Player.TrollMode = 3;
  • Small Message(Event Player, Custom String("Annoying Mode"));
  • Else If(Event Player.TrollMode == 3);
  • Event Player.TrollMode = 4;
  • Small Message(Event Player, Custom String("Freeze Mode"));
  • Else If(Event Player.TrollMode == 4);
  • Event Player.TrollMode = 1;
  • Small Message(Event Player, Custom String("Knockback Mode"));
  • }
  • }
  • rule("Billionaire Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.BillionairePos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Billionaire != True;
  • }
  • actions
  • {
  • If(Event Player.DarkClasses == True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Billionaire class selected."));
  • Event Player.Billionaire = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Billionaire = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Billionaire class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Billionaire");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • }
  • }
  • rule("Billionaire Damage")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Money >= 1000;
  • Event Player.Billionaire == True;
  • }
  • actions
  • {
  • Event Player.Money -= 1000;
  • }
  • }
  • rule("Angel Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Angel == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 300;
  • Distance Between(Event Player, Global.AngelPos) <= 1;
  • }
  • actions
  • {
  • Event Player.DarkPoints -= 300;
  • Event Player.Angel = True;
  • Small Message(Event Player, Custom String("Angel Bought. Hold space to fly."));
  • If(Event Player.Pacifist == True);
  • Event Player.ClassName = Custom String("Angel");
  • Else;
  • Log To Inspector(Custom String("This is a filler."));
  • End;
  • }
  • }
  • rule("Angel Fly")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Angel == True;
  • Event Player.Pacifist == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Event Player.Flight >= 0.020;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Vector(0, 10000, 0), 5, To World, Cancel Contrary Motion);
  • Event Player.Flight -= 0.020;
  • Wait(0.020, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Dark XP Boost Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.XPMultiplier < 5;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 25;
  • Distance Between(Position Of(Event Player), Global.DarkXPBoostPos) <= 1;
  • }
  • actions
  • {
  • If(Event Player.XPMultiplier < 5);
  • Play Effect(Event Player, Ring Explosion, Color(White), Event Player, 15);
  • Event Player.DarkPoints -= 25;
  • Event Player.XPMultiplier += 0.010;
  • If(Is Crouching(Event Player) == True);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max boost!"));
  • }
  • }
  • rule("Berserkerer Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.BerserkererPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Berserkerer != True;
  • }
  • actions
  • {
  • If(Event Player.DarkClasses == True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Berserkerer class selected."));
  • Event Player.Berserkerer = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Berserkerer = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Berserkerer class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Berserkerer [x2]");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • }
  • }
  • rule("Reward Orb")
  • {
  • event
  • {
  • Subroutine;
  • RewardOrb;
  • }
  • actions
  • {
  • Global.OrbPositionType = Random Integer(1, 10);
  • If(Global.OrbPositionType == 1);
  • Global.OrbPosition = Vector(-226.320, -0.500, -34.620);
  • Else If(Global.OrbPositionType == 2);
  • Global.OrbPosition = Vector(-221, 0.500, -29);
  • Else If(Global.OrbPositionType == 3);
  • Global.OrbPosition = Vector(-196, 1.500, -3.920);
  • Else If(Global.OrbPositionType == 4);
  • Global.OrbPosition = Vector(-208.340, -3, -16.720);
  • Else If(Global.OrbPositionType == 5);
  • Global.OrbPosition = Vector(-165.420, -4.500, -65.250);
  • Else If(Global.OrbPositionType == 6);
  • Global.OrbPosition = Vector(-138.100, -0.910, -75.860);
  • Else If(Global.OrbPositionType == 7);
  • Global.OrbPosition = Vector(-181.770, -0.470, -91.920);
  • Else If(Global.OrbPositionType == 8);
  • Global.OrbPosition = Vector(-259.730, -4.500, 1.890);
  • Else If(Global.OrbPositionType == 9);
  • Global.OrbPosition = Vector(-237.200, 5.030, 6);
  • Else If(Global.OrbPositionType == 10);
  • Global.OrbPosition = Vector(-244, -0.500, 1);
  • End;
  • Create Effect(All Players(All Teams), Orb, Color(Yellow), Global.OrbPosition, 1.500, Visible To Position and Radius);
  • Global.OrbID = Last Created Entity;
  • Create In-World Text(All Players(All Teams), Custom String("{1} Reward Orb (Spawning: {0}s)", Global.OrbTimer, Icon String(
  • Exclamation Mark)), Vector(X Component Of(Global.OrbPosition), Y Component Of(Global.OrbPosition) + 1, Z Component Of(
  • Global.OrbPosition)), 1, Do Not Clip, Visible To Position and String, Color(Yellow), Default Visibility);
  • Global.OrbTextID = Last Text ID;
  • Global.OrbTimer = 35;
  • }
  • }
  • rule("Orb Timer")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.OrbTimer > 0;
  • }
  • actions
  • {
  • Global.OrbTimer -= 1;
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Orb Grab")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.OrbPosition) <= 1.500;
  • Global.OrbTimer < 1;
  • Global.EventType == 7;
  • Global.OrbPositionType != 0;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Destroy Effect(Global.OrbID);
  • Destroy In-World Text(Global.OrbTextID);
  • Global.OrbPosition = 0;
  • Small Message(Event Player, Custom String("+500 xp, +2000 coins"));
  • Big Message(All Players(All Teams), Custom String("Orb collected by {0}", Event Player));
  • Event Player.XP += 500;
  • Event Player.Money += 2000;
  • Global.EventType = 0;
  • Global.OrbPositionType = 0;
  • }
  • }
  • rule("Flight Tick Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Flight <= 9.980;
  • Altitude Of(Event Player) < 1;
  • }
  • actions
  • {
  • Wait(1, Abort When False);
  • Event Player.Flight += 0.100;
  • Loop If Condition Is True;
  • }
  • }
  • rule("Reaching Reset Level")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Level == Global.ResetLevel;
  • }
  • actions
  • {
  • Big Message(Event Player, Custom String("You have enough levels to reset!"));
  • }
  • }
  • rule("Empty Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.EmptyPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Empty != True;
  • }
  • actions
  • {
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Empty class selected."));
  • Event Player.Empty = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Empty = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Empty class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Empty");
  • }
  • }
  • rule("Helper Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.HelperPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • Event Player.Helper != True;
  • }
  • actions
  • {
  • If(Event Player.DarkClasses == True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Helper class selected."));
  • Event Player.Helper = True;
  • Event Player.HasClass = True;
  • Else;
  • Small Message(Event Player, Custom String("Switching class in 15 seconds."));
  • Event Player.SwitchingClass = True;
  • Wait(5, Ignore Condition);
  • Small Message(Event Player, Custom String("Respawning in 10 seconds"));
  • Wait(10, Ignore Condition);
  • Kill(Event Player, Null);
  • Event Player.Helper = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Small Message(Event Player, Custom String("Helper class selected."));
  • End;
  • disabled Start Rule(Default, Restart Rule);
  • Event Player.ClassName = Custom String("Helper");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • }
  • }
  • rule("Helper")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Helper == True;
  • Attacker != Victim;
  • }
  • actions
  • {
  • Victim.XP += Min(5, Event Damage * 10);
  • Victim.Money += Random Integer(12, 15);
  • Heal(Victim, Null, Event Damage * 10);
  • }
  • }
  • rule("Lifesteal Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.DarkPoints >= 50;
  • Event Player.LevelUpPoints >= 10;
  • Distance Between(Position Of(Event Player), Global.LifestealPos) <= 1;
  • Event Player.Lifesteal < 15;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Event Player.Lifesteal += 0.100;
  • Event Player.LevelUpPoints -= 10;
  • Event Player.DarkPoints -= 50;
  • If(Is Crouching(Event Player) == True);
  • Wait(0.020, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Lifesteal")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Lifesteal >= 0;
  • Attacker != Victim;
  • }
  • actions
  • {
  • Heal(Event Player, Null, Event Damage * Event Player.Lifesteal * 0.010);
  • }
  • }
  • rule("Third Person")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.ThirdPersonPos) <= 1;
  • }
  • actions
  • {
  • If(Event Player.ThirdPerson != True);
  • Event Player.ThirdPerson = True;
  • disabled Start Camera(Event Player, Ray Cast Hit Position(Event Player, Event Player + World Vector Of(Vector(-0.300, 0, 0.300),
  • Event Player, Rotation) + Up * 1.500 + Facing Direction Of(Event Player) * -2.250, Null, Event Player, False),
  • Event Player + Facing Direction Of(Event Player) * 1000, 40);
  • disabled Start Camera(Event Player, Ray Cast Hit Position(Event Player, Event Player + World Vector Of(Vector(-0.300 * Event Player.Scale,
  • 0, 0.300 * Event Player.Scale), Event Player, Rotation) + Up * Event Player.Scale * 1.500 + Facing Direction Of(Event Player)
  • * Event Player.Scale * -2.250, Null, Event Player, False), Event Player + Facing Direction Of(Event Player) * 1000, 40);
  • Start Camera(Event Player, Ray Cast Hit Position(Event Player, Event Player + World Vector Of(Vector(-0.300 * Event Player.Scale,
  • Event Player.Scale * 0.100, 0.300 * Event Player.Scale), Event Player, Rotation)
  • + Up * Event Player.Scale * 1.500 + Facing Direction Of(Event Player) * Event Player.Scale * -2.250, Null, Event Player,
  • False), Event Player + Facing Direction Of(Event Player) * 1000, 40);
  • Else;
  • Event Player.ThirdPerson = False;
  • Stop Camera(Event Player);
  • }
  • }
  • rule("Spectating")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.SpectatePos) <= 1;
  • Event Player.Spectating != True;
  • }
  • actions
  • {
  • Event Player.Spectating = True;
  • Event Player.SpectatorPlayer = Random Value In Array(Filtered Array(All Living Players(All Teams),
  • Current Array Element != Event Player));
  • Teleport(Event Player, Vector(-277.370, -2.820, 45.420));
  • Start Camera(Event Player, Ray Cast Hit Position(Event Player.SpectatorPlayer, Event Player.SpectatorPlayer + World Vector Of(
  • Vector(-0.300 * Event Player.SpectatorPlayer.Scale, 0, 0.300 * Event Player.SpectatorPlayer.Scale),
  • Event Player.SpectatorPlayer, Rotation) + Up * Event Player.SpectatorPlayer.Scale * 1.500 + Facing Direction Of(
  • Event Player.SpectatorPlayer) * Event Player.SpectatorPlayer.Scale * -2.250, Null, Event Player.SpectatorPlayer, False),
  • Event Player.SpectatorPlayer + Facing Direction Of(Event Player.SpectatorPlayer) * 1000 * Event Player.Scale, 40);
  • Small Message(Event Player, Custom String("Crouch to stop spectating; reload to switch player"));
  • Small Message(Event Player.SpectatorPlayer, Custom String("{0} is spectating you", Event Player));
  • Small Message(Event Player, Custom String("Spectating {0}", Event Player.SpectatorPlayer));
  • Set Status(Event Player, Null, Rooted, 9999);
  • disabled Start Camera(Event Player, Ray Cast Hit Position(Event Player.SpectatorPlayer, Event Player.SpectatorPlayer + World Vector Of(
  • Vector(-0.300, 0, 0.300), Event Player.SpectatorPlayer, Rotation) + Up * 1.500 + Facing Direction Of(
  • Event Player.SpectatorPlayer) * -2.250, Null, Event Player.SpectatorPlayer, False),
  • Event Player.SpectatorPlayer + Facing Direction Of(Event Player.SpectatorPlayer) * 1000, 40);
  • }
  • }
  • rule("Stop Spectating")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • Event Player.Spectating == True;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • Event Player.ThirdPerson = False;
  • Event Player.Spectating = False;
  • Clear Status(Event Player, Rooted);
  • }
  • }
  • rule("Switch player spectating")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Event Player.Spectating == True;
  • }
  • actions
  • {
  • Event Player.SpectatorPlayer = Random Value In Array(Filtered Array(All Living Players(All Teams),
  • Current Array Element != Event Player && Current Array Element != Event Player.SpectatorPlayer));
  • Start Camera(Event Player, Ray Cast Hit Position(Event Player.SpectatorPlayer, Event Player.SpectatorPlayer + World Vector Of(
  • Vector(-0.300, 0, 0.300), Event Player.SpectatorPlayer, Rotation) + Up * 1.500 + Facing Direction Of(
  • Event Player.SpectatorPlayer) * -2.250, Null, Event Player.SpectatorPlayer, False),
  • Event Player.SpectatorPlayer + Facing Direction Of(Event Player.SpectatorPlayer) * 1000, 40);
  • Small Message(Event Player, Custom String("Spectating {0}", Event Player.SpectatorPlayer));
  • Small Message(Event Player.SpectatorPlayer, Custom String("{0} is spectating you", Event Player));
  • }
  • }
  • rule("LevelUpPoints To Coins")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.XPToGoldPos) <= 3;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Event Player.LevelUpPoints >= 1;
  • }
  • actions
  • {
  • Event Player.Money += 15 * Event Player.LevelUpPoints;
  • Event Player.LevelUpPoints -= Event Player.LevelUpPoints;
  • }
  • }
  • rule("Lightweight double jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.DoubleJump2 == True;
  • Event Player.Lightweight == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Hero Of(Event Player) != Hero(Genji);
  • Event Player.DoubleJump == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Rooted) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Asleep) == False;
  • Has Status(Event Player, Stunned) == False;
  • }
  • actions
  • {
  • Event Player.DoubleJump2 = False;
  • Event Player.DoubleJump = False;
  • Apply Impulse(Event Player, Up, 12, To World, Cancel Contrary Motion);
  • }
  • }
  • rule("Double jump recharge")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is On Ground(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.DoubleJump = True;
  • Event Player.DoubleJump2 = False;
  • }
  • }
  • rule("Double jump 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Jump)) == False;
  • Altitude Of(Event Player) > 0.800;
  • }
  • actions
  • {
  • Event Player.DoubleJump2 = True;
  • }
  • }
  • rule("Force kill")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Wait(10, Abort When False);
  • Small Message(Event Player, Custom String("Force Kill in 5 seconds (holding interact + reload)"));
  • Wait(5, Abort When False);
  • Kill(Event Player, Null);
  • }
  • }
  • rule("The final anti crash")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(9600, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("Game is at a high risk of crashing. Slow motion activated."));
  • Set Slow Motion(80);
  • }
  • }
  • nothing to see here
Join the Workshop.codes Discord