Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • global:
  • 0: PLAYER_SPAWN
  • 1: SCREEN_POS
  • 2: PLAYER_ONE
  • 3: PLAYER_TWO
  • 4: VOTE_TIMER
  • 5: ROUND
  • 6: SCORE_SCALES
  • 7: LOOP_STAGE
  • 8: TIMER
  • 9: PROMPTS_ROUND
  • 10: PROMPTS_ALL
  • 11: FILLER_ANSWERS
  • 12: VOTES_1
  • 13: VOTES_2
  • 14: SCORES_1
  • 15: SCORES_2
  • 16: VOTE_ICON_POS
  • 17: LAST_LASH_TEXTS
  • 18: ALPHABET
  • 19: ACRO_PROMPT
  • 20: LAST_LASH_OFFSETS
  • 21: PD_QF_SLOTS
  • 24: I
  • 25: J
  • 27: keyboardPosition
  • 29: keyboardKeys
  • player:
  • 0: setup
  • 1: answer_array
  • 2: prompt_index
  • 3: voted
  • 4: score
  • 5: scoreboard_text
  • 6: scoreboard_index
  • 7: vote_index
  • 8: medal_index
  • 9: temp_score
  • 10: voted_for_me
  • 11: last_lash_trigger
  • 12: voting
  • 12: wrap_index
  • 13: step_1
  • 14: step_2
  • 15: char_array
  • 26: keyboard_allowed
  • 27: keyboardPosition
  • 28: keyboardEnabled
  • 29: keyboardInput
  • 30: keyboardKey
  • 31: keyboardEntities
  • 32: keyboardIndex
  • }
  • subroutines
  • {
  • 0: createKeyboard
  • 1: destroyKeyboard
  • 2: acroLash
  • }
  • rule("Debug - Dumbots")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • disabled Has Spawned(Host Player) == True;
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Mercy), All Teams, 0, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), All Teams, 1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Hanzo), All Teams, 2, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(McCree), All Teams, 3, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Moira), All Teams, 4, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(D.Va), All Teams, 5, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Lúcio), All Teams, 6, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Echo), All Teams, 7, Vector(0, 0, 0), Vector(0, 0, 0));
  • }
  • }
  • rule("Debug - All bots done with prompt")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Event Player.keyboard_allowed == True;
  • }
  • actions
  • {
  • Wait(Random Real(1.500, 5), Ignore Condition);
  • Event Player.prompt_index = 2;
  • }
  • }
  • rule("Debug - Dumbot voting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Event Player.voted == Null || (Global.LOOP_STAGE == 6 && Event Player.medal_index < 4)) == True;
  • Global.VOTE_TIMER > 0;
  • Global.PLAYER_ONE != Event Player;
  • Global.PLAYER_TWO != Event Player;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Wait(Random Real(2, 5), Ignore Condition);
  • If(Random Integer(0, 1) == 1);
  • Start Holding Button(Event Player, Button(Ultimate));
  • Wait(0.250, Ignore Condition);
  • Stop Holding Button(Event Player, Button(Ultimate));
  • Else;
  • Start Holding Button(Event Player, Button(Ability 2));
  • Wait(0.250, Ignore Condition);
  • Stop Holding Button(Event Player, Button(Ability 2));
  • End;
  • Wait(2, Ignore Condition);
  • If(Global.LOOP_STAGE >= 6);
  • Start Holding Button(Event Player, Button(Reload));
  • Wait(0.250, Ignore Condition);
  • Stop Holding Button(Event Player, Button(Reload));
  • Loop If Condition Is True;
  • End;
  • }
  • }
  • disabled rule("Debug - HUD")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), Custom String("{0} : {1} / Index: {2}", Event Player, Custom String("Voting >{0} / {1}",
  • Players In Slot(Event Player.vote_index, All Teams), Custom String("{0} {1} {2}", Event Player.voted[0], Event Player.voted[1],
  • Event Player.voted[2])), Event Player.vote_index), Null, Null, Left, 0, Color(White), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • }
  • }
  • rule("Global Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Disable Inspector Recording;
  • disabled Disable Inspector Recording;
  • Disable Built-In Game Mode Scoring;
  • Global.PLAYER_SPAWN = Vector(-52.228, 352, 124.109);
  • Global.SCREEN_POS = Vector(-70, 346, 124.109);
  • Global.VOTE_TIMER = -3;
  • Global.VOTE_ICON_POS = Array(Vector(0, 11, 4), Vector(0, 11, -4));
  • Global.SCORE_SCALES = Array(2, 1.500, 1, 0.850, 0.850, 0.850, 0.850, 0.850);
  • Global.PD_QF_SLOTS = Array(1, 3, 5, 7);
  • Global.LAST_LASH_OFFSETS = Array(Vector(0, 11.500, 9), Vector(0, 11.500, 0), Vector(0, 11.500, -9), Vector(0, 7.500, 9), Vector(0,
  • 7.500, -9), Vector(0, 3.500, 9), Vector(0, 3.500, 0), Vector(0, 3.500, -9));
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 0, 16), Global.SCREEN_POS + Vector(0, 0, -16),
  • Color(White), Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 0, -16), Global.SCREEN_POS + Vector(0, 18,
  • -16), Color(White), Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 18, -16), Global.SCREEN_POS + Vector(0, 18,
  • 16), Color(White), Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 18, 16), Global.SCREEN_POS + Vector(0, 0, 16),
  • Color(White), Visible To Position and Radius);
  • Wait(2, Ignore Condition);
  • Pause Match Time;
  • "Spectator Tips"
  • Create HUD Text(Empty Array, Null, Null, Custom String(
  • "Spectators: Press (F1) to quickly find the game area. Spectate in free cam for best viewing experience"), Right, 0, Color(
  • White), Color(White), Color(White), Visible To and String, Visible Always);
  • "Some vanity"
  • Create HUD Text(All Players(All Teams), Null, Custom String("{0} Quipwatch!\r\nBy WildByte", Ability Icon String(Hero(Ashe),
  • Button(Ultimate))), Custom String("17K70"), Left, 0, Color(White), Color(Yellow), Color(White), Visible To and String,
  • Default Visibility);
  • }
  • }
  • rule("Skip Assemble Heroes")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Assembling Heroes == True;
  • }
  • actions
  • {
  • Set Match Time(0);
  • }
  • }
  • rule("Prompts")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.PROMPTS_ALL = Array(Custom String("What two words would passengers never want to\r\nhear a pilot say?"), Custom String(
  • "You would never go on a roller coaster called ______."), Custom String("The secret to a happy life"), Custom String(
  • "The biggest downside to living in hell"), Custom String("The worst thing for an evil witch to turn you into"), Custom String(
  • "A name for a really bad Broadway musical"), Custom String("The first thing you would do after winning the lottery"),
  • Custom String("What's actually causing global warming?"), Custom String("A terrible name for a cruise ship"), Custom String(
  • "What FDR meant to say was We have nothing to fear, but ______."), Custom String("The name of a font nobody would ever use"),
  • Custom String("The real reason the dinosaurs died"), Custom String("Come up with the name of a country that doesn't exist"),
  • Custom String("The best way to keep warm on a cold winter night"), Custom String(
  • "A college major you don't see at many universities"), Custom String("The best thing about going to prison"), Custom String(
  • "The name of the reindeer Santa didn't pick to pull his sleigh"), Custom String(
  • "What's the first thing you would do if you could time travel?"), Custom String(
  • "The name of a pizza place you should never order from"), Custom String("A not-very-scary name for a pirate"), Custom String(
  • "The best thing about living in an igloo"), Custom String("The worst way to be murdered"), Custom String(
  • "Something you shouldn't get your\r\nsignificant other for Valentine's Day"), Custom String(
  • "A dangerous thing to do while driving"), Custom String("Something you shouldn't wear to a job interview"), Custom String(
  • "The #1 reason penguins can't fly"), Custom String("Using only two words, a new state motto for Texas"), Custom String(
  • "The hardest thing about being Batman"), Custom String("A great way to kill time at work"), Custom String(
  • "Come up with a really bad TV show that starts with Baby"), Custom String("Why does the Tower of Pisa lean?"), Custom String(
  • "What's wrong with these kids today?"), Custom String("A great new invention that starts with Automatic"), Custom String(
  • "There's Gryffindor, Ravenclaw, Slytherin, and Hufflepuff, \r\nbut what's the Hogwarts house that few have ever heard of?"),
  • Custom String("The worst word to say at the opening of a eulogy at a funeral"), Custom String(
  • "Something you should never use as a scarf"), Custom String("Invent a holiday you think everyone would enjoy"), Custom String(
  • "The best news you could get today"), Custom String(
  • "Usually it's bacon, lettuce and tomato, but come up with\r\na BLT you wouldn't want to eat"), Custom String(
  • "If you were allowed to name someone else's baby any\r\nweird thing you wanted, what would you name it?"), Custom String(
  • "You know you're in for a bad taxi ride when ______."), Custom String("Where do babies come from?"), Custom String(
  • "Sometimes, after a long day, you just need to ______."), Custom String("The worst way to spell Mississippi"), Custom String(
  • "Give me one good reason why I shouldn't spank you right now"), Custom String("The best place to bury all those bodies"),
  • Custom String("What's lurking under your bed when you sleep?"), Custom String(
  • "A good fake name to use when checking into a hotel"), Custom String("Okay... fine! What do YOU want to talk about then?!!!"),
  • Custom String("How many monkeys is too many monkeys?"), Custom String("Something you should never say to your mother"),
  • Custom String("Where's the best place to hide from the shadow monsters?"), Custom String("A good way to get fired"),
  • Custom String("Name the eighth dwarf who got cut out at the last minute"), Custom String(
  • "The last person you'd consider inviting to your birthday party"), Custom String("The worst name for a robot"), Custom String(
  • "One thing never to do on a first date"), Custom String("Who let the dogs out?"), Custom String("Big Bird's last words"),
  • Custom String("Name a children's book by someone who hates children"), Custom String(
  • "Pants would be a whole lot better if they ______."), Custom String(
  • "It's bad to be buried alive. It's worse to be buried alive with ______."), Custom String(
  • "What to say to get out of jury duty"), Custom String("The Tooth Fairy's other job"), Custom String("What time is it?"),
  • Custom String("Three things are certain in life: Death, Taxes, and ______."), Custom String(
  • "The first commandment in the new religion you started"), Custom String(
  • "Something that is currently legal that should be banned"), Custom String("A word that should never follow Beef"),
  • Custom String("A bad thing to say to a cop as he writes you a speeding ticket"), Custom String(
  • "Something you shouldn't buy off Craigslist"), Custom String("We can all agree that ______."), Custom String(
  • "A great name to have on a fake I.D."), Custom String("What robots dream about"), Custom String("How far is too far?"),
  • Custom String("If at first you don't succeed..."), Custom String("Today's music needs more ______."), Custom String(
  • "The coolest way to die"), Custom String("A unique way to escape from prison"), Custom String(
  • "A terrifying fortune cookie fortune"), Custom String("Where missing socks go"), Custom String("The first sign you're old"),
  • Custom String("The first thing a pig would say if it could talk"), Custom String("The real secret to living to age 100"),
  • Custom String("Why so serious?"), Custom String("The worst name for a mountain"), Custom String(
  • "Knock knock! Who's there? ______."), Custom String("What you want your gravestone to read"), Custom String(
  • "It never ends well when you mix ______ and ______. (type both)"), Custom String("The worst thing about Canada"),
  • Custom String("A better name for the game Duck Duck Goose"), Custom String(
  • "Should you catch on fire, remember,\r\n'Stop, Drop, Roll, and then ______."), Custom String("When is the next ptr update?"),
  • Custom String("It's fun to stay at the ______."), Custom String("Your least favorite overwatch hero"));
  • Custom String("It's fun to stay at the ______."), Custom String("Your least favorite overwatch hero"), Custom String(
  • "The best way to impress an Alien from Mars"), Custom String("Gosh darn it more! Get out of my room, I'm ______!"),
  • Custom String("The worst movie to put on during Netflix and Chill"), Custom String(
  • "I didn't mean to kill him! I just ______."), Custom String("The easiest way to make a Gamer mad."), Custom String(
  • "As shakespear once said, '______.'"), Custom String("The last thing you see before being blown up."), Custom String(
  • "Change a single word in a movie title to make it\r\ninstantly more interesting"), Custom String(
  • "Your sinal words before you're burned in Salem as a witch"), Custom String(
  • "A remarkable achievement you probably won't list on your resume"), Custom String(
  • "Forget the Cat in the Hat. Prepare yourselves for\r\n______ in the ______!"), Custom String(
  • "You have 5 words or less to make an entire group of people mad"), Custom String(
  • "This just in - ______ got game of the year for 2020!"), Custom String(
  • "An actually beneficial thing to hoard would be ______."), Custom String(
  • "Disney has decided to replace Iron Man with ______."), Custom String("The name of a teacher you know you'd instantle hate."),
  • Custom String("Who is best girl?"), Custom String("A song/band that sounds like a Jojo stand."), Custom String(
  • "What your license plate would say if there were no character limit."), Custom String(
  • "You're an actor in a TV series! What's your most famous line?"), Custom String(
  • "The new most popular game show: Wheel Of ______!"), Custom String("The dumbest reason ever to host a party"), Custom String(
  • "A really good reason to break into your neighbor's hourse right now."), Custom String("A badass name for a chainsaw."),
  • Custom String("An amazing new product that starts with 'Anti-'"), Custom String("The worst flavor of juice."), Custom String(
  • "Wikipedia recently created a new online wiki called ______pedia."), Custom String(
  • "The host was just murdered. Who is the primary suspect?"), Custom String("Google's next innovative product"), Custom String(
  • "Apple's next popular device: The i-______."), Custom String("A new genre of music you just made up right now."),
  • Custom String("A rejected title in the Magic School Bus series:\r\nThe Magic School Bus Goes to ______."), Custom String(
  • "The scariest thing you can think of is ______ riding ______.\r\n(type both)"), Custom String(
  • "A good name for a detective agency run by kids"), Custom String("Your least favorite overwatch map."), Custom String(
  • "The best overwatch voiceline."), Custom String("Reaper's new ultimate line: ______! ______! ______!"), Custom String(
  • "What the overwatch devs almost named B.O.B."), Custom String("An offbrand name for a fast food location"), Custom String(
  • "The reason aliens haven't contacted us"), Custom String("Back in my say, we didn't have internet,\r\nwe had ______!"),
  • Custom String("Why is orange?"), Custom String("The most useless command to teach a dog"), Custom String("You've got ______."),
  • Custom String("Define ostronautics"), Custom String("Cheers, love! The ______ is here!"), Custom String("Experience ______."),
  • Custom String("Wanted: ______ or ______ (type both)"), Custom String("______? That sounds dangerous."), Custom String(
  • "______ sky, the skies are ______. (type both)"), Custom String("Keep calm and ______!"), Custom String(
  • "The world could always use more ______."), Custom String("Bastion's favorite voiceline"), Custom String(
  • "I choose you, ______."), Custom String("You're making a ______ out of a ______! (type both)"), Custom String(
  • "Honor! Justice! ______!"), Custom String("______ is usually the answer"), Custom String("For the ______!"), Custom String(
  • "Pass into the ______."), Custom String("Trick or ______?"), Custom String("I think. Therefore I ______."), Custom String(
  • "A scrapped name for Reinhardt's ultimate"), Custom String("I'm not good. Not bad. But I sure as hell ain't ______."));
  • }
  • }
  • rule("Filler Answers")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.FILLER_ANSWERS = Array(Custom String("Winnie the Pooh"), Custom String("I'm a bear"), Custom String("Yellow Fever!"),
  • Custom String("Spiders"), Custom String("If only I had more time..."), Custom String("WINS!"), Custom String("Three thousand"),
  • Custom String("Nelson Mandela"), Custom String("You're not special"), Custom String("Miracle Whip"), Custom String("Wow!"),
  • Custom String("The Graveyard"), Custom String("Behind you! AHHHH!"), Custom String("about 7"), Custom String("12"),
  • Custom String("Lightning McQueen"), Custom String("Kachow"), Custom String("Winston Overwatch"), Custom String(
  • "Tom and Jerry"), Custom String("Junkertown"), Custom String("wet the bed"));
  • "Tom and Jerry"), Custom String("Junkertown"), Custom String("wet the bed"), Custom String("McDonalds"), Custom String("No"),
  • Custom String("Yes"), Custom String("Watchpoint: Gibraltar"), Custom String("Genji Overwatch"), Custom String("Eichenwalde"),
  • Custom String("Canada"), Custom String("C9"), Custom String("Bruh"), Custom String("250HP Thiccree"), Custom String(
  • "o lawd he comin"), Custom String("aw gee, scoob"), Custom String("and2y"), Custom String("Sake!"), Custom String(
  • "CaptCaptain's Keyboard"), Custom String("Waitedboat5"), Custom String("Star Platinum"));
  • }
  • }
  • rule("Player Setup")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Disable Game Mode HUD(Event Player);
  • Disable Hero HUD(Event Player);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Disallow Button(Event Player, Button(Jump));
  • Set Primary Fire Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Ultimate Ability Enabled(Event Player, False);
  • Set Ammo(Event Player, 0, 0);
  • Set Max Ammo(Event Player, 0, 0);
  • Start Scaling Player(Event Player, 0.700, True);
  • Start Forcing Player Position(Event Player, Global.PLAYER_SPAWN + Direction From Angles(5 + 17.500 * (Slot Of(Event Player) + 1),
  • Empty Array) * 6, True);
  • Set Gravity(Event Player, 0);
  • Set Status(Event Player, Null, Rooted, 9999);
  • Wait(0.250, Ignore Condition);
  • Stop Forcing Player Position(Event Player);
  • }
  • }
  • rule("Player One-Time Setup")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Event Player.setup == False;
  • }
  • actions
  • {
  • Event Player.setup = True;
  • "Player ring (title screen)"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String("{0}\r\n{1}", Hero Icon String(
  • Hero Of(Event Player)), Event Player), Global.SCREEN_POS + Vector(0, 7.500, 0) + Direction From Angles(Empty Array, 45 * (
  • Slot Of(Event Player) + 1)) * 6.500, 1.650, Clip Against Surfaces, Visible To Position and String, Color(White),
  • Default Visibility);
  • "'phone' and voting text"
  • Create Beam Effect(Event Player, Grapple Beam, World Vector Of(Vector(-0.500, 0.250, 1), Event Player, Rotation And Translation),
  • World Vector Of(Vector(0.500, 0.250, 1), Event Player, Rotation And Translation), Color(White),
  • Visible To Position and Radius);
  • Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE < 4), Custom String(
  • "{0}\r\nPress ({1}) to +1", Global.PLAYER_ONE.answer_array[Global.PLAYER_ONE.prompt_index], Input Binding String(Button(
  • Ultimate))), World Vector Of(Vector(0.450, 0.250, 1), Event Player, Rotation And Translation), 2, Do Not Clip,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE < 4), Custom String(
  • "{0}\r\nPress ({1}) to +1", Global.PLAYER_TWO.answer_array[Global.PLAYER_TWO.prompt_index], Input Binding String(Button(
  • Ability 2))), World Vector Of(Vector(-0.450, 0.250, 1), Event Player, Rotation And Translation), 2, Do Not Clip,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • "Prompts"
  • Event Player.prompt_index = 0;
  • Create In-World Text(Filtered Array(Event Player, Event Player.keyboard_allowed && Global.LOOP_STAGE < 4),
  • Global.PROMPTS_ROUND[Round To Integer((Array Contains(Global.PD_QF_SLOTS, Slot Of(Event Player)) ? Slot Of(Event Player)
  • - 1 : Slot Of(Event Player)) / 1, Up) + Event Player.prompt_index], World Vector Of(Vector(0, 0.350, 1), Event Player,
  • Rotation And Translation), 1.700, Do Not Clip, Visible To Position and String, Color(Turquoise), Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Custom String("{0}\r\n{1}", Hero Icon String(
  • Hero Of(Event Player)), Event Player), Global.SCREEN_POS + Vector(0, 1, -13) + Vector(0, Event Player.prompt_index > 1 || (
  • Event Player.prompt_index > 0 && Global.LOOP_STAGE == 5) ? 2 : 0, 3.250 * (Slot Of(Event Player) + 1)), 1.500,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • "Vote Indicator"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE < 4), Custom String(
  • "{0}\r\n{1}", Hero Icon String(Hero Of(Event Player)), Event Player), Global.SCREEN_POS + Vector(0, 0, Index Of Array Value(
  • Filtered Array(All Players(All Teams), Event Player.voted == Current Array Element.voted), Event Player) * (
  • Event Player.voted == Global.PLAYER_TWO ? -2 : 2)) + (Event Player.voted == Global.PLAYER_ONE ? First Of(Global.VOTE_ICON_POS)
  • : (Event Player.voted == Global.PLAYER_TWO ? Last Of(Global.VOTE_ICON_POS) : Vector(0, 1, 0))), 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Last Lash"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 6), Custom String("{0}) {1}", Slot Of(
  • Event Player) + 1, Event Player.answer_array), Global.SCREEN_POS + Global.LAST_LASH_OFFSETS[Slot Of(Event Player)], 1.500,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE == 6 && Event Player.medal_index < 3),
  • Custom String(" <({0}) {1} ({2})>", Input Binding String(Button(Ultimate)), Players In Slot(Event Player.vote_index, All Teams)
  • .answer_array, Input Binding String(Button(Ability 2))), World Vector Of(Vector(0, 0.350, 1), Event Player,
  • Rotation And Translation), 1.700, Do Not Clip, Visible To Position and String, Color(Yellow), Default Visibility);
  • Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE == 6 && Event Player.medal_index < 3),
  • Custom String("Press ({0}) to select", Input Binding String(Button(Reload))), World Vector Of(Vector(0, 0.250, 1),
  • Event Player, Rotation And Translation), 1.700, Do Not Clip, Visible To Position and String, Color(Yellow),
  • Default Visibility);
  • "Last Lash Results"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE == 6), Custom String(
  • "+{0}", Event Player.temp_score), Global.SCREEN_POS + Vector(0, -1, 0) + Global.LAST_LASH_OFFSETS[Slot Of(Event Player)],
  • 1.500, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("Screen Text Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "Title Screen"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String("Quipwatch!"),
  • Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String("by WildByte"),
  • Global.SCREEN_POS + Vector(0, 7.400, 0), 1.200, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String(
  • "VIP {0}\r\n{1}\r\nPress {2} to start!", Hero Icon String(Hero Of(Host Player)), Host Player, Input Binding String(Button(
  • Ultimate))), Global.SCREEN_POS + Vector(0, 0.500, 12), 1.500, Clip Against Surfaces, Visible To Position and String, Color(
  • Turquoise), Default Visibility);
  • "Rounds"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 1), Custom String("Round {0}!", Global.ROUND),
  • Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
  • Default Visibility);
  • "Timer and Filler Text"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Round To Integer(Global.TIMER, Up),
  • Global.SCREEN_POS + Vector(0, 15, 14), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Custom String(
  • "↓↓↓ Write answers using your keyboard now! ↓↓↓"), Global.SCREEN_POS + Vector(0, 5.500, 0), 2, Clip Against Surfaces,
  • Visible To Position and String, Color(Turquoise), Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Custom String("Spectators Play-Along:\r\n{0}",
  • Random Value In Array(Global.PROMPTS_ALL)), Global.SCREEN_POS + Vector(0, 13.500, 0), 1.500, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • "Voting Timer, Prompts and Effects"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > 0), Round To Integer(Global.VOTE_TIMER, Up),
  • Global.SCREEN_POS + Vector(0, 15, 14), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4),
  • Global.PROMPTS_ROUND[Global.J], Global.SCREEN_POS + Vector(0, 13.500, 0), 2, Clip Against Surfaces,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 7.500, 14), Global.SCREEN_POS + Vector(0, 7.500, 4), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 7.500, 4), Global.SCREEN_POS + Vector(0, 11.500, 4), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 11.500, 4), Global.SCREEN_POS + Vector(0, 11.500, 14), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 11.500, 14), Global.SCREEN_POS + Vector(0, 7.500, 14), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 7.500, -14), Global.SCREEN_POS + Vector(0, 7.500, -4), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 7.500, -4), Global.SCREEN_POS + Vector(0, 11.500, -4), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 11.500, -4), Global.SCREEN_POS + Vector(0, 11.500, -14), Color(Yellow),
  • Visible To Position and Radius);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
  • Global.SCREEN_POS + Vector(0, 11.500, -14), Global.SCREEN_POS + Vector(0, 7.500, -14), Color(Yellow),
  • Visible To Position and Radius);
  • "Vote Count => Scores"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE < 4), Custom String(
  • "{0} {1}: +{2}", Hero Icon String(Hero Of(Global.PLAYER_ONE)), Global.PLAYER_ONE, Global.SCORES_1), Global.SCREEN_POS + Vector(
  • 0, 4.500, 9), 2.500, Clip Against Surfaces, Visible To Position and String, Color(Turquoise), Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE < 4), Custom String(
  • "{0} {1}: +{2}", Hero Icon String(Hero Of(Global.PLAYER_TWO)), Global.PLAYER_TWO, Global.SCORES_2), Global.SCREEN_POS + Vector(
  • 0, 4.500, -9), 2.500, Clip Against Surfaces, Visible To Position and String, Color(Turquoise), Default Visibility);
  • "Answers"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER >= -1 && Global.LOOP_STAGE < 4),
  • Global.PLAYER_ONE.answer_array[Global.PLAYER_ONE.prompt_index], Global.SCREEN_POS + Vector(0, 8, 9), 1.700,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER >= -1 && Global.LOOP_STAGE < 4),
  • Global.PLAYER_TWO.answer_array[Global.PLAYER_TWO.prompt_index], Global.SCREEN_POS + Vector(0, 8, -9), 1.700,
  • Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
  • "Scoreboard (global)"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 3), Custom String("Scores! Round {0}",
  • Global.ROUND), Global.SCREEN_POS + Vector(0, 14, 0), 2, Clip Against Surfaces, Visible To Position and String, Color(
  • Turquoise), Default Visibility);
  • }
  • }
  • rule("Main Loop (Host press ult to start)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Is Button Held(Host Player, Button(Ultimate)) || Is Button Held(Host Player, Button(Ability 1))) == True;
  • Global.LOOP_STAGE == 0;
  • Count Of(All Players(All Teams)) >= 3;
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Filtered Array(All Players(All Teams), !Has Spawned(Current Array Element)), Random Value In Array(
  • Allowed Heroes(Host Player)));
  • Wait(0.250, Ignore Condition);
  • "Main loop"
  • For Global Variable(I, 1, 3, 1);
  • Global.ROUND = Global.I;
  • Global.LOOP_STAGE = 1;
  • Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 65);
  • All Players(All Teams).prompt_index = 0;
  • All Players(All Teams).answer_array = Empty Array;
  • For Global Variable(J, 0, 8, 1);
  • Global.PROMPTS_ROUND[Global.J] = Random Value In Array(Filtered Array(Global.PROMPTS_ALL, !Array Contains(Global.PROMPTS_ROUND,
  • Current Array Element)));
  • End;
  • Wait(3, Ignore Condition);
  • Global.LOOP_STAGE = 2;
  • Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 55);
  • All Players(All Teams).keyboard_allowed = True;
  • Global.TIMER = 90;
  • Chase Global Variable At Rate(TIMER, 0, 1, Destination and Rate);
  • Wait Until(Global.TIMER == 0 || Is True For All(All Players(All Teams), Current Array Element.prompt_index > 1), 91);
  • Global.TIMER = 0;
  • All Players(All Teams).keyboard_allowed = False;
  • Wait(3, Ignore Condition);
  • All Players(All Teams).prompt_index = 0;
  • "Voting loop 1"
  • For Global Variable(J, 0, Count Of(All Players(All Teams)) + 0, 2);
  • Global.VOTES_1 = 0;
  • Global.VOTES_2 = 0;
  • Global.SCORES_1 = 0;
  • Global.SCORES_2 = 0;
  • Global.PLAYER_ONE = Players In Slot(Global.J + 0, All Teams);
  • Global.PLAYER_TWO = Players In Slot(Global.J + 1, All Teams);
  • All Players(All Teams).voted = Null;
  • Global.VOTE_TIMER = 25;
  • Chase Global Variable At Rate(VOTE_TIMER, 0, 1, Destination and Rate);
  • Wait Until(Global.VOTE_TIMER == 0 || Is True For All(Filtered Array(All Players(All Teams),
  • Current Array Element != Global.PLAYER_ONE && Current Array Element != Global.PLAYER_TWO), Current Array Element.voted), 26);
  • Global.VOTE_TIMER = 0;
  • Stop Chasing Global Variable(VOTE_TIMER);
  • Wait(3, Ignore Condition);
  • Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 55);
  • Global.VOTE_TIMER = -1;
  • Wait(2, Ignore Condition);
  • Chase Global Variable Over Time(SCORES_1, Global.VOTES_1 * 35, 0.250, Destination and Duration);
  • Chase Global Variable Over Time(SCORES_2, Global.VOTES_2 * 35, 0.250, Destination and Duration);
  • Wait(2, Ignore Condition);
  • Global.PLAYER_ONE.score += Global.SCORES_1;
  • Global.PLAYER_TWO.score += Global.SCORES_2;
  • Wait(2, Ignore Condition);
  • Global.VOTE_TIMER = -3;
  • End;
  • All Players(All Teams).prompt_index = 1;
  • "Voting loop 2"
  • For Global Variable(J, 1, Count Of(All Players(All Teams)) + 0, 2);
  • Global.VOTES_1 = 0;
  • Global.VOTES_2 = 0;
  • Global.SCORES_1 = 0;
  • Global.SCORES_2 = 0;
  • Global.PLAYER_ONE = Players In Slot(Global.J + -1, All Teams);
  • Global.PLAYER_TWO = Players In Slot(Global.J + 0, All Teams);
  • All Players(All Teams).voted = Null;
  • Global.VOTE_TIMER = 25;
  • Chase Global Variable At Rate(VOTE_TIMER, 0, 1, Destination and Rate);
  • Wait Until(Global.VOTE_TIMER == 0 || Is True For All(Filtered Array(All Players(All Teams),
  • Current Array Element != Global.PLAYER_ONE && Current Array Element != Global.PLAYER_TWO), Current Array Element.voted), 26);
  • Global.VOTE_TIMER = 0;
  • Stop Chasing Global Variable(VOTE_TIMER);
  • Wait(3, Ignore Condition);
  • Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 55);
  • Global.VOTE_TIMER = -1;
  • Wait(2, Ignore Condition);
  • Chase Global Variable Over Time(SCORES_1, Global.VOTES_1 * 70, 0.250, Destination and Duration);
  • Chase Global Variable Over Time(SCORES_2, Global.VOTES_2 * 70, 0.250, Destination and Duration);
  • Wait(2, Ignore Condition);
  • Global.PLAYER_ONE.score += Global.SCORES_1;
  • Global.PLAYER_TWO.score += Global.SCORES_2;
  • Wait(2, Ignore Condition);
  • Global.VOTE_TIMER = -3;
  • End;
  • Global.LOOP_STAGE = 3;
  • Wait(8, Ignore Condition);
  • End;
  • "Final Round"
  • Global.LOOP_STAGE = 4;
  • Global.PLAYER_ONE = Null;
  • Global.PLAYER_TWO = Null;
  • Call Subroutine(acroLash);
  • "Final scoreboard (show scores and winner)"
  • All Players(All Teams).scoreboard_index = -1;
  • Global.LOOP_STAGE = 7;
  • Wait(10, Ignore Condition);
  • Global.VOTE_TIMER = -3;
  • Global.LOOP_STAGE = 0;
  • All Players(All Teams).temp_score = 0;
  • All Players(All Teams).voted_for_me = 0;
  • All Players(All Teams).medal_index = 0;
  • All Players(All Teams).score = 0;
  • }
  • }
  • rule("Filler answers in case time runs out")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.VOTE_TIMER <= 0;
  • (Global.LOOP_STAGE == 2 || Global.LOOP_STAGE == 5) == True;
  • Count Of(Event Player.answer_array) <= 1;
  • }
  • actions
  • {
  • If(Event Player.answer_array != Empty Array);
  • Event Player.answer_array[1] = Random Value In Array(Filtered Array(Global.FILLER_ANSWERS, !Array Contains(
  • Event Player.answer_array, Current Array Element)));
  • Else;
  • Event Player.answer_array[0] = Random Value In Array(Filtered Array(Global.FILLER_ANSWERS, !Array Contains(
  • Event Player.answer_array, Current Array Element)));
  • Event Player.answer_array[1] = Random Value In Array(Filtered Array(Global.FILLER_ANSWERS, !Array Contains(
  • Event Player.answer_array, Current Array Element)));
  • }
  • }
  • rule("Voting - Rounds 1 & 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Is Button Held(Event Player, Button(Ultimate)) || Is Button Held(Event Player, Button(Ability 2))) == True;
  • Event Player.voted == Null;
  • Global.VOTE_TIMER > 0;
  • Global.PLAYER_ONE != Event Player;
  • Global.PLAYER_TWO != Event Player;
  • Global.LOOP_STAGE < 4;
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 45);
  • If(Is Button Held(Event Player, Button(Ultimate)));
  • Global.VOTES_1 += 1;
  • Event Player.voted = Global.PLAYER_ONE;
  • Small Message(Event Player, Custom String("You voted for:\r\n{0}",
  • Global.PLAYER_ONE.answer_array[Global.PLAYER_ONE.prompt_index]));
  • Else If(Is Button Held(Event Player, Button(Ability 2)));
  • Event Player.voted = Global.PLAYER_TWO;
  • Global.VOTES_2 += 1;
  • Small Message(Event Player, Custom String("You voted for:\r\n{0}",
  • Global.PLAYER_TWO.answer_array[Global.PLAYER_TWO.prompt_index]));
  • End;
  • Wait(0.250, Ignore Condition);
  • }
  • }
  • rule("Scoreboard (Create and destroy in-world text)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.LOOP_STAGE == 3;
  • }
  • actions
  • {
  • Event Player.scoreboard_index = Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
  • Event Player);
  • Wait(0.250 + (Count Of(All Players(All Teams)) + Event Player.scoreboard_index * -1) * 0.250, Ignore Condition);
  • Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), All Players(All Teams), 60);
  • "Final Scoreboard"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 3), Custom String("{0}\r\n{1}\r\nScore: {2}",
  • Hero Icon String(Hero Of(Event Player)), Event Player, Event Player.score), Global.SCREEN_POS + Vector(0, 6.800, 0) + (
  • Event Player.scoreboard_index == 0 ? Vector(0, 0, 0) : Direction From Angles(Empty Array, 45 * Event Player.scoreboard_index))
  • * 5, Global.SCORE_SCALES[Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
  • Event Player)], Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Event Player.scoreboard_text = Last Text ID;
  • Wait(8 + Slot Of(Event Player) * 0.250, Ignore Condition);
  • Destroy In-World Text(Event Player.scoreboard_text);
  • Wait(1, Ignore Condition);
  • Event Player.scoreboard_text = Null;
  • }
  • }
  • rule("Final scores (Create and destroy in-world text)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.scoreboard_index == -1;
  • }
  • actions
  • {
  • Event Player.scoreboard_index = Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
  • Event Player);
  • Wait(0.250 + (Count Of(All Players(All Teams)) + Event Player.scoreboard_index * -1) * 0.500, Ignore Condition);
  • Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), All Players(All Teams), 60);
  • "Final Scoreboard"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 7), Custom String("{0}\r\n{1}\r\nScore: {2}",
  • Hero Icon String(Hero Of(Event Player)), Event Player, Event Player.score), Global.SCREEN_POS + Vector(0, 7.500, 0) + (
  • Event Player.scoreboard_index == 0 ? Vector(0, 0, 0) : Direction From Angles(Empty Array, 45 * Event Player.scoreboard_index))
  • * 5, Global.SCORE_SCALES[Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
  • Event Player)], Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Event Player.scoreboard_text = Last Text ID;
  • Wait(8 + Slot Of(Event Player) * 0.250, Ignore Condition);
  • Destroy In-World Text(Event Player.scoreboard_text);
  • Wait(1, Ignore Condition);
  • Event Player.scoreboard_text = Null;
  • }
  • }
  • rule("Acro-Lash")
  • {
  • event
  • {
  • Subroutine;
  • acroLash;
  • }
  • actions
  • {
  • "Acro-Lash Announce"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 4), Custom String("Final Round:\r\n Acro-Lash! ",
  • Global.ROUND), Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
  • Default Visibility);
  • Modify Global Variable(LAST_LASH_TEXTS, Append To Array, Last Text ID);
  • Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 65);
  • All Players(All Teams).prompt_index = 0;
  • All Players(All Teams).answer_array = Empty Array;
  • Global.ACRO_PROMPT = Empty Array;
  • For Global Variable(J, 0, 3, 1);
  • Global.ACRO_PROMPT = Custom String("{0}{1}.", Global.ACRO_PROMPT, Random Value In Array(Global.ALPHABET));
  • End;
  • Wait(3, Ignore Condition);
  • Global.LOOP_STAGE = 5;
  • "Acro-Lash Prompt"
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE >= 5 && Global.LOOP_STAGE < 7), Global.ACRO_PROMPT,
  • Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Yellow),
  • Default Visibility);
  • Modify Global Variable(LAST_LASH_TEXTS, Append To Array, Last Text ID);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 5), Custom String(
  • "Come up with a full name for this acronym!"), Global.SCREEN_POS + Vector(0, 10, 0), 1.500, Clip Against Surfaces,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • Modify Global Variable(LAST_LASH_TEXTS, Append To Array, Last Text ID);
  • "Answer Prompt"
  • Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 55);
  • All Players(All Teams).keyboard_allowed = True;
  • Global.TIMER = 90;
  • Chase Global Variable At Rate(TIMER, 0, 1, Destination and Rate);
  • Wait Until(Global.TIMER == 0 || Is True For All(All Players(All Teams), Current Array Element.prompt_index > 0), 91);
  • Global.TIMER = 0;
  • All Players(All Teams).keyboard_allowed = False;
  • Wait(3, Ignore Condition);
  • "Voting"
  • All Players(All Teams).voted = Empty Array;
  • All Players(All Teams).medal_index = 0;
  • Global.LOOP_STAGE = 6;
  • Global.VOTE_TIMER = 75;
  • Chase Global Variable At Rate(VOTE_TIMER, 0, 1, Destination and Rate);
  • Wait Until(Global.VOTE_TIMER == 0 || Is True For All(All Players(All Teams), Count Of(Current Array Element.voted) >= 3), 76);
  • Global.VOTE_TIMER = 0;
  • Stop Chasing Global Variable(VOTE_TIMER);
  • Wait(3, Ignore Condition);
  • Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 55);
  • Global.VOTE_TIMER = -1;
  • All Players(All Teams).voted[3] = Null;
  • All Players(All Teams).voted_for_me = Empty Array;
  • All Players(All Teams).last_lash_trigger = True;
  • Wait(10, Ignore Condition);
  • For Global Variable(I, 0, Count Of(Global.LAST_LASH_TEXTS), 1);
  • Destroy In-World Text(Global.LAST_LASH_TEXTS[Global.I]);
  • End;
  • Abort;
  • }
  • }
  • rule("Acro-Lash Alphabet and Thing Prompts")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.ALPHABET = Array(Custom String("A"), Custom String("B"), Custom String("C"), Custom String("D"), Custom String("E"),
  • Custom String("F"), Custom String("G"), Custom String("H"), Custom String("I"), Custom String("J"), Custom String("K"),
  • Custom String("L"), Custom String("M"), Custom String("N"), Custom String("O"), Custom String("P"), Custom String("Q"),
  • Custom String("R"), Custom String("S"), Custom String("T"), Custom String("U"), Custom String("V"), Custom String("W"),
  • Custom String("X"), Custom String("Y"), Custom String("Z"));
  • }
  • }
  • rule("Voting - Acro-Lash")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Is Button Held(Event Player, Button(Reload)) || Is Button Held(Event Player, Button(Ultimate)) || Is Button Held(Event Player,
  • Button(Ability 2))) == True;
  • Count Of(Event Player.voted) < 4;
  • Global.VOTE_TIMER > 0;
  • Global.LOOP_STAGE >= 6;
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
  • If(Is Button Held(Event Player, Button(Ultimate)));
  • Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
  • Event Player.vote_index -= Event Player.vote_index == 0 ? 0 : 1;
  • Else If(Is Button Held(Event Player, Button(Ability 2)));
  • Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
  • Event Player.vote_index += Event Player.vote_index == Count Of(All Players(All Teams)) + -1 ? 0 : 1;
  • Else If(Is Button Held(Event Player, Button(Reload)));
  • If(Event Player.voting[Event Player.vote_index] == Event Player);
  • If(Players In Slot(Event Player.vote_index, All Teams) == Event Player);
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 45);
  • Small Message(Event Player, Custom String("You can't vote for yourself :("));
  • Else If(Array Contains(Event Player.voted, Event Player.voting[Event Player.vote_index]));
  • Else If(Array Contains(Event Player.voted, Players In Slot(Event Player.vote_index, All Teams)));
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 45);
  • Small Message(Event Player, Custom String("You already voted for that!"));
  • Else;
  • Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 45);
  • Event Player.voted[Event Player.medal_index] = Players In Slot(Event Player.vote_index, All Teams);
  • Small Message(Event Player, Custom String("Voted! / {1} vote(s) remaining", Null, 3 - Event Player.medal_index));
  • Event Player.medal_index += 1;
  • End;
  • End;
  • Event Player.voting[Event Player.medal_index] = Players In Slot(Event Player.vote_index, All Teams);
  • Wait(0.150, Ignore Condition);
  • }
  • }
  • rule("Acro-Lash - Player trigger (count scores)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.last_lash_trigger == True;
  • }
  • actions
  • {
  • Event Player.last_lash_trigger = False;
  • Event Player.voted_for_me = Count Of(Filtered Array(All Players(All Teams), Array Contains(Current Array Element.voted,
  • Event Player))) * 140;
  • Wait(0.250, Ignore Condition);
  • Chase Player Variable Over Time(Event Player, temp_score, Event Player.voted_for_me, 2, Destination and Duration);
  • Wait(1, Ignore Condition);
  • Event Player.score += Event Player.voted_for_me;
  • }
  • }
  • rule("Text wrapping")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is True For Any(Event Player.answer_array, String Length(Current Array Element) > 18) == True;
  • Count Of(Event Player.answer_array) >= 2;
  • Event Player.keyboard_allowed == False;
  • }
  • actions
  • {
  • For Player Variable(Event Player, step_1, 0, 2, 1);
  • If(String Length(Event Player.answer_array[Event Player.step_1]) > 18);
  • Event Player.char_array = Empty Array;
  • Event Player.wrap_index = 0;
  • For Player Variable(Event Player, step_2, 0, String Length(Event Player.answer_array[Event Player.step_1]), 1);
  • Event Player.char_array[Event Player.step_2] = String Slice(Event Player.answer_array[Event Player.step_1], Event Player.step_2,
  • 1);
  • End;
  • Event Player.step_2 = 15;
  • While(Event Player.wrap_index == 0 && Event Player.step_2 < 30);
  • If(Event Player.char_array[Event Player.step_2] == Custom String(" "));
  • Event Player.wrap_index = Event Player.step_2;
  • Event Player.answer_array[Event Player.step_1] = Custom String("{0}\r\n{1}", String Slice(
  • Event Player.answer_array[Event Player.step_1], 0, Event Player.wrap_index), String Slice(
  • Event Player.answer_array[Event Player.step_1], Event Player.wrap_index, 15));
  • End;
  • Event Player.step_2 += 1;
  • End;
  • End;
  • Wait(0.250, Ignore Condition);
  • End;
  • }
  • }
  • rule("Crosshair ----------------------------Crosshair by Zezombye---------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "hudSubtext(getAllPlayers(), \" \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", HudPosition.TOP, -999, Color.GREEN, HudReeval.VISIBILITY, SpecVisibility.NEVER)"
  • Create HUD Text(All Players(All Teams), Null, Custom String("
\n"), Null, Top, -998, Null, Color(Green), Null, Visible To,
  • Visible Never);
  • Create HUD Text(All Players(All Teams), Null, Custom String(" \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"), Null, Top, -997,
  • Null, Color(Green), Null, Visible To, Visible Never);
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("         ⊙                "), Top, -996, Null, Null, Color(
  • Green), Visible To, Visible Never);
  • }
  • }
  • rule("Initialize global variables ----------------------------Keyboard by CaptCaptain ---------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.keyboardPosition = Array(Vector(0.439, 0.396, 0.807), Vector(0.382, 0.396, 0.835), Vector(0.320, 0.396, 0.861), Vector(
  • 0.250, 0.396, 0.884), Vector(0.178, 0.399, 0.899), Vector(0.100, 0.398, 0.912), Vector(0.022, 0.397, 0.918), Vector(-0.056,
  • 0.395, 0.917), Vector(-0.135, 0.396, 0.908), Vector(-0.210, 0.392, 0.896), Vector(-0.282, 0.393, 0.875), Vector(-0.349, 0.389,
  • 0.852), Vector(-0.412, 0.391, 0.823), Vector(0.472, 0.290, 0.833), Vector(0.411, 0.294, 0.863), Vector(0.345, 0.289, 0.893),
  • Vector(0.272, 0.293, 0.916), Vector(0.191, 0.295, 0.936), Vector(0.108, 0.294, 0.950), Vector(0.023, 0.292, 0.956), Vector(
  • -0.061, 0.294, 0.954), Vector(-0.146, 0.294, 0.944), Vector(-0.227, 0.291, 0.929), Vector(-0.325, 0.295, 0.898), Vector(-0.390,
  • 0.296, 0.872), Vector(-0.468, 0.295, 0.833), Vector(0.478, 0.191, 0.858), Vector(0.410, 0.195, 0.891), Vector(0.338, 0.194,
  • 0.921), Vector(0.262, 0.195, 0.945), Vector(0.176, 0.193, 0.965), Vector(0.089, 0.195, 0.977), Vector(-0.004, 0.194, 0.981),
  • Vector(-0.089, 0.191, 0.978), Vector(-0.176, 0.196, 0.965), Vector(-0.286, 0.192, 0.939), Vector(-0.360, 0.192, 0.913), Vector(
  • -0.483, 0.190, 0.855), Vector(0.489, 0.084, 0.868), Vector(0.423, 0.083, 0.903), Vector(0.348, 0.084, 0.934), Vector(0.271,
  • 0.085, 0.959), Vector(0.185, 0.085, 0.979), Vector(0.094, 0.086, 0.992), Vector(0.001, 0.085, 0.996), Vector(-0.085, 0.060,
  • 0.995), Vector(-0.178, 0.061, 0.982), Vector(-0.292, 0.086, 0.953), Vector(0.270, -0.020, 0.963), Vector(0.209, -0.017, 0.978),
  • Vector(0.120, -0.016, 0.993), Vector(0.052, -0.018, 0.998));
  • Global.keyboardKeys = Array(Custom String("1234567890-=←qwertyuiop[]!asdfghjkl;'┘zxcvbnm,.? "));
  • }
  • }
  • rule("Initialize player variables")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.keyboardPosition = Empty Array;
  • Event Player.keyboardEnabled = False;
  • Event Player.keyboardInput = Custom String("");
  • Event Player.keyboardKey = Custom String("");
  • Event Player.keyboardEntities = Empty Array;
  • }
  • }
  • rule("Subroutine createKeyboard")
  • {
  • event
  • {
  • Subroutine;
  • createKeyboard;
  • }
  • actions
  • {
  • "Align keybaord positions to the front of the player"
  • Event Player.keyboardPosition = Mapped Array(Global.keyboardPosition, First Of(World Vector Of(Current Array Element, Event Player,
  • Rotation)));
  • "Create keyboard input"
  • Create In-World Text(All Players(All Teams), Event Player.keyboardInput, Evaluate Once(World Vector Of(Local Vector Of(
  • Eye Position(Event Player), Event Player, Rotation And Translation) + Vector(0, 0.450, 1), Event Player,
  • Rotation And Translation)), 30, Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(Event Player, Event Player.keyboardInput, Evaluate Once(World Vector Of(Local Vector Of(Eye Position(
  • Event Player), Event Player, Rotation And Translation) + Vector(0, 0.450, 1), Event Player, Rotation And Translation)), 30,
  • Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
  • Modify Player Variable(Event Player, keyboardEntities, Append To Array, Last Text ID);
  • "Create keyboard layout"
  • Create In-World Text(All Players(All Teams), Custom String(
  • "1234567890-=←\nQWERTYUIOP[ ]!\n ASDFGHJKL;' ┘\n ZXCVBNM,.?  \n   [__]"), Evaluate Once(World Vector Of(Local Vector Of(
  • Eye Position(Event Player), Event Player, Rotation And Translation) + Vector(0, 0, 1), Event Player,
  • Rotation And Translation)), 30, Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(Event Player, Custom String("1234567890-=←\nQWERTYUIOP[ ]!\n ASDFGHJKL;' ┘\n ZXCVBNM,.?  \n   [__]"),
  • Evaluate Once(World Vector Of(Local Vector Of(Eye Position(Event Player), Event Player, Rotation And Translation) + Vector(0,
  • 0, 1), Event Player, Rotation And Translation)), 30, Do Not Clip, Visible To Position and String, Color(White),
  • Default Visibility);
  • Modify Player Variable(Event Player, keyboardEntities, Append To Array, Last Text ID);
  • }
  • }
  • rule("Subroutine destroyKeyboard")
  • {
  • event
  • {
  • Subroutine;
  • destroyKeyboard;
  • }
  • actions
  • {
  • "Destroy every in world text"
  • For Player Variable(Event Player, keyboardIndex, 0, Count Of(Event Player.keyboardEntities), 1);
  • Destroy In-World Text(Event Player.keyboardEntities[Event Player.keyboardIndex]);
  • End;
  • Event Player.keyboardPosition = Empty Array;
  • Event Player.keyboardInput = Custom String("");
  • Event Player.keyboardEntities = Empty Array;
  • }
  • }
  • rule("Hud")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • "Instruction hud"
  • Create HUD Text(Filtered Array(Event Player, Event Player.keyboard_allowed), Custom String("Press {0} to toggle keyboard",
  • Input Binding String(Button(Interact))), Custom String("Keyboard by CaptCaptain"), Custom String("B04BK"), Right, 0, Color(
  • Turquoise), Color(Turquoise), Color(Turquoise), Visible To Sort Order and String, Default Visibility);
  • }
  • }
  • rule("Toggle Keyboard")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.keyboard_allowed == True;
  • }
  • actions
  • {
  • "Toggle variable"
  • Event Player.keyboardEnabled = !Event Player.keyboardEnabled;
  • "Run behavior"
  • If(True);
  • Skip(Array(2, 0)[1 + Index Of Array Value(Array(True), Event Player.keyboardEnabled)]);
  • Call Subroutine(createKeyboard);
  • Else;
  • Call Subroutine(destroyKeyboard);
  • Else;
  • End;
  • }
  • }
  • rule("Detect Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Event Player.keyboard_allowed == True;
  • }
  • actions
  • {
  • "Check if the player is aiming toward a key"
  • If(Is True For Any(Event Player.keyboardPosition, Distance Between(Eye Position(Event Player) + Facing Direction Of(Event Player),
  • Eye Position(Event Player) + Current Array Element) <= 0.050));
  • "Get the key the player is aiming at"
  • Event Player.keyboardKey = String Slice(Global.keyboardKeys, Index Of Array Value(Event Player.keyboardPosition, Filtered Array(
  • Event Player.keyboardPosition, Distance Between(Eye Position(Event Player) + Facing Direction Of(Event Player), Eye Position(
  • Event Player) + Current Array Element) <= 0.050)), 1);
  • If(True);
  • Skip(Array(12, 0, 10)[1 + Index Of Array Value(Array(Custom String("┘"), Custom String("←")), Event Player.keyboardKey)]);
  • Skip(Array(16, 0, 14)[1 + Index Of Array Value(Array(Custom String("┘"), Custom String("←")), Event Player.keyboardKey)]);
  • Event Player.answer_array[Event Player.prompt_index] = Event Player.keyboardInput;
  • Wait(0.250, Ignore Condition);
  • If(Event Player.keyboardInput == Custom String(""));
  • Small Message(Event Player, Custom String("Oops! You left your answer blank!"));
  • Abort;
  • End;
  • Event Player.prompt_index += 1;
  • If(Event Player.prompt_index > 1 || (Event Player.prompt_index > 0 && Global.LOOP_STAGE == 5));
  • Event Player.keyboardEnabled = False;
  • Event Player.keyboard_allowed = False;
  • Call Subroutine(destroyKeyboard);
  • End;
  • Event Player.keyboardInput = Custom String("");
  • Else;
  • Event Player.keyboardInput = String Slice(Event Player.keyboardInput, 0, String Length(Event Player.keyboardInput) - 1);
  • Else;
  • Event Player.keyboardInput = Custom String("{0}{1}", Event Player.keyboardInput, Event Player.keyboardKey);
  • Else;
  • End;
  • Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
  • }
  • }
  • rule("Force destroy keyboard")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.keyboard_allowed == False;
  • }
  • actions
  • {
  • Event Player.keyboardEnabled = False;
  • Call Subroutine(destroyKeyboard);
  • }
  • }
  • rule("Create Dummbot if player leaves")
  • {
  • event
  • {
  • Player Left Match;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • }
  • actions
  • {
  • Create Dummy Bot(Random Value In Array(Allowed Heroes(Host Player)), All Teams, Slot Of(Event Player), Vector(0, 0, 0), Vector(0,
  • 0, 0));
  • }
  • }
Join the Workshop.codes Discord