Create
Return to post

Comparing difference between and

View raw
  • nothing to see here
  • 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
  • 15: HeroChangePos
  • 16: BloodCrystalPos
  • 17: Overflow
  • 18: XPToGoldPos
  • 19: XPPumpPos
  • 20: ScaleUpPos
  • 21: ScaleDownPos
  • 22: BankDepositPos
  • 23: BankWithdrawPos
  • 24: RegenBuyPos
  • 25: StunBuyPos
  • 26: AutoLifestealBuyPos
  • 27: InterestBuyPos
  • 28: SecondWindBuyPos
  • 29: FlameBuyPos
  • 30: MineEvent
  • 31: XPKillEvent
  • 32: NextToKill
  • 33: StartingMoney
  • 34: TenacityPos
  • 35: ContractPosition
  • 36: DarkShopPos
  • 37: DarkShopOutPos
  • 38: ResetPos
  • 39: ResetPoints
  • 40: ResetLevel
  • 41: ChanceWheelPos
  • 42: HealBubblePos
  • 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
  • 59: MinigameEvent
  • 60: AllParticipants
  • 61: MinerPos
  • 62: HelperPos
  • 63: MinigameEventOn
  • 64: LifestealPos
  • 65: ThirdPersonPos
  • 66: SpectatePos
  • 67: MinigameTime
  • 68: EventText1
  • 69: EventText2
  • 70: DarkResistanceBuyPos
  • 71: EventBubbleLocation
  • 72: EventBubbleID
  • 73: MarketPos
  • 74: MarketTeleportOutPos
  • 75: XPPumpPerSecond
  • 76: XPPumpUpgradePos
  • 77: MinePos
  • 78: RubySellPos
  • 79: XPGemSellPos
  • 80: CoinDoublerSellPos
  • 81: StatBoostSellPos
  • 82: DiamondSellPos
  • 83: UseXPGemPos
  • 84: UseCoinDoublerPos
  • 85: UseStatBoostPos
  • 86: ExplosionBuyPos
  • 87: ToggleNanoPos
  • 88: RubyPrice
  • 89: XPGemPrice
  • 90: CoinDoublerPrice
  • 91: StatBoostPrice
  • 92: DiamondPrice
  • 93: ToggleExplosionPos
  • 94: ExecutionerBuyPos
  • 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: AutoLifesteal
  • 26: Interest
  • 30: SecondWind
  • 31: DarkResistance
  • 32: FlameBullets
  • 33: Fire
  • 34: FlameInflicter
  • 35: Tenacity
  • 36: ExplosionPerk
  • 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
  • 58: Executioner
  • 59: OneShot
  • 60: DarkClasses
  • 61: Ghost
  • 62: Troll
  • 63: ClassText
  • 64: Billionaire
  • 65: Angel
  • 66: Berserkerer
  • 67: CoinsLost
  • 68: Helper
  • 69: SecondWindActivated
  • 70: Miner
  • 71: Lifesteal
  • 72: ThirdPerson
  • 73: Spectating
  • 74: SpectatorPlayer
  • 75: TrollMode
  • 76: PoisonDamage
  • 77: DoubleJump
  • 78: DoubleJump2
  • 79: XPSignalReward
  • 80: EventParticipation
  • 81: SecondWindTime
  • 82: LastDamager
  • 83: MinedType
  • 84: Rubies
  • 85: XPGems
  • 86: CoinDoubler
  • 87: MineProgress
  • 88: StatBoost
  • 89: Diamonds
  • 90: RandomMined2
  • 91: NanoBoostReference
  • 92: NanoBoost
  • 93: Explosion
  • 94: miningspeed
  • 95: miningprice
  • }
  • subroutines
  • {
  • 0: PreInitiate
  • 1: PostInitiate
  • 2: Default
  • 3: ClassPurge
  • 4: Events
  • 5: WheelOfChance
  • 6: Spawn
  • 7: RewardOrb
  • 8: MinigameEvents
  • 9: MarketPrices
  • }
  • disabled rule("// Made by ShadowDragon#1166969")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • disabled rule("// Contributions by Jokerz")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • disabled rule("// Debug")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • disabled rule("Stress test (use with bots)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Press Button(Event Player, Button(Interact));
  • Wait(0.075, Ignore Condition);
  • Loop;
  • }
  • }
  • disabled rule("Debug Markers")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player == Host Player;
  • }
  • actions
  • {
  • Create Effect(Host Player, Ring, Color(Yellow), Position Of(Event Player), 1, None);
  • Create In-World Text(Host Player, Custom String("Marker: {0}", Position Of(Event Player)), Vector(X Component Of(Position Of(
  • Event Player)), Y Component Of(Position Of(Event Player)) + 1, Z Component Of(Position Of(Event Player))), 1, Do Not Clip,
  • None, Color(White), Default Visibility);
  • }
  • }
  • disabled rule("Fly Test")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Event Player == Host Player;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Up, 6, To World, Cancel Contrary Motion);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("Creative mode test")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • }
  • actions
  • {
  • disabled Wait(15, Ignore Condition);
  • All Players(All Teams).Money = 100000000;
  • All Players(All Teams).Level = 1000;
  • All Players(All Teams).LevelUpPoints = 9999999.000;
  • All Players(All Teams).DarkPoints = 99999;
  • Event Player.Speed = 300;
  • Call Subroutine(Default);
  • }
  • }
  • disabled rule("Text/effect count test")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), Custom String("Text: {0}", Text Count), Null, Null, Left, 0, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("Effect: {0}", Entity Count), Null, Null, Left, 0, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • }
  • }
  • disabled rule("Phasing Test")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Disable Movement Collision With Environment(Event Player, False);
  • }
  • }
  • disabled rule("Bot shooting test")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Ammo(Event Player, 0) > 0;
  • }
  • actions
  • {
  • Press Button(Event Player, Button(Primary Fire));
  • Wait(3, Ignore Condition);
  • Loop;
  • }
  • }
  • disabled rule("Bot test")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Number Of Players(All Teams) < 10;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Baptiste), All Teams, -1, Global.XPPumpPos, Vector(0, 0, 0));
  • Wait(3, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • 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);
  • }
  • }
  • disabled rule("// Main rules")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Local Player Hud")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Progress Bar HUD Text(Local Player, Local Player.XP, Custom String("Level: {0} [{1}/100]", Local Player.Level,
  • Local Player.XP), 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\nContract: {1}\r\n\r{2}", Local Player.Killstreak,
  • Local Player.ContractText, Custom String("Instance Time: {0}h {1}m", Round To Integer(Total Time Elapsed / 3600, Down),
  • Round To Integer(Total Time Elapsed / 60 % 60, Down))), Top, 2, Null, Null, Color(Green), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Local Player, Custom String("Class: {0}", Local Player.ClassName), Null, Null, Right, -5, Color(Aqua), Null, Null,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Local Player, Custom String("{0} Level Up Points: {1}", Icon String(Happy), Local Player.LevelUpPoints), Null,
  • Null, Right, -4, Color(Sky Blue), Null, Null, Visible To and String, Default Visibility);
  • Create HUD Text(Local Player, Custom String("{0} Coins: {1}", Icon String(Diamond), Local Player.Money), Null, Null, Right, -3,
  • Color(Yellow), Null, Null, 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 \r\n 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 \r\n 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);
  • "Not scale down"
  • Create In-World Text(Local Player, Custom String("Bank \r\n ${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("XP Boost: {1}%", Local Player.DarkPoints, Local Player.XPMultiplier * 100),
  • Vector(-301.700, -2, 55.080), 1.500, Clip Against Surfaces, Visible To Position and String, Color(Green), Default Visibility);
  • "Text"
  • Create HUD Text(Local Player, Custom String(""), Null, Custom String("Use 708FD for the latest version"), Right, -2, Color(White),
  • Custom Color(255, 0, 255, 255), Custom Color(0, 255, 0, 255), Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("Server Load Average: {0}/255 ", Server Load Average), Right, 0,
  • Null, Null, Server Load Average > 230 ? Custom Color(255, 0, 0, 255) : (Server Load Average > 170 ? Custom Color(255, 137, 0,
  • 255) : (Server Load Average > 100 ? Color(Yellow) : Color(White))), Visible To Sort Order String and Color,
  • Default Visibility);
  • Create Progress Bar HUD Text(Distance Between(Global.MinePos, Position Of(Local Player)) < 4 ? Local Player : Null,
  • Local Player.MineProgress, Custom String("Mine [{0}/100]", Local Player.MineProgress), Left, 0, Color(Yellow), Color(Orange),
  • Visible To Values and Color, Default Visibility);
  • Create HUD Text(Local Player, Null, Null, Custom String(
  • "a\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na\r\na"), Top, 3, Color(White), Color(White),
  • Custom Color(0, 0, 0, 0), Visible To and String, Default Visibility);
  • Create Progress Bar HUD Text(Filtered Array(All Players(All Teams), Current Array Element.SecondWindActivated == True),
  • Local Player.SecondWindTime, Custom String("Second Wind"), Top, 5, Color(Red), Color(Yellow), Visible To Values and Color,
  • Default Visibility);
  • "Dark points HUD"
  • Create HUD Text(Local Player.DarkPoints > 0 ? Local Player : Null, Custom String("Dark Points: {0}", Local Player.DarkPoints),
  • Null, Null, Right, -2, Color(Purple), Color(White), Color(White), Visible To and String, 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);
  • Global.XPPumpPerSecond = 8;
  • Disable Built-In Game Mode Music;
  • Disable Inspector Recording;
  • 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 \r\n Receive and deal 40% extra damage. \r\n 50% Ability Cooldown."), 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 \r\n Receive 80% less damage\r\n Deal 80% less damage"),
  • 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\r\n Switching delay: 0 seconds"), 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 \r\n Gain 50% extra XP.\r\n Deal 25% less damage."), 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 \r\n take 25% less damage \r\n deal 10% more \r\n 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 \r\n Increased mobility\r\n gain double jump\r\n 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 \r\n 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);
  • "Level up points To Coins"
  • Global.XPToGoldPos = Vector(-129.800, -4.160, -120.750);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.XPToGoldPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Convert level up points to coins (reload to convert all)\r\n Conversion rate: 1:15 "), 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);
  • "Change Hero"
  • 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);
  • "Blood crystal"
  • 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 "), 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 ({0} / (number of players on pump) xp/s)",
  • Global.XPPumpPerSecond), 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 \r\n +0.1% max health/s \r\nCurrent Upgrade: {0}%\r\nMax Upgrade: 1.5%\r\nCost: 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 \r\n >40 damage attacks have 15% chance to stun \r\nCost: 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);
  • "Auto Lifesteal"
  • Global.AutoLifestealBuyPos = Vector(-271.790, -5, 28.930);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.AutoLifestealBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Auto Lifesteal \r\n 35% chance to heal 70% of damage dealt \r\nCost: 6000 coins"), Vector(X Component Of(
  • Global.AutoLifestealBuyPos), Y Component Of(Global.AutoLifestealBuyPos) + 1, Z Component Of(Global.AutoLifestealBuyPos)), 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 \r\n +1% per 2 minutes\r\nMax Coins/Interest: 40000 coins \r\nCurrent Upgrade: {0}%\r\nMax Upgrade: 40%\r\nCost: 200 coins",
  • Local Player.Interest * 100), 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);
  • "Flame"
  • Global.FlameBuyPos = Vector(-271.610, -5, 25.430);
  • Create Effect(All Players(All Teams), Ring, Color(Blue), Global.FlameBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Flame \r\n 20% chance to light an enemy on fire on attack\r\nCost: 10000 coins"), Vector(X Component Of(Global.FlameBuyPos),
  • Y Component Of(Global.FlameBuyPos) + 1, Z Component Of(Global.FlameBuyPos)), 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 \r\n Heal 15% of your max health \r\n Become unkillable for 4 seconds on kill\r\nCost: 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 \r\nCooldown to switch contract: 7 seconds"), 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);
  • "The Dark Shop"
  • Global.DarkShopPos = Vector(-278, -3.300, 39.500);
  • Create In-World Text(All Players(All Teams), Custom String("The Dark Shop (dark points/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 {1})\r\n\r\nUpon resetting:\r\n all your stats will reset \r\n you will gain {0} Dark Points",
  • Global.ResetPoints, Global.ResetLevel), Vector(X Component Of(Global.ResetPos), Y Component Of(Global.ResetPos) + 0.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\r\n Requirement: Level 15\r\n Cost: 500 coins\r\n Outcome: ???"), 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 \r\n Conversion rate: 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);
  • "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 \r\n Requirement: Level 5\r\n Reward: XP, Coins"),
  • 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 \r\n Kill in 1 shot.\r\n Die in 1 shot.\r\n Victim kills you on death."), 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\r\n Cost: 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 \r\n Become invisible \r\n 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 \r\n Deal 1% damage\r\n Take 2x more damage\r\n Gain special abilities\r\n {0} + {1} to toggle ability",
  • Input Binding String(Button(Interact)), Input Binding String(Button(Reload))), 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 \r\n Gain money based on damage dealt"), 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 \r\n Pacifist class gains flight \r\nCost: 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 \r\n +1% permanent xp multiplier\r\nCost: 25 dark points"), 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 \r\n Deal 2.5x damage\r\n 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);
  • "Miner"
  • Global.MinerPos = Vector(-280.430, -3.300, 34.290);
  • Create Effect(All Players(All Teams), Ring, Color(Gray), Global.MinerPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Miner \r\n 150% faster mining"), Vector(X Component Of(
  • Global.MinerPos), Y Component Of(Global.MinerPos) + 1, Z Component Of(Global.MinerPos)), 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 \r\n Heal and give coins and xp (to others) on attack\r\n Take -75% 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 \r\n Heal +0.1% of damage dealt\r\nCost: 50 dark points, 10 level up points\r\nCurrent Upgrade: {0}%\r\nMax Upgrade: 15%",
  • 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);
  • "Total TIme Elapsed\r\ncreateInWorldText(getAllPlayers(), \"Total Time Elapsed: {0}\".format(getTotalTimeElapsed()), vect(-288.91, -2, 46.69), 1, Clip.SURFACES, WorldTextReeval.VISIBILITY_POSITION_AND_STRING, Color.WHITE, SpecVisibility.DEFAULT)\r\nMarket"
  • Global.MarketPos = Vector(-153.280, -3.410, -86);
  • Create Effect(All Players(All Teams), Sphere, Color(Green), Global.MarketPos, 3, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Market (use and sell gems)"), Vector(X Component Of(Global.MarketPos),
  • Y Component Of(Global.MarketPos) + 3.500, Z Component Of(Global.MarketPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Green), Default Visibility);
  • "Market Teleport Out"
  • Global.MarketTeleportOutPos = Vector(-142.180, -4.290, -101.740);
  • Create Effect(All Players(All Teams), Sphere, Color(Green), Global.MarketTeleportOutPos, 1.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Teleport out"), Vector(X Component Of(Global.MarketTeleportOutPos),
  • Y Component Of(Global.MarketTeleportOutPos) + 2, Z Component Of(Global.MarketTeleportOutPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Green), Default Visibility);
  • "XP Pump Upgrade"
  • Global.XPPumpUpgradePos = Vector(-145.020, -4.410, -98.400);
  • Create Effect(All Players(All Teams), Ring, Color(Aqua), Global.XPPumpUpgradePos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "+1 global xp pump output per second \r\n Cost: 320000 coins, 400 level up points"), Vector(X Component Of(
  • Global.XPPumpUpgradePos), Y Component Of(Global.XPPumpUpgradePos) + 1, Z Component Of(Global.XPPumpUpgradePos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Mine"
  • Global.MinePos = Vector(-167.710, -5, -81.460);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.MinePos, 4, Visible To Position and Radius);
  • Create Progress Bar In-World Text(All Players(All Teams), Local Player.MineProgress, Custom String("Mine [{0}/100]",
  • Local Player.MineProgress), Vector(X Component Of(Global.MinePos), Y Component Of(Global.MinePos) + 3.500, Z Component Of(
  • Global.MinePos)), 1, Clip Against Surfaces, Color(Yellow), Color(Orange), Visible To Position Values and Color,
  • Default Visibility);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Global.MinePos, Vector(X Component Of(Global.MinePos), Y Component Of(
  • Global.MinePos) + 3, Z Component Of(Global.MinePos)), Color(White), Visible To Position and Radius);
  • "Rubies Sell"
  • Global.RubySellPos = Vector(-132.930, -4.410, -104.770);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.RubySellPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Ruby \r\n({0} Coins, {1} left)", Global.RubyPrice,
  • Local Player.Rubies), Vector(X Component Of(Global.RubySellPos), Y Component Of(Global.RubySellPos) + 1, Z Component Of(
  • Global.RubySellPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "XP Gem Sell"
  • Global.XPGemSellPos = Vector(-130.970, -4.410, -107.710);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.XPGemSellPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("XP Gems\r\n ({0} Coins, {1} left)", Global.XPGemPrice,
  • Local Player.XPGems), Vector(X Component Of(Global.XPGemSellPos), Y Component Of(Global.XPGemSellPos) + 1, Z Component Of(
  • Global.XPGemSellPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Coin Doubler Sell"
  • Global.CoinDoublerSellPos = Vector(-129.400, -4.410, -110.060);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.CoinDoublerSellPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Coin Doubler\r\n ({0} Coins, {1} left)", Global.CoinDoublerPrice,
  • Local Player.CoinDoubler), Vector(X Component Of(Global.CoinDoublerSellPos), Y Component Of(Global.CoinDoublerSellPos) + 1,
  • Z Component Of(Global.CoinDoublerSellPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White),
  • Default Visibility);
  • "Stat Boost Sell"
  • Global.StatBoostSellPos = Vector(-127.830, -4.410, -112.400);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.StatBoostSellPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Stat Boost \r\n({0} Coins, {1} left)", Global.StatBoostPrice,
  • Local Player.StatBoost), Vector(X Component Of(Global.StatBoostSellPos), Y Component Of(Global.StatBoostSellPos) + 1,
  • Z Component Of(Global.StatBoostSellPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White),
  • Default Visibility);
  • "Diamonds Sell"
  • Global.DiamondSellPos = Vector(-126.350, -4.410, -114.630);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.DiamondSellPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Diamonds \r\n({0} Coins, {1} left)", Global.DiamondPrice,
  • Local Player.Diamonds), Vector(X Component Of(Global.DiamondSellPos), Y Component Of(Global.DiamondSellPos) + 1,
  • Z Component Of(Global.DiamondSellPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White),
  • Default Visibility);
  • "Use XP Gem"
  • Global.UseXPGemPos = Vector(-141.350, -4.410, -114.210);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.UseXPGemPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Use XP Gem\r\n (+150 Base XP, 1% xp multiplier, {0} left)",
  • Local Player.XPGems), Vector(X Component Of(Global.UseXPGemPos), Y Component Of(Global.UseXPGemPos) + 1, Z Component Of(
  • Global.UseXPGemPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Use Coin Doubler"
  • Global.UseCoinDoublerPos = Vector(-139.900, -4.410, -116.460);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.UseCoinDoublerPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Use Coin Doubler\r\n (Doubles your held money, {0} left)",
  • Local Player.CoinDoubler), Vector(X Component Of(Global.UseCoinDoublerPos), Y Component Of(Global.UseCoinDoublerPos) + 1,
  • Z Component Of(Global.UseCoinDoublerPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White),
  • Default Visibility);
  • "Use Stat Boost"
  • Global.UseStatBoostPos = Vector(-138.600, -4.410, -118.480);
  • Create Effect(All Players(All Teams), Ring, Color(Green), Global.UseStatBoostPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Use Stat Boost \r\n(+15 to damage/health/speed, Bypasses stat limits, {0} left)", Local Player.StatBoost), Vector(
  • X Component Of(Global.UseStatBoostPos), Y Component Of(Global.UseStatBoostPos) + 1, Z Component Of(Global.UseStatBoostPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Informative text"
  • Create In-World Text(All Players(All Teams), Custom String("Sell Items"), Vector(-132.070, -2.500, -110), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Red), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Use Items"), Vector(-138.710, -2.500, -113.990), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Red), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Items will not reset"), Vector(-136.600, -2.500, -109.870), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Toggle Nano"
  • disabled Global.ToggleNanoPos = Vector(-289.880, -4.300, 47.530);
  • disabled Create Effect(All Players(All Teams), Ring, Color(Aqua), Global.ToggleNanoPos, 1, Visible To Position and Radius);
  • disabled Create In-World Text(All Players(All Teams), Custom String("Toggle Nano Boost"), Vector(X Component Of(Global.ToggleNanoPos),
  • Y Component Of(Global.ToggleNanoPos) + 1, Z Component Of(Global.ToggleNanoPos)), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Explosion"
  • disabled Global.ToggleExplosionPos = Vector(-289.880, -4.300, 47.530);
  • disabled Create Effect(All Players(All Teams), Ring, Color(Aqua), Global.ToggleExplosionPos, 1, Visible To Position and Radius);
  • disabled Create In-World Text(All Players(All Teams), Custom String("Toggle explosion on kill"), Vector(X Component Of(
  • Global.ToggleExplosionPos), Y Component Of(Global.ToggleExplosionPos) + 1, Z Component Of(Global.ToggleExplosionPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Text"
  • disabled Create In-World Text(All Players(All Teams), Custom String("Cosmetics"), Vector(-291.540, -3, 48.540), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Green), Default Visibility);
  • "Compartment 1"
  • Create In-World Text(All Players(All Teams), Custom String("Upgrade compartment 1"), Vector(-288.970, -2.300, 58.160), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Second Wind"
  • Global.SecondWindBuyPos = Vector(-279.550, -3.300, 53.490);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.SecondWindBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Second Wind\r\n Stay alive for 5 extra seconds when you would normally die.\r\n You can only die to players.\r\nCost: 5000 dark points"),
  • Vector(X Component Of(Global.SecondWindBuyPos), Y Component Of(Global.SecondWindBuyPos) + 1, Z Component Of(
  • Global.SecondWindBuyPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Dark Resistance"
  • Global.DarkResistanceBuyPos = Vector(-277.210, -3.300, 52.010);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.DarkResistanceBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Dark resistance\r\n Take -30% damage.\r\nCost: 3000 dark points"),
  • Vector(X Component Of(Global.DarkResistanceBuyPos), Y Component Of(Global.DarkResistanceBuyPos) + 1, Z Component Of(
  • Global.DarkResistanceBuyPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Explosion"
  • Global.ExplosionBuyPos = Vector(-278.220, -3.300, 55.830);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.ExplosionBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Explosion\r\n 30% chance to cause an explosion on kill, dealing damage to nearby players.\r\nCost: 8000 dark points"), Vector(
  • X Component Of(Global.ExplosionBuyPos), Y Component Of(Global.ExplosionBuyPos) + 1, Z Component Of(Global.ExplosionBuyPos)), 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Executioner"
  • Global.ExecutionerBuyPos = Vector(-275.430, -3.300, 53.950);
  • Create Effect(All Players(All Teams), Ring, Color(Orange), Global.ExecutionerBuyPos, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Executioner\r\n Deal +50% damage to players below 40% health.\r\n Instantly kill players below 12% health.\r\nCost: 12000 dark points"),
  • Vector(X Component Of(Global.ExecutionerBuyPos), Y Component Of(Global.ExecutionerBuyPos) + 1, Z Component Of(
  • Global.ExecutionerBuyPos)), 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
  • {
  • "hudHeader(eventPlayer, \"{1} Coins: {0}\".format(eventPlayer.Money, iconString(Icon.DIAMOND)), HudPosition.RIGHT, 0, Color.YELLOW, HudReeval.VISIBILITY_AND_STRING, SpecVisibility.DEFAULT)\r\neventPlayer.disableRespawn()"
  • Create In-World Text(All Players(All Teams), Custom String("Class: {0} | Level {1}\r\nCoins: {2}", Event Player.ClassName,
  • Event Player.Level, Event Player.Money), Event Player, 1.200, Clip Against Surfaces, Visible To Position and String, Color(
  • White), Default Visibility);
  • Event Player.ClassText = Last Text ID;
  • "progressBarHud(eventPlayer, eventPlayer.XP, \"Level: {0}\".format(eventPlayer.Level), HudPosition.LEFT, 100, Color.AQUA, Color.WHITE, ProgressHudReeval.VISIBILITY_VALUES_AND_COLOR, SpecVisibility.DEFAULT)"
  • Event Player.Health = 100;
  • Event Player.Speed = 100;
  • Event Player.DamageTaken = 100;
  • Event Player.Damage = 100;
  • Event Player.ClassName = Custom String("None");
  • "scale up"
  • Global.ScaleUpPos = Vector(-267.750, -5.070, 30.230);
  • "scale down"
  • Global.ScaleDownPos = Vector(-265, -5.050, 34);
  • "Setup = true\r\n__end__()"
  • Event Player.Money = Global.StartingMoney;
  • Event Player.Scale = 1;
  • Start Scaling Player(Event Player, Event Player.Scale, True);
  • "hudSubtext(eventPlayer, \"Contract: {0}\".format(eventPlayer.ContractText), HudPosition.TOP, 9, Color.GREEN, HudReeval.VISIBILITY_AND_STRING, SpecVisibility.DEFAULT)"
  • Event Player.LevelUpPoints = Workshop Setting Integer(Custom String("Starting"), Custom String("Level Up Points"), 0, 0, 200, 0);
  • "createInWorldText(eventPlayer, \"Dark Points: {0} \\r\\n XP Boost: {1}%\".format(eventPlayer.DarkPoints, eventPlayer.XPMultiplier * 100), vect(-301.7, -2, 55.08), 1, Clip.SURFACES, WorldTextReeval.VISIBILITY_POSITION_AND_STRING, Color.PURPLE, SpecVisibility.DE"
  • Event Player.ContractText = Custom String("None");
  • Event Player.XPMultiplier = Workshop Setting Real(Custom String("Starting"), Custom String("XP Multiplier"), 1, 1, 5, 0);
  • 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) == False;
  • }
  • actions
  • {
  • If(Event Player.HasClass != True);
  • Teleport(Event Player, Global.GlobalSpawn);
  • Small Message(Event Player, Custom String("Choose a class! Look around before leaving safe zone."));
  • 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);
  • Call Subroutine(Default);
  • }
  • }
  • 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) == False;
  • }
  • actions
  • {
  • If(Event Player.SecondWindActivated == True);
  • Small Message(Event Player, Custom String("Can't enter while dying!"));
  • Abort;
  • End;
  • Set Status(Event Player, Null, Phased Out, 9999);
  • "eventPlayer.setStatusEffect(null, Status.HACKED, 0.016)"
  • Disallow Button(Event Player, Button(Primary Fire));
  • Disallow Button(Event Player, Button(Secondary Fire));
  • Disallow Button(Event Player, Button(Ultimate));
  • "eventPlayer.disallowButton(Button.MELEE)"
  • If(Hero Of(Event Player) != Hero(Bastion));
  • Disallow Button(Event Player, Button(Ability 1));
  • Else;
  • End;
  • Disallow Button(Event Player, Button(Ability 2));
  • Start Heal Over Time(Event Player, Event Player, 9999, 80);
  • 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 != Attacker;
  • }
  • actions
  • {
  • Event Player.XP += Min(Random Real(Event Damage * 0.060, Event Damage * 0.100), 10) * Event Player.XPMultiplier;
  • Attacker.LastTextDamage[2] = Victim;
  • Attacker.LastTextDamage[3] = Event Damage;
  • If(!Event Was Critical Hit);
  • Attacker.LastTextDamage[1] = Color(White);
  • Else If(Event Was Critical Hit);
  • Attacker.LastTextDamage[1] = Color(Yellow);
  • End;
  • Wait(0.250, Ignore Condition);
  • Event Player.LastTextDamage[2] = Null;
  • }
  • }
  • rule("On death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.Killstreak = 0;
  • Event Player.Fire = 0;
  • Clear Status(Event Player, Invincible);
  • Clear Status(Event Player, Hacked);
  • Wait Until(Is Alive(Event Player), 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 += 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
  • {
  • disabled If(Event Player.Explosion == True);
  • disabled Play Effect(All Players(All Teams), Junkrat RIP Tire Explosion Effect, Color(Yellow), Evaluate Once(Position Of(Victim)), 5);
  • disabled Play Effect(All Players(All Teams), Junkrat RIP Tire Explosion Sound, Color(White), Evaluate Once(Position Of(Victim)), 200);
  • disabled End;
  • Victim.CoinsLost = Round To Integer(Victim.Money * 0.200, To Nearest);
  • 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;
  • If(Global.MinigameEvent != 1);
  • Small Message(Victim, Custom String("-{0} coins (-20%)", Evaluate Once(Victim.CoinsLost)));
  • Small Message(Event Player, Custom String("+{0} coins", Evaluate Once(Victim.CoinsLost + 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);
  • End;
  • If(Event Player.Tenacity == True);
  • Set Status(Event Player, Null, Unkillable, 4);
  • Heal(Event Player, Null, Max Health(Event Player) * 0.150);
  • 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;
  • }
  • }
  • disabled rule("Pacifist's passive XP")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Distance Between(Position Of(Event Player), Global.GlobalSpawn) > 26 && Has Status(Event Player,
  • Invincible) == False && Event Player.Pacifist == True ? Event Player : Null, XP, 99999, 1, Destination and Rate);
  • }
  • }
  • 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("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.200);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.200);
  • 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 * 2);
  • 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);
  • Set Damage Dealt(Event Player, Event Player.Damage);
  • 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.Miner == 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.250);
  • Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
  • Set Max Health(Event Player, Event Player.Health);
  • }
  • }
  • rule("Class Purge")
  • {
  • event
  • {
  • Subroutine;
  • ClassPurge;
  • }
  • actions
  • {
  • Event Player.HasClass = False;
  • If(Event Player.Ghost == True);
  • Create In-World Text(All Players(All Teams), Custom String("Class: {0} | Level: {1}\r\nCoins: {2}", Event Player.ClassName,
  • Event Player.Level, Event Player.Money), 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.Miner = 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("Mine very fast for 30 seconds. "));
  • Global.MineEvent = True;
  • Wait(30, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("Event Over"));
  • Global.EventType = 0;
  • Global.MineEvent = 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 [{0}] to collect...", Input Binding String(Button(
  • Interact))));
  • 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(40, 60);
  • 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(40, 60);
  • 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(40, 60);
  • 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(40, 60);
  • 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("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"));
  • Call Subroutine(Default);
  • }
  • }
  • 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));
  • }
  • }
  • 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
  • {
  • Set Player Allowed Heroes(Event Player, Remove From Array(All Heroes, Hero Of(Event Player)));
  • Set Player Allowed Heroes(Event Player, All Heroes);
  • Wait Until(Distance Between(Position Of(Event Player), Global.HeroChangePos) > 1.500, 99999);
  • Teleport(Event Player, Vector(0, 400, 0));
  • Wait(0.500, Ignore Condition);
  • Teleport(Event Player, Global.GlobalSpawn);
  • }
  • }
  • rule("Blood Crystal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.BloodCrystalPos) <= 3;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Damage(Event Player, Null, Max Health(Event Player) * 0.200);
  • Event Player.RandomBloodCrystal = Random Integer(26, 50);
  • Event Player.Money += Event Player.RandomBloodCrystal;
  • Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomBloodCrystal));
  • "eventPlayer.setStatusEffect(null, Status.BURNING, 0.75)"
  • Wait(0.750, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Blood Crystal Create")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create Beam Effect(Distance Between(Global.BloodCrystalPos, Position Of(Event Player)) < 3 && Has Spawned(Event Player)
  • == True ? All Players(All Teams) : Null, 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);
  • Create Effect(Distance Between(Position Of(Event Player), Global.BloodCrystalPos) <= 3 ? All Players(All Teams) : Null,
  • Energy Sound, Color(White), Position Of(Event Player), 300, Visible To Position and Radius);
  • }
  • }
  • rule("LevelUpPoints To Coins")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.XPToGoldPos) <= 1;
  • 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)));
  • 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)));
  • Wait(0.030, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • 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)));
  • Wait(0.030, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • 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)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • 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)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("XP Pump Signal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Global.XPPumpPos, Event Player) < 5;
  • }
  • actions
  • {
  • Wait(Random Integer(14, 21), Abort When False);
  • Event Player.XPSignalReward = Random Integer(25, 40) * Event Player.XPMultiplier;
  • Event Player.XP += Event Player.XPSignalReward;
  • Play Effect(Event Player, Ring Explosion, Color(White), Global.XPPumpPos, 5);
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 200);
  • Wait(0.016, Ignore Condition);
  • Small Message(Event Player, Custom String("+{0} xp (xp pump)", Event Player.XPSignalReward));
  • Loop If Condition Is True;
  • }
  • }
  • 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)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max Regen!"));
  • }
  • }
  • 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;
  • }
  • 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)));
  • Wait(0.030, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Auto Lifesteal Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.AutoLifesteal == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 6000;
  • Distance Between(Event Player, Global.AutoLifestealBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.Money -= 6000;
  • Event Player.AutoLifesteal = True;
  • Small Message(Event Player, Custom String("Auto Lifesteal Bought"));
  • }
  • }
  • rule("Flame Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.FlameBullets == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.Money >= 10000;
  • Distance Between(Event Player, Global.FlameBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.Money -= 10000;
  • Event Player.FlameBullets = True;
  • Small Message(Event Player, Custom String("Flame 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(Min(Event Player.Bank * Event Player.Interest, 40000), Up);
  • "eventPlayer.Bank += ceil(eventPlayer.Bank * eventPlayer.Interest)"
  • Loop If Condition Is True;
  • }
  • }
  • rule("Auto Lifesteal")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.AutoLifesteal == True;
  • Victim != Event Player;
  • }
  • actions
  • {
  • If(Random Real(1, 100) <= 35);
  • Heal(Event Player, Null, Event Damage * 0.700);
  • }
  • }
  • rule("Inflict Flame")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.FlameBullets == True;
  • Victim != Event Player;
  • Event Player.PoisonDamage != True;
  • Has Status(Victim, Burning) == False;
  • }
  • actions
  • {
  • If(Random Integer(1, 100) <= 20);
  • Victim.Fire += 4;
  • Victim.FlameInflicter = Event Player;
  • }
  • }
  • rule("Flame Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Fire > 0;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Burning, 1.016);
  • Start Damage Over Time(Event Player, Event Player.FlameInflicter, 1, 75);
  • Event Player.Fire -= 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("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(Remove From Array(All Players(All Teams), 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)));
  • Event Player.Money += Event Player.Bank;
  • Event Player.Bank = 0;
  • }
  • }
  • 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.FlameBullets = 0;
  • Event Player.Tenacity = 0;
  • Event Player.Regen = 0;
  • Event Player.AutoLifesteal = 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(3000 / Number Of Players(All Teams), Up);
  • Small Message(Event Player, Custom String("Gave everyone {0} coins (including you)", Round To Integer(3000 / Number Of Players(
  • All Teams), Up)));
  • Small Message(Remove From Array(All Players(All Teams), Event Player), Custom String("{0} gave you {1} coins", Event Player,
  • Round To Integer(3000 / 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.DarkPoints += 100;
  • Small Message(Event Player, Custom String("+100 dark points"));
  • 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 25% of your banked coins!"));
  • Event Player.Bank *= 0.750;
  • 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 to spawn")
  • {
  • 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;
  • Has Spawned(Event Player) == True;
  • }
  • 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.200));
  • Heal(Event Player, Null, Max Health(Event Player) * 0.200);
  • Loop If Condition Is True;
  • Else;
  • Wait(1.500, Abort When False);
  • Small Message(Event Player, Custom String("Healed 0 (already 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;
  • }
  • 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)));
  • Wait(0.030, Abort When False);
  • 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 * Event Player.XPMultiplier;
  • Small Message(Event Player, Custom String("Training ended. {0} presses, +{1} xp, +{2} coins", Event Player.StrengthTrainingScore,
  • Event Player.StrengthTrainingScore * 3 * Event Player.XPMultiplier, Event Player.StrengthTrainingScore * 6));
  • 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 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;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Kill(Victim, Event Player);
  • Kill(Event Player, Victim);
  • }
  • }
  • 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("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, Event Player, Frozen, 2);
  • Set Status(Victim, Event Player, 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 Damage")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Billionaire == True;
  • }
  • actions
  • {
  • Event Player.Money += Event Damage;
  • }
  • }
  • 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."));
  • }
  • }
  • 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;
  • 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
  • {
  • Apply Impulse(Event Player, Vector(0, 10000, 0), 5, To World, Cancel Contrary Motion);
  • 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), Position Of(Event Player), 15);
  • Event Player.DarkPoints -= 25;
  • Event Player.XPMultiplier += 0.010;
  • If(Is Crouching(Event Player));
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • End;
  • Else;
  • Small Message(Event Player, Custom String("Max boost!"));
  • }
  • }
  • 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("{0} Reward Orb (Spawning: {1}s)", Icon String(Exclamation Mark),
  • Global.OrbTimer), 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("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("Helper")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Helper == True;
  • Attacker != Victim;
  • }
  • actions
  • {
  • Victim.XP += Min(10, Event Damage * 2);
  • 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));
  • 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;
  • "eventPlayer.startCamera(raycast(eventPlayer, eventPlayer + worldVector(vect(-0.3 * eventPlayer.Scale, 0, 0.3 * eventPlayer.Scale), eventPlayer, Transform.ROTATION) + Vector.UP * eventPlayer.Scale * 1.5 + eventPlayer.getFacingDirection() * eventPlayer.Scale"
  • 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("start stop 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(Remove From Array(All Living Players(All Teams), 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 + Facing Direction Of(Event Player.SpectatorPlayer) * 1000 * Event Player.SpectatorPlayer.Scale, 40);
  • Small Message(Event Player, Custom String("Crouch to stop spectating; reload to switch player"));
  • Big Message(Event Player, Custom String("Crouch to stop spectating; reload to switch player"));
  • disabled 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);
  • Wait Until(Is Button Held(Event Player, Button(Crouch)), 99999);
  • 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));
  • "eventPlayer.startCamera(raycast(eventPlayer.SpectatorPlayer, eventPlayer.SpectatorPlayer + worldVector(vect(-0.3, 0, 0.3), eventPlayer.SpectatorPlayer, Transform.ROTATION) + Vector.UP * 1.5 + eventPlayer.SpectatorPlayer.getFacingDirection() * -2.25, null,"
  • 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 + Facing Direction Of(Event Player.SpectatorPlayer) * 1000 * Event Player.SpectatorPlayer.Scale, 40);
  • Small Message(Event Player, Custom String("Spectating {0}", Event Player.SpectatorPlayer));
  • disabled 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 = 0;
  • }
  • }
  • 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);
  • }
  • }
  • rule("MinigameSubroutine")
  • {
  • event
  • {
  • Subroutine;
  • MinigameEvents;
  • }
  • actions
  • {
  • Global.EventBubbleLocation = Vector(-208, 0, -16);
  • Create Effect(All Players(All Teams), Sphere, Color(Green), Global.EventBubbleLocation, 24, Visible To Position and Radius);
  • Global.EventBubbleID = Last Created Entity;
  • Global.AllParticipants = Filtered Array(All Players(All Teams), Current Array Element.EventParticipation == True);
  • Big Message(All Players(All Teams), Custom String("Minigame event starting..."));
  • Wait(3, Ignore Condition);
  • Clear Status(All Players(All Teams), Invincible);
  • Global.MinigameEvent = Random Integer(1, 2);
  • Global.MinigameEventOn = True;
  • Heal(All Players(All Teams), Null, 99999);
  • If(Global.MinigameEvent == 1);
  • Create HUD Text(All Players(All Teams), Custom String(" {0} Event: High Stakes", Icon String(Flag)), Custom String(
  • "All kills grant all bank and held money of victim, and steals 3 levels."), Custom String(
  • "Only receive rewards in the green bubble in the middle."), Top, 1000, Color(Yellow), Color(Green), Color(White),
  • Visible To and String, Default Visibility);
  • Global.EventText1 = Last Text ID;
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("Time: {0}", Global.MinigameTime), Top, 1000, Null, Null, Color(
  • Orange), Visible To and String, Default Visibility);
  • Global.EventText2 = Last Text ID;
  • Global.MinigameTime = 50;
  • Teleport(All Players(All Teams), Global.GlobalSpawn);
  • Wait Until(Global.MinigameTime <= 0, 55);
  • Destroy HUD Text(Global.EventText1);
  • Destroy HUD Text(Global.EventText2);
  • Global.MinigameEventOn = False;
  • Global.MinigameEvent = 0;
  • Else If(Global.MinigameEvent == 2);
  • Disable Built-In Game Mode Respawning(All Players(All Teams));
  • Teleport(All Players(All Teams), Vector(-218.950, 0, -27));
  • Create HUD Text(All Players(All Teams), Custom String(" {0} Event: Battle Royale", Icon String(Flag)), Custom String(
  • "You cannot respawn. Everyone alive at the end of the event earns 10 levels."), Custom String("No advice."), Top, 1000, Color(
  • Yellow), Color(Green), Color(White), Visible To and String, Default Visibility);
  • Global.EventText1 = Last Text ID;
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("Time: {0}", Global.MinigameTime), Top, 1000, Null, Null, Color(
  • Orange), Visible To and String, Default Visibility);
  • Global.EventText2 = Last Text ID;
  • Global.MinigameTime = 50;
  • Wait Until(Global.MinigameTime <= 0, 55);
  • Destroy HUD Text(Global.EventText1);
  • Destroy HUD Text(Global.EventText2);
  • Global.MinigameEventOn = False;
  • Global.MinigameEvent = 0;
  • Enable Built-In Game Mode Respawning(All Players(All Teams));
  • All Living Players(All Teams).XP += 1000;
  • End;
  • Destroy Effect(Global.EventBubbleID);
  • }
  • }
  • rule("Minigame Ticking")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.MinigameTime > 0;
  • }
  • actions
  • {
  • Global.MinigameTime -= 1;
  • Wait(1, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("High Stakes Rewards")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.MinigameEvent == 1;
  • Distance Between(Position Of(Event Player), Global.EventBubbleLocation) <= 24;
  • Distance Between(Position Of(Victim), Global.EventBubbleLocation) <= 24;
  • }
  • actions
  • {
  • Event Player.Money += Victim.Bank + Victim.Money;
  • Victim.Money = 0;
  • Victim.Bank = 0;
  • Event Player.XP += 300;
  • Victim.Level -= 3;
  • Small Message(Event Player, Custom String("Rewards received."));
  • Small Message(Victim, Custom String("you tried?"));
  • }
  • }
  • rule("Cannot leave bubble during event")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.MinigameEvent == 2;
  • Distance Between(Position Of(Event Player), Global.EventBubbleLocation) > 24;
  • }
  • actions
  • {
  • Wait(0.500, Abort When False);
  • Damage(Event Player, Null, Max Health(Event Player) * 0.050);
  • Set Status(Event Player, Null, Burning, 0.600);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Teleport in market")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.MarketPos) <= 3;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("Hold for 1 second to enter"));
  • Wait(1, Abort When False);
  • Teleport(Event Player, Vector(-143.830, -4.460, -99.350));
  • Set Status(Event Player, Null, Invincible, 9999);
  • Set Status(Event Player, Null, Hacked, 9999);
  • }
  • }
  • rule("Teleport out market")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.MarketTeleportOutPos) < 1.500;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(-148.440, -3.410, -92.550));
  • Wait(0.250, Ignore Condition);
  • Clear Status(Event Player, Invincible);
  • Clear Status(Event Player, Hacked);
  • }
  • }
  • rule("XP Pump Upgrade Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Distance Between(Event Player, Global.XPPumpUpgradePos) <= 1;
  • Event Player.LevelUpPoints >= 400;
  • Event Player.Money >= 320000;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Global.XPPumpPerSecond < 40);
  • Small Message(Event Player, Custom String("Hold for 2 seconds to buy"));
  • Wait(2, Abort When False);
  • Global.XPPumpPerSecond += 1;
  • Event Player.LevelUpPoints -= 400;
  • Event Player.Money -= 320000;
  • Small Message(All Players(All Teams), Custom String("{0} has upgraded the xp pump", Event Player));
  • Else;
  • Small Message(Event Player, Custom String("Max xp!"));
  • }
  • }
  • rule("Mine Progress Reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.MineProgress >= 100;
  • }
  • actions
  • {
  • Event Player.MinedType = Random Integer(1, 5);
  • If(Event Player.MinedType == 1);
  • Small Message(Event Player, Custom String("+1 Coin Doubler"));
  • Event Player.CoinDoubler += 1;
  • Else If(Event Player.MinedType == 2);
  • Small Message(Event Player, Custom String("+1 Ruby"));
  • Event Player.Rubies += 1;
  • Else If(Event Player.MinedType == 3);
  • Small Message(Event Player, Custom String("+1 XP Gem"));
  • Event Player.XPGems += 1;
  • Else If(Event Player.MinedType == 4);
  • Small Message(Event Player, Custom String("+2 Stat Boosts"));
  • Event Player.StatBoost += 2;
  • Else If(Event Player.MinedType == 5);
  • Small Message(Event Player, Custom String("+4 Diamonds"));
  • Event Player.Diamonds += 4;
  • Else;
  • Event Player.RandomMined2 = Random Integer(1, 2);
  • If(Event Player.RandomMined2 == 1);
  • Small Message(Event Player, Custom String("You found no gems, \r\n you did find 40 xp"));
  • Event Player.XP += 40;
  • Else If(Event Player.RandomMined2 == 2);
  • Small Message(Event Player, Custom String("You found no gems, \r\n you did find 1000 coins"));
  • Event Player.Money += 1000;
  • End;
  • End;
  • Event Player.MineProgress = 0;
  • }
  • }
  • rule("On Mine")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.MinePos) < 4;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("Spam interact to mine"));
  • }
  • }
  • rule("Mine Creation")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create Beam Effect(Distance Between(Global.MinePos, Position Of(Event Player)) < 4 && Has Spawned(Event Player)
  • == True ? All Players(All Teams) : Null, Grapple Beam, Vector(X Component Of(Global.MinePos), Y Component Of(Global.MinePos)
  • + 3, Z Component Of(Global.MinePos)), Event Player, Color(Blue), Visible To Position and Radius);
  • }
  • }
  • rule("Mining")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Global.MinePos) < 4;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Miner != True);
  • Event Player.MineProgress += 0.200 * Event Player.miningspeed;
  • Else;
  • Event Player.MineProgress += 0.500 * Event Player.miningspeed;
  • End;
  • If(Global.MineEvent == True);
  • Event Player.MineProgress += 1.500 * Event Player.miningspeed;
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(White), Event Player, 5);
  • Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 200);
  • }
  • }
  • rule("Market Prices")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Call Subroutine(MarketPrices);
  • Wait(120, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Market Prices Subroutine")
  • {
  • event
  • {
  • Subroutine;
  • MarketPrices;
  • }
  • actions
  • {
  • Global.RubyPrice = Random Integer(1300, 5200);
  • Global.XPGemPrice = Random Integer(4000, 5500);
  • Global.CoinDoublerPrice = Random Integer(7500, 9000);
  • Global.StatBoostPrice = Random Integer(5000, 6500);
  • Global.DiamondPrice = Random Integer(800, 2500);
  • }
  • }
  • rule("Sell Rubies")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.RubySellPos) <= 1;
  • Event Player.Rubies >= 1;
  • }
  • actions
  • {
  • Event Player.Money += Global.RubyPrice;
  • Event Player.Rubies -= 1;
  • Small Message(Event Player, Custom String("+{0} coins", Global.RubyPrice));
  • }
  • }
  • rule("Sell XP Gems")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.XPGemSellPos) <= 1;
  • Event Player.XPGems >= 1;
  • }
  • actions
  • {
  • Event Player.Money += Global.XPGemPrice;
  • Event Player.XPGems -= 1;
  • Small Message(Event Player, Custom String("+{0} coins", Global.XPGemPrice));
  • }
  • }
  • rule("Sell Coin Doubler")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.CoinDoublerSellPos) <= 1;
  • Event Player.CoinDoubler >= 1;
  • }
  • actions
  • {
  • Event Player.Money += Global.CoinDoublerPrice;
  • Event Player.CoinDoubler -= 1;
  • Small Message(Event Player, Custom String("+{0} coins", Global.CoinDoublerPrice));
  • }
  • }
  • rule("Sell Stat Boost")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.StatBoostSellPos) <= 1;
  • Event Player.StatBoost >= 1;
  • }
  • actions
  • {
  • Event Player.Money += Global.StatBoostPrice;
  • Event Player.StatBoost -= 1;
  • Small Message(Event Player, Custom String("+{0} coins", Global.StatBoostPrice));
  • }
  • }
  • rule("Sell Diamonds")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.DiamondSellPos) <= 1;
  • Event Player.Diamonds >= 1;
  • }
  • actions
  • {
  • Event Player.Money += Global.DiamondPrice;
  • Event Player.Diamonds -= 1;
  • Small Message(Event Player, Custom String("+{0} coins", Global.DiamondPrice));
  • }
  • }
  • rule("Use XP Gems")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.UseXPGemPos) <= 1;
  • Event Player.XPGems >= 1;
  • }
  • actions
  • {
  • Event Player.XP += 150 * Event Player.XPMultiplier;
  • Event Player.XPMultiplier += 0.010;
  • Event Player.XPGems -= 1;
  • Small Message(Event Player, Custom String("+{0} xp, 1% xp multiplier", 150 * Event Player.XPMultiplier));
  • }
  • }
  • rule("Use Coin Doubler")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.UseCoinDoublerPos) <= 1;
  • Event Player.CoinDoubler >= 1;
  • }
  • actions
  • {
  • Event Player.Money *= 2;
  • Event Player.CoinDoubler -= 1;
  • Small Message(Event Player, Custom String("Held coins multiplied"));
  • }
  • }
  • rule("Use Stat Boost")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Position Of(Event Player), Global.UseStatBoostPos) <= 1;
  • Event Player.StatBoost >= 1;
  • }
  • actions
  • {
  • Event Player.Damage += 15;
  • Event Player.Speed += 15;
  • Event Player.Health += 15;
  • Event Player.StatBoost -= 1;
  • Small Message(Event Player, Custom String("+15 to all stats (except for defence)"));
  • Call Subroutine(Default);
  • }
  • }
  • disabled rule("Anti Crash")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Server Load Average >= 240;
  • }
  • actions
  • {
  • Wait(3, Abort When False);
  • Set Slow Motion(66);
  • Small Message(All Players(All Teams), Custom String("Anti Crash Activated (high server load)"));
  • Wait Until(Server Load Average <= 230, 99999);
  • Wait(6, Ignore Condition);
  • Set Slow Motion(100);
  • Small Message(All Players(All Teams), Custom String("Anti Crash Disabled"));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Ability 1 berserker")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Berserker == True;
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Wait Until(!Is Using Ability 1(Event Player), 99999);
  • Set Ability Cooldown(Event Player, Button(Ability 1), Ability Cooldown(Event Player, Button(Ability 1)) * 0.500);
  • }
  • }
  • rule("Abilty 2 berserker")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Berserker == True;
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Wait Until(!Is Using Ability 2(Event Player), 99999);
  • Set Ability Cooldown(Event Player, Button(Ability 2), Ability Cooldown(Event Player, Button(Ability 2)) * 0.500);
  • }
  • }
  • rule("Ultimate berserker")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Berserker == True;
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Wait Until(!Is Using Ultimate(Event Player), 99999);
  • Set Ultimate Charge(Event Player, 50);
  • }
  • }
  • disabled rule("Nano Boost")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Distance Between(Position Of(Event Player), Global.ToggleNanoPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.NanoBoost != True);
  • Create Effect(All Players(All Teams), Ana Nano Boosted Effect, Color(White), Event Player, 1, Visible To Position and Radius);
  • Event Player.NanoBoostReference = Last Created Entity;
  • Event Player.NanoBoost = True;
  • Small Message(Event Player, Custom String("On"));
  • Else;
  • Event Player.NanoBoost = False;
  • Destroy Effect(Event Player.NanoBoostReference);
  • Small Message(Event Player, Custom String("Off"));
  • }
  • }
  • disabled rule("Explosion")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Distance Between(Position Of(Event Player), Global.ToggleExplosionPos) <= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.Explosion != True);
  • Event Player.Explosion = True;
  • Small Message(Event Player, Custom String("On"));
  • Else;
  • Event Player.Explosion = False;
  • Small Message(Event Player, Custom String("Off"));
  • }
  • }
  • rule("mineprice")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Vector(-137.474, -2.858, -107.662), Event Player) <= 2;
  • }
  • actions
  • {
  • If(Event Player.Money / 1000000 >= Event Player.miningprice / 1000000);
  • Event Player.miningspeed += 0.500;
  • Event Player.Money -= Event Player.miningprice;
  • Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 100);
  • Event Player.miningprice *= 2;
  • Else;
  • Small Message(Event Player, Custom String("Not enough money."));
  • Wait(0.250, Ignore Condition);
  • }
  • }
  • rule("init mining speed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.miningspeed = 1;
  • Event Player.miningprice = 100000;
  • Event Player.LastTextDamage = Array(Color(White), Color(Yellow), Null, Null);
  • }
  • }
  • rule("create global hud/effects")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Sphere, Color(White), Vector(-138.434, -2.858, -107.818), 1, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(White), Vector(-138.434, -2.858, -107.818), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("Buy mining speed \r\n Cost: {0} coins\r\n Mining Speed: +50%",
  • Local Player.miningprice), Vector(-138.434, -2.858, -107.818), 1, Clip Against Surfaces, Visible To Position and String, Color(
  • White), Visible Always);
  • Create In-World Text(Local Player, Round To Integer(Local Player.LastTextDamage[3], Up), Vector(X Component Of(Eye Position(
  • Local Player.LastTextDamage[2])), Y Component Of(Eye Position(Local Player.LastTextDamage[2])) + 0.350, Z Component Of(
  • Eye Position(Local Player.LastTextDamage[2]))), 1.500, Clip Against Surfaces, Visible To Position String and Color,
  • Local Player.LastTextDamage[1], Default Visibility);
  • Create Effect(Distance Between(Global.XPPumpPos, Local Player) < 5 ? Local Player : Null, Beacon Sound, Color(White), Local Player,
  • 200, Visible To Position and Radius);
  • }
  • }
  • rule("Class Select")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) < 40;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.SwitchingClass != True;
  • }
  • actions
  • {
  • "Berserker Select"
  • If(Distance Between(Position Of(Event Player), Global.BerserkerBuyPos) <= 1 && Event Player.Berserker != True);
  • 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);
  • Event Player.Berserker = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Berserker class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Berserker");
  • Else If(Distance Between(Position Of(Event Player), Global.PacifistBuyPos) <= 1 && Event Player.Pacifist != True);
  • 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);
  • Event Player.Pacifist = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Pacifist class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • If(Event Player.Angel == False);
  • Event Player.ClassName = Custom String("Pacifist");
  • Else;
  • Event Player.ClassName = Custom String("Angel");
  • End;
  • Else If(Distance Between(Position Of(Event Player), Global.FarmerBuyPos) <= 1 && Event Player.Farmer != True);
  • 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);
  • Event Player.Farmer = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Farmer class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Farmer");
  • Event Player.XPMultiplier += 0.500;
  • Else If(Distance Between(Position Of(Event Player), Global.GladiatorBuyPos) <= 1 && Event Player.Gladiator != True);
  • 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);
  • Event Player.Gladiator = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Gladiator class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Gladiator");
  • Else If(Distance Between(Position Of(Event Player), Global.LightBuyPos) <= 1 && Event Player.Lightweight != True);
  • 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);
  • Event Player.Lightweight = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Lightweight class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Lightweight");
  • Else If(Distance Between(Position Of(Event Player), Global.OneShotPos) <= 1 && Event Player.OneShot != True);
  • 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);
  • Event Player.OneShot = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("One Shot class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("One Shot");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • End;
  • Else If(Distance Between(Position Of(Event Player), Global.GhostPos) <= 1 && Event Player.Ghost != True);
  • 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);
  • Event Player.Ghost = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Ghost class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • 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."));
  • End;
  • Else If(Distance Between(Position Of(Event Player), Global.TrollPos) <= 1 && Event Player.Troll != True);
  • 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);
  • Event Player.Troll = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Troll class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Troll ");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • End;
  • Else If(Distance Between(Position Of(Event Player), Global.BillionairePos) <= 1 && Event Player.Billionaire != True);
  • 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);
  • Event Player.Billionaire = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Billionaire class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Billionaire");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • End;
  • Else If(Distance Between(Position Of(Event Player), Global.BerserkererPos) <= 1 && Event Player.Berserkerer != True);
  • 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);
  • Event Player.Berserkerer = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Berserkerer class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Berserkerer [x2]");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • End;
  • Else If(Distance Between(Position Of(Event Player), Global.MinerPos) <= 1 && Event Player.Miner != True);
  • Call Subroutine(ClassPurge);
  • If(Event Player.HasClass != True);
  • Small Message(Event Player, Custom String("Miner class selected."));
  • Event Player.Miner = 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);
  • Event Player.Miner = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Miner class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Miner");
  • Else If(Distance Between(Position Of(Event Player), Global.HelperPos) <= 1 && Event Player.Helper != True);
  • 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);
  • Event Player.Helper = True;
  • Event Player.HasClass = True;
  • Event Player.SwitchingClass = False;
  • Kill(Event Player, Null);
  • Small Message(Event Player, Custom String("Helper class selected."));
  • End;
  • "async(Default, AsyncBehavior.RESTART)"
  • Event Player.ClassName = Custom String("Helper");
  • Else;
  • Small Message(Event Player, Custom String("Unlock dark classes first."));
  • End;
  • Else If(Event Player.HasClass == True && Distance Between(Position Of(Event Player), Global.DarkShopPos) < 1);
  • Teleport(Event Player, Vector(-290, -2, 50));
  • Set Status(Event Player, Null, Invincible, 9999);
  • Set Status(Event Player, Null, Hacked, 9999);
  • Else If(Event Player.HasClass == False && Distance Between(Position Of(Event Player), Global.DarkShopPos) < 1);
  • Small Message(Event Player, Custom String("Choose a class first!"));
  • Else If(Distance Between(Position Of(Event Player), Global.DarkShopOutPos) < 1);
  • Teleport(Event Player, Vector(-266.330, -5.090, 31.670));
  • Clear Status(Event Player, Invincible);
  • Clear Status(Event Player, Hacked);
  • End;
  • Call Subroutine(Default);
  • }
  • }
  • rule("On Damage")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Victim != Attacker;
  • }
  • actions
  • {
  • Event Player.XP += Min(Random Real(Event Damage * 0.060, Event Damage * 0.100), 30) * Event Player.XPMultiplier;
  • Attacker.LastTextDamage[2] = Victim;
  • Attacker.LastTextDamage[3] = Event Damage;
  • If(!Event Was Critical Hit);
  • Attacker.LastTextDamage[1] = Color(White);
  • Else If(Event Was Critical Hit);
  • Attacker.LastTextDamage[1] = Color(Yellow);
  • }
  • }
  • rule("On Damage 2")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Victim != Attacker;
  • }
  • actions
  • {
  • Wait(0.250, Restart When True);
  • Event Player.LastTextDamage[2] = Null;
  • }
  • }
  • 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
  • {
  • Event Player.Lightweight == True;
  • 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
  • {
  • Event Player.Lightweight == True;
  • Is Button Held(Event Player, Button(Jump)) == False;
  • Altitude Of(Event Player) > 0.800;
  • }
  • actions
  • {
  • Event Player.DoubleJump2 = True;
  • }
  • }
  • rule("all stats Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.LevelUpPoints >= 1;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • "health"
  • If(Event Player.Health < 1000 && Distance Between(Event Player, Global.HealthBuyPos) <= 1);
  • Event Player.LevelUpPoints -= 1;
  • Event Player.Health += 1;
  • If(Is Button Held(Event Player, Button(Crouch)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • If(Event Player.LevelUpPoints >= 1000 - Event Player.Health && Is Button Held(Event Player, Button(Primary Fire)));
  • Event Player.LevelUpPoints -= 1000 - Event Player.Health;
  • Event Player.Health = 1000;
  • End;
  • Else If(Event Player.Health >= 1000 && Distance Between(Event Player, Global.HealthBuyPos) <= 1);
  • Small Message(Event Player, Custom String("Max Health!"));
  • End;
  • "defense"
  • If(Event Player.DamageTaken > 40 && Distance Between(Event Player, Global.DefenseBuyPos) <= 1);
  • Event Player.LevelUpPoints -= 1;
  • Event Player.DamageTaken -= 0.100;
  • If(Is Button Held(Event Player, Button(Crouch)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else If(Event Player.DamageTaken <= 40);
  • Small Message(Event Player, Custom String("Max Defence!"));
  • End;
  • "damage"
  • If(Event Player.Damage < 1000 && Distance Between(Event Player, Global.DamageBuyPos) <= 1.500);
  • Event Player.LevelUpPoints -= 1;
  • Event Player.Damage += 1;
  • If(Is Button Held(Event Player, Button(Crouch)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • If(Event Player.LevelUpPoints >= 1000 - Event Player.Damage && Is Button Held(Event Player, Button(Primary Fire)));
  • Event Player.LevelUpPoints -= 1000 - Event Player.Damage;
  • Event Player.Damage = 1000;
  • End;
  • Else If(Event Player.Damage >= 1000 && Distance Between(Event Player, Global.DamageBuyPos) <= 1.500);
  • Small Message(Event Player, Custom String("Max Damage!"));
  • End;
  • "speed"
  • If(Event Player.Speed < 700 && Distance Between(Event Player, Global.SpeedBuyPos) <= 1);
  • Event Player.Speed += 1;
  • Event Player.LevelUpPoints -= 1;
  • If(Is Button Held(Event Player, Button(Crouch)));
  • Wait(0.016, Abort When False);
  • Loop If Condition Is True;
  • End;
  • Else If(Event Player.Speed >= 700 && Distance Between(Event Player, Global.SpeedBuyPos) <= 1);
  • Small Message(Event Player, Custom String("Max Speed!"));
  • End;
  • Call Subroutine(Default);
  • }
  • }
  • rule("XP Pump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create Beam Effect(Distance Between(Global.XPPumpPos, Position Of(Event Player)) < 5 && Has Spawned(Event Player)
  • == True ? All Players(All Teams) : Null, 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);
  • Chase Player Variable At Rate(Event Player, XP, 99999, Distance Between(Position Of(Event Player), Global.XPPumpPos)
  • < 5 && Has Spawned(Event Player) == True ? Global.XPPumpPerSecond / Count Of(Filtered Array(Filtered Array(All Living Players(
  • All Teams), Has Spawned(Current Array Element)), Distance Between(Position Of(Current Array Element), Global.XPPumpPos) <= 5))
  • * Event Player.XPMultiplier : 0, Destination and Rate);
  • }
  • }
  • rule("Player Leave Cleanup")
  • {
  • event
  • {
  • Player Left Match;
  • All;
  • All;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, XP);
  • }
  • }
  • rule("Executioner Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Executioner == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 12000;
  • Distance Between(Event Player, Global.ExecutionerBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.DarkPoints -= 12000;
  • Event Player.Executioner = True;
  • Small Message(Event Player, Custom String("Executioner bought."));
  • }
  • }
  • rule("Second Wind Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.SecondWind == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 5000;
  • Distance Between(Event Player, Global.SecondWindBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.DarkPoints -= 5000;
  • Event Player.SecondWind = True;
  • Small Message(Event Player, Custom String("Second Wind bought."));
  • Set Status(Event Player, Null, Unkillable, 9999);
  • }
  • }
  • rule("Dark Resistance Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.DarkResistance == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 3000;
  • Distance Between(Event Player, Global.DarkResistanceBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.DarkPoints -= 3000;
  • Event Player.DarkResistance = True;
  • Small Message(Event Player, Custom String("Dark resistance bought."));
  • }
  • }
  • rule("Explosion Buy")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.ExplosionPerk == False;
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.DarkPoints >= 7000;
  • Distance Between(Event Player, Global.ExplosionBuyPos) <= 1;
  • }
  • actions
  • {
  • Event Player.DarkPoints -= 7000;
  • Event Player.ExplosionPerk = True;
  • Small Message(Event Player, Custom String("Explosion bought."));
  • }
  • }
  • rule("Dark resistance")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Start Damage Modification(Filtered Array(All Players(All Teams), Current Array Element.DarkResistance == True), All Players(
  • All Teams), 70, Receivers Damagers and Damage Percent);
  • }
  • }
  • rule("Executioner")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Start Damage Modification(Event Player, Filtered Array(All Players(All Teams), Current Array Element.Executioner == True), Health(
  • Event Player) <= Max Health(Event Player) * 0.400 ? 150 : 100, Receivers Damagers and Damage Percent);
  • }
  • }
  • rule("Executioner instant kill")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Executioner == True;
  • Normalized Health(Victim) < 0.120;
  • Victim.SecondWind != True;
  • }
  • actions
  • {
  • Kill(Victim, Event Player);
  • }
  • }
  • rule("Explosion")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.ExplosionPerk == True;
  • }
  • actions
  • {
  • If(Random Integer(1, 100) <= 30);
  • Play Effect(All Players(All Teams), Junkrat RIP Tire Explosion Effect, Color(Yellow), Evaluate Once(Position Of(Victim)), 5);
  • Play Effect(All Players(All Teams), Junkrat RIP Tire Explosion Sound, Color(White), Evaluate Once(Position Of(Victim)), 200);
  • Damage(Filtered Array(All Players(All Teams), Distance Between(Position Of(Current Array Element), Victim) <= 5), Event Player,
  • 100);
  • End;
  • }
  • }
  • rule("Second Wind")
  • {
  • event
  • {
  • Player Took Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Health(Event Player) <= 1;
  • Event Player.SecondWindActivated == False;
  • Event Player.SecondWind == True;
  • }
  • actions
  • {
  • Play Effect(Event Player, Junkrat RIP Tire Explosion Sound, Color(White), Event Player, 200);
  • Event Player.LastDamager = Attacker;
  • Event Player.SecondWindTime = 100;
  • Event Player.SecondWindActivated = True;
  • Chase Player Variable Over Time(Event Player, SecondWindTime, 0, 5, Destination and Duration);
  • Wait Until(Event Player.SecondWindTime == 0, 99999);
  • Clear Status(Event Player, Unkillable);
  • Kill(Event Player, Event Player.LastDamager);
  • Set Status(Event Player, Null, Unkillable, 9999);
  • Wait Until(Is Alive(Event Player) == True, 99999);
  • Event Player.SecondWindActivated = False;
  • }
  • }
  • rule("Second Wind effect")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create Effect(Event Player.SecondWindActivated == True ? All Players(All Teams) : Null,
  • Baptiste Immortality Field Protected Effect, Color(White), Event Player, 1, Visible To Position and Radius);
  • }
  • }
Join the Workshop.codes Discord