Return to post
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);
}
}
- nothing to see here