27 skills found
rprokap / Pset 9CREDITS SEQUENCE NEWSPAPER HEADLINE MONTAGE: HEADLINES flash before us, displaying their accompanying photographs. "UBERMAN - METRO CITY'S HERO AFTER DEFEATING MASTER MIND! PHOTO: A chiseled, statuesque man wearing the COOLEST SUPER HERO SUIT IMAGINABLE, COMPLETE WITH FLOWING CAPE, shines a confident smile at the lens. This is UBERMAN, champion of METRO CITY. "UBERMAN DEFEATS MASTER MIND'S GIANT ROBOT!" PHOTO: Wide-shot of Uberman in mid-flight lifting the GIANT ROBOT in the sky above the city buildings. "MASTER MIND ALL WET AFTER UBERMAN FOILS AQUARIUM HEIST!" PHOTO: Uberman stands knee-deep in water. He has his enemy by the collar. The villain blocks his face from the shot with a METALLIC GAUNTLET. The images start to flash by even quicker, each showing the MYSTERIOUS VILLAIN in various stages of humiliation. In each photograph he successfully blocks his face with his armored glove. We ZOOM IN to the last headline. "MASTER MIND BEHIND BARS ONCE AGAIN - THANKS TO UBERMAN!" PHOTO: Uberman stands in a gallant pose with his fists on his hips, obviously trying to accentuate the "U" insignia on his chest. END OF CREDITS SEQUENCE EXT. BUILDING - DAY We DISSOLVE from the photograph to Uberman standing in the exact same position. WE PULL BACK showing him atop a BUILDING overlooking the city below. A perfect view for our guardian hero. He watches the thriving metropolis, bristling with life as people happily go about their day. Yet, we can't help but detect a hint of sadness in Uberman's expression. 2. UBERMAN You look so peaceful from up here. His serenity is suddenly interrupted by a loud BEEPING SOUND coming from his wrist. He looks down at a BRACELET (a manly one) on his right arm. It's a silver band with a FLASHING red letter "U". UBERMAN (CONT'D) Looks like Roxanne's in trouble again. Uberman leaps off the building and into the air. His cape gracefully flows in the breeze behind him as he shoots off into the distance like a speeding bullet. EXT. OBSERVATORY HIDEOUT - ESTABLISHING SHOT Grime and moss decorate the outside of this long abandoned building overlooking the COAST. Once a place of knowledge and wonder - now home to a great evil. INT. OBSERVATORY HIDEOUT - DAY The inside is in complete contrast to the exterior. The huge hall with a GIANT TELESCOPE teems with advanced ELECTRONIC EQUIPMENT. Computers, monitors and machines which do not have an obvious function FLASH and HUM. A STEEL DOOR slides open, revealing the subject of our story MASTER MIND - a villainous sight to behold. His FACE IS INEXPLICABLY LIGHT BLUE, topped by an OVERSIZED, MUSHROOM- SHAPED HEAD with a CIRCULAR PATCH OF WHITE HAIR ON TOP. He's dressed in the kind of costume only a super villain could pull off: a PURPLE JUMPSUIT AND BLACK BOOT ENSEMBLE WITH A GIANT GREEN "M" ON THE CHEST. His right hand, hanging at his side, is a METAL GAUNTLET WITH THREE SHORT SPIKES PROTRUDING BETWEEN HIS KNUCKLES. Master Mind begins to survey the room with his TWO PERMANENTLY ARCHED EYEBROWS. A man dressed as ALBERT EINSTEIN is busy ranting to two other men. One, a hulking brute, is dressed as LEONARDO DA VINCI. The other, a small intellectual-type carrying a clip-board, is dressed as the philosopher PLATO. EINSTEIN I hate the outfits. I mean, I get it: we're all supposed to be "masterminds" - very clever. (MORE) 3. EINSTEIN(cont'd) I just feel stupid. I mean, what the hell did Einstein really do anyway? PLATO Theory of relativity. Einstein starts feverishly scratching his side. EINSTEIN Well, you'd think he'd invent a wool sweater that didn't itch so much. Da Vinci and Plato's eyes suddenly grow with concern as they see Master Mind walk up behind Einstein. Einstein notices his colleague's staring over his right shoulder and turns around. He turns around and Master Mind SEIZES HIM BY HIS THROAT with his metal gauntlet. MASTER MIND The real Einstein once said, "God does not play dice with the world." He was right, because the world is MY dice. Is that understood? DA VINCI & PLATO Sir! Yes, sir! EINSTEIN (gasping for air) Yes, sir. Master Mind undoes his grip on Einstein's throat. MASTER MIND Alright, then - clean slate. Do we have the girl? DA VINCI Yes, sir. She fell into our trap just like you knew she would. MASTER MIND Reporters are a curious lot, and easily manipulated. He quickly checks his physique in a GIANT MIRROR, adjusts his posture and sucks in his gut. 4. MASTER MIND Alright, let's not keep the lady waiting. MOMENTS LATER Da Vinci escorts a BLINDFOLDED and bound woman, ROXANNE RITCHI, to the back of the room where Plato and Einstein are standing guard over a large BLACK SWIVEL-CHAIR facing away from us. She pulls free of Da Vinci's grasp and waits for him to undo the blindfold. Her face uncovered, we finally see Roxanne's striking features - all of which seem overshadowed by piercing eyes that seem more put off by the situation than afraid of it. MASTER MIND (O.S.) Miss Ritchi, we meet again. The chair turns menacingly slow, finally revealing Master Mind. ROXANNE You didn't need to turn around like that. I can recognize the stench of failure. Master Mind unleashes a wicked laugh. MASTER MIND I trust you gentlemen know the very sassy Roxanne Ritchi, highly regarded investigative journalist who some say has a more than friendly relationship with our super powered foe Uberman. And Miss Ritchi, I trust you've already met my new crew: The Mad Geniuses! Roxanne gives Einstein a once over. ROXANNE Looks like a real group of winners. At the risk of sounding cliche', you'll never get away with this. MASTER MIND In a way, I already have. Roxanne unleashes an exhausted SIGH. 5. ROXANNE We go through this every time. You kidnap me to get to Uberman, he immediately finds your hideout, escapes whatever lame trap you've come up with, and takes you and your cronies to jail. I propose we just save everybody some heartache this time by YOU letting me go, and ME forgetting this whole thing ever happened? MASTER MIND What about my revenge? ROXANNE We can say it was wasting everyone's time. MASTER MIND You have a wicked tongue. I hope you rid yourself of that when you're my queen. Roxanne unleashes a snort-filled laugh. ROXANNE I'm sorry. What makes you think I would want to be your queen? MASTER MIND Power corrupts absolutely, Miss Ritchi. And when I have ultimate power over this city, I have absolutely every intention of corrupting you with it. PLATO Sir! Master Mind turns to Plato who's now standing at a computer terminal. MASTER MIND (annoyed) What is it!? EXT. OBSERVATORY HIDEOUT - DAY Uberman flies toward the Observatory like a rocket. 6. INT. OBSERVATORY HIDEOUT - DAY Uberman crashes through the wall to the room we were just in. He looks around, but there's suddenly NOT A SOUL IN SIGHT. CUT TO: EXT. MASTER MIND'S HYDROFOIL - DAY The boat is shooting through the ocean, away from the observatory. INT. HYDROFOIL CONTROL ROOM - DAY Machines, cables and terminals criss-cross the craft's main bridge. Through the enormous surrounding windows we can see the observatory shrinking in the distance. Master Mind watches Uberman on a small TV monitor as the hero intently searches his hideout. UBERMAN (on monitor) Master Mind! INT. OBSERVATORY HIDEOUT - DAY Uberman throws up his arms in frustration when suddenly - MASTER MIND (O.S.) Over here, old friend. He turns to see a FAMILIAR BLUE FACE OF EVIL ON A GIANT SCREEN. UBERMAN What's the matter, miss your old jail cell? Uberman starts walking toward the monitor. MASTER MIND (ON MONITOR) Actually, I wanted to share the experience with my oldest friend. A MECHANIZED CAGE shoots out of the floor, suddenly trapping Metro City's protector. Totally unfazed, our hero stares on. 7. UBERMAN You can't possibly believe this will work. Master Mind pulls out a SMALL BLACK BOX with a SINGLE RED BUTTON on it. MASTER MIND (ON MONITOR) Oh, can't I? I have attained control of the Earth's most abundant energy source. I doubt even you are strong enough to withstand the FULL CONCENTRATED POWER OF THE SUN!!! He presses the button. EXT. OUTER SPACE A sinister-looking SATELLITE orbits Earth's atmosphere. Its bay doors suddenly open, deploying two huge SOLAR PANELS. The panels shift, angling themselves in the direction of the sun. They immediately start GLOWING as they absorb the burning star's power. The front of the satellite begins to make a loud HUMMING SOUND as it prepares to unleash its unholy power. INT. HYDROFOIL CONTROL ROOM - DAY From the giant window we can see the boat is a good mile from the observatory. PLATO We're now at minimum safe distance, master. Master Mind turns from the CAMERA he was broadcasting on and puts down the control box. MASTER MIND Excellent. Stop here, I like this view. PLATO Twenty seconds until impact. Master Mind turns to Roxanne who is being held by Da Vinci and Einstein. She almost appears a little bored. Disappointed by her lack of horror, he walks over to the monitor now showing Uberman trapped in the cage. 8. MASTER MIND Any last words? Uberman looks up at the screen with a cocky smile. UBERMAN (ON MONITOR) Yes: there's no caging the power of justice. PLATO Ten seconds to impact. On the screen we see Uberman take two of the cage's bars in his hands. He yanks...NOTHING. PLATO (CONT'D) Nine... Master Mind stares at the monitor, slightly confused. PLATO (CONT'D) Eight... Uberman yanks on the bars again, this time using his foot as leverage. MASTER MIND (genuinely concerned) What's going on? UBERMAN (straining) Hold...on...a second. Master Mind looks back at Plato and Einstein. They're equally befuddled at the hero's sudden weakness. PLATO Seven... Uberman loses his grip and FALLS BACKWARD ON HIS ASS. UBERMAN SON OF A BITCH!! Master Mind and the minions all cringe in unison. Da Vinci turns to Roxanne not believing his ears. DA VINCI What did he just say? 9. PLATO Six......Five... Master Mind begins to laugh. MASTER MIND What kind of trick is this? Uberman looks up at the camera with a very grave expression. UBERMAN Like you don't know. These bars are made of copper, aren't they? PLATO Four... MASTER MIND Yeah, so? Uberman tries to shield his grief with his hand. UBERMAN You figured out my weakness, damn you. I CAN'T BEND COPPER! PLATO Three... MASTER MIND Your weakness is copper? PLATO Two...one. Everyone turns to the window. EXT. OUTER SPACE The satellite fires a giant BEAM OF LIGHT toward the earth. EXT. OBSERVATORY HIDEOUT - DAY The beam hits the observatory. The building instantly EXPLODES in a white nova blast of fire. INT. HYDROFOIL CONTROL ROOM - DAY The blast is so bright everyone turns away from the window. Then, as suddenly as it began, the awesome light dies out. One by one, the passengers unshield their eyes and look out toward the observatory. 10. All we can see through the haze of destruction is fire and smoke. PLATO I don't think even he could have survived that. Einstein suddenly turns giddy with excitement. EINSTEIN Whoa! Is it me or did you just finally destroy Uberman? MASTER MIND (carefully skeptical) Well...let's not get ahead of ourselves. Da Vinci suddenly sees something outside. DA VINCI Look, there's something in the sky, coming this way. ROXANNE Uberman! Master Mind turns toward the window. An object is in the air, flying directly toward them. As it closes in we can just make out the FAMILIAR OUTLINE OF A CAPPED FIGURE. MASTER MIND I KNEW IT! PREPARE YOURSELVES! HE'S GONNA RAM US!!! Everyone scatters and braces themselves for the impact. Master Mind, seeing all the good places taken, doesn't know what to do with himself. He just covers his giant head with his hands. The figure CRASHES THROUGH THE WINDOW and lands at his feet. He looks down to see a CHARRED BLACK HUMAN SKELETON. Around its neck is the unmistakable black cape of Uberman. MASTER MIND (CONT'D) (horrified) HOLY SHIT! 11. Roxanne breaks out of Da Vinci's hold and runs over to the body. ROXANNE Uberman? She stares down at the still smoking corpse, the tattered black cape with the yellow "U" on it. Roxanne turns to Master Mind, who's still visibly dumbfounded at the grotesque sight before him. ROXANNE (CONT'D) You killed him! Roxanne's eyes roll back. Da Vinci catches her from behind as she FAINTS. Einstein turns to Master Mind, looking at him as if he's just walked on water. EINSTEIN You did it! Now that he's committed the impossible - our villain is at a complete loss. MASTER MIND ...so I did. EINSTEIN I mean, I know you always wanted to. I mean, all the schemes all the plots - I never thought you'd actually be capable of it. Giddy as a school girl, Einstein turns to his fellow henchmen. EINSTEIN This is history. Every villain and lackey in the history of villains and lackeys dream of this moment, but when does it actually EVER happen? A sudden realization comes over his face. EINSTEIN Good lord...You do all realize what we get to do now, don't you? 12. His question is met with acquisitive looks from Master Mind and the others. EINSTEIN We get to go on a crime wave. CRIME WAVE MONTAGE - SET TO "Fun Fun Fun" by The Beach Boys. SPINNING HEADLINE: "UBERMAN'S DEATH IGNITES CITY WIDE CRIME WAVE!" ARMORED TRUCK It's driving along when the men inside suddenly notice something - THEY'RE FLYING HIGH ABOVE THE CITY STREETS. We PULL BACK to see the truck being carried by a giant claw at the bottom of a BRAIN COPTER. Inside the cockpit Master Mind and his henchmen laugh maniacally. SPINNING HEADLINE: "CHAMPION-LESS CITY AT THE MERCY OF HOOLIGANS." METRO CITY BANK Da Vinci and Einstein run out the front of the bank holding BAGS OF MONEY. Two beat officers see them and take chase after them around the corner and into an alley. After a moment the police reemerge from the alley screaming and running for their lives as a GIANT ROBOT CHASES after them. The robot stops, then suddenly it's head opens up like convertible car top with Master Mind and Plato at the driver's wheel. They smile and shake hands at a bad deed well done. SPINNING HEADLINE: "MASTER MIND BLACKMAILS METRO!!!" A VICIOUS TORNADO It's heading for downtown Metro as Master Mind and the lackeys coolly look on. Three large DUMP TRUCKS pull up, filled to the brim with bricks of CASH. 13. The DRIVERS jump out as the lackeys take the driver seats in the three trucks. Master Mind is about to climb into the passenger seat of one when a drivers taps him on the shoulder and motions toward the tornado. MASTER MIND (absentmindedly) Oh, right. Master Mind pulls a television REMOTE from his pocket and aims it at approaching windstorm of death. He presses the button marked "Tornado Off." The tornado shrinks and disappears just before it hits the city. As they drive through the city streets, Master stares out the window with a hint of something in his eyes. Is it melancholy? END OF MONTAGE EXT. KINGPIN BOWLING - DAY It's Metro City's premier bowling alley. On top of the neon lit building is a GIANT 30 FOOT TALL CEMENT BOWLING BALL. INT. KINGPIN BOWLING - DAY HAL STEWART (early 30's) takes careful aim with his BOWLING BALL. HAL It's a sport of honor, focus and grace. Honor the ball, focus on the pins, release the ball not hard and fast, but as if you were releasing a baby dove. He takes a step, pulls back his arm, and releases the ball, following it with his eyes. It's a horrible shot - INSTANT GUTTER BALL. An aged barmaid type with a cigarette hanging from her mouth looks over at him. HAL Okay, do something like that - but center it more. 14. She picks up her custom made FOGHAT BALL and takes aim. ATTRACTIVE BLOND Tell me how my form looks, honey. Hal focuses on the misshapen bumps of her enormous Johnson administration era derriere. HAL Oh, it's lookin' good. It's lookin' REAL good. It doesn't get anymore clear. This man is a pig. VINNIE (O.S.) Hal, I want to see you in my office! Hal turns to see VINNIE, owner of the bowling alley, calling him. VINNIE Now! INT. KINGPIN BOWLING - VINNIE'S OFFICE - MOMENTS LATER Hal sits down, facing Vinnie who's sitting at his desk. VINNIE You're fired. Leave your shirt and locker key. This bit of news hits Hal like a freight train. HAL Fired? Are you going to tell me why? VINNIE Showing up to work late. Showing up to work late drunk. Sexually harassing customers. Stealing from the register. HAL Vinnie, I don't know where you're getting these accusations - Vinnie takes out a video tape from his desk drawer and puts in a VCR. 15. HAL Oh, which one do you supposedly have here? VINNIE This is all of them at once. TELEVISION A WOMAN walks up to a BOWLING EMPLOYEE and hands him a pair of shoes. As the employee turns to the wall of shoes, a very drunk and disheveled Hal comes running in and pushes him aside. HAL I've got this one, Benny. So, Cinderella. Can I help you find your glass slipper? WOMAN Yeah, I'm looking for a seven. He folds his arms on the counter and leans into her with a cat-like grin on his face. HAL (with a leer) Seven - Well, maybe I could interest you in something in an EIGHT. Namely, me. Disgusted, she walks off screen. HAL Lesbo. Suddenly realizing the register's open, he quickly grabs a stack of cash and shoves it in his pocket. BACK TO OFFICE Vinnie turns off the television and waits for Hal to respond. HAL From the angle of the camera, I can see where you might have gotten the wrong idea. Listen, Vinnie, I don't think you've thought this through. If you fire me, who's gonna be captain of the alley's bowling team? 16. VINNIE Um, I don't know. Maybe somebody who can actually bowl. You guys have never won a game. I hired you because you said you were on the pro circuit. HAL No, I said I WILL BE on the pro circuit. VINNIE Please, a loser like you will never amount to anything. This harsh remark seems to leave Hal genuinely stunned. HAL Wow...If that's how you feel...I guess we should then talk about what kind of severance I'm gonna get. EXT. KINGPIN BOWLING - DAY TWO BRUISERS open the door and throw Hal out onto the street. He quickly picks himself up and turns back toward the building. HAL Hey...what about my ball? A bowling ball sails past him, just missing his head. HAL Thank-you! EXT. CHANNEL 7 NEWS BUILDING - DAY The massive building with a giant 7 on the roof stands in the heart of Metro City. INT. CHANNEL 7 NEWS BUILDING - OFFICE - DAY The cubicles and offices are alive with the hustle and bustle of a busy news day. Phones are RINGING, REPORTERS are TALKING, and Editors are SHOUTING. The elevator doors open and out steps Roxanne Ritchi. 17. Everything stops as the entire office suddenly falls SILENT. Somewhat taken aback by the reaction, Roxanne scans the room to see every eye on her. ROXANNE It's...um...It's good to be back. Thanks for everyone's cards and concerns. I really appreciated it - now I'm ready to climb back on the horse. No one is budging - their looks of pity are really starting to make her uncomfortable. The back office door suddenly opens and out comes FRANK BONIN, the gruff, middle-aged Producer of Channel 7 News. Noticing the silence, he looks up and sees the sad expressions on everybody's face. FRANK Someone die or something? He suddenly notices Roxanne - both feet are placed firmly in his mouth. FRANK (cursing himself) Oh, Jesus. ROXANNE It's okay. Frank quickly walks up to Roxanne and takes her gently by the arm. FRANK Come on into my office, sweetie. INT. CHANNEL 7 NEWS BUILDING - FRANK'S OFFICE - CONTINUOUS He sits her down on his leather couch, then quickly turns toward his door. FRANK Can we get this woman some water for God's sake? (to Rebecca) I gave you two months off. What're you doing back? People are gonna think I'm a slave driver. 18. ROXANNE Aren't you? FRANK Yeah, but I don't want people to think it. ROXANNE Frank, listen. I want to go back to work. I NEED to go back to work. FRANK ...You're hysterical, aren't you? Frank sits down on the couch and blankets Roxanne with A WARM EMBRACE. ROXANNE What're you doing? FRANK Keeping you warm before you go into shock. (toward the open door) DO I HAVE SLICE OPEN A CAMEL HUMP TO GET A GLASS OF WATER AROUND HERE? A SECRETARY quickly enters with a bottled water. She sets it on the table in front of them and leaves. Roxanne pulls herself out of Frank's grasp and stands up to face him. ROXANNE It was a traumatic experience. Yes, everyone knows Uberman and me were...close. But what I really need - what would really make me better is getting back to work. There's a sudden awkward silence from Frank. FRANK Well, that's going to be... ROXANNE I thought you'd be happy to have me back. 19. FRANK Oh, we are. Honey, nothing makes us happier than to have our girl back, but... ROXANNE Yes? FRANK Things have sorta...changed. ROXANNE In three weeks? FRANK Listen, I'm not one who likes to open up wounds - especially ones that are just starting to scab, but you were sorta our go to girl for the exclusive on Uberman. And now that he's gone...I moved Brad into your anchor spot. ROXANNE (disgusted) Brad? Brad Helms? The man is an idiot. FRANK It's the suits. They think it's time to switch things up. ROXANNE Oh, because they can't use me to get the big story. FRANK C'mon, Roxie. Using is in the nature of what we do. They used you, you used Uberman. Everybody's happy. ROXANNE (defensive) I didn't use him. FRANK Oh, I didn't mean that. I know you two were in love or something. My bad. ROXANNE We were. 20. FRANK And that's great. ROXANNE Very in love. There's a hind of self-doubt in Roxanne's expression, as if she's failed to convince even herself of this. ROXANNE Okay. So, where are they going to move me if Brad has my spot? FRANK ...Human interest. ROXANNE Bake sales and pet stories. FRANK I told them I wouldn't be surprised if you just upped and quit. You busted your ass for that desk. Roxanne can hardly get it out - she's busy swallowing her pride ROXANNE I'll take it. Frank looks up at her, not believing what he's hearing. FRANK What? EXT. ABANDONED METRO CITY LIBRARY - NIGHT Amongst the jungle of high rises, one small building stands out from the rest - A tiny, forgotten piece of 19th century Gothic architecture. LIGHTENING FLASHES, revealing TWO CONCRETE GARGOYLES holding a cracked plaque, reading: METRO CITY LIBRARY. INT. ABANDONED METRO CITY LIBRARY - NIGHT A mixture of old and new. Dusty Victorian furniture and dilapidated bookshelves sit side by side with pristinely futuristic machinery. The building has been converted into Master Mind's new SECRET LAIR. 21. In the center of the main room is a three storey tall GLOWING BLUE ORB. At the base of it is a sign that reads "Reactor - Don't Touch." We PAN OVER to the READING ROOM where Master Mind is sitting on a couch watching TELEVISION. REPORTER ON TELEVISION (O.S.) It's been nearly six weeks, and still no word on the whereabouts of billionaire playboy, and philanthropist, Wayne Scott. Tune in at 11:00 as we look into what has become Metro City's biggest mystery. TELEVISION NARRATOR (O.S.) We now return to "The Hero of our Hearts: The Uberman story." Einstein and Plato come into the room holding a BAG OF LOOT. EINSTEIN Just robbed the diamond exchange. MASTER MIND (feigning pleasure) Great, great. Put it on the pile. Einstein tosses it on a LARGE PILE of purloined valuables in the corner of the room. EINSTEIN Anything else today? MASTER MIND No. Master Mind turns his attention back to the screen. Plato sees that Master Mind is in a funk and tries to snap him out of it. PLATO (cheerfully) Sir, the new reactor is installed. Plato nods to the giant orb. PLATO Do you want to throw the switch? I know how you love to start reactors. 22. MASTER MIND Maybe later. Einstein gives Master Mind a funny look then exchanges glances with Plato before leaving the two of them alone. Without turning away from the TV, Master Mind addresses Plato. MASTER MIND (CONT'D) What is it, Plato? PLATO (nervously) Sir, I can't help but notice that you've been...a little down lately. MASTER MIND When I want your opinion I'll beat it out of you. PLATO Yes, sir, I know, but please forgive my impertinence. It's just that you seem to have lost your lust for our profession. You've stopped going on jobs and spend most of your time watching Uberman specials. Master Mind relaxes slightly and turns to face the window in a classically contemplative pose. After an overdramatic beat... MASTER MIND I have defeated my greatest enemy. I have free reign over Metro City. I have more wealth than a thousand Sultans. I've achieved all I have worked for...so why am I so unhappy? He walks over to a PAINTED PORTRAIT that looks almost exactly like him, except slightly older, maybe meaner - MASTER MIND'S FATHER. MASTER MIND I mean, my father, god rest his evil and tormented soul, raised me straight from the test tube to be a symbol of evil. (MORE) 23. MASTER MIND(cont'd) And, I have accomplished something he had only dreamed about - the destruction of Metro City's champion. I tell you, I've always lived with this unquenchable thirst. I thought it was to make him proud or to get absolute power. But now that I've pretty much accomplished both, I am at a loss. PLATO ...I sort of have a theory about all that. MASTER MIND (snippy) Oh, really? PLATO Well, for one thing, maybe Uberman was more important to you than you thought. MASTER MIND He was a worthy rival. Sometimes I wonder, did he consider me his evil equal or was I just an annoying, little gnat to him? ...What's the second part? PLATO I think you sort of have a thing for Roxanne Ritchi. Master Mind quickly takes his lackey by the throat. MASTER MIND YOU WORM! HOW DARE YOU! WHERE WOULD YOU GET SUCH A NOTION? PLATO Sir, your plans always involve Ms. Ritchi either being kidnapped or placed in danger. If that's not love, I don't know what is. It's the grown up equivalent of dipping her pigtails in the ink well. Don't you see? She's the one treasure that's always escaped you. From Master Mind's expression, we see Plato's words beginning to ring true. 24. INT. RESTURAUNT - DAY Roxanne is having lunch with several girlfriends sitting around her, gabbing. FRIEND #1 I can't believe you came back so soon. FRIEND #2 Are you sure it's not TOO SOON, honey? ROXANNE I just wanted to get back to work. FRIEND #3 What we need to do is get you back on the saddle...the love saddle. Friend 1 and 2 give 3 disapproving looks. FRIEND #3 It's been three weeks. FRIEND #2 She just lost the love of her life, Grace. A WAITER comes by with a tray of CAESAR SALADS and begins setting them out for the ladies. ROXANNE I keep trying to tell people it wasn't really like that. Uberman and I - We were kinda having problems. We broke up. The waiter ALMOST DROPS HIS TRAY AT THIS. The women are too shocked by Roxanne's revelation to notice. FRIEND #1 You broke up with Uberman! FRIEND #3 You must have REALLY, REALLY high standards. I mean, you were dating a god. I mean, what's it take? ROXANNE Maybe someone who's a little more aware of his faults. Someone a little more sensitive. 25. FRIEND #3 Right. Someone who listens, sexy but attainable with cute little cheeks like a hamster and heartbreak in his eyes. She turns to Friend one and two to explain. FRIEND #3 She wants John Cusack. FRIEND #2 The actor? FRIEND #3 No, the famous pediatrist - Yes, the actor. Ever since we were teenagers, Roxanne's totally had the hots for him. ROXANNE Well, until he miraculously comes walking into my life, I'm just going to take a little reflection time for myself. The waiter gets a confused look on his face then slips away as Roxanne and her friends continue to chat away. EXT. RESTURAUNT - DAY The waiter tosses his apron in a trash can, then rolls up his sleeve and presses A STRANGE LOOKING DEVICE STRAPPED TO HIS WRIST. His image gets staticy, like a TV station going out, then disappears - revealing the man's true form underneath: MASTER MIND! MASTER MIND Who the hell is John Cusack? EXT. CITY STREET - DAY A YOUNG MOTHER pushes her baby stroller past a building construction site. ACROSS THE STREET A local POLITICIAN addresses a group of REPORTERS on the sidewalk, including Roxanne. 26. POLITICIAN The Fifth Avenue Renovation Project, which I championed, will breath new life into the downtown area. New life means new jobs and new revenue. ROXANNE Councilman, is it true that your brother-in-law's construction company won the contract for this project? POLITICIAN Well...er...yes, but...look I'm not here to answer a lot of crazy questions... YOUNG MOTHER The young mother stops halfway down the block, reaches into the stroller and tries to comfort her now crying baby. Above her, a CRANE is maneuvering a pile of STEEL GIRDERS to an upper floor. Hal comes around the corner and heads in her direction. CRANE The crane GRINDS TO A HALT. The OPERATOR has a confused look on his face as he moves levers back and forth in an effort to fix the problem. Hal stops a few feet from the woman and stoops down to tie his shoe. CRANE The operator's hand slips off the lever, hitting a RED BUTTON. To his horror the crane DROPS ITS LOAD OF STEEL. HAL AND THE WOMAN The woman looks up to see the girders seconds from crushing her and her baby. She screams. Hal looks up and sees it as well. He starts to run out of the way and crashes into the woman and stroller. ACROSS THE STREET 27. The reporters turns their cameras just in time to catch on film what appears to be Hal pushing the woman to safety just as the GIRDERS CRASH TO THE GROUND. HAL AND MOTHER Tears of joy in her eyes, the woman picks up her baby and kisses it. Hal struggles to catch his breath as the mother turns to him. YOUNG MOTHER Thank you! Thank you for saving me and my baby! She hugs him with her free arm, weeping with joy. HAL (not knowing what she's talking about) Huh? He's a little uncomfortable with the woman's public display of affection and the small child in-between their embrace. HAL (CONT'D) There, there. Hal slowly eases out of the woman's grip. HAL (CONT'D) Okay, we better...well, I hear these little guys smother easy. The reporters rush over and surround Hal and the mother. ROXANNE What's it feel like to be a hero? Hal looks up at Roxanne. Instantly, he's captivated by her beauty. HAL Well...I'm just a man doing what men do. You're Roxanne Ritchi, aren't you? They're suddenly interrupted when another reporter pushes his way in between them. REPORTER Were you scared? 28. HAL Scared? Who had time? The reporters eat this up. INT. ABANDONED METRO CITY LIBRARY - NIGHT TELEVISION John Cusack stands in the rain looking up at a window of a two story house. He holds up a BOOMBOX and "In Your Eyes" by Peter Gabriel begins to play. From the couch, Master Mind and his minions watch. MASTER MIND John Cusack, huh? So all I have to do is have a cute puppy dog stare, be willing to make a fool of myself and - Oh, REMOVE BOTH MY BALLS. He turns to see Da Vinci watching the movie and wiping a tear from his cheek. MASTER MIND Please, get a hold of yourself. INT. BOOKSTORE - NIGHT Roxanne is carrying a large paper coffee cup in her hands as she peruses the isles. She sets it down on a shelf to pull a book out and ends up KNOCKING THE DRINK OVER. ROXANNE Shit. She goes to pick it up when someone bends down and picks it up for her. Looking up to thank him, Roxanne is suddenly stunned speechless - It's popular and critically acclaimed actor JOHN CUSACK, or rather Master Mind disguised as him. "JOHN CUSACK" Oh the humanity - it was a Venti. ROXANNE (stunned) You're...you're. "JOHN CUSACK" Yes, it's me. John Cusack...the actor. 29. He notices the book she's reading. "JOHN CUSACK" Hey, is that Shelly? Wait, I think remember something from that one - Let's see: "My head is screaming `I want you and need you' - my heart it keeps reaching to see you and feel you - yet in the end, I'm alone once again." Wow, I scare even myself. I'm sorry. I'm just really into poetry. Probably because I'm so sensitive and always going to great lengths to express myself. But enough about me. Can I fill you up? ROXANNE (captivated) ...Yes. (catching herself) I mean, excuse me? "JOHN CUSACK" Can I fill you up? Your coffee. ROXANNE Right. INT. BOOKSTORE CAFE' - LATER Roxanne talks as John Cusack listens to her every word intently. ROXANNE I did have a boyfriend - until fairly recently. She suddenly begins to feel the stares around her as passers- by being to notice who she's with. ROXANNE I'm sorry - this is so surreal! "JOHN CUSACK" Yeah, they charge way too much at these places - Now back to your boyfriend. I'm interested and compassionate. I want to know about you. 30. ROXANNE Things were complicated. He was a man married to his work. There was...there was a lot of competition in his line of business. I'm sure you know what that's like. "JOHN CUSACK" Sure. In my business, one thing I have is RIVALS. For example, mine is...uh...Lou Ferr...igno. ROXANNE ...The body-builder who used to play The Hulk on TV? "JOHN CUSACK" Did he? Well, we're always up for the same roles. Did your boyfriend have someone like that? A particular rival that was always getting his goat - so to speak? ROXANNE Well...one rival in particular seemed to get more of his attention than I ever did. But enough about my problems. "JOHN CUSACK" NO, TELL ME MORE!!! Suddenly realizing his outburst, he begins COUGHING to mask it. "JOHN CUSACK" (CONT'D) I'm sorry. I got a whooping cough. Had it ever since Serendipity. I WONDER WHERE OUR REFILLS ARE!!! (fakes cough) See, there it goes again. Please, go on. ROXANNE Right, well, he seemed to need him more than he needed me. "JOHN CUSACK" How do you mean? 31. ROXANNE It was conflict he thrived on. He always said he wouldn't know what to do with himself if Master - I mean, this guy were gone. It was like he needed it, like oxygen. The answer to his mental funk hits him like a bolt of lightening. He turns away from her as if for private time. "JOHN CUSACK" (almost to himself) I think I finally understand...The only logical answer is to recreate that rivalry - or if that's impossible, create one of equal structure. That's it! ROXANNE What? John Cusack snaps out of his dream-like haze realizing she's heard every word. "JOHN CUSACK" Oh, sorry, sorry. Just rehearsing for a part...where I play a man who talks to himself at inappropriate times. In a sudden rush, he rises out of his chair. "JOHN CUSACK" I have to go right now, but I'd really like to see you again - if that's alright. Roxanne looks up at him - She can't help but laugh at the craziness of the situation. ROXANNE I'd love that. INT. ABANDONED METRO CITY LIBRARY - DAY Master storms in the office to find Plato and Einstein playing darts with the original Mona Lisa. EINSTEIN Got her nose! MASTER MIND I've got it! 32. Everyone stops what they're doing upon seeing that their master has returned. MASTER MIND I've got it! MASTER MIND It's plain and simple. Extraordinary minds need extraordinary stimulation. Without that stimulus they wither and die. Therefore, there is only one logical conclusion: I must create a new superhero. EINSTEIN Yeah, maybe that's not such hot idea... MASTER MIND (ignoring him) Prepare for Operation Superhero Genesis! INT. ABANDONED METRO CITY LIBRARY - LABORATORY - DAY The lab is slick, white and ultra modern. Dressed in a lab coat, Master Mind enters through a SLIDING GLASS DOOR rubbing his hands excitedly. MASTER MIND Prepare the subject. He glances down into a large HOLE in the floor to see a naked thirty year old man, SEVERS, shivering. Above the hole, a huge vat dangles precariously. Master Mind steps behind a glass partition next to Plato and Einstein. MASTER MIND (CONT'D) Plato, pour the toxic waste. Plato throws a switch causing the vat to tip hundreds of gallons of green and brown goo into the hole. MASTER MIND (CONT'D) Drainage. The slime is sucked out through the floor, leaving a goo- soaked Severs. 33. Master Mind looks into the pit. MASTER MIND (CONT'D) Well, Severs? SEVERS I feel fine. Just a little sticky, but aside from that everything's completely - BOOM - Severs explodes. A hail of blood and tissue covers Master Mind and his men. For a good ten seconds nobody moves an inch. Finally... MASTER MIND Okay then. INT. ABANDONED METRO CITY LIBRARY - LABORATORY - DAY Through a glass WATER TANK we see a man breathing normally. MASTER MIND And this one? PLATO We attached gills to him. He can breath under water. MASTER MIND Ah. Does he have extraordinary strength? PLATO Well...no. MASTER MIND Can he fly? PLATO No. MASTER MIND Resilient to weapons fire? PLATO No. MASTER MIND He just breathes under water, then. PLATO Ah...yeah. 34. Master Mind rolls his eyes and walks away. INT. ABANDONED METRO CITY LIBRARY - LABORATORY - DAY The next guinea-pig, STENWICK, is standing in a sealed glass tube not much wider than himself. MASTER MIND Plato, the radioactive spider, please. Plato throws the switch DROPPING A SINGLE SPIDER onto Stenwick's arm. Stenwick looks and winces as it bites him. STENWICK Ow! He brushes the spider off. MASTER MIND Anything, Stenwick? STENWICK (shaken) No. Ah...sir, I didn't know this was about spiders. I have a pretty severe case of arachnophobia. Master Mind thinks for a moment, then turns to Plato. MASTER MIND We're gonna need more venom. Plato throws another switch, this time DUMPING THOUSANDS OF SPIDERS on poor Stenwick. His SCREAMS begin to fade as he's engulfed with swarms of crawling arachnids. MASTER MIND (CONT'D) How `bout now, Stenwick? ....Stenwick? INT. ABANDONED METRO CITY LIBRARY - OFFICE - DAY Master Mind is pacing back and forth. The muted TV plays in the background. MASTER MIND This has proven to be a challenge. I just don't know what I want. What do I want? 35. He stares at Einstein, Da Vinci and Plato, but they offer no advice. MASTER MIND (CONT'D) I want a man of moral fiber with a strong sense of right and wrong. Someone who doesn't seek power - instead, they must have it thrust upon them and find, within themselves, the courage to rise to the occasion. Einstein lets out a short laugh, getting everyone's attention. EINSTEIN Yeah, well, it sounds like what you want is Uberman. Master Mind snaps the fingers of his non-metal hand. MASTER MIND That's it! Why make a copy when the real thing will do? The lackeys look at each other, they can't believe what they're hearing. EINSTEIN I was just kidding, sir. In case you forgot, you actually burned Uberman alive. MASTER MIND Then we'll make a new one. Plato, bring me the box! MINUTES LATER Master Mind and the lackeys stand in a circle around a small table. Plato places a STAINLESS STEEL CHEST in the tables center. As Master Mind opens it, he's immediately doused in WHITE GLOW emanating from inside. MASTER MIND Behold - Uberessence. The very thing that gave Uberman his superhuman powers. 36. EINSTEIN Where the hell did you get that? MASTER MIND Oh, I shot him with a power sucking gun and had this idea to use this to clone a whole army of evil Ubermen. I'm not sure why I never got around to following up with that. PLATO I believe he defeated you before you could, master. MASTER MIND ...Right. Man, he was good! DA VINCI You want another volunteer, sir? MASTER MIND Not another volunteer driven by the need for personal gain. Somebody else, somebody pure. Master Mind turns to see an INTERVIEW WITH HAL playing on the muted television. Underneath his face is a blue caption with white lettering that reads: "Hal Stewart - Metro City's Newest Hero?" NEWS REPORTER ...who risked his own life to save that of a young mother and her child. HAL Please, please, you're embarrassing me. I saw someone in need and I helped them. What more can we ask of ourselves. I ask you, what more? A smile creeps across the evil one's face. MASTER MIND (CONT'D) Somebody like him! EXT. CITY STREET - DAY Plato is sitting in the van, staring into a pair of binoculars as he speaks on a cellphone. 37. PLATO Yeah, sir. This guy is a real piece of work. He used to teach bowling at Kingpin's. INT. MASTER MIND'S HIDEOUT - DAY Master Mind is sitting with his feet up on a computer console as he speaks to Plato. MASTER MIND (into phone) A modest profession to brilliantly hide his true heroic nature. I love it. EXT. CITY STREET - DAY PLATO Then you are absolutely going to love this - We follow Plato's line of sight across the street where we see HAL PLAYING WITH A LARGE GROUP OF BLIND CHILDREN. PLATO - He volunteers at a school for the blind. INT. MASTER MIND'S HIDEOUT - DAY Intrigued, he suddenly sits up in his chair. MASTER MIND He volunteers. He doesn't ask for any reward for his deeds. The fates are shining down on me. This Mr. Stewart is truly an unselfish soul. EXT. BLIND SCHOOL - DAY From a distance, Hal seems to be consoling an upset child who's sitting on a rock. But up close... HAL You greedy little bastard. I already gave you a twenty. BLIND KID Hey, you want me to play along? Then pay up, bitch! 38. HAL Fine, but you better be convincing. He gives the kid a bill out of his wallet and looks over his shoulder to see a HOT TEACHER walking toward them. HAL Here she comes, go to work. Like a miniature Brando, the blind kid buries his face in his hands and begins to cry. BLIND KID (weeping) Why can't I see! Why God? Hal puts a warm consoling hand on the weeping boy's shoulder. HAL Hey, Peter. C'mon champ, let me look at you. The Hot Teacher stops and curiously watches from a distance. The boy looks up at Hal, tears running down his dark sunglasses - he should get an Oscar. HAL You know, in life we're all given no more than we can bear. This happened to you maybe because you were meant to rise above it - Maybe to be an inspiration to the other little Peteys out there. BLIND KID You really think so, Hal? HAL Hey, does it LOOK like I'm lying? Now c'mon, go feel your way to class before you get your little butt suspended. The boy stands up and is about to take off. HAL Petey, wait a minute. Hal uses his shirt sleeve to wipe the tears away from the boy's face before sending him on his way. 39. The Hot Teacher grabs her chest. Her heart is about to absolutely melt. HAL Don't run into anything! EXT. STREET - CONTINUOUS Plato lowers his binoculars. From his perspective, Hal should be next in line for popehood. PLATO I think I've seen enough, sir. This is your guy. MASTER MIND (O.S.) (over radio) Then return to base. We have much work to do. Plato starts up the van and pulls away. INT. BAR - DAY It's a busy night. A couple of trucker types are shooting pool as the bartender slings drinks. Hal is nursing a beer at the bar when he suddenly notices a very ATTRACTIVE WOMAN sitting next to him. As he goes to straighten his stool-posture, Hal suddenly catches himself on the bar's TELEVISION - it's a story about how he saved the woman and her baby at the construction site. He turns back to the Attractive Woman next to him, then back to the TV. A plan of attack is forming. HAL (obviously playing it up for the woman's benefit) Oh, there it is again. This is really getting embarrassing now. The woman looks up at the screen and gives Hal a double-take. ATTRACTIVE WOMAN Oh my God! It's you! You're the man who saved that woman and her baby the other day! It is you, isn't it? TRUCKER #1, getting a drink at the bar next to them, OVERHEARS. 40. Hal rolls his eyes and puts his hands up in the air. HAL (to Attractive Woman) Oh, crap. You got me. TRUCKER#1 taps Hal on the shoulder. TRUCKER#1 Let me tell you something. That was just about the bravest damn thing I've ever witnessed. (he turns to the rest of the bar) Hey, everybody! This guy's the hero from TV! The bar ERUPTS IN CHEERS. MOMENTS LATER Hal is riding on the shoulders of TRUCKER#2 and TRUCKER#3 as `I'm Holding Out For A Hero' plays on the jukebox. TRUCKER#1 suddenly puts his hands in the air. The room quickly goes silent. TRUCKER#1 I want to give you something. He reaches into his pocket and takes out a medal. He holds it up in the air for everyone to see. TRUCKER#1 (CONT'D) Lost my whole platoon. They were a lot a good boys, a lot of good boys. That was just the way things were in "The Grenada." I'd rather a real hero have this. Trucker#1 gives the medal to a speechless Hal. ATTRACTIVE WOMAN Hey, you're on TV again. The crowd looks up at the Television. TELEVISION - CONTINUOUS The anchor man, BRAD HELMS (early 40's, amazing mustache), suddenly has a memo passed to him. 41. BRAD HELMS This just in. Upon a second look at that tape from this morning, which we'll now replay for you, it appears it was not the heroic act it first seemed to be. The tape shows Hal running in slow motion. BRAD HELMS (O.S.) (CONT'D) With the tape slowed down you can actually see the man push the woman and her child out of the way in an effort to save his own life. The tape shows Hal, in a clear act of self-preservation, pushing the woman and child out of the way. CUT BACK TO: INT. BAR - CONTINUOUS In unison, everyone turns their heads back to Hal. HAL I guess that looks kinda bad. Trucker#1 snatches his medal back. EXT. NEARBY ROOF - NIGHT Master Mind, Da Vinci and Plato look down, spotting Hal cutting through a dark alley. DA VINCI There he is, boss. Da Vinci hands Master Mind a fantastic looking silver rifle. MASTER MIND Now, we're sure this won't kill him? PLATO Yes, sir. He'll just feel a slight electrical shock. MASTER MIND Good. Master Mind raises the rifle and aims it at Hal. 42. EXT. ALLEY - NIGHT Hal wipes the blood from his nose with his shirtsleeve. A LIGHTENING BOLT suddenly zaps Hal in the back. His teeth spark and arc electrons as his entire body shakes and shudders violently. He finally collapses, knocking over a row of garbage cans. EXT. NEARBY ROOF - NIGHT An angry Master Mind slaps Plato. MASTER MIND Slight electrical shock? EXT. ALLEY - NIGHT Hal lies flat on his back, his jacket smoldering. Dazed, he slowly rises to his feet and looks up at the sky. HAL God, I hate the weather in this city. Hal walks off into the night as he attempts to slap the emitting smoke from his jacket. EXT. NEARBY ROOF - NIGHT Master Mind turns to Da Vinci. MASTER MIND Follow him. INT. HAL'S APARTMENT - NIGHT It's a dirty, small studio. Laundry lies everywhere, dishes are piled in the sink and the litter box looks like a minefield. Hal comes staggering in. Through his POV we see the lights wobble and streak like a hallucination. He shakes his head trying to clear thing up, but it looks worse. Hal makes his way to the kitchen table and plops down on a chair. The room begins to swim. His CAT jumps on the table and sits down in front of him. 43. From Hal's POV the cat's face looks like we're seeing it through a kaleidoscope. Hal seems fascinated by it. CAT You don't look so good, man. HAL I don't feel good. I was struck by freaking lightening. Suddenly Hal realizes his cat's talking to him. HAL (CONT'D) AAAAAAHHHHH! You can talk? CAT No, you're just hallucinating. By the way, we're out of orange juice. HAL AAAAAAHHHHH! Hal jumps up, trips over a cardboard box and knocks himself out on the coffee table. INT. HAL'S APARTMENT - MORNING Hal lies in the same position we left him last night. He sits up and grabs his head. He looks like he has the worst hangover in the world. Finally, he remembers last night. He looks around, but not really sure what he's looking for. HAL Man... Shaking his head, he walks to the kitchen and opens the refrigerator. He pulls out an orange juice container and puts it to his mouth. It's empty. As if suddenly remembering something he looks from the carton to the cat, who is busy cleaning himself. He shakes the thought from his mind. BATHROOM Hal lifts the seat and unbuckles his pants. 44. HAL'S FACE He stares at the ceiling with half closed eyes. The inevitable sound of urine hitting water starts. A content look washes over his face. There is a distinct sound of porcelain CRACKING and SPLINTERING. The sound intensifies. Hal looks down to see his URINE STREAM SMASHING THE TOILET. HAL (CONT'D) Oh, God! He whips his stream away only to cut a LONG RIP IN THE WALL. HAL (CONT'D) Oh, God! He freaks out and begins to lose control of his flow as it destroys everything he accidently aims at; the bathroom mirror, a bottle of cheap cologne, the bathroom window. HAL (CONT'D) Oh, God! He aims back for the toilet, which is pretty much rubble now, to see the floor give way. Finally, the pee stops and he glances down the hole. He sees his downstairs NEIGHBOR sitting at his breakfast table. He has a fork halfway to his mouth as he stares at the smashed toilet on his pancakes. EXT. STREET - DAY Hal turns the corner to see his bus pulling away from the stop. HAL Wait! He starts running after it. ZOOM - HE TAKES OFF LIKE LIGHTENING. HAL (CONT'D) Whoa, whoa, whoa! Unable to stop, he SLAMS INTO THE BACK OF THE BUS and falls back to the ground. 45. As the bus continues on he sees an INDENTATION of his torso right below the rear window. Stunned, to say the least, he rises to his feet. HAL (CONT'D) Something's not right here. He slaps himself in the face as hard as he can. HAL (CONT'D) Wake up! Wake up, Hal! HONK! Hal spins around to see a car barreling toward him. He goes to jump out of the way - ZOOM - he FLIES TWO STORIES UP, nails a building and comes crashing back down to the sidewalk. Hal sits up, disheveled and scared. HAL (CONT'D) Okay, okay. Let's get it together, man. He closes his eyes in an attempt to will back his sanity. HAL (CONT'D) This is just some sort of...episode. It will pass, it will pass. He opens his eyes and looks down the street. A BEAUTIFUL NAKED WOMAN is coming toward him. HAL (CONT'D) Well, not too fast I hope. As she passes him and turns the corner out of his view he catches ANOTHER NAKED WOMAN - an old disgusting one. HAL (CONT'D) Yes, fast, fast! He turns away from her in horror only to see AN ENTIRE BLOCK OF NAKED PEOPLE going about their business. He rubs his eyes and looks down the street again. Everyone has returned to a clothed state. 46. He relaxes a little until he looks down and notices that he's floating a foot off the ground. HAL (CONT'D) I think I need to go home. INT. HAL'S APARTMENT - DAY Hal's front door CREAKS as it slowly opens, revealing Master Mind. He walks over to the bathroom and smiles to himself as he notices the giant hole in the floor. MASTER MIND Welcome to your second birth, Hal Stewart. Master Mind continues to survey the room. He stops to look over a "KARATE KID" POSTER on Hal's living room wall. He focuses on the majestic image of Pat Morita teaching a young Ralph Macchio to kick. MASTER MIND (CONT'D) Instruction is very important in the formative years. Every hero needs a mentor, a father figure to look up to. He presses his special watch, causing his body to MORPH INTO THE SPITTING-IMAGE OF PAT MORITA. "PAT MORITA" Perfect. INT. HAL'S APARTMENT - DAY Hal enters, grabs a bottle of vodka from atop of the fridge and takes a long pull from it. VOICE (O.S.) A man will usually find that if he drinks from a bottle, eventually, the bottle drinks from him. Hal does a SPIT TAKE. In the corner a darkened figure stands. HAL Who are you!? 47. VOICE I am the guide on your journey. Fate has chosen you to be it's champion. Pat Morita steps out from the shadows. Hal passes out again. LATER We are close on Hal's face as his eyes flutter open. He appears to be lying on the couch. He hunches up on his elbows, looks around, but everything is as it seems. He lays his head back down. HAL Thank God. It was a dream. Man, I must be losing it. A voice sounds right next to his ear. "PAT MORITA" (O.S.) You know you're out of orange juice? Hal leaps up to find he's been resting his head on Pat's lap. HAL Jesus! This isn't happening, this isn't happening. Hal backs away and trips over a box. "PAT MORITA" Calm. All things must be filtered through calmness. HAL Bullshit! Sometimes it's best to freak out. "PAT MORITA" I think we must work on your attitude first. HAL Look I'm gonna call the cops in about two seconds if you don't get out of here. 48. Pat rises and walks to Hal. He's so calm it makes Hal calm. "PAT MORITA" Are you calm now? HAL Yeah, I'm okay. Pat slaps him across the face hard. "PAT MORITA" Good, because we've got a lot of work to do. Hal grabs his jaw. HAL What the hell was that for? "PAT MORITA" Rule number one: expect the unexpected. HAL Can you just tell me what this is all about? "PAT MORITA" The heavens are not in the habit of bestowing a gift such as this to just anyone. You are being rewarded for being a man of great moral fortitude with an unwavering belief in humanity. HAL That's me alright. "PAT MORITA" I am to train you so you may fulfill your destiny to defeat the great menace to Metro City: Master Mind. Pat gets up and walks toward the door. "PAT MORITA" (CONT'D) Come. HAL We're are we going? 49. "PAT MORITA" To train. EXT. PAT'S CAR - DAY Pat is sitting in the driver's seat. The car is bumping up and down. "PAT MORITA" Strength is just as much in the mind as it is the muscle. Remember, both need to be exercised. We PULL BACK to see Hal lifting the car up over his head. He's hardly straining. HAL I'M LIFTING A FREAKING CAR!!! Pat leans on the HORN. "PAT MORITA" Hey, Corky? You listening? Two highly attractive female joggers run by. They're clearly impressed with Hal's show of strength. He smiles and mouths a "hello." HAL Yeah, work both muscles. EXT. DESERT - DAY Pat cocks back the chamber of a .357 MAGNUM. He holds it up and carefully takes aim...at Hal's chest. "PAT MORITA" Trust me. HAL What are you doing!? "PAT MORITA" An invulnerability test. Something wrong? HAL Uh...yeah. I would prefer not to get shot. Do not fire that thing! Frustrated, Pat lowers the gun. 50. "PAT MORITA" You're bulletproof. HAL Okay, do you know that for sure? Pat quickly aims and fires. Hal lets out a high pitched scream as the bullet ricochets off his chest. "PAT MORITA" I do now. Hal looks down at his chest, not so much as a scratch. HAL You suck. EXT. SKY - DAY Hal is in the air flying in a sitting position. He's weaving back and forth. HAL Ice Man, I got a bogie on my tail. Two Russian Migs coming in hard and fast. "PAT MORITA" Hey! HAL What? Hal looks down to see Pat Morita yelling at him from the roof of a building down below. "PAT MORITA" What did I tell you? Stomach down, hands up. Hal sighs and assumes the proper superhero in-flight position. HAL God, I feel so gay. Pat's CELL PHONE begins to RING. He answers it. "PAT MORITA" (in Master Mind voice) What is it? 51. ROXANNE (V.O.) John? Pat panics. He looks up to make sure no one is in earshot. He sees Hal now doing somersaults in the air. HAL YEEEE HAWWWW! Pat turns his attention back to the phone, talking in his John Cusack voice. "PAT MORITA" (in Cusack voice) Yes, it's John Cusack. ROXANNE (V.O.) Hi, it's Roxanne. Listen, I...I really enjoyed talking with you the other day. "PAT MORITA" ...As did I. ROXANNE (V.O.) Great. God, I feel really silly, and if you have a lot going on I totally understand. But, I was wondering if you maybe wanted to have lunch. He can't believe what he's hearing. "PAT MORITA" (excited) I'd love to! He quickly recovers his composure. "PAT MORITA" (CONT'D) I mean, I AM a little hungry. ROXANNE (V.O.) Great. How does the park sound, around noon-ish? "PAT MORITA" Sure! ROXANNE (V.O.) Great, see you then. 52. Pat hangs up the phone and returns it to his pocket as Hal lands behind him. HAL WHOOOOA! Man, that is so cool. It's like fly - Oh my God, I almost said it was like flying. "PAT MORITA" For the rest of the day I want you to continue to practice your flying posture. HAL Why, where're ya going? "PAT MORITA" ...To do something...mysterious ...and Asian. HAL Say no more, bro. I'll just keep at it, then. EXT. PARK - DAY John Cusack and Roxanne eat WRAPPED SANDWICHES while walking through Metro City Park. ROXANNE How's your sandwich? "JOHN CUSACK" It's quite delicious. ROXANNE Hope you don't think I'm too forward. Some men are intimidated when a woman asks them out. I just find you really easy to talk to. "JOHN CUSACK" And I you. ROXANNE You know, you're not at all like you are in the movies. "JOHN CUSACK" I'm not? 53. ROXANNE Yeah. I don't know - You have this strange, refined way of speaking. "JOHN CUSACK" I do? That is most interesting. ROXANNE Anyway, when we were talking the other day I just felt, even though we only talked for a couple of hours, that we've known each other for years. "JOHN CUSACK" I know just what you mean. Roxanne bites into her sandwich. ROXANNE You know what? This sandwich is disgusting. She tosses it in a nearby garbage can. ROXANNE (CONT'D) Of course I already ate half of it. I wonder what that says about my character? "JOHN CUSACK" It means you don't give up on a sandwich. You see that it has potential, and you give it every chance to be all it can be. Roxanne smiles at his analogy. ROXANNE Thanks, but knowing me, I was probably projecting my expectations of what a lunch should be on the sandwich. It might have been okay at first, but I just made it bitter. John Cusack notices Roxanne's smile starting to fade. "JOHN CUSACK" Is that what happened with your last sandwich - I mean, boyfriend? 54. ROXANNE When I look back, I probably shouldn't of expected so much from him. He was already a giving person. You know, one of those go out and save the world types. "JOHN CUSACK" I've run into a few. ROXANNE I was selfish, I guess. I didn't want to share him with anybody else. "JOHN CUSACK" It sounds like he was a special man. ROXANNE They broke the mold. John Cusack arches his eyebrow in a very familiar manner. "JOHN CUSACK" Perhaps not. INT. ABANDONED WAREHOUSE - DAY Hal walks up to Pat Morita sporting a Lone Ranger-type mask and wearing a purple and red superhero costume. It's not unlike Uberman's except for a giant "T" on his chest. (From here on, Hal is referred to as TITAN) TITAN What's the "T" stand for? "PAT MORITA" Titan. TITAN What's that supposed to mean? "PAT MORITA" It's from Roman mythology. Zeus's father...oh, just go with it. You look perfect. TITAN I don't think this mask is big enough. Are you sure no one is gonna recognize me? 55. "PAT MORITA" It's fine, just don't slouch. It's all in the posture. He grabs Titan's shoulders like a proud papa. "PAT MORITA" (CONT'D) It is time. INT. BANK - DAY There is a long line of people snaked around the velvet ropes. They're all waiting for their chance at the one open teller window. Four men wearing BEATLES MASKS(JOHN,PAUL,GEORGE,AND RINGO)and CARRYING SHOTGUNS enter the bank. John fires a shot in the air, sending everyone into an immediate panic. JOHN Alright folks, this is a robbery. Nobody moves - yadda, yadda, yadda... Ringo jumps over the teller wall and starts stuffing bills into a bag. As John and Paul cover the crowd, George goes to the corner office and puts a gun to the BANK MANAGER'S head. GEORGE The safe. Let's go. BANK MANAGER Okay, just don't hurt anyone. GEORGE Yeah, yeah, yeah. George leads him out by the collar. CRASH - Titan smashes through the window and lands in a bold superhero stance with hands on hips. TITAN Well, boys, there's no need for all this just to get the free toaster. Paul cocks his gun. 56. PAUL What are you suppose to be? We move in for a nice dramatic close up. TITAN Justice. GEORGE Well, justice, suck on this... George, John and Paul open fire on Titan. He just stands there and yawns as the bullets bounce off him. With their guns empty the three just stare at him in amazement. TITAN Now it's my turn. He turns to George. TITAN (CONT'D) Hey, George, here comes the sun. Titan grabs George and throws him into a fluorescent light fixture in the ceiling. Paul tries to run for the door. Titan snatches the collar of his jacket. TITAN (CONT'D) Say, Paul, your mother should know...that you're a scumbag. He tosses Paul out the window and into a parked DELIVERY TRUCK. Titan turns around just as John hits him with the butt of his shotgun. It instantly breaks apart in his hands. Titan lifts him like a rag doll up into the air. TITAN (CONT'D) John, all you need is love... He throws John who lands on top of a cubical wall - GROIN FIRST. TITAN (CONT'D) ...and a good urologist. 57. Titan effortlessly hops over the teller wall to find Ringo cowering on the floor. He grabs him by the shirt and lifts him up. HAL Well, Ringo...um...um...you're under arrest. EXT. BANK - DAY Titan walks out of the bank with Ringo and George under his arm. He's suddenly swarmed by a group of television reporters, including Roxanne. Across the street is Pat Morita. He watches Titan's first news conference with great anxiety. BANK MANAGER (to Hal) On behalf of the First National Bank of Metro City, I'd like to offer you a reward for your act of bravery. He hands Titan a check. TITAN (reading) Ten thousand dollars! Titan looks over to Pat, who violently shakes his head no. TITAN (CONT'D) (unenthusiastically) I...can't except this. Law and order is it's own...um...reward. Pat gives him the thumbs up. Pat turns, suddenly seeing Roxanne with her camera crew. Captivated, his eyes lock on her. Meanwhile, Roxanne and her cameraman, SETH, are maneuvering around the crowd to get closer to Titan. BRAD HELMS (O.S.) Not so fast, Roxanne. They both turn to see Roxanne's reporter rival Brad Helms, Geraldo without the class, and his cameraman, FRANK. BRAD HELMS This story's mine. 58. ROXANNE Listen, Brad. We were just in the area. I was just trying to - BRAD HELMS I've been in this business long enough to know pretty well what you were "just trying to do." Besides, I heard you couldn't take the big game anymore and were put on fluff detail? Dejected, Roxanne turns and motions for Seth to turn the camera off. SETH You're not gonna take that from him, are you? ROXANNE He's right. Old habit, I guess. (to Brad) We'll get out of your way. As they walk off, Brad makes a comment to Frank loud enough for her to hear. BRAD HELMS Besides, I'm sure there's a pancake supper somewhere that needs covering. INT. ABANDONED METRO CITY LIBRARY - OFFICE - DAY ON TELEVISION We see the news conference on the bank's steps. In the corner of the screen is written: "recorded earlier." BRAD HELMS For months now, since the death of Uberman, the citizens of Metro City have been holding out for a hero. Well, it appears they won't have to hold out for much longer as a new costumed crusader has suddenly stormed onto the scene. Today, at the Metro Savings and Trust, a masked mystery man single-handedly defeated "The Fab Four Gang." Just who is this new caped avenger? Brad holds the microphone to Titan's face. 59. BRAD HELMS I'm sure all of our viewers are now wondering, what's the "T" stand for? TITAN It's a message to all the scum out there. Uberman may be gone, but Metro City has a new protector, and his name is "Tighten!" Another reporter leans in. REPORTER How do you spell that? We PULL BACK to see Plato and Da Vinci watching this spectacle. Master Mind is sitting with them, reading a NEWSPAPER. MASTER MIND (reading paper) Oh, for heaven's sake. I can't believe it. He misspelled his name. Master Mind holds up the newspaper. The headline reads "Metro's New Hero: Tighten." MASTER MIND (CONT'D) No matter, I suppose. Master Mind throws the paper on the floor and begins to pace around the room with his arms folded behind his back. MASTER MIND (CONT'D) We've now fully established Titan as Metro City's hero. They will love him just as they loved Uberman. Everything is going according to plan. Einstein leans over and whispers in Plato's ear. EINSTEIN (whispering) Yeah, if the plan is getting us in jail. Master Mind turns around, facing Einstein. He walks over, standing face to face with the rebellious henchmen. 60. MASTER MIND You know, Einstein, maybe I should have called you Socrates. He also didn't know when to keep his thoughts to himself. EINSTEIN I just fail to see the point in all of this. I mean, why are we creating another superhero when it was such a pain in the ass for you to get rid of the other one? I mean, Uberman is destroyed, we should be using this opportunity to...to... MASTER MIND To what? EINSTEIN I don't know. To take over the weather, space, the world - whatever super villains are SUPPOSED to do. MASTER MIND The reason someone like you will always be a minion is because you have no foresight. We take over the earth, like you said. Then what? Women? Cars? Money? Even the grandest treasures will lose their lustre if you don't have someone to hold them over. Einstein throws up his hands. He's had enough. He pulls off his wig and throws it to the floor. EINSTEIN That's it! This balance of the force bullshit is getting way too Oprah for me. I'm blowing. Who's with me? MASTER MIND You dare? EINSTEIN Yeah, I dare. I'm sick of wearing stupid costumes, and I'm sick of working for a super villain who's turning into a softie. 61. Plato and Da Vinci's mouths drop to the floor. They turn to Master Mind for his rebuttal. MASTER MIND What - did - you - call me? EINSTEIN You heard me. You used to be an inhuman monster, now look at you. You're creating super heroes, you don't go with us on robberies anymore, it's been days since you threatened anyone, oh, and not to mention this Roxanne Ritchi thing. MASTER MIND THAT is none of your business, knave! EINSTEIN Hey, you guys haven't sealed the deal yet, have you? MASTER MIND Silence! EINSTEIN (In a woman's voice) Oh, Master, your head is so big. MASTER MIND I'm warning you, Einstein. EINSTEIN (In a woman's voice) Take me! MASTER MIND I said silence! With his metal gauntlet Master Mind grabs Einstein by the throat and lifts him into the air. Einstein looks frightened as he tries to pry himself free of Master Mind's grip. Master Mind's eyes soften as if his heart is suddenly not into what he's about to do. He let's Einstein drop to the floor. MASTER MIND (CONT'D) Get out of my sight. 62. EXT. RESTAURANT - NIGHT Roxanne and John Cusack are eating on the outside patio of a fancy restaurant. ROXANNE Don't get me wrong, I love being a reporter. I don't think I could do anything else. It's the consequences of what we do that I'm having a problem with. He listens intently as he refills her glass with wine. "JOHN CUSACK" That's where journalistic responsibility comes in, no? ROXANNE It's supposed to. "JOHN CUSACK" Sounds to me like you're running from something. ROXANNE I got someone I cared about killed. If it wasn't for me, he wouldn't have been involved. John suddenly gets a disturbed look in his eye, realizing what she's talking about. He reaches across the table and takes her hand. "JOHN CUSACK" You can't blame yourself. My father used to say each of us must answer the great call to truly feel alive. ROXANNE Was he an actor? "JOHN CUSACK" ...No. He was...a landscaper. And a horrible one. I mean he would fail time and time again at his...landscaping. And sometimes he'd get pretty beaten up or thrown in jail - ROXANNE Jail? 63. "JOHN CUSACK" My point is he took the good with the bad. He grew a little each time. Improved, learned. ROXANNE Was he ever successful? "JOHN CUSACK" God, no...but don't let deter you. Roxanne LAUGHS. ROXANNE Thanks for this. You know, this is embarrassing, but it's been a long time since I - It's starting to lightly sprinkle. Roxanne looks up. ROXANNE (CONT'D) I think it's starting to rain. We might want to find a table inside. "JOHN CUSACK" What were you gonna say? ROXANNE Oh, I was gonna say...It's been a long time since...well, I've been with someone I...enjoy being with. John Cusack smiles warmly and raises his glass for a toast. "JOHN CUSACK" To people who enjoy being with each other. They go to clang glasses, when the rain suddenly causes John Cusack's disguise generator to short. His true form of Master Mind is briefly revealed to Roxanne as a BOLT OF ELECTRICITY encircles his body. Roxanne drops her glass and jumps out of her seat. MASTER MIND (CONT'D) Oh, no. Don't look at me. LIKE A BROKEN TV the image keeps switching between MASTER MIND AND JOHN CUSACK. 64. As Master Mind starts to franticly slap at his watch, the Cusack disguise begins to hold steady. He nonchalantly returns to cutting his steak. "JOHN CUSACK" Okay, never mind that. Now, where were we? Roxanne grabs his glass and throws the drink in his face, causing the generator to short out permanently. Master Mind now sits in his true blue form. ROXANNE Oh my God. MASTER MIND You're not gonna get all freaky about this, are you? ROXANNE This...this is too much, even for you. God, I go out with you, tell you my innermost thoughts. MASTER MIND I only did this because I wanted to talk to you on the same level. You know, without all the baggage? ROXANNE Baggage? You burned my boyfriend alive, you sick son-of-a-bitch! MASTER MIND You see, that's exactly what I'm talking about. Roxanne starts to walk away. MASTER MIND (CONT'D) Roxanne! ROXANNE Stay away from me. Master Mind sinks back down to his chair. Despite the now heavy rain bombarding him, he returns to his food. Several resturaunt patron's are looking at him through the window. 65. Our villain turns to them, giving them a villainous glare. MASTER MIND What? INT. MASTER MIND'S BEDROOM - NIGHT Master Mind is lying on his back, wide awake. MASTER MIND (mumbling to himself) Stupid. What was I thinking? Plato, it's his fault. He's the one who sent me on this weak-willed path. I'll filet his scrotum for this. Me, a creature of evil, in love with Roxanne Ritchi. Preposterous. I hardly give such matters thought He rolls onto his side. He yawns and closes his eyes. Suddenly, they shoot back open. CUT TO: EXT. ROXANNE'S APARTMENT - NIGHT Master Mind pulls up in a blue Rolls Royce, across the street from Roxanne's apartment He stares up at the building, hoping to catch a glimpse of her. Finally, she appears, primping her hair in her apartment window's reflection. MASTER MIND I should just go up there and just lay it all out to her. "Roxanne, I like you - I always have. Oh, and I'm sorry I blew up your ex. (realizing the absurdity of his words) Yeah, that would go over like a pants-less clown at a child's birthday party. What the hell am I even doing here? Who cares what she thinks? I'm a supervillain and here I am acting like a love struck schoolboy. Forget this. I control my own destiny! 66. He turns the ignition key - NOTHING HAPPENS. He repeats but gets the same results. MASTER MIND (CONT'D) (disgusted) Perfect. INT. ROXANNE'S APARTMENT - NIGHT She pulls a pack of smokes off her night stand. Empty. ROXANNE Damn. She grabs her long coat and throws it over her robe. EXT. ROXANNE'S APARTMENT BUILDING Roxanne steps outside. ROXANNE Please be open. Across the street is a liquor store. The light is still on. ROXANNE (CONT'D) Thank God. She walks across the street, passing in front of Master Mind's car. Spotting her, he sinks down in his seat. Roxanne walks by, totally unaware of his presence. Relieved, Master Mind sits back up and watches her go into the store. INT. LIQUOR STORE - NIGHT Roxanne walks up to an elderly Korean SHOPKEEPER at the counter. ROXANNE A pack of Lady Strikes, please. EXT. MASTER MIND'S CAR - NIGHT Master Mind is talking on his cell phone. MASTER MIND Hello, Triple A? 67. He suddenly spots something across the street. EXT. LIQUOR STORE - NIGHT A HOODLUM walks up to the entrance of the store and pulls out a gun from under his coat. EXT. MASTER MIND'S CAR - NIGHT Master Mind stares in shock. MASTER MIND I'll call you back. He hangs up the phone and watches the Hoodlum go inside the store. INT. LIQUOR STORE - NIGHT The Hoodlum reaches across the counter and grabs a fist full of cash from the register. SHOPKEEPER Hey! SHOTGUN HOODLUM Shut up, Gramps. He turns to Roxanne, spotting a GOLD NECKLACE around her neck. SHOTGUN HOODLUM (CONT'D) Gimme that necklace! ROXANNE I don't think so. The Hoodlum cocks his shotgun. SHOTGUN HOODLUM I said give it to me! MASTER MIND (O.S.) The lady said no. The hoodlum turns around to see Master Mind in the doorway holding a STRANGE-LOOKING HAND CANNON (GOO GUN) with knobs and blinking lights. The hoodlum starts to laugh. 68. SHOTGUN HOODLUM What the hell's that? A super soaker? MASTER MIND No, it's a goo gun. The hoodlum turns his gun to Master Mind. SHOTGUN HOODLUM Yeah, what's it do? MASTER MIND It goos. Master Mind fires the cannon. It instantly covers the store in a cloud of SMOKE. The smoke clears to reveal the hoodlum STUCK TO THE WALL, covered in a thick, GREEN GUNK. Roxanne stares at him, dumbfounded. MASTER MIND (CONT'D) It's...a prototype. Master Mind starts to walk out when he's suddenly confronted by the shopkeeper. SHOPKEEPER I know you! You Master Brain guy. You a hero. Master Mind points the goo gun at him. MASTER MIND Don't - EVER - say that again. EXT. LIQUOR STORE - NIGHT Master Mind walks out with the cannon resting on his shoulder like he's a short timer in Da Nang. Roxanne follows shortly behind him. ROXANNE Hey! Master Mind turns around. ROXANNE (CONT'D) Are you following me or something? 69. MASTER MIND Don't flatter yourself. He turns away and continues walking. Roxanne runs in front of him blocking his way. ROXANNE Don't walk away from me when I'm talking to you. Finally it occurs to her what's going on. ROXANNE (CONT'D) What a minute...all that stuff you use to say to me when Uberman was alive - about me being the loyal queen by your side as you rule over Metro City. That wasn't just super villain rhetoric, was it? You actually meant it! MASTER MIND My, someone has a rather high opinion of themselves. They stare at each other in silence, their glares locked in conflict. ROXANNE (coldly) Do you really think I would be with someone like you? This stings Master Mind to the bone. And after a brief contemplation, he reaches the only logical, painful conclusion. MASTER MIND No. With that, Master Mind exits into the night, leaving Roxanne with a baffled expression on her face. INT. ABANDONED METRO CITY LIBRARY - NIGHT Master Mind enters in a huff. Da Vinci closes the door behind him as Plato notices his master's agitated state. PLATO Everything alright, sir? Master Mind GRABS PLATO BY THE GROIN with his metal gauntlet causing Plato's eyes to bulge in pain. 70. MASTER MIND (overly calm) Fine, why do you ask? PLATO You...just...seem... Master Mind tightens his grip. MASTER MIND Go on. PLATO ...distracted. Master Mind releases him. MASTER MIND Just with business, my minion. Just with business. I've decided it is time. PLATO You mean? MASTER MIND Yes, we've created our hero, now it's time to give him a little motivation. DA VINCI How do we do that? MASTER MIND To be simply good is not enough. A hero must be driven by an almost relentless desire to right a wrong that can never be corrected. PLATO You mean? MASTER MIND Yes, he must lose someone near and dear to him - his father figure. Gentlemen, it's time for Operation Mentor Kill! EXT. SKY OVER METRO CITY - DAY Titan flies high over and through the city, under bridges, between buildings, etc. He's not really working, just enjoying himself. 71. INT. WOMAN'S APARTMENT - NIGHT A PRETTY WOMAN sits at her makeup table wearing nothing but her bra and panties. Through the reflection in her mirror we see a large window directly behind her. As she applies lipstick we see Titan fly quickly by in the background. After a moment he slowly slides back in view and begins ogling the girl. She sees him in the mirror and quickly covers herself with a robe. Titan tries to hide his face as he zooms off. MOMENTS LATER Titan looks down to see an APARTMENT BUILDING IN RUIN. Emergency lights flash around it as swarms of people run around in chaos. TITAN Man, what the hell happened down there? Wait a sec - He stops in mid-air as he comes to the striking realization. TITAN (CONT'D) THAT'S MY APARTMENT!!! EXT. HAL'S APARTMENT BUILDING - DAY Titan lands in front of the rubble that was once his home. Reporters stand just beyond the police line. TITAN Crap. From the wreckage crawls a dying Pat Morita. TITAN (CONT'D) PAT! Titan goes and kneels beside Pat, holding him in his arms. TITAN (CONT'D) You okay? "PAT MORITA" I'm dying, kid. There is just one last lesson I have for you. It is the most important of all. 72. TITAN What's that? "PAT MORITA" Master Mind did this, you must avenge me. TITAN Master Mind? Why? "PAT MORITA" Because he's evil. You must stop the evil Hal - stop the... Pat's body goes limp. The cameras begin to pop and flash around them. Titan gently lays Pat's body down and stands respectfully over him. The reporters rush over. REPORTER 1 Tighten, Is this the work of Master Mind? REPORTER 2 How will the death of your mentor affect your resolve? REPORTER 3 Was that Pat Morita? Titan walks up to one of the cameras. TITAN This injustice will not go unpunished. Master Mind, if you can hear me, Tighten is coming for you. In the background we see Plato and Da Vinci, DRESSED AS PARAMEDICS, load pat's body onto a stretcher. PLATO ACCIDENTALLY DROPS HIS SIDE. As he bends down to pick it back up, Pat quickly slaps him, then goes back to playing dead. INT. ABANDONED METRO CITY LIBRARY - NIGHT Master Mind and the boys prepare the fortress for Hal's revenge attack. Master Mind is as giddy as a schoolboy. 73. MASTER MIND Alright, people, we don't have much time. Titan should be here any minute, so let's get the lead out. There is a GIANT MOUNTED DEATH RAY in the middle of the hall being tinkered with by Da Vinci. MASTER MIND (CONT'D) How's the death ray coming? DA VINCI Nearly up to full power, sir. MASTER MIND Hum. Let's turn it down a few notches. It's his first time and we don't want to get in a lucky shot, now do we? Plato enters the room. MASTER MIND (CONT'D) Anything on the radar yet? PLATO Not yet, sir. MASTER MIND I see. Well, he must be planning something big. Are the flame androids deployed? PLATO All twelve. Master Mind rubs his hands in anticipation as he sits down on his throne. MASTER MIND Wonderful, wonderful. Plato, Da Vinci, take your places next to me. They move to either side of the chair. MASTER MIND (CONT'D) No slouching. Da Vinci straightens up and sucks in his gut. They remain this way for several long moments. Master Mind occasionally glances at a DIGITAL CLOCK on the wall. Still no Titan. 74. LATER Apparently quite some time has passed. The bold stances have degraded to fatigue. PLATO He's certainly taking his time. MASTER MIND He'll be here. That's the way it works. STILL LATER Master Mind reclines in his chair and taps his metal gauntlet impatiently on the armrest. Plato has squatted down, resting his chin on his hand. MASTER MIND (CONT'D) Unprofessional, that's what this is. No, it's disrespect for the craft. Master Mind rises and begins to pace back and forth. MASTER MIND (CONT'D) Would Uberman have kept us waiting like this? Of course not. He was a pro who knew the score. It's time we spelled out a few things for this Titan. I will not be made a fool of. He storms out of the room. INT. HAL'S NEW APARTMENT - DAY Titan's sitting on the floor in a barren apartment wearing his costume top and some tighty whities. He sips his beer as he watches a basketball game on a tiny TV. Much to his annoyance, there's a KNOCK at the door. TITAN Oh, for crying out loud. He gets up and opens the door. It's Master Mind. MASTER MIND Do you know who I am? 75. It takes a few moments to register, but Titan's suddenly excited. TITAN Yeah, you're Master Mind. Yeah! You're actually the guy I want to see! MASTER MIND Oh, so NOW you want to get down to it. Well, I want to get a few things off my chest first. Master Mind walks past Titan into the apartment. He spins around, pointing at him accusingly with one of his metal fingers. MASTER MIND (CONT'D) Of all the inconsiderate - Do you have any idea how long we waited for you? We're you even planning on coming to me and getting revenge? Titan shuts the apartment door, and turns back toward his guest. TITAN Well, at first I was going to. You know, because that's what I figured I was supposed to do. But then I got to thinking- MASTER MIND (interrupting) -You got to thinking? There's nothing to think about. I'm the villain. I do something bad, you come and get me. TITAN - I got to thinking...what's the point? Master Mind throws up his hands. MASTER MIND Maybe you're right. What's the point? He suddenly notices something in the corner of his eye. He walks over to a futon in the living room. On top of it is a LARGE SACK OVERFLOWING WITH GOLD WATCHES,RINGS AND OTHER VALUABLES. 76. MASTER MIND (CONT'D) What are these? TITAN That's what I wanted to talk to you about. MASTER MIND (baffled) Where did you get all this? TITAN (proudly) Get this: I stole them. MASTER MIND From where? TITAN From all over. You see, once you killed Pat and ruined my other apartment building I was pretty pissed off, so I figured I'd go, find you and kick some ass. Then I thought to myself: "Okay,then what?" I mean, if we were to fight, what would I get out of it? Would I get my apartment back? Would I be able to pay the bills? MASTER MIND Well, what about your mentor? TITAN Tell you the truth? He was kind of a dick. I mean, being a hero is dandy and all, but it's volunteer work. Now you've always had the right take on all this. I mean, when you rob a bank or take over the diamond exchange you get something out of it. I mean, when you don't get caught, which, no offense, isn't very often. And that brings me to what I wanted to propose to you: Who could catch you if I'm by your side? Perplexed by his proposal, Master Mind just stares at Titan awe-struck. MASTER MIND You want to team-up? 77. TITAN You got the brains, I got the brawn. We could even call ourselves that: `Brain' and `Brawn'. Look at this. Titan picks up a piece of POSTER BOARD off the floor and shows it to Master Mind. TITAN (CONT'D) I even designed us some new costumes. The picture is crudely drawn with magic markers and crayons. A big headed man (Master Mind) is standing on a plate of grass in a blue costume with a picture of a brain on his chest. Next to him, is a picture of Titan in a red costume with a black cape, but his chest is mysteriously blank. Titan proudly points to the two figures. TITAN (CONT'D) See, you'd be brain, so you got a little one on your costume, and then I'll have brawn on mine...once I figure out the best, you know, visual interpretation of it. What do you think? MASTER MIND What do I think? Master Mind shakes his head tiredly. MASTER MIND (CONT'D) I think you're probably the biggest idiot I've ever met. I mean, I can't believe you. All your gifts, all your powers, and all you want to use them for is your own financial fulfillment. You know what? Your kind of people make me sick. Titan puts down his drawing. TITAN I worked hard on this. MASTER MIND Oh - gee - I am so sorry! 78. Master Mind looks to Heaven in disgust. MASTER MIND (CONT'D) (under his breath) Of all the people to pick, it had to be this loser. This strikes a cord with Titan. TITAN Now, hold on. You're going a little too far. MASTER MIND I wish your mother said that to your father the night of your conception, they would have saved me a whole lot of heartache. TITAN Hey, I mean it. Master Mind gets right in his face. MASTER MIND Oh, yeah? What are you gonna do? EXT. HAL'S APARTMENT BUILDING - DAY We see Master Mind's body CRASH through the building and land in a DUMPSTER across the street. A car pulls up. The driver's door opens. Da Vinci gets out and runs to help his master. DA VINCI Master! MASTER MIND (O.S.) It hurts. Da Vinci peeks into the dumpster to see Master Mind's body cushioned by a stack of trash bags. DA VINCI What hurts? MASTER MIND It! The overly large henchmen starts to pull his master from the dumpster when they suddenly hear a voice from above. It's Titan peeking through the hole in his apartment wall. 79. TITAN I don't need you, I don't need anybody. I have the power to do and take anything I want. And now, I'm gonna take back everything this city owes me. Beware Metro City, it's time for Titan to collect. Titan shoots up into the air. TITAN (CONT'D) Oh, and from now on - I'M GONNA FLY THE WAY I WANT TO FLY! He takes a sitting position and flies away as if he were piloting an invisible jet. Master Mind climbs out of the dumpster and watches Titan disappear into the distance. DA VINCI How'd the plan go, boss? MASTER MIND I just made myself redundant, old friend. Da Vinci gives Master Mind a whiff. DA VINCI It's not that bad. INT. BANK - DAY Titan, with a happy bounce in his step, enters the bank. The last time he was here he thwarted a robbery. He looks nostalgic. A SECURITY GUARD shyly walks up to him like a kid meeting his TV idol. SECURITY GUARD Morning, Tighten. TITAN Morning. SECURITY GUARD Is there something we can do for you? 80. TITAN Oh, don't bother about me. I'm just here to make a withdrawal. Titan walks across the lobby, drawing stares of admiration from all. A little girl waves to him sweetly. He gives her a good- natured WINK as he heads straight for the vault. The security guard watches him enter and come out with a SACK OF CASH. Sure he must be misunderstanding what's going on, the security guard just stares at Titan as he passes by and out the door. The bank manager comes over to the guard. BANK MANAGER Say, did he just rob us? SECURITY GUARD Not sure. Sort of looks it, don't it? BANK MANAGER Yeah. SECURITY GUARD Should I, you know, stop him? BANK MANAGER Umm...Yeah. As the security guard exits the bank, the manager stares out the window. His eyes suddenly grow wide with terror. The guard's body suddenly smashes through the window, landing at the startled bank manager's feet. BANK MANAGER (CONT'D) (looking down at the guard) He did rob us, didn't he? CUT TO: TELEVISION "A Channel 7 News Special Report." Brad Helms wipes into view. 81. BRAD HELMS "Absolute power corrupts absolutely." When Lord Acton stated that, in a letter to Bishop Mandell Creighton in 1887, no one thought much about it, but today Metro City is reeling from that very prophecy. Tighten, who many thought of as our savior, has turned his back on the cause of justice. CUT TO: TITAN BEING EVIL - MONTAGE EXT. DIAMOND EXCHANGE - DAY Titan flies through the window of the building. He emerges seconds later laughing with his shirt full of booty. EXT. CITY STREET - DAY A woman screams from the window of a BURNING BUILDING. Titan flies up to her, grabs her fur coat and zooms off again, leaving the woman behind, slightly confused. EXT. OUTSIDE MARKET - DAY Titan steals a little boy's lollipop and gooses his mother. EXT. CITY STREET - DAY Dozens of people run through the streets apparently to get out of a downpour. We cut to the top of a building and see Titan ZIPPING UP HIS PANTS and laughing. INT. ABANDONED METRO CITY LIBRARY - NIGHT Master Mind paces back and forth in front of Plato and Da Vinci. PLATO I don't understand it. He seemed to have every characteristic we were looking for in a superhero. MASTER MIND Well, there's no use crying about it now, we must take action. I'm not going to play second fiddle to that crass buffoon. We must destroy Tighten. 82. PLATO It won't be easy. Uberman had a sense of decency and genuine love for the people. That was his weakness and was easily used against him. MASTER MIND Yes, but he possesses the same flaws present in Uberman's DNA - copper. It's like Benjamin Franklin always said: "If something works don't dick with it." EXT. BAR - DAY It looks like a war zone passed through here. Smashed police cars and debris lay everywhere. This seems to be the only building left untouched. INT. BAR - DAY A very tipsy Titan is sitting at the bar, looking deep into the bottom of his beer glass for answers. TITAN I can have anything I want. I'm like a god. The BARTENDER just listens as he wipes down a glass with a dirty rag. TITAN Point to any woman in this bar. I could have her in a second. He follows the bartender's gaze to THE ONLY OTHER PERSON THERE - A passed out, MIDDLE AGED HAG OF A BARFLY. TITAN (to Old Barfly) Hey, you wanna get with this? BARTENDER Buddy, what do you want? Titan carefully considers this for a moment. TITAN What do you want? That's the question, isn't it. I mean, what do you want when you can have everything? (MORE) 83. TITAN(cont'd) I suppose what I really want is to never be forgotten again. I want to do something that can never be cast aside or one-upped. I want a - what's it called? - A legacy. I want a legacy. Yeah, that's it. I like the sound that. BARTENDER I meant, what do you want to drink? TITAN Oh. EXT. BAR - LATER Titan stumbles out of the bar, carrying a large sack of money. MASTER MIND (O.S.) Your time has come to an end, Titan! He looks up to see Master Mind suddenly standing before him. TITAN What? MASTER MIND There can be only one master criminal in this city - and it's me. TITAN Really? Titan melodramatically throws up his arms. TITAN (CONT'D) I guess I should leave town then, huh? MASTER MIND I have a better idea - NOW! Two floors up Da Vinci releases a rope. A COPPER CAGE, like the one that caged Uberman, drops down on top of Titan. Titan nonchalantly surveys the cage. He walks to the bars, tries to pull them apart but can't. MASTER MIND (CONT'D) That's copper my good man. Your one weakness. (MORE) 84. MASTER MIND(cont'd) For all your amazing gifts of brawn you are no match for my intellect. Titan thinks for a moment. Suddenly, he starts to SPIN like a human top, DRILLING HIMSELF INTO THE STREET BELOW. As he disappears beneath the surface, we see a shocked look on Master Mind's face until Titan suddenly explodes out from under the street in front of him. Master Mind stares up at him, dumbfounded. Titan makes like he's going to strike him down, but stops. TITAN You know what? You're nothing but a bug. Not even worth my effort. He turns his back to Master Mind and continues down the street. Plato makes his way from the shadows to join his master. They watch Titan shrink into the distance. MASTER MIND He's not as dumb as I thought. PLATO I guess not...Funny, though. MASTER MIND What's funny? PLATO Funny Uberman didn't think of the same thing. EXT. HIGH ABOVE METRO CITY - DAY As Titan flies, he looks down at the rooftops of the city below. Suddenly, something catches his attention. HAL That's it! He stops, hovering in place as he looks down below. The buildings, which make up the heart of downtown Metro, are in a PERFECT TRIANGLE with a long strip of street leading up to it. It sorta looks like a bowling lane. 85. HAL Hello, Legacy. EXT. KINGPIN BOWLING - DAY Vinnie and his goons come running out as the hear a COMMOTION. They look up to see Titan ripping off THE GIANT BOWLING BALL from the top of the establishment. VINNIE Hey, that's my ball! INT. ROXANNE'S APARTMENT BUILDING - DAY Roxanne enters the building's elevator. Just before the door closes an ELDERLY WOMAN slides in. ELDERLY WOMAN That was a close one. Sixth floor, please. Roxanne smiles and goes to press the button. The elderly woman suddenly pulls out a SPRAY CAN, shooting a MYSTERIOUS-LOOKING MIST into Roxanne's face. She falls to the floor unconscious. INT. ROXANNE'S APARTMENT - DAY Roxanne awakens, finding herself tied to a chair in her living room. We hear NOISE from a TV in the background as she tries to adjust her vision. Slowly, the blurry figure before her becomes clear. It's Master Mind. He sits on her Lazy-Boy, reading what looks to be some kind of JOURNAL. MASTER MIND Wow, I always thought Uberman was your first superhero - but it looks like our little Roxanne dated a linebacker in college. ROXANNE That's my diary. MASTER MIND So it is. 86. ROXANNE It's personal. MASTER MIND Well, then I wouldn't leave it in your underwear drawer for just anyone to find. He throws the diary over his shoulder. ROXANNE What do you want? MASTER MIND I need your help. ROXANNE So you knock me out and tie me to a chair? MASTER MIND You're not going to like what I'm about to tell you. As she tries to shake off her headache from being knocked unconscious, Roxanne spots something on the TV. ON TELEVISION Brad Helms is huddled behind a van. BRAD HELMS It's chaos here in city square as city police - Behind him, Titan picks up a POLICE CAR and throws it at a PADDY WAGON. Both vehicles EXPLODE on impact. BACK TO SCENE ROXANNE He's really out of control. MASTER MIND Tell me about it. As if finally realizing something, Roxanne looks back at Master Mind. ROXANNE I should have known. You have something to do with this, don't you? - With Titan turning evil. 87. MASTER MIND Well, the evil thing he did by himself. My goal was to give MYSELF purpose by creating an intellectual sparring partner. ROXANNE (confused) You're talking like you made him. MASTER MIND And they call me Master Mind. ROXANNE Let me get this straight. You missed getting your ass kicked, so you made a new guy to kick your ass. That's pathetic. MASTER MIND In hindsight... Roxanne turns back to the TV to see a group of POLICE OFFICERS open fire on Titan. The bullets just deflect off his chest. ROXANNE And his powers, they're just like Uberman's. Why would he have his powers? MASTER MIND (almost ashamed) I had some left over from something. I infused him with it. ROXANNE YOU DID WHAT!? Driven by rage, she struggles to tear out of her bonds. She finally relents, giving Master Mind a look fueled by pure hatred. MASTER MIND Yeah, that's why I decided to tie you up. ROXANNE You did all this because you wanted purpose? MASTER MIND He seemed nice. 88. TELEVISION Titan is standing on top of a destroyed police car. He waves for the camera to zoom in on him. TITAN Closer. I want to show the people my real face. He pulls off his mask, revealing himself as Hal Stewart to the public for the first time. TITAN (CONT'D) Recognize me? BACK TO SCENE ROXANNE Hal Stewart. He's the guy we thought saved that woman and kid. Turned out he was just trying to save his own ass. MASTER MIND Yeah, good to know - NOW! TELEVISION Titan throws the mask over this shoulder and hops off the car. TITAN That's right, I'm really Hal Stewart. Former hero and bowling teacher at Kingpin's Bowling. BACK TO SCENE Roxanne turns to Master Mind, condescending him with her eyes. ROXANNE You picked a bowler to give super powers to? MASTER MIND It's a modest profession! TELEVISION 89. TITAN With my new found power, I've recently started to wonder what sort of legacy I should leave. Should I be a hero? I tried that once before - even saved a lady and her baby from being squashed. I was treated like a god until everyone started to shit on me - Okay, so what if I didn't "purposely" save them! He walks over and puts his hand on a large circular concrete shape just off camera. TITAN Well, I'm going to make something that can't be taken away from me. I'm going to create a permanent monument to my greatness. One that won't be so easily forgotten or erased. The camera pulls back revealing THE GIANT CONCRETE BOWLING BALL from Kingpin's. TITAN I intend to create a new category in the Guinness Book of World's Records by rolling the biggest strike in the history of bowling. He grabs the camera and points it to the DOWNTOWN BUILDINGS. We realize they are PERFECTLY ALIGNED IN BOWLING PIN FORMATION. TITAN My thanks to the city planning commission. This wouldn't have been possible without them. Titan grabs the camera so it's pointing back at him again. TITAN Tell your friends and family to tune in right here to this station at noon tomorrow. BACK TO SCENE ROXANNE My god, he's nuts. That'll destroy the whole business triangle. 90. Master Mind seems to be contemplating something - something bad. ROXANNE What? MASTER MIND My lair is in the direct path of the ball. ROXANNE Oh, real nice. Wouldn't want anything to happen to your hideout, would we? MASTER MIND You don't understand. I have certain equipment that's - that's highly unstable. ROXANNE What do you mean? MASTER MIND I sort of have a hydrogen reactor, okay? ROXANNE A HYDROGEN reactor? MASTER MIND It's experimental - only one in the world...Well, how do you think I power all my inventions? Someone like me can't pay for electricity. The bills would be outrageous. ROXANNE A REACTOR? MASTER MIND It creates 100 times the output of a nuclear one...If destroyed it could... ROXANNE - Vaporize the entire city! MASTER MIND (proudly) Pshaw...the whole eastern seaboard, actually. That little baby is amazing. I'm quite proud of it. (MORE) 91. MASTER MIND(cont'd) (off her deadpan reaction) I mean...we'd better find a way to stop him. Master Mind thinks a moment. MASTER MIND Did Uberman have a hideout? ROXANNE What? MASTER MIND A cave, a solitary fortress of some kind. C'mon, all heros have a place to hang their capes up in. Roxanne, it may be our only chance to find something, a clue, anything that could give us a fighting chance. ROXANNE It's under his house. MASTER MIND Whose house? Roxanne can hardly believe what she's telling him. ROXANNE Wayne Scott's. Master Mind shoots up out of his chair. MASTER MIND Wayne Scott? Uberman was Wayne Scott!? Wayne Scott, the wealthy philanthropist? But he disappeared - ROXANNE (interrupting) He disappeared just over two months ago when you killed him. Not only did you rid the world of a hero, you killed a kind, noble, generous man. Perhaps ashamed, the super villain hangs his head. Master Mind walks behind Roxanne and undoes her bonds. Rubbing her wrists, she watches him as he walks over to the door. 92. ROXANNE (CONT'D) Looks like you got what you always wanted. Uberman is out of the picture and Metro City is doomed. He grabs the door knob and stops, considering her words. MASTER MIND "Metro City doomed." You know, I never thought I'd say something like this, but here it goes - He slowly turns to her, CUE HEROIC MUSIC. MASTER MIND (CONT'D) Not if I have anything to say about it. EXT. WAYNE SCOTT'S MANSION - NIGHT Master Mind stands before the huge, Gothic structure in awe. MASTER MIND Such a dark place for one such as you. I wonder, underneath your noble deeds, what inner demons drove you to your endless crusade for justice? He walks to the front entrance. The double doors have been sealed shut with boards and nails. Master Mind begins to tear them off with his metal hand. INT. WAYNE SCOTT'S MANSION - NIGHT The doors opens. A beam of moonlight immediately pierces the darkness, forming an illuminated path into the heart of the manor. Master Mind enters. Covered in dust and cobwebs, the hall looks like a gigantic crypt. MASTER MIND Good lord, man. You've only been dead for two months. Master Mind walks, coming to a gigantic painted PORTRAIT OF WAYNE SCOTT. He stops to reverently admire the image of his fallen foe. 93. MASTER MIND (CONT'D) A disguise so simple, it's ingenious. No wonder I never caught on. Besides the Armani suit, there's nothing to hide the fact that this is the same person as Uberman. In the picture, he's even standing in the same cheesy, heroic pose with his fists on his hips. MASTER MIND (CONT'D) Two lives, yet in both you were an ideal. Perhaps it was you who was victorious in the end, old friend. A BONGING sound suddenly bellows through the dark halls. Master Mind comes to a grandfather clock standing next to a gigantic BOOKCASE. On the twelfth bong it falls silent. Master Mind begins to slide it across the floor until he hears a loud CLICK. The bookcase slides into the wall, REVEALING A HIDDEN PASSAGE. MASTER MIND (CONT'D) I'll miss how predictable you were. The passage way leads Master Mind to a WORKING ESCALATOR. Master Mind gets off the escalator to see a long hallway with stone walls. He begins to hear strange SOUNDS, almost like MUFFLED SCREAMS, coming from a doorway at the end of the hallway. Master Mind starts walking towards it. As he steps closer, he begins to notice a light cracking through the bottom of the door. MASTER MIND (CONT'D) Hello? Anyone here...besides..all the BIG MEN who are with me now? Nothing. MASTER MIND (CONT'D) (to himself) What's the worst you're gonna find? (MORE) 94. MASTER MIND(cont'd) The man was a boy scout, not a serial killer. He opens the door to his immediate amazement. It's some kind of screening room. A PROJECTOR shoots an image onto A DIRTY WHITE SCREEN hanging on the wall. BEER CANS litter the floor; a table in front of a ripped-up couch is covered in discarded snack goods; and a Kiss Pinball machine stands in the far corner next to a CLOSED DOOR. Master Mind turns his attention to the action on the screen. SCREEN A woman dressed in a leather DOMINATRIX OUTFIT is whipping an overweight man lying on a swing-like device with his butt sticking out. DOMINATRIX IN FILM YOU ARE A WORM! She whips him three times. The man CRIES out in pain. FAT MAN IN FILM PINEAPPLE!!! PINEAPPLE!!! Master Mind's eyes are transfixed on the disturbing imagery. The door by the pinball machine suddenly swings open. WAYNE SCOTT, dressed in raggedy sweats, steps into the room carrying a CAN OF BEER and a bowl of JIFFY-POP. Master Mind cannot believe his horrified eyes. MASTER MIND Ahhhhhh! Wayne Scott is just as startled. WAYNE SCOTT Jesus! He drop his drink and snack to the floor. The two men stare at each other as they struggle to regain their normal breathing patterns. Wayne Scott walks over to the couch, brushes off a thick layer of chip crumbs, and sits down. WAYNE SCOTT (CONT'D) What the hell are you doing here? 95. MASTER MIND I might just ask you the same question. I had thought I incinerated you. WAYNE SCOTT You scared the bejesus out of me. How'd you figure out I was still alive? Wait, how do you know my identity!? MASTER MIND Roxanne told me. As for your ruse, I forgot to line the bottom of the copper cage - Somebody pointed that out to me recently. Figured if they could do it, so could you. But one thing I couldn't figure out - WAYNE SCOTT The skeleton? Something I "borrowed" from a medical school a few months before. MASTER MIND A few months? How long had you been planning this? WAYNE SCOTT I always planned to retire - eventually. I mean, come on, you can't do this sort of thing in your fifties. You'd just look ridiculous. The pieces of the puzzle appear to be coming together in Master Mind's head. MASTER MIND I see it all so clearly now. INT. MASTER MIND'S HYDROFOIL - FLASHBACK Master Mind and his minions cover their eyes as the observatory explodes. MASTER MIND (CONT'D - V.O.) You must have done it just seconds before the observatory exploded. 96. INT. OBSERVATORY - FLASHBACK Similar to what Titan did, Uberman bores out from under the cage. MASTER MIND (CONT'D - V.O.) You bore out from under the cage. Then, using your Uber-Speed, - EXT. OBSERVATORY - FLASHBACK Running in a blur-like haze, Uberman screeches to a halt in front of some bushes. MASTER MIND (CONT'D - V.O.) - you made your way to safety, where you had the skeleton safely hidden away somewhere. EXT OBSERVATORY - SKY - DAY Uberman soars high above the clouds. He looks down at the observatory, which is a mere speck in the distance. MASTER MIND (CONT'D - V.O) (CONT'D) Then you must have flown to a safe distance and waited for the explosion, then... Just as the observatory explodes Uberman aims and throws the SKELETON like a javelin. It soars through the air like a missile, tearing through the flames of the explosion, and crashing right into the windshield of Master Mind's hydrofoil. END OF FLASHBACK Wayne stares at Master Mind, clearly impressed. WAYNE Man, you ARE smart. MASTER MIND But why fake your death? Why go through all of it? You could have just quit. WAYNE SCOTT But the responsibility would still be there. (MORE) 97. WAYNE SCOTT(cont'd) A cop can retire and stop handing out speeding tickets - but people expect more from superheroes. I tell you, a volcano couldn't erupt in Zimbabwe without everyone expecting me to do something about it. I figured, out of sight, out of mind. MASTER MIND And Wayne Scott? Why did he have to disappear? WAYNE SCOTT Both of my lives have so much baggage. It's time for new baggage, you know? Master Mind's is absolutely flabbergasted. MASTER MIND I just can't believe it. This whole time you've been in hiding while a force of great evil is tearing your city apart? Wayne rises to his feet, waving his hands for Master Mind to say no more. WAYNE SCOTT I don't want to hear about it. That's why I don't have a television in here to remind me of all the things I SHOULD be doing. Hell, I could get a wife to do that. MASTER MIND There's a demented supervillain out there about to destroy our - I mean, your city. Wayne shrugs indifferently. MASTER MIND You're really going to do nothing? WAYNE SCOTT Good and evil have a way of balancing themselves out. If this guy is as bad as you say, somebody will rise up to fight him. It's just the order of things. You found me, didn't you? 98. Wayne puts a condescending hand on Master Mind's shoulder. WAYNE SCOTT (CONT'D) I know it's hard, but you'll find someone else someday. He then starts walking to the door. MASTER MIND You're the only one who can stop him. Wayne turns around. WAYNE SCOTT Couldn't if I wanted to. Gotta a plane to catch. MASTER MIND A plane? WAYNE SCOTT Going to Barbados for a little change in climate. Now, if you'll excuse me, I got to go pack. He reads the still defeated look on Master Mind's face. WAYNE SCOTT (CONT'D) You were a good foe. I'm sorry if I've let you down. If it makes a difference, you were the best foe a hero could ask for. MASTER MIND Not smart enough to come up with a full-proof trap. WAYNE SCOTT Well, you did almost have me when you figured out my weakness was copper. Now that made me sweat a little. Took me way too long to drill out from under that cage. MASTER MIND I got lucky. WAYNE SCOTT Anyway, it's a good thing for my sake that I could always count on you for an out. 99. MASTER MIND (suddenly confused) What do you mean? WAYNE SCOTT C'mon, we always threw each other a couple of bones. You would always leave me an out in one of your `full-proof' traps, and I'd never had you incarcerated at a penitentiary that you couldn't eventually escape from. It kept our little game going. Master Mind seems deflated. MASTER MIND Game? - Was that all this ever was to you? You know, I was trying my best every time I fought you. Those `outs' as you call them were unintentional. WAYNE SCOTT Oh. MASTER MIND I guess I was never really a match for you, was I? Wayne shrugs. MASTER MIND (CONT'D) (thoughtfully) Then how can I expect to be one for Titan? A beaten man, Master Mind heads for the door, but stops and turns around. MASTER MIND (CONT'D) What about Roxanne? Wayne unleashes an exhausted sigh. WAYNE SCOTT I think we both got what we wanted out of our relationship. She got a career out of me, and I got plenty of other things out of her. But I'm ready to move on to greener pastures. 100. Master Mind's steel hand clinches into a fist at his side. Wayne's oblivious to this. MASTER MIND I guess I wasn't the villain I thought I was, and you...you weren't the hero I thought you were. He turns to make his exit when he suddenly sees ROXANNE STANDING IN THE DOOR FRAME. Wayne is almost at a loss for words. WAYNE SCOTT Roxanne! How long have you been... ROXANNE Long enough. Roxanne looks at Master Mind. ROXANNE (CONT'D) Don't you have something else you can go do? Master Mind leaves Roxanne and Wayne facing each other in silence. EXT. ANOTHER BAR - DAY Titan emerges with Brad and Frank. He's holding a BEER CAN and a bag of PORK RINDS. TITAN Alright, I want this whole thing to look ESPN professional, understand? A distant MECHANIZED RUMBLE can be heard. The noise rises, signaling the approach of something powerful. Titan and his crew walk out to the center of the plaza as the sound becomes almost deafening. A TANK TRACK as it moves over the street. We PULL BACK to see a whole line of TANKS rolling along the street. PLAZA From the five streets branching off the plaza, a dozen tanks roll toward Titan. 101. Titan turns to Brad and Frank. TITAN (CONT'D) You guys are about to get some good footage. I might need a little room, though. Brad and Frank look at each other and run to take cover behind a nearby building. Meanwhile, Titan nonchalantly sips from his beer as the tanks begin to surround them. FEEDBACK belts out of one of the tank's loudspeaker's, causing Titan to do a mock wince. TANK LOUDSPEAKER Titan, we have orders from the city of Metro to take you into custody. If you do not give your self up willingly, we will be forced to open fire. There's a long pause as no one says anything. TANK LOUDSPEAKER What is your answer? Titan takes a sip of his beverage and UNLEASHES A GIGANTIC BURP - The shockwave of which sends several of the tanks flying into a nearby building. Two of the remaining tanks close in on the villain. Both have him dead to rights at point-blank range with their massive guns. Titan sets down his beer, then calmly plugs a fist into each barrel. They FIRE. The FORCE OF THE BLAST SENDS THEM BOTH FLYING IN OPPOSITE DIRECTIONS where they CRASH into nearby buildings. Titan bends down and pick his beet back up. TITAN (to beer) Miss me? Titan is suddenly bombarded by a massive barrage of machine- gun fire. The force sends him flying into the windshield of a nearby car. 102. He looks up to see an APACHE ASSAULT COPTER. It's nose- mounted GATLING-GUN is turning toward him. Titan gets up to his feet and looks down at his beer can. The bottom of it was blown apart in the blast. TITAN (CONT'D) Didn't mean to get you involved in all of this. He stared daggers up at the helicopter pilot just as the gun gets a bead on him. TITAN (CONT'D) Hey, man! You killed my suds! Titan throws the can up and slaps it with the palm of his hand. It flies with so much force it knocks the helicopter blade clean off. The rest of the Apache crashes to the street like a car dropped off a building. TITAN (CONT'D) That's one was for you, beer. Titan salutes the wreckage and walks away to find Brad and Frank still hiding behind the building. TITAN Guys, please tell me you got that last bit. BRAD HELMS Huh? TITAN You're kidding me. I give you my sexiest moves and you mean to tell me it was for nothing? BRAD HELMS We were afraid something might hit us. TITAN Looks like I've given the story of the century to the wrong man. He thinks about this for a moment, then it hits him. 103. TITAN Wait. What about that other reporter. Blond. Not so lumpy on the topper half, but killer legs. BRAD HELMS Roxanne. You want Roxanne. She's a much better reporter than I am. You want her. TITAN Where can I find her. FRANK We're actually not supposed to give out that sort of information. BRAD HELMS 1314 Mockingbird Lane. I believe she lives in a penthouse. TITAN You've been very helpful. He tosses Brad over his shoulder like a discarded ice cream cone. In the faint distance we see him splash down in the middle of the Metro City river. INT. ABANDONED METRO CITY LIBRARY - DAY Master Mind, pacing anxiously as Plato and Da Vinci pack boxes. Obviously Master Mind is going on the lamb. MASTER MIND Hurry, we must be on our way as soon as possible. DA VINCI Master, why must we flee? MASTER MIND I told you, Titan is too powerful. If he's set on destroying us, there's precious little we could do about it. DA VINCI Where are we going? 104. MASTER MIND To another city, someplace with a shitload of superheroes to fight. We'll start over, we'll go back to doing what we do best. PLATO With our tails between our legs? The old Master Mind would never have let this comment slip by, but as we have seen, he's not the same man. MASTER MIND Plato, do you have a better plan?! Master Mind's cell phone rings. He turns in shame from his men and answers it. MASTER MIND (CONT'D) Hello...Roxanne? INT. ROXANNE'S APARTMENT Roxanne paces back and forth on the phone. ROXANNE What are you going to do about Tighten? INTERCUT between Master Mind and Roxanne on phone. MASTER MIND Right now I'm packing, later I'll have a snack on the train. ROXANNE You're running away? MASTER MIND In a word - yes. ROXANNE You created this monster... MASTER MIND I didn't create this - the god's of irony did and I am eating the crow I so richly deserve. ROXANNE There's no time for self pity. 105. MASTER MIND I'll make the time. Roxanne can't believe what she's hearing. MASTER MIND (CONT'D) You can leave with us. You'll be safe. ROXANNE I'm not going anywhere. MASTER MIND Will you listen to me, no one can stop him. ROXANNE You have to try. The city needs your help. MASTER MIND I'm afraid you have an inflated opinion of me. ROXANNE What the hell's happened to you? The Master Mind I knew would never have run from a fight even though he knew deep in his heart that he didn't have a chance in hell of winning it. It was your best quality. You need to be that man right now...I... MASTER MIND What? ROXANNE (heart felt) I believe in you. Master Mind is taken aback, in a good way. But he catches himself before the words swell his heart. MASTER MIND Sweet words, but that man is dead. Please, Roxanne, just come with me. ROXANNE No...I guess you are a coward after all. Suddenly, there's a loud crash. 106. Roxanne looks up to see a huge hunk of her ceiling has been completely ripped off. Titan is flying above, holding the debris as casually as if it were a paper plate at a barbecue. He looks down at her and smiles. TITAN Man, have I got a story for you. Master Mind can hears Titan's familiar laugh from his side of the line. MASTER MIND Roxanne? Roxanne? EXT. KINGPIN BOWLING - DAY Titan is standing in front of the bowling alley, trying to decide on an appropriate pose for the occasion. TITAN What pose would be best? The corny folded arms thing? He demonstrates, arching his chin proudly in the air. TITAN Or maybe on the hips, like this. It's the classic Superman pose, only not as masculine. TITAN No, makes me look like a flamer pirate. As Titan starts to fix his hair in the window, Frank pretends to fix the lens on his camera as he speaks to Roxanne. FRANK (whispering) Shouldn't we be making a run for it right about now? ROXANNE (whispering) The guy can outrun bullets. I don't think either one of us is in that kind of shape. TITAN She's right, Frank. 107. Frank looks up, stunned that Titan could have possibly heard him. TITAN Also got super hearing. I promise not to keep the both of you long, but you'll thank me when this is all over. Frank and Roxanne exchange helpless expressions. INT. ABANDONED METRO CITY LIBRARY - DAY Master Mind reverently stares up at the painted portrait of his father. MASTER MIND Dad, it's me... (he looks around to make sure no one can hear) ...Bubsy. I know we haven't talked in a while, and I'm sorry. It's been a little crazy trying to live up to a legacy. The painting's menacing stare seems to reach into his very soul. MASTER MIND Anyway...You raised me to be the worst that I could possibly be. And I've tried to live up to that as best as I could - even dropping out of dentistry school like you wanted me to. But I'm about to do something now that would really piss you off. I'm going to go against everything you ever taught me. I hope...I hope that maybe you'll look down at what I'm about to do as not so much a good deed, but more like the outright defiance of a hateful and ungrateful, son. If you could do that, then maybe - in your own little way - you could - for probably the first time - find a reason to be proud of me. He looks back up at the picture. Is it our imagination, or does the painting's stare suddenly seem even angrier? 108. MASTER MIND Well...either way, you're probably going to see me real soon. (calling over his shoulder) Men? Plato and Da Vinci suddenly stop what they're doing and look up at him. PLATO AND DA VINCI Yes Sir? MASTER MIND Stop packing. Our work is not finished here. PLATO AND DA VINCI YES SIR! TELEVISION A news report shows an aerial shot of Titan setting the giant ball down in the middle of a vacant city street. REPORTER We interrupt your regular afternoon programming to show you live footage of a potential dangerous situation in downtown Metro. The former hero knows as Titan is placing what appears to be a giant ball... INT. ABANDONED METRO CITY LIBRARY - CONTINUOUS Da Vinci stops in front of a television set, seeing the news report in progress. REPORTER Hold on...It appears our own Roxanne Ritchi is somehow at the scene. We now go to her with a live report. DA VINCI Sir, I think you should see this! CUT TO: 109. EXT. CITY STREET - DAY Roxanne is standing in front of a camera with a mike in her hand. ROXANNE I'm here with the cause of the destruction in Metro City. He has kidnapped me and a cameraman to chronicle what he refers to as the creation of a monument to his invincibility and overall "Asskickiness." He will use this giant concrete bowling ball to play the largest game of bowling ever using the buildings of downtown Metro City as his pins. Titan suddenly steps into the shot. TITAN And I'm going for the biggest strike ever. He leans into the camera. TITAN And you, Metro City, have a ringside seat as I cement my name in the anal of history. ROXANNE Annals. TITAN What? ROXANNE Nevermind. EXT. CITY STREET - MOMENTS LATER Titan holds up the massive bowling ball, lining up his shot. TITAN (in quiet professional bowler announcer voice) Like Tiger before him, a young savior has come to raise a sport from the ashes. Rookie Hal Stewart, a young man with a dream, realizing that dream here today, folks. (MORE) 110. TITAN(cont'd) One might click there heels and say "There's no place like home" upon finding themselves in such a fantasy. Well, Hal looks very much at home right were he is - with a ball in hand and glory in his sights. INT. METRO CITY LIBRARY - CONTINUOUS In the bowels of Master Mind's hideout, the HYDROGEN REACTOR glows and HUMS MENACINGLY. BACK TO SCENE Roxanne just stand helpless as Frank films away. ROXANNE Hal, I know everyone treated you like shit, but you don't have to do this. TITAN You're right. I don't HAVE to do anything. Isn't that cool? Titan lines up his shot. TITAN Here's one for the record books! Titan flies a few feet and rolls the ball down the main street. ROXANNE Her face is utter horror as she watches the inevitable destruction of Metro City. As the ball rolls - it demolishes everything in it's wake; cars, street lamps - windows shatter as the giant concrete sphere brushes along side buildings. TITAN He smiles in anticipation and uses "body English" to direct the ball. GIANT BOWLING BALL POV It's nearly halfway to its target. ROXANNE 111. She closes her eyes. Titan's smile fades. He looks around as if he hears something we don't. About two hundred feet in front of the first building a GIANT SPIDER WEB flies across the path of the ball, creating a defensive barrier. An enormous letter "M" is etched in the web's center. TITAN (CONT'D) What the...? The ball breaks through the web, but it's speed is greatly reduced. FRANK Look, what's that flying in the air? We suddenly see MASTER MIND FLYING OVER THE ROLLING BALL IN A JET PACK. He quickly pulls out his goo gun and starts laying down a path of sticky plasm to stop the destructive sphere's path. MASTER MIND C'mon, slow down Master Mind looks down to see the meter of the gun close to empty. MASTER MIND C'mon. The ball slows drastically then starts rolling to the side. It heads off an embankment and rolls harmlessly into a CANAL. MASTER MIND Gutterball! TITAN He's furious to say the least. TITAN YOU! Master Mind gives him a mocking grin. MASTER MIND Bowling? What other trailer park sports can you play? 112. TITAN You are becoming a real pain in my ass. I should have done this a long time ago. Titan lunges at his tormentor. Master Mind hits the BOOSTER on his jet pack and heads back toward the other side of the city with Titan in hot pursuit. MASTER MIND (CONT'D) (into walkie talkie) Plato, Da Vinci. Secure Roxanne, he's falling for it. ELSEWHERE A flustered Titan lands. He begins searching the city streets, but Master Mind is nowhere in sight. He turns upon hearing an EEKING sound to his left. Sitting on the ground is a CHIMPANZEE wearing a strange collar. It smiles at him. TITAN What the hell? From behind, Titan is immediately set upon by five more RADIO CONTROLLED APES. TITAN (CONT'D) GODAMNIT! The critters bite hop and hit Titan. As soon as he throws one off two more jump him. Titan breaks free and with his mighty breath blows them across the street into a fruit stand. With Titan out of their sight they begin to attack the fruit. MASTER MIND He's a block away frantically hitting his remote. MASTER MIND Shit! Stupid monkeys and their fruit. Titan flies away from the mad monkeys and lands to find Master Mind sitting on the ground wrapped in a long cape with only his head sticking out. 113. TITAN (CONT'D) No more games. Titan FIRES HIS LASER VISION AT MASTER MIND's CHEST. Master Mind pulls the cloak away to reveal a FIRE HYDRANT. Titan's EYE LASERS burn through the hydrant releasing a high pressure stream of water. Master Mind uses the last remote which dumps two tons of CEMENT mix into the truck. The crowd, police and news crews move in closer when Titan doesn't emerge. Master Mind drops his last remote and walks toward the truck cautiously. MASTER MIND Could it really be that easy-- - BOOM - The back of the truck explodes, throwing dust and concrete everywhere. When the dust clears we see and enraged Titan. MASTER MIND (CONT'D) Didn't think so. As the villain walks toward him, he pulls back his fist to give Master Mind the killing blow. TITAN If you don't mind, I'm going to punch trough your face now. Preparing himself for the end, Master Mind shuts his eyes as a SUDDEN GUST OF WIND BEGINS TO PICK UP. AS Titan goes to strike, a BLURRY FIGURE RUNS IN AND SNATCHES MASTER MIND OUT OF THE AWAY. Stunned, Master Mind begins to feel around his body as if to make sure everything's still in place. MASTER MIND I'm alive. He turns to see UBERMAN standing next to him. MASTER MIND Uberman? 114. The terrified bystanders start to notice the figure standing next to Master Mind. BYSTANDER 1 It's Uberman! BYSTANDER 2 Uberman's alive! BYSTANDER 3 We're saved! As the CROWD CHEERS, A confused Master Mind turns to Metro City's newly resurrected champion. MASTER MIND I thought. UBERMAN So did I. He puts a hand on Master Mind's shoulder. UBERMAN Thank you, old enemy. MASTER MIND For what? UBERMAN Showing me the error of my ways, Showing me I'm meant to be this city's savior, showing me that, while we can try, there is no running away from our true destiny. With that, UBERMAN IS STRICKEN BY A LASER BLAST, INSTANTLY TURNING HIM INTO A CHARRED HUMAN SKELETON. Master Mind turns to see Titan smiling with his STILL SMOKING EYES. TITAN Oh...Did I interrupt something? Master Mind turns to run, but, suddenly Titan is before him. TITAN Where you going, buddy? Titan grabs Master Mind by the collar and throws him across the street into a parked car. 115. TITAN (CONT'D) Welcome to Paintown. Population: you. Master Mind manages to stand on shaky legs. He seems in a daze, unable to move. Titan flies up in the air. TITAN (CONT'D) Time to finish this. With his fist front and center, Titan speeds toward Master Mind. He's like a human torpedo, coming in for the killing blow. Master Mind comes to his senses and puts up his hands. MASTER MIND WAIT!!! Titan screeches to a halt and stops just in front of him like an old Warner Bros cartoon. TITAN What? MASTER MIND Quick joke - What's the capital of Thailand? TITAN Huh - I don't know. MASTER MIND It's bang cock! In a sudden surge of strength, MASTER MIND PUNCHES TITAN IN THE GROIN. The once mighty man instantly drops to his knees, searching, with tears in his eyes, for the proper word to express the pain suddenly surging through his member. TITAN (CONT'D) Ow. Baffled, he looks up at Master Mind's hand and sees his gauntlet is now made ENTIRELY OUT OF COPPER. MASTER MIND So, I guess pennies are good for something. 116. He punches Titan in the face, knocking him out cold. Master Mind looks down on Titan with more than a little pride. Suddenly he hears something behind him. He spins to see the crowd making a strange noise - APPLAUSE. Roxanne comes up to him. The crowd starts to go wild and cheers for Master Mind. He's not sure what to make of it. ROXANNE Pretty strange, huh? MASTER MIND They're cheering for me. ROXANNE You saved them. You saved everybody. How's it feel? Master Mind looks at the smiles all around him. He begins to well up a little. MASTER MIND It's a...it's nice, you know? I usually don't get a lot of feedback. (whispering) But I also kind of caused all this. What happens when they find that out I was the cause of some of this? Roxanne looks at the cheering crowd, then back at Master Mind. ROXANNE What they don't know won't hurt them. MASTER MIND I guess that is all in the past. ROXANNE You're the hero. MASTER MIND I don't think I'd go that far...I mean I just...er... ROXANNE Master Mind? 117. MASTER MIND Yes? ROXANNE Stop talking. She kisses him. The crowd erupts in a cheer. TELEVISION The channel 7 he channel 7 logo zooms in followed by the title "Eye on Metro City." A picture of Master Mind smiling appears on the screen behind her. SAMANTHA SUMMERS Who's bad? Well, not Master Mind. It seems the former villain has done a career 180 after defeating Tighten and saving Metro City from certain enslavement. And here he is getting a full pardon by Metro City's Mayor, Steve Dent. Cut to ceremony on capital steps. The MAYOR is shaking Master Mind's metal gauntlet when it suddenly STARTS TO CRUSH HIS HAND. MAYOR Ahhh! Secret service men quickly start to draw their weapons and take aim at Master Mind. Realizing what's happening, he quickly lets the mayor's hand go and puts his arms in the air. MASTER MIND Sorry - Metal hand. Force of habit. He elbows the mayor. MASTER MIND (CONT'D) We're okay, right? Wincing, the mayor signals the men to put their guns down. WE CUT to video of Titan behind bars in a regular prison. 118. BRAD HELMS And what about Tighten? Is there a prison in existence that can hold this super powered menace? Well, the answer we found is no. A man in a white lab coat stands in front of Titan's cell just out of reach. PRISON SCIENTIST Of course normally he could break out of there anytime, but as you can see we've taken some special precautions. The news camera pans over see Titan in his cell wearing a copper JOCK STRAP with electrical cables hooked to it. Back to Samantha at the desk. BRAD HELMS What is a Hero? It seems never has that question needed to be asked more than it does tonight. We go to our very own Roxanne Ritchi, making her triumphant return to our news desk for the answer. Brad turns. The camera pans over to Roxanne who we now see has been sitting beside him. ROXANNE What is a hero? Well, there are many different kinds. There are those who hear a call, like the policeman or doctor, then there's the kind the public creates in their search for meaning and hope. Then, there are those who have the courage to change. DARK ALLEY - NIGHT A woman is being chased by two large thugs. They're gaining on her. She comes to a brick wall - a dead end. The thugs laugh. THUG #1 Hey, gimme that purse? 119. MASTER MIND (O.S) I don't think it would go with your outfit. The thugs turn around to see Master Mind, standing with his arms folded across his chest. THUG #2 It's Master Mind! Thug #1 draws a knife. THUG #1 So? It's not like he has any superpowers. Thug #1 puts his fingers to his mouth and whistles. Suddenly two more Thugs appear behind Master Mind. MASTER MIND I'm gonna give you a chance to surrender. THUG #1 Four against one. For a Master Mind, you're really bad at math. Master Mind throws a hand signal up in the air. Suddenly a giant robotic foot crashes down on the two men behind him. Thug #1 and Thug #2 drop their knives and raise their hands in the air. Master Mind looks up and waves. MASTER MIND Way to take out those two goons, guys! We see Da Vinci and Plato at the wheel of a gigantic robot. DA VINCI What two goons? The giant robot lifts its foot to check the bottom of it's sole. It KNOCKS OVER WATER TOWER in the process. The woman looks at Master Mind, horrified. 120. MASTER MIND (apologetically) Sorry, we're new at this. THE END
ManojKumarPatnaik / Major Project ListA list of practical projects that anyone can solve in any programming language (See solutions). These projects are divided into multiple categories, and each category has its own folder. To get started, simply fork this repo. CONTRIBUTING See ways of contributing to this repo. You can contribute solutions (will be published in this repo) to existing problems, add new projects, or remove existing ones. Make sure you follow all instructions properly. Solutions You can find implementations of these projects in many other languages by other users in this repo. Credits Problems are motivated by the ones shared at: Martyr2’s Mega Project List Rosetta Code Table of Contents Numbers Classic Algorithms Graph Data Structures Text Networking Classes Threading Web Files Databases Graphics and Multimedia Security Numbers Find PI to the Nth Digit - Enter a number and have the program generate PI up to that many decimal places. Keep a limit to how far the program will go. Find e to the Nth Digit - Just like the previous problem, but with e instead of PI. Enter a number and have the program generate e up to that many decimal places. Keep a limit to how far the program will go. Fibonacci Sequence - Enter a number and have the program generate the Fibonacci sequence to that number or to the Nth number. Prime Factorization - Have the user enter a number and find all Prime Factors (if there are any) and display them. Next Prime Number - Have the program find prime numbers until the user chooses to stop asking for the next one. Find Cost of Tile to Cover W x H Floor - Calculate the total cost of the tile it would take to cover a floor plan of width and height, using a cost entered by the user. Mortgage Calculator - Calculate the monthly payments of a fixed-term mortgage over given Nth terms at a given interest rate. Also, figure out how long it will take the user to pay back the loan. For added complexity, add an option for users to select the compounding interval (Monthly, Weekly, Daily, Continually). Change Return Program - The user enters a cost and then the amount of money given. The program will figure out the change and the number of quarters, dimes, nickels, pennies needed for the change. Binary to Decimal and Back Converter - Develop a converter to convert a decimal number to binary or a binary number to its decimal equivalent. Calculator - A simple calculator to do basic operators. Make it a scientific calculator for added complexity. Unit Converter (temp, currency, volume, mass, and more) - Converts various units between one another. The user enters the type of unit being entered, the type of unit they want to convert to, and then the value. The program will then make the conversion. Alarm Clock - A simple clock where it plays a sound after X number of minutes/seconds or at a particular time. Distance Between Two Cities - Calculates the distance between two cities and allows the user to specify a unit of distance. This program may require finding coordinates for the cities like latitude and longitude. Credit Card Validator - Takes in a credit card number from a common credit card vendor (Visa, MasterCard, American Express, Discoverer) and validates it to make sure that it is a valid number (look into how credit cards use a checksum). Tax Calculator - Asks the user to enter a cost and either a country or state tax. It then returns the tax plus the total cost with tax. Factorial Finder - The Factorial of a positive integer, n, is defined as the product of the sequence n, n-1, n-2, ...1, and the factorial of zero, 0, is defined as being 1. Solve this using both loops and recursion. Complex Number Algebra - Show addition, multiplication, negation, and inversion of complex numbers in separate functions. (Subtraction and division operations can be made with pairs of these operations.) Print the results for each operation tested. Happy Numbers - A happy number is defined by the following process. Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers, while those that do not end in 1 are unhappy numbers. Display an example of your output here. Find the first 8 happy numbers. Number Names - Show how to spell out a number in English. You can use a preexisting implementation or roll your own, but you should support inputs up to at least one million (or the maximum value of your language's default bounded integer type if that's less). Optional: Support for inputs other than positive integers (like zero, negative integers, and floating-point numbers). Coin Flip Simulation - Write some code that simulates flipping a single coin however many times the user decides. The code should record the outcomes and count the number of tails and heads. Limit Calculator - Ask the user to enter f(x) and the limit value, then return the value of the limit statement Optional: Make the calculator capable of supporting infinite limits. Fast Exponentiation - Ask the user to enter 2 integers a and b and output a^b (i.e. pow(a,b)) in O(LG n) time complexity. Classic Algorithms Collatz Conjecture - Start with a number n > 1. Find the number of steps it takes to reach one using the following process: If n is even, divide it by 2. If n is odd, multiply it by 3 and add 1. Sorting - Implement two types of sorting algorithms: Merge sort and bubble sort. Closest pair problem - The closest pair of points problem or closest pair problem is a problem of computational geometry: given n points in metric space, find a pair of points with the smallest distance between them. Sieve of Eratosthenes - The sieve of Eratosthenes is one of the most efficient ways to find all of the smaller primes (below 10 million or so). Graph Graph from links - Create a program that will create a graph or network from a series of links. Eulerian Path - Create a program that will take as an input a graph and output either an Eulerian path or an Eulerian cycle, or state that it is not possible. An Eulerian path starts at one node and traverses every edge of a graph through every node and finishes at another node. An Eulerian cycle is an eulerian Path that starts and finishes at the same node. Connected Graph - Create a program that takes a graph as an input and outputs whether every node is connected or not. Dijkstra’s Algorithm - Create a program that finds the shortest path through a graph using its edges. Minimum Spanning Tree - Create a program that takes a connected, undirected graph with weights and outputs the minimum spanning tree of the graph i.e., a subgraph that is a tree, contains all the vertices, and the sum of its weights is the least possible. Data Structures Inverted index - An Inverted Index is a data structure used to create full-text search. Given a set of text files, implement a program to create an inverted index. Also, create a user interface to do a search using that inverted index which returns a list of files that contain the query term/terms. The search index can be in memory. Text Fizz Buzz - Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”. Reverse a String - Enter a string and the program will reverse it and print it out. Pig Latin - Pig Latin is a game of alterations played in the English language game. To create the Pig Latin form of an English word the initial consonant sound is transposed to the end of the word and an ay is affixed (Ex.: "banana" would yield anana-bay). Read Wikipedia for more information on rules. Count Vowels - Enter a string and the program counts the number of vowels in the text. For added complexity have it report a sum of each vowel found. Check if Palindrome - Checks if the string entered by the user is a palindrome. That is that it reads the same forwards as backward like “racecar” Count Words in a String - Counts the number of individual words in a string. For added complexity read these strings in from a text file and generate a summary. Text Editor - Notepad-style application that can open, edit, and save text documents. Optional: Add syntax highlighting and other features. RSS Feed Creator - Given a link to RSS/Atom Feed, get all posts and display them. Quote Tracker (market symbols etc) - A program that can go out and check the current value of stocks for a list of symbols entered by the user. The user can set how often the stocks are checked. For CLI, show whether the stock has moved up or down. Optional: If GUI, the program can show green up and red down arrows to show which direction the stock value has moved. Guestbook / Journal - A simple application that allows people to add comments or write journal entries. It can allow comments or not and timestamps for all entries. Could also be made into a shoutbox. Optional: Deploy it on Google App Engine or Heroku or any other PaaS (if possible, of course). Vigenere / Vernam / Ceasar Ciphers - Functions for encrypting and decrypting data messages. Then send them to a friend. Regex Query Tool - A tool that allows the user to enter a text string and then in a separate control enter a regex pattern. It will run the regular expression against the source text and return any matches or flag errors in the regular expression. Networking FTP Program - A file transfer program that can transfer files back and forth from a remote web sever. Bandwidth Monitor - A small utility program that tracks how much data you have uploaded and downloaded from the net during the course of your current online session. See if you can find out what periods of the day you use more and less and generate a report or graph that shows it. Port Scanner - Enter an IP address and a port range where the program will then attempt to find open ports on the given computer by connecting to each of them. On any successful connections mark the port as open. Mail Checker (POP3 / IMAP) - The user enters various account information include web server and IP, protocol type (POP3 or IMAP), and the application will check for email at a given interval. Country from IP Lookup - Enter an IP address and find the country that IP is registered in. Optional: Find the Ip automatically. Whois Search Tool - Enter an IP or host address and have it look it up through whois and return the results to you. Site Checker with Time Scheduling - An application that attempts to connect to a website or server every so many minute or a given time and check if it is up. If it is down, it will notify you by email or by posting a notice on the screen. Classes Product Inventory Project - Create an application that manages an inventory of products. Create a product class that has a price, id, and quantity on hand. Then create an inventory class that keeps track of various products and can sum up the inventory value. Airline / Hotel Reservation System - Create a reservation system that books airline seats or hotel rooms. It charges various rates for particular sections of the plane or hotel. For example, first class is going to cost more than a coach. Hotel rooms have penthouse suites which cost more. Keep track of when rooms will be available and can be scheduled. Company Manager - Create a hierarchy of classes - abstract class Employee and subclasses HourlyEmployee, SalariedEmployee, Manager, and Executive. Everyone's pay is calculated differently, research a bit about it. After you've established an employee hierarchy, create a Company class that allows you to manage the employees. You should be able to hire, fire, and raise employees. Bank Account Manager - Create a class called Account which will be an abstract class for three other classes called CheckingAccount, SavingsAccount, and BusinessAccount. Manage credits and debits from these accounts through an ATM-style program. Patient / Doctor Scheduler - Create a patient class and a doctor class. Have a doctor that can handle multiple patients and set up a scheduling program where a doctor can only handle 16 patients during an 8 hr workday. Recipe Creator and Manager - Create a recipe class with ingredients and put them in a recipe manager program that organizes them into categories like desserts, main courses, or by ingredients like chicken, beef, soups, pies, etc. Image Gallery - Create an image abstract class and then a class that inherits from it for each image type. Put them in a program that displays them in a gallery-style format for viewing. Shape Area and Perimeter Classes - Create an abstract class called Shape and then inherit from it other shapes like diamond, rectangle, circle, triangle, etc. Then have each class override the area and perimeter functionality to handle each shape type. Flower Shop Ordering To Go - Create a flower shop application that deals in flower objects and use those flower objects in a bouquet object which can then be sold. Keep track of the number of objects and when you may need to order more. Family Tree Creator - Create a class called Person which will have a name, when they were born, and when (and if) they died. Allow the user to create these Person classes and put them into a family tree structure. Print out the tree to the screen. Threading Create A Progress Bar for Downloads - Create a progress bar for applications that can keep track of a download in progress. The progress bar will be on a separate thread and will communicate with the main thread using delegates. Bulk Thumbnail Creator - Picture processing can take a bit of time for some transformations. Especially if the image is large. Create an image program that can take hundreds of images and converts them to a specified size in the background thread while you do other things. For added complexity, have one thread handling re-sizing, have another bulk renaming of thumbnails, etc. Web Page Scraper - Create an application that connects to a site and pulls out all links, or images, and saves them to a list. Optional: Organize the indexed content and don’t allow duplicates. Have it put the results into an easily searchable index file. Online White Board - Create an application that allows you to draw pictures, write notes and use various colors to flesh out ideas for projects. Optional: Add a feature to invite friends to collaborate on a whiteboard online. Get Atomic Time from Internet Clock - This program will get the true atomic time from an atomic time clock on the Internet. Use any one of the atomic clocks returned by a simple Google search. Fetch Current Weather - Get the current weather for a given zip/postal code. Optional: Try locating the user automatically. Scheduled Auto Login and Action - Make an application that logs into a given site on a schedule and invokes a certain action and then logs out. This can be useful for checking webmail, posting regular content, or getting info for other applications and saving it to your computer. E-Card Generator - Make a site that allows people to generate their own little e-cards and send them to other people. Do not use Flash. Use a picture library and perhaps insightful mottos or quotes. Content Management System - Create a content management system (CMS) like Joomla, Drupal, PHP Nuke, etc. Start small. Optional: Allow for the addition of modules/addons. Web Board (Forum) - Create a forum for you and your buddies to post, administer and share thoughts and ideas. CAPTCHA Maker - Ever see those images with letters numbers when you signup for a service and then ask you to enter what you see? It keeps web bots from automatically signing up and spamming. Try creating one yourself for online forms. Files Quiz Maker - Make an application that takes various questions from a file, picked randomly, and puts together a quiz for students. Each quiz can be different and then reads a key to grade the quizzes. Sort Excel/CSV File Utility - Reads a file of records, sorts them, and then writes them back to the file. Allow the user to choose various sort style and sorting based on a particular field. Create Zip File Maker - The user enters various files from different directories and the program zips them up into a zip file. Optional: Apply actual compression to the files. Start with Huffman Algorithm. PDF Generator - An application that can read in a text file, HTML file, or some other file and generates a PDF file out of it. Great for a web-based service where the user uploads the file and the program returns a PDF of the file. Optional: Deploy on GAE or Heroku if possible. Mp3 Tagger - Modify and add ID3v1 tags to MP3 files. See if you can also add in the album art into the MP3 file’s header as well as other ID3v2 tags. Code Snippet Manager - Another utility program that allows coders to put in functions, classes, or other tidbits to save for use later. Organized by the type of snippet or language the coder can quickly lookup code. Optional: For extra practice try adding syntax highlighting based on the language. Databases SQL Query Analyzer - A utility application in which a user can enter a query and have it run against a local database and look for ways to make it more efficient. Remote SQL Tool - A utility that can execute queries on remote servers from your local computer across the Internet. It should take in a remote host, user name, and password, run the query and return the results. Report Generator - Create a utility that generates a report based on some tables in a database. Generates sales reports based on the order/order details tables or sums up the day's current database activity. Event Scheduler and Calendar - Make an application that allows the user to enter a date and time of an event, event notes, and then schedule those events on a calendar. The user can then browse the calendar or search the calendar for specific events. Optional: Allow the application to create re-occurrence events that reoccur every day, week, month, year, etc. Budget Tracker - Write an application that keeps track of a household’s budget. The user can add expenses, income, and recurring costs to find out how much they are saving or losing over a period of time. Optional: Allow the user to specify a date range and see the net flow of money in and out of the house budget for that time period. TV Show Tracker - Got a favorite show you don’t want to miss? Don’t have a PVR or want to be able to find the show to then PVR it later? Make an application that can search various online TV Guide sites, locate the shows/times/channels and add them to a database application. The database/website then can send you email reminders that a show is about to start and which channel it will be on. Travel Planner System - Make a system that allows users to put together their own little travel itinerary and keep track of the airline/hotel arrangements, points of interest, budget, and schedule. Graphics and Multimedia Slide Show - Make an application that shows various pictures in a slide show format. Optional: Try adding various effects like fade in/out, star wipe, and window blinds transitions. Stream Video from Online - Try to create your own online streaming video player. Mp3 Player - A simple program for playing your favorite music files. Add features you think are missing from your favorite music player. Watermarking Application - Have some pictures you want copyright protected? Add your own logo or text lightly across the background so that no one can simply steal your graphics off your site. Make a program that will add this watermark to the picture. Optional: Use threading to process multiple images simultaneously. Turtle Graphics - This is a common project where you create a floor of 20 x 20 squares. Using various commands you tell a turtle to draw a line on the floor. You have moved forward, left or right, lift or drop the pen, etc. Do a search online for "Turtle Graphics" for more information. Optional: Allow the program to read in the list of commands from a file. GIF Creator A program that puts together multiple images (PNGs, JPGs, TIFFs) to make a smooth GIF that can be exported. Optional: Make the program convert small video files to GIFs as well. Security Caesar cipher - Implement a Caesar cipher, both encoding, and decoding. The key is an integer from 1 to 25. This cipher rotates the letters of the alphabet (A to Z). The encoding replaces each letter with the 1st to 25th next letter in the alphabet (wrapping Z to A). So key 2 encrypts "HI" to "JK", but key 20 encrypts "HI" to "BC". This simple "monoalphabetic substitution cipher" provides almost no security, because an attacker who has the encoded message can either use frequency analysis to guess the key, or just try all 25 keys.
manodeep / Corrfunc⚡️⚡️⚡️Blazing fast correlation functions on the CPU.
possibly-wrong / SkittlesDataset of Skittles pack color counts with a pair of identical packs
cheng-zhao / FCFCFast Correlation Function Calculator
uvhw / Bitcoin FoundationBitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. Transaction Hash Transaction Hash Transaction Hash Owner 1's Public Key Owner 2's Public Key Owner 3's Public Key Owner 0's Signature Owner 1's Signature The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. Hash Hash Owner 2's Signature Owner 1's Private Key Owner 2's Private Key Owner 3's Private Key Block Item Item ... 2 Block Item Item ... Verify Verify Sign Sign 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Nonce Tx Tx ... Block Nonce Tx Tx ... Prev Hash Prev Hash New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. Block Hash0 Hash1 Hash2 Hash3 Tx0 Tx1 Tx2 Tx3 Block Header (Block Hash) Prev Hash Nonce Root Hash Hash01 Hash23 Block Block Header (Block Hash) Prev Hash Nonce Root Hash Hash01 Hash23 Hash2 Hash3 Tx3 Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. Longest Proof-of-Work Chain Block Header Block Header Block Header Prev Hash Nonce Prev Hash Nonce Prev Hash Nonce Merkle Root Merkle Root Merkle Root Hash01 Hash23 Merkle Branch for Tx3 Hash2 Hash3 Tx3 As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In Out In ... ... 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the "tape", is made public, but without telling who the parties were. Traditional Privacy Model Identities Transactions New Privacy Model Identities Transactions As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block qz = probability the attacker will ever catch up from z blocks behind Trusted Third Party q ={ 1 if p≤q} z q/pz if pq 6 Counterparty Public Public Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: = z qp To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∞ ke−{q/pz−k ifk≤z} ∑k=0 k!⋅ 1 ifkz Rearranging to avoid summing the infinite tail of the distribution... z ke− z−k 1−∑k=0 k! 1−q/p Converting to C code... #include <math.h> double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping," In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, "Hashcash - a denial of service counter-measure," http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, "An introduction to probability theory and its applications," 1957. 9
Zhen-Miao / PICsnATACPaired Insertion Counting for snATAC-seq data
xmu-xiaoma666 / ImageCaptionMetricsThis repository contains 2 tools: - A py3 Lib for NLP & image-caption metrics - Code for a two-tailed t-test with paired samples. It will reveals whether the difference of two results is significant. In this code, we complete evaluation code for Spice details(*i.e.*,Object, Relation, Attribute, Color, Count, and Size ).
SOYJUN / Implement ODR ProtocolOverview For this assignment you will be developing and implementing : An On-Demand shortest-hop Routing (ODR) protocol for networks of fixed but arbitrary and unknown connectivity, using PF_PACKET sockets. The implementation is based on (a simplified version of) the AODV algorithm. Time client and server applications that send requests and replies to each other across the network using ODR. An API you will implement using Unix domain datagram sockets enables applications to communicate with the ODR mechanism running locally at their nodes. I shall be discussing the assignment in class on Wednesday, October 29, and Monday, November 3. The following should prove useful reference material for the assignment : Sections 15.1, 15.2, 15.4 & 15.6, Chapter 15, on Unix domain datagram sockets. PF_PACKET(7) from the Linux manual pages. You might find these notes made by a past CSE 533 student useful. Also, the following link http://www.pdbuchan.com/rawsock/rawsock.html contains useful code samples that use PF_PACKET sockets (as well as other code samples that use raw IP sockets which you do not need for this assignment, though you will be using these types of sockets for Assignment 4). Charles E. Perkins & Elizabeth M. Royer. “Ad-hoc On-Demand Distance Vector Routing.” Proceedings of the 2nd IEEE Workshop on Mobile Computing Systems and Applications, New Orleans, Louisiana, February 1999, pp. 90 - 100. The VMware environment minix.cs.stonybrook.edu is a Linux box running VMware. A cluster of ten Linux virtual machines, called vm1 through vm10, on which you can gain access as root and run your code have been created on minix. See VMware Environment Hosts for further details. VMware instructions takes you to a page that explains how to use the system. The ten virtual machines have been configured into a small virtual intranet of Ethernet LANs whose topology is (in principle) unknown to you. There is a course account cse533 on node minix, with home directory /users/cse533. In there, you will find a subdirectory Stevens/unpv13e , exactly as you are used to having on the cs system. You should develop your source code and makefiles for handing in accordingly. You will be handing in your source code on the minix node. Note that you do not need to link against the socket library (-lsocket) in Linux. The same is true for -lnsl and -lresolv. For example, take a look at how the LIBS variable is defined for Solaris, in /home/courses/cse533/Stevens/unpv13e_solaris2.10/Make.defines (on compserv1, say) : LIBS = ../libunp.a -lresolv -lsocket -lnsl -lpthread But if you take a look at Make.defines on minix (/users/cse533/Stevens/unpv13e/Make.defines) you will find only: LIBS = ../libunp.a -lpthread The nodes vm1 , . . . . . , vm10 are all multihomed : each has two (or more) interfaces. The interface ‘eth0 ’ should be completely ignored and is not to be used for this assignment (because it shows all ten nodes as if belonging to the same single Ethernet 192.168.1.0/24, rather than to an intranet composed of several Ethernets). Note that vm1 , . . . . . , vm10 are virtual machines, not real ones. One implication of this is that you will not be able to find out what their (virtual) IP addresses are by using nslookup and such. To find out these IP addresses, you need to look at the file /etc/hosts on minix. More to the point, invoking gethostbyname for a given vm will return to you only the (primary) IP address associated with the interface eth0 of that vm (which is the interface you will not be using). It will not return to you any other IP address for the node. Similarly, gethostbyaddr will return the vm node name only if you give it the (primary) IP address associated with the interface eth0 for the node. It will return nothing if you give it any other IP address for the node, even though the address is perfectly valid. Because of this, and because it will ease your task to be able to use gethostbyname and gethostbyaddr in a straightforward way, we shall adopt the (primary) IP addresses associated with interfaces eth0 as the ‘canonical’ IP addresses for the nodes (more on this below). Time client and server A time server runs on each of the ten vm machines. The client code should also be available on each vm so that it can be evoked at any of them. Normally, time clients/servers exchange request/reply messages using the TCP/UDP socket API that, effectively, enables them to receive service (indirectly, via the transport layer) from the local IP mechanism running at their nodes. You are to implement an API using Unix domain sockets to access the local ODR service directly (somewhat similar, in effect, to the way that raw sockets permit an application to access IP directly). Use Unix domain SOCK_DGRAM, rather than SOCK_STREAM, sockets (see Figures 15.5 & 15.6, pp. 418 - 419). API You need to implement a msg_send function that will be called by clients/servers to send requests/replies. The parameters of the function consist of : int giving the socket descriptor for write char* giving the ‘canonical’ IP address for the destination node, in presentation format int giving the destination ‘port’ number char* giving message to be sent int flag if set, force a route rediscovery to the destination node even if a non-‘stale’ route already exists (see below) msg_send will format these parameters into a single char sequence which is written to the Unix domain socket that a client/server process creates. The sequence will be read by the local ODR from a Unix domain socket that the ODR process creates for itself. Recall that the ‘canonical’ IP address for a vm node is the (primary) IP address associated with the eth0 interface for the node. It is what will be returned to you by a call to gethostbyname. Similarly, we need a msg_recv function which will do a (blocking) read on the application domain socket and return with : int giving socket descriptor for read char* giving message received char* giving ‘canonical’ IP address for the source node of message, in presentation format int* giving source ‘port’ number This information is written as a single char sequence by the ODR process to the domain socket that it creates for itself. It is read by msg_recv from the domain socket the client/server process creates, decomposed into the three components above, and returned to the caller of msg_recv. Also see the section below entitled ODR and the API. Client When a client is evoked at a node, it creates a domain datagram socket. The client should bind its socket to a ‘temporary’ (i.e., not ‘well-known’) sun_path name obtained from a call to tmpnam() (cf. line 10, Figure 15.6, p. 419) so that multiple clients may run at the same node. Note that tmpnam() is actually highly deprecated. You should use the mkstemp() function instead - look up the online man pages on minix (‘man mkstemp’) for details. As you run client code again and again during the development stage, the temporary files created by the calls to tmpnam / mkstemp start to proliferate since these files are not automatically removed when the client code terminates. You need to explicitly remove the file created by the client evocation by issuing a call to unlink() or to remove() in your client code just before the client code exits. See the online man pages on minix (‘man unlink’, ‘man remove’) for details. The client then enters an infinite loop repeating the steps below. The client prompts the user to choose one of vm1 , . . . . . , vm10 as a server node. Client msg_sends a 1 or 2 byte message to server and prints out on stdout the message client at node vm i1 sending request to server at vm i2 (In general, throughout this assignment, “trace” messages such as the one above should give the vm names and not IP addresses of the nodes.) Client then blocks in msg_recv awaiting response. This attempt to read from the domain socket should be backed up by a timeout in case no response ever comes. I leave it up to you whether you ‘wrap’ the call to msg_recv in a timeout, or you implement the timeout inside msg_recv itself. When the client receives a response it prints out on stdout the message client at node vm i1 : received from vm i2 <timestamp> If, on the other hand, the client times out, it should print out the message client at node vm i1 : timeout on response from vm i2 The client then retransmits the message out, setting the flag parameter in msg_send to force a route rediscovery, and prints out an appropriate message on stdout. This is done only once, when a timeout for a given message to the server occurs for the first time. Client repeats steps 1. - 3. Server The server creates a domain datagram socket. The server socket is assumed to have a (node-local) ‘well-known’ sun_path name which it binds to. This ‘well-known’ sun_path name is designated by a (network-wide) ‘well-known’ ‘port’ value. The time client uses this ‘port’ value to communicate with the server. The server enters an infinite sequence of calls to msg_recv followed by msg_send, awaiting client requests and responding to them. When it responds to a client request, it prints out on stdout the message server at node vm i1 responding to request from vm i2 ODR The ODR process runs on each of the ten vm machines. It is evoked with a single command line argument which gives a “staleness” time parameter, in seconds. It uses get_hw_addrs (available to you on minix in ~cse533/Asgn3_code) to obtain the index, and associated (unicast) IP and Ethernet addresses for each of the node’s interfaces, except for the eth0 and lo (loopback) interfaces, which should be ignored. In the subdirectory ~cse533/Asgn3_code (/users/cse533/Asgn3_code) on minix I am providing you with two functions, get_hw_addrs and prhwaddrs. These are analogous to the get_ifi_info_plus and prifinfo_plus of Assignment 2. Like get_ifi_info_plus, get_hw_addrs uses ioctl. get_hw_addrs gets the (primary) IP address, alias IP addresses (if any), HW address, and interface name and index value for each of the node's interfaces (including the loopback interface lo). prhwaddrs prints that information out. You should modify and use these functions as needed. Note that if an interface has no HW address associated with it (this is, typically, the case for the loopback interface lo for example), then ioctl returns get_hw_addrs a HW address which is the equivalent of 00:00:00:00:00:00 . get_hw_addrs stores this in the appropriate field of its data structures as it would with any HW address returned by ioctl, but when prhwaddrs comes across such an address, it prints a blank line instead of its usual ‘HWaddr = xx:xx:xx:xx:xx:xx’. The ODR process creates one or more PF_PACKET sockets. You will need to try out PF_PACKET sockets for yourselves and familiarize yourselves with how they behave. If, when you read from the socket and provide a sockaddr_ll structure, the kernel returns to you the index of the interface on which the incoming frame was received, then one socket will be enough. Otherwise, somewhat in the manner of Assignment 2, you shall have to create a PF_PACKET socket for every interface of interest (which are all the interfaces of the node, excluding interfaces lo and eth0 ), and bind a socket to each interface. Furthermore, if the kernel also returns to you the source Ethernet address of the frame in the sockaddr_ll structure, then you can make do with SOCK_DGRAM type PF_PACKET sockets; otherwise you shall have to use SOCK_RAW type sockets (although I would prefer you to use SOCK_RAW type sockets anyway, even if it turns out you can make do with SOCK_DGRAM type). The socket(s) should have a protocol value (no larger than 0xffff so that it fits in two bytes; this value is given as a network-byte-order parameter in the call(s) to function socket) that identifies your ODR protocol. The <linux/if_ether.h> include file (i.e., the file /usr/include/linux/if_ether.h) contains protocol values defined for the standard protocols typically found on an Ethernet LAN, as well as other values such as ETH_P_ALL. You should set protocol to a value of your choice which is not a <linux/if_ether.h> value, but which is, hopefully, unique to yourself. Remember that you will all be running your code using the same root account on the vm1 , . . . . . , vm10 nodes. So if two of you happen to choose the same protocol value and happen to be running on the same vm node at the same time, your applications will receive each other’s frames. For that reason, try to choose a protocol value for the socket(s) that is likely to be unique to yourself (something based on your Stony Brook student ID number, for example). This value effectively becomes the protocol value for your implementation of ODR, as opposed to some other cse 533 student's implementation. Because your value of protocol is to be carried in the frame type field of the Ethernet frame header, the value chosen should be not less than 1536 (0x600) so that it is not misinterpreted as the length of an Ethernet 802.3 frame. Note from the man pages for packet(7) that frames are passed to and from the socket without any processing in the frame content by the device driver on the other side of the socket, except for calculating and tagging on the 4-byte CRC trailer for outgoing frames, and stripping that trailer before delivering incoming frames to the socket. Nevertheless, if you write a frame that is less than 60 bytes, the necessary padding is automatically added by the device driver so that the frame that is actually transmitted out is the minimum Ethernet size of 64 bytes. When reading from the socket, however, any such padding that was introduced into a short frame at the sending node to bring it up to the minimum frame size is not stripped off - it is included in what you receive from the socket (thus, the minimum number of bytes you receive should never be less than 60). Also, you will have to build the frame header for outgoing frames yourselves (assuming you use SOCK_RAW type sockets). Bear in mind that the field values in that header have to be in network order. The ODR process also creates a domain datagram socket for communication with application processes at the node, and binds the socket to a ‘well known’ sun_path name for the ODR service. Because it is dealing with fixed topologies, ODR is, by and large, considerably simpler than AODV. In particular, discovered routes are relatively stable and there is no need for all the paraphernalia that goes with the possibility of routes changing (such as maintenance of active nodes in the routing tables and timeout mechanisms; timeouts on reverse links; lifetime field in the RREP messages; etc.) Nor will we be implementing source_sequence_#s (in the RREQ messages), and dest_sequence_# (in RREQ and RREP messages). In reality, we should (though we will not, for the sake of simplicity, be doing so) implement some sort of sequence number mechanism, or some alternative mechanism such as split-horizon for example, if we are to avoid possible scenarios of routing loops in a “count to infinity” context (I shall explain this point in class). However, we want ODR to discover shortest-hop paths, and we want it to do so in a reasonably efficient manner. This necessitates having one or two aspects of its operations work in a different, possibly slightly more complicated, way than AODV does. ODR has several basic responsibilities : Build and maintain a routing table. For each destination in the table, the routing table structure should include, at a minimum, the next-hop node (in the form of the Ethernet address for that node) and outgoing interface index, the number of hops to the destination, and a timestamp of when the the routing table entry was made or last “reconfirmed” / updated. Note that a destination node in the table is to be identified only by its ‘canonical’ IP address, and not by any other IP addresses the node has. Generate a RREQ in response to a time client calling msg_send for a destination for which ODR has no route (or for which a route exists, but msg_send has the flag parameter set or the route has gone ‘stale’ – see below), and ‘flood’ the RREQ out on all the node’s interfaces (except for the interface it came in on and, of course, the interfaces eth0 and lo). Flooding is done using an Ethernet broadcast destination address (0xff:ff:ff:ff:ff:ff) in the outgoing frame header. Note that a copy of the broadcast packet is supposed to / might be looped back to the node that sends it (see p. 535 in the Stevens textbook). ODR will have to take care not to treat these copies as new incoming RREQs. Also note that ODR at the client node increments the broadcast_id every time it issues a new RREQ for any destination node. When a RREQ is received, ODR has to generate a RREP if it is at the destination node, or if it is at an intermediate node that happens to have a route (which is not ‘stale’ – see below) to the destination. Otherwise, it must propagate the RREQ by flooding it out on all the node’s interfaces (except the interface the RREQ arrived on). Note that as it processes received RREQs, ODR should enter the ‘reverse’ route back to the source node into its routing table, or update an existing entry back to the source node if the RREQ received shows a shorter-hop route, or a route with the same number of hops but going through a different neighbour. The timestamp associated with the table entry should be updated whenever an existing route is either “reconfirmed” or updated. Obviously, if the node is going to generate a RREP, updating an existing entry back to the source node with a more efficient route, or a same-hops route using a different neighbour, should be done before the RREP is generated. Unlike AODV, when an intermediate node receives a RREQ for which it generates a RREP, it should nevertheless continue to flood the RREQ it received if the RREQ pertains to a source node whose existence it has heretofore been unaware of, or the RREQ gives it a more efficient route than it knew of back to the source node (the reason for continuing to flood the RREQ is so that other nodes in the intranet also become aware of the existence of the source node or of the potentially more optimal reverse route to it, and update their tables accordingly). However, since an RREP for this RREQ is being sent by our node, we do not want other nodes who receive the RREQ propagated by our node, and who might be in a position to do so, to also send RREPs. So we need to introduce a field in the RREQ message, not present in the AODV specifications, which acts like a “RREP already sent” field. Our node sets this field before further propagating the RREQ and nodes receiving an RREQ with this field set do not send RREPs in response, even if they are in a position to do so. ODR may, of course, receive multiple, distinct instances of the same RREQ (the combination of source_addr and broadcast_id uniquely identifies the RREQ). Such RREQs should not be flooded out unless they have a lower hop count than instances of that RREQ that had previously been received. By the same token, if ODR is in a position to send out a RREP, and has already done so for this, now repeating, RREQ , it should not send out another RREP unless the RREQ shows a more efficient, previously unknown, reverse route back to the source node. In other words, ODR should not generate essentially duplicative RREPs, nor generate RREPs to instances of RREQs that reflect reverse routes to the source that are not more efficient than what we already have. Relay RREPs received back to the source node (this is done using the ‘reverse’ route entered into the routing table when the corresponding RREQ was processed). At the same time, a ‘forward’ path to the destination is entered into the routing table. ODR could receive multiple, distinct RREPs for the same RREQ. The ‘forward’ route entered in the routing table should be updated to reflect the shortest-hop route to the destination, and RREPs reflecting suboptimal routes should not be relayed back to the source. In general, maintaining a route and its associated timestamp in the table in response to RREPs received is done in the same manner described above for RREQs. Forward time client/server messages along the next hop. (The following is important – you will lose points if you do not implement it.) Note that such application payload messages (especially if they are the initial request from the client to the server, rather than the server response back to the client) can be like “free” RREPs, enabling nodes along the path from source (client) to destination (server) node to build a reverse path back to the client node whose existence they were heretofore unaware of (or, possibly, to update an existing route with a more optimal one). Before it forwards an application payload message along the next hop, ODR at an intermediate node (and also at the final destination node) should use the message to update its routing table in this way. Thus, calls to msg_send by time servers should never cause ODR at the server node to initiate RREQs, since the receipt of a time client request implies that a route back to the client node should now exist in the routing table. The only exception to this is if the server node has a staleness parameter of zero (see below). A routing table entry has associated with it a timestamp that gives the time the entry was made into the table. When a client at a node calls msg_send, and if an entry for the destination node already exists in the routing table, ODR first checks that the routing information is not ‘stale’. A stale routing table entry is one that is older than the value defined by the staleness parameter given as a command line argument to the ODR process when it is executed. ODR deletes stale entries (as well as non-stale entries when the flag parameter in msg_send is set) and initiates a route rediscovery by issuing a RREQ for the destination node. This will force periodic updating of the routing tables to take care of failed nodes along the current path, Ethernet addresses that might have changed, and so on. Similarly, as RREQs propagate through the intranet, existing stale table entries at intermediate nodes are deleted and new route discoveries propagated. As noted above when discussing the processing of RREQs and RREPs, the associated timestamp for an existing table entry is updated in response to having the route either “reconfirmed” or updated (this applies to both reverse routes, by virtue of RREQs received, and to forward routes, by virtue of RREPs). Finally, note that a staleness parameter of 0 essentially indicates that the discovered route will be used only once, when first discovered, and then discarded. Effectively, an ODR with staleness parameter 0 maintains no real routing table at all ; instead, it forces route discoveries at every step of its operation. As a practical matter, ODR should be run with staleness parameter values that are considerably larger than the longest RTT on the intranet, otherwise performance will degrade considerably (and collapse entirely as the parameter values approach 0). Nevertheless, for robustness, we need to implement a mechanism by which an intermediate node that receives a RREP or application payload message for forwarding and finds that its relevant routing table entry has since gone stale, can intiate a RREQ to rediscover the route it needs. RREQ, RREP, and time client/server request/response messages will all have to be carried as encapsulated ODR protocol messages that form the data payload of Ethernet frames. So we need to design the structure of ODR protocol messages. The format should contain a type field (0 for RREQ, 1 for RREP, 2 for application payload ). The remaining fields in an ODR message will depend on what type it is. The fields needed for (our simplified versions of AODV’s) RREQ and RREP should be fairly clear to you, but keep in mind that you need to introduce two extra fields: The “RREP already sent” bit or field in RREQ messages, as mentioned above. A “forced discovery” bit or field in both RREQ and RREP messages: When a client application forces route rediscovery, this bit should be set in the RREQ issued by the client node ODR. Intermediate nodes that are not the destination node but which do have a route to the destination node should not respond with RREPs to an RREQ which has the forced discovery field set. Instead, they should continue to flood the RREQ so that it eventually reaches the destination node which will then respond with an RREP. The intermediate nodes relaying such an RREQ must update their ‘reverse’ route back to the source node accordingly, even if the new route is less efficient (i.e., has more hops) than the one they currently have in their routing table. The destination node responds to the RREQ with an RREP in which this field is also set. Intermediate nodes that receive such a forced discovery RREP must update their ‘forward’ route to the destination node accordingly, even if the new route is less efficient (i.e., has more hops) than the one they currently have in their routing table. This behaviour will cause a forced discovery RREQ to be responded to only by the destination node itself and not any other node, and will cause intermediate nodes to update their routing tables to both source and destination nodes in accordance with the latest routing information received, to cover the possibility that older routes are no longer valid because nodes and/or links along their paths have gone down. A type 2, application payload, message needs to contain the following type of information : type = 2 ‘canonical’ IP address of source node ‘port’ number of source application process (This, of course, is not a real port number in the TCP/UDP sense, but simply a value that ODR at the source node uses to designate the sun_path name for the source application’s domain socket.) ‘canonical’ IP address of destination node ‘port’ number of destination application process (This is passed to ODR by the application process at the source node when it calls msg_send. Its designates the sun_path name for an application’s domain socket at the destination node.) hop count (This starts at 0 and is incremented by 1 at each hop so that ODR can make use of the message to update its routing table, as discussed above.) number of bytes in application message The fields above essentially constitute a ‘header’ for the ODR message. Note that fields which you choose to have carry numeric values (rather than ascii characters, for example) must be in network byte order. ODR-defined numeric-valued fields in type 0, RREQ, and type 1, RREP, messages must, of course, also be in network byte order. Also note that only the ‘canonical’ IP addresses are used for the source and destination nodes in the ODR header. The same has to be true in the headers for type 0, RREQ, and type 1, RREP, messages. The general rule is that ODR messages only carry ‘canonical’ IP node addresses. The last field in the type 2 ODR message is essentially the data payload of the message. application message given in the call to msg_send An ODR protocol message is encapsulated as the data payload of an Ethernet frame whose header it fills in as follows : source address = Ethernet address of outgoing interface of the current node where ODR is processing the message. destination address = Ethernet broadcast address for type 0 messages; Ethernet address of next hop node for type 1 & 2 messages. protocol field = protocol value for the ODR PF_PACKET socket(s). Last but not least, whenever ODR writes an Ethernet frame out through its socket, it prints out on stdout the message ODR at node vm i1 : sending frame hdr src vm i1 dest addr ODR msg type n src vm i2 dest vm i3 where addr is in presentation format (i.e., hexadecimal xx:xx:xx:xx:xx:xx) and gives the destination Ethernet address in the outgoing frame header. Other nodes in the message should be identified by their vm name. A message should be printed out for each packet sent out on a distinct interface. ODR and the API When the ODR process first starts, it must construct a table in which it enters all well-known ‘port’ numbers and their corresponding sun_path names. These will constitute permanent entries in the table. Thereafter, whenever it reads a message off its domain socket, it must obtain the sun_path name for the peer process socket and check whether that name is entered in the table. If not, it must select an ‘ephemeral’ ‘port’ value by which to designate the peer sun_path name and enter the pair < port value , sun_path name > into the table. Such entries cannot be permanent otherwise the table will grow unboundedly in time, with entries surviving for ever, beyond the peer processes’ demise. We must associate a time_to_live field with a non-permanent table entry, and purge the entry if nothing is heard from the peer for that amount of time. Every time a peer process for which a non-permanent table entry exists communicates with ODR, its time_to_live value should be reinitialized. Note that when ODR writes to a peer, it is possible for the write to fail because the peer does not exist : it could be a ‘well-known’ service that is not running, or we could be in the interval between a process with a non-permanent table entry terminating and the expiration of its time_to_live value. Notes A proper implementation of ODR would probably require that RREQ and RREP messages be backed up by some kind of timeout and retransmission mechanism since the network transmission environment is not reliable. This would considerably complicate the implementation (because at any given moment, a node could have multiple RREQs that it has flooded out, but for which it has still not received RREPs; the situation is further complicated by the fact that not all intermediate nodes receiving and relaying RREQs necessarily lie on a path to the destination, and therefore should expect to receive RREPs), and, learning-wise, would not add much to the experience you should have gained from Assignment 2.
Pa1ntex / Classic Gui Saktkia51 Script Op local b=game:GetService("Players")local c=game:GetService("ReplicatedStorage")local d=game:GetService("StarterGui")local e=game:GetService("RunService")local f=game:GetService("StarterPlayer")local g=game:GetService("TestService")local h=game:GetService("VirtualUser")local i=game:GetService("TweenService")local j=game:GetService("UserInputService")local k=game:GetService("Players").LocalPlayer;local l=game.Workspace.CurrentCamera;local m=loadstring(game:HttpGet("https://api.irisapp.ca/Scripts/IrisBetterNotifications.lua"))()local n=loadstring(game:HttpGet("https://pastebin.com/raw/en4Ma7jr"))()local o="BloodTheme"local p=get_thread_context or get_thread_identity or getidentity or syn_context_get;getgenv().syn_context_get=newcclosure(function(...)return p(...)end)if game.PlaceId==2092166489 then function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)m.Notify("Survive and Kill the Killers UI","Loaded","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})local x=n.CreateLib("Classic Mode UI",o)local y=x:NewTab("Autofarm:")local z=y:NewSection("Enable/Disable Autofarm")local function A()local B=workspace.CurrentCamera;local C=k.Character;local D=k;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end end;local function J()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.StarterGear end end;for K,v in pairs(game:GetService("Players").LocalPlayer.StarterGear:GetChildren())do if v:IsA("Tool")then v.Parent=game.Players.LocalPlayer.Backpack end end end;local function L()for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end;local function N()for K,v in pairs(game:GetService("Workspace").AREA51.SewerCaptainRoom["Captain Zombie Feeder"].Cage:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end;local function O()local P=k.Character.HumanoidRootPart;function GetWepons(Q)firetouchinterest(P,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end;z:NewToggle("//Autofarm \\","Enables Autofarm for SAKTK",function(R)if R then n:ToggleUI()m.Notify("Enabled Autofarm","Press F to Enable the SAKTK UI to disable autofarm.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})L()N()O()k.CameraMode=Enum.CameraMode.LockFirstPerson;for K,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k.Character end end;game:GetService("StarterGui").TailsPopup.Enabled=false;game:GetService("Players").LocalPlayer.PlayerGui.TailsPopup.Enabled=false;game:GetService("Workspace").Killers:FindFirstChild("Giant"):Destroy()for K,v in pairs(game.Workspace.Killers:GetChildren())do if v:IsA("Model")then repeat wait()mouse1press()l.CoordinateFrame=CFrame.new(l.CoordinateFrame.p,v.Head.CFrame.p)k.Character.HumanoidRootPart.CFrame=v.Head.CFrame+v.Head.CFrame.lookVector*-5 until v.Zombie.Health==0;wait()end end else workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewToggle("Fullbright","Makes the game bright",function(R)m.Notify("Fullbright","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then game:GetService("Lighting").Brightness=2;game:GetService("Lighting").ClockTime=14;game:GetService("Lighting").FogEnd=100000;game:GetService("Lighting").GlobalShadows=false;game:GetService("Lighting").OutdoorAmbient=Color3.fromRGB(128,128,128)else m.Notify("Fullbright","Disabled","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})origsettings={abt=game:GetService("Lighting").Ambient,oabt=game:GetService("Lighting").OutdoorAmbient,brt=game:GetService("Lighting").Brightness,time=game:GetService("Lighting").ClockTime,fe=game:GetService("Lighting").FogEnd,fs=game:GetService("Lighting").FogStart,gs=game:GetService("Lighting").GlobalShadows}game:GetService("Lighting").Ambient=origsettings.abt;game:GetService("Lighting").OutdoorAmbient=origsettings.oabt;game:GetService("Lighting").Brightness=origsettings.brt;game:GetService("Lighting").ClockTime=origsettings;game:GetService("Lighting").FogEnd=200;game:GetService("Lighting").FogStart=20;game:GetService("Lighting").FogColor=191,191,191;game:GetService("Lighting").GlobalShadows=origsettings.gs end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)z:NewButton("Unlock all Secrets","Unlocks all the secrets in the game",function()O()firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,game:GetService("Workspace").AREA51.RadioactiveArea.GiantZombieRoom.GiantZombieEngine.Close.Door2,0)function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game:GetService("Workspace"):GetDescendants())do if v:IsA("Part")and v.Name:match("Paper")or v.Name:match("Reward")then GetWepons(v)end end;for K,v in pairs(game:GetService("Workspace"):GetDescendants())do if v:IsA("Part")and v.Name:match("TheButton")then GetWepons(v)end end;firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,game:GetService("Workspace").AREA51.PlantRoom["Box of Shells"].Box,0)wait(0.2)local a1=k.Character.HumanoidRootPart.CFrame;k.Character.HumanoidRootPart.CFrame=CFrame.new(game:GetService("Workspace").AREA51.ExecutionRoom.Reward.Position)wait(0.2)game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer("M14")k.CFrame=CFrame.new(326.773315,511.5,392.70932,0.982705772,0,-0.185173988,0,1,0,0.185173988,0,0.982705772)end)z:NewButton("Get all Badges","Gives almost every badge.",function()O()firetouchinterest(a,game:GetService("Workspace").AREA51.SecretPath6.Reward)for a2,v in pairs(game:GetService("Workspace").AREA51.Badges:GetDescendants())do if v:IsA("TouchTransmitter")and v.Parent:IsA("Part")then firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,v.Parent,0)wait()firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,v.Parent,1)end end end)z:NewButton("Get Gamepasses","Tries to give you gamepasses.",function()game.Players.LocalPlayer.Character.Humanoid.WalkSpeed=25;O()game.Players.LocalPlayer.Character.Humanoid.Died:Connect(function()wait(8)game.Players.LocalPlayer.Character.Humanoid.WalkSpeed=25;O()J()end)end)z:NewButton("Get Code for Door","Please walk after clicking this.",function()m.Notify("Get Code","Enabled Please walk forward the first number is the first numeral for the door.","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})for a2,v in pairs(game:GetService("Workspace").AREA51.CodeModel:GetDescendants())do if v:IsA("Part")then wait(.33)v.CFrame=game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame end end end)local y=x:NewTab("Gun Cheats:")local z=y:NewSection("Rainbow Weapons")z:NewButton("Get all Weapons","Gives you every weapon in-game",function()function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end)z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One shot Killers","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"Missile Touch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("PAP Weapons:")local z=y:NewSection("Select Weapon to Pack a Punch")local a9=getrawmetatable(game)local aa=a9.__index;setreadonly(a9,false)a9.__index=newcclosure(function(self,af)if tostring(self)=='Busy'and af=='Value'then return false end;return aa(self,af)end)setreadonly(a9,true)z:NewToggle("PAP All Weapons","PAP all your weapons in your inventory.",function(R)m.Notify("PAP All","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then _G.papAll=true;while wait(5)do if _G.papAll==true then for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(v.Name)end end end else _G.papAll=false end end)z:NewDropdown("PAP Weapon","DropdownInf",{"M1911","RayGun","MP5k","R870","M4A1","AK-47","M1014","Desert Eagle","SVD","M16A2/M203","M14","G36C","AWP","Crossbow","Desert Eagle"},function(ag)m.Notify("PAP..",ag,"http://www.roblox.com/asset/?id=5502174644",{Duration=4,Main={Rounding=true}})game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(ag)end)local y=x:NewTab("Doors AREA51:")local z=y:NewSection("Open/Close Doors")z:NewToggle("Spam Open Doors","Spam Opens the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewToggle("Spam Close Doors","Spam Closes the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewButton("Open Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end)z:NewButton("Close Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end)local y=x:NewTab("ESP:")local z=y:NewSection("ESP for Player/Killers")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Parent.Name=="Characters to kill"and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Killer ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Zombie")and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("Teleports:")local z=y:NewSection("Teleports")z:NewDropdown("Weapon Teleports","DropdownInf",{"M14","RILG","R870","CLT1","SBG","SVD","Code-Door"},function(ag)local hum=k.Character.HumanoidRootPart;local aj=hum.CFrame;if ag=="M14"then hum.CFrame=CFrame.new(106.981911,323.620026,678.865051,0.108975291,-4.31107949e-08,0.994044483,-5.13666043e-09,1,4.39322072e-08,-0.994044483,-9.89359261e-09,0.108975291)wait(.2)hum.CFrame=CFrame.new(aj)elseif ag=="RILG"then hum.CFrame=CFrame.new(232.505737,373.660004,45.4774323,-0.999948323,-2.07754458e-09,0.0101688765,-3.00104475e-09,1,-9.08010804e-08,-0.0101688765,-9.08269016e-08,-0.999948323)elseif ag=="R870"then hum.CFrame=CFrame.new(143.435638,333.659973,499.670258,0.068527095,6.73678642e-08,-0.997649252,2.92282767e-08,1,6.95342521e-08,0.997649252,-3.39245503e-08,0.068527095)elseif ag=="CLT1"then hum.CFrame=CFrame.new(60.6713562,291.579956,262.712402,-0.0193858538,1.378409e-07,0.999812067,1.73167649e-08,1,-1.37531046e-07,-0.999812067,1.46473536e-08,-0.0193858538)elseif ag=="SBG"then hum.CFrame=CFrame.new(3.0812099,267.780121,184.758041,-0.998869121,3.20666018e-08,-0.0475441888,3.84712493e-08,1,-1.33794302e-07,0.0475441888,-1.35472078e-07,-0.998869121)elseif ag=="SVD"then hum.CFrame=CFrame.new(181.740906,306.660126,179.980011,-0.977237761,-295549789e-08,0.212145314,-3.5164706e-08,1,-2.25858496e-08,-0.212145314,-2.95278366e-08,-0.977237761)elseif ag=="blRU"then hum.CFrame=CFrame.new(19.2511063,313.500336,204.38269,0.113481902,7.8155864e08,0.993540049,-2.13239897e-08,1,-7.62284031e-08,-0.993540049,-1.25357014e-08,0.113481902)end end)z:NewDropdown("Teleport to Room","DropdownInf",{"Cafe-Room","Cartons-Room","Code-Door","Computers-Room","Corridor-to-Meeting-Room","Electricity-Room","Emergency-Hole-Down-To-Area","Entrance-To-Area","Main-Room","Entrance"},function(ag)if ag=="Cafe-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CafeRoom.Tables.Table.Table.Model.Part.CFrame elseif ag=="Cartons-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(149.739914,313.500458,194.231888,0.442422092,6.81004985e-06,-0.896806836,1.24363009e-06,1,8.20718469e-06,0.896806836,-4.74633543e-06,0.442422092)elseif ag=="Code-Door"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CodeDoorRoom.CodeDoor.Door.CFrame elseif ag=="Computers-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(219.700012,310,370.399994,-1,0,0,0,1,0,0,0,-1)elseif ag=="Corridor-to-Meeting-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CorridorToMeetingRoom.Part.CFrame elseif ag=="Electricity-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.ElectricityRoom.Generator1.Base.CFrame elseif ag=="Emergency-Hole-Down-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EmercencyHoleDownToArea.Part.CFrame elseif ag=="Entrance-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EntranceOfArea.Part.CFrame elseif ag=="Main-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.MainRoom.Part.CFrame elseif ag=="Entrance"then hum.CFrame=CFrame.new(327.317322,511.5,397.900269,1,-2.05416537e-08,-2.7642145e-15,2.05416537e-08,1,1.25194637e-08,2.50704388e-15,-1.25194637e-08,1)elseif ag=="Code-Door"then game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CodeDoorRoom.CodeDoor.Enter end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(3508248007,k)end)elseif game.PlaceId==155382109 then local o="BloodTheme"local x=n.CreateLib("Main Menu UI",o)local y=x:NewTab("Main:")local z=y:NewSection("You're currently in the main menu.")z:NewTextBox("Enter Username","Enter Name.",function(ak)_G.getText=ak end)z:NewToggle("Spam-Send-Invites","Automatically sends a invite every 5 seconds.",function(R)if R then _G.autoSend=true;while wait()do if _G.autoSend==true then if _G.getText==""then m.Notify("Please enter a Username.","","http://www.roblox.com/asset/?id=261113606",{Duration=9,Main={Rounding=true}})end;local ad={[1]=game:GetService("Players")[_G.getText]}game:GetService("ReplicatedStorage").BossRushFunctions.RequestJoin:InvokeServer(unpack(ad))end end else _G.autoSend=false end end)z:NewButton("Spam Join Storming","Spam Joins and Leaves Storming",function()_G.spam=true;while wait()do if _G.spam==true then game:GetService("ReplicatedStorage").StormingEvents.JoinRequested:FireServer()wait(.1)game:GetService("ReplicatedStorage").StormingEvents.LeaveRequested:FireServer()end end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("ReplicatedStorage").StormingEvents.JoinRequested:FireServer()end)elseif game.PlaceId==6054929905 then local o="BloodTheme"local x=n.CreateLib("Boss Rush Mode UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Main:")local z=y:NewSection("")z:NewToggle("Autofarm Boss:","Enables Autofarm for Killers",function(R)if R then m.Notify("Enabled Autofarm for Boss","This is buggy.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})local l=game.Workspace.CurrentCamera;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end;_G.autoFarm=true;while wait(0.5)do if _G.autoFarm==true then for a2,v in pairs(game:GetService("Workspace").AREA51.Map.Boss:GetChildren())do if v:IsA("Part")and v.BrickColor==BrickColor.new("New Yeller")then game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=v.CFrame end end;for a2,v in pairs(game:GetService("Workspace").AREA51.Map.Boss:GetChildren())do if v:IsA("Part")and v.BrickColor==BrickColor.new("Really red")then game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=v.CFrame end end end end else G.autoFarm=false;workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewToggle("Fullbright","Makes the game bright",function(R)m.Notify("Fullbright","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then game:GetService("Lighting").Brightness=2;game:GetService("Lighting").ClockTime=14;game:GetService("Lighting").FogEnd=100000;game:GetService("Lighting").GlobalShadows=false;game:GetService("Lighting").OutdoorAmbient=Color3.fromRGB(128,128,128)else m.Notify("Fullbright","Disabled","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})origsettings={abt=game:GetService("Lighting").Ambient,oabt=game:GetService("Lighting").OutdoorAmbient,brt=game:GetService("Lighting").Brightness,time=game:GetService("Lighting").ClockTime,fe=game:GetService("Lighting").FogEnd,fs=game:GetService("Lighting").FogStart,gs=game:GetService("Lighting").GlobalShadows}game:GetService("Lighting").Ambient=origsettings.abt;game:GetService("Lighting").OutdoorAmbient=origsettings.oabt;game:GetService("Lighting").Brightness=origsettings.brt;game:GetService("Lighting").ClockTime=origsettings;game:GetService("Lighting").FogEnd=200;game:GetService("Lighting").FogStart=20;game:GetService("Lighting").FogColor=191,191,191;game:GetService("Lighting").GlobalShadows=origsettings.gs end end)z:NewToggle("Remove Cutscenes","Removes cutscenes from Area-51-Game",function(R)if R then _G.cutScene=true;while wait()do if _G.cutScene==true then workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end else _G.cutScene=false end end)z:NewButton("Remove Toxic Water","Removes Toxic-Water.",function()game:GetService("Workspace").AREA51.Map.BossRoom.ToxicWater:Destroy()end)z:NewToggle("Remove Kill Parts","Removes Kill Parts.",function(R)if R then while wait()do for a2,v in pairs(game.Workspace:GetChildren())do if v:IsA("TouchTransmitter")then v:Destroy()end end end end end)z:NewButton("Get Case File","Gives you case-file.",function()firetouchinterest(k.Character.HumanoidRootPart,game:GetService("Workspace")["Case file"].Hitbox,0)end)local y=x:NewTab("Gun Mods:")local z=y:NewSection("")z:NewButton('Infinite-Ammo',"Gives you Infinite-Ammo for your weapons.",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One shot Boss","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"Missile Touch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("ESP:")local z=y:NewSection("ESP for Player/Killers")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Parent.Name=="Characters to kill"and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Killer ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Zombie")and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(3508248007,k)end)elseif game.PlaceId==3508248007 then local o="BloodTheme"local x=n.CreateLib("Area 51 Storming UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Main:")local z=y:NewSection("")z:NewToggle("Autofarm Killers:","Enables Autofarm for Killers",function(R)if R then m.Notify("Enabled Autofarm","This is buggy.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})local l=game.Workspace.CurrentCamera;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end;for a2,v in pairs(game.Workspace:GetDescendants())do if v:IsA("ClickDetector")then fireclickdetector(v)end end;for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game.Players.LocalPlayer.Character end end;_G.autoFarm=true;while wait(0.5)do if _G.autoFarm==true then game:GetService("Players").LocalPlayer.PlayerScripts.Checks.Disabled=true;for a2,al in pairs(game.Workspace.Killers:GetChildren())do if al:IsA("Model")then repeat wait()game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=al.Head.CFrame+al.Head.CFrame.lookVector*-5 until al.Humanoid.Health<=0 end end end end else G.autoFarm=false;workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewToggle("Fullbright","Makes the game bright",function(R)m.Notify("Fullbright","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then game:GetService("Lighting").Brightness=2;game:GetService("Lighting").ClockTime=14;game:GetService("Lighting").FogEnd=100000;game:GetService("Lighting").GlobalShadows=false;game:GetService("Lighting").OutdoorAmbient=Color3.fromRGB(128,128,128)else m.Notify("Fullbright","Disabled","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})origsettings={abt=game:GetService("Lighting").Ambient,oabt=game:GetService("Lighting").OutdoorAmbient,brt=game:GetService("Lighting").Brightness,time=game:GetService("Lighting").ClockTime,fe=game:GetService("Lighting").FogEnd,fs=game:GetService("Lighting").FogStart,gs=game:GetService("Lighting").GlobalShadows}game:GetService("Lighting").Ambient=origsettings.abt;game:GetService("Lighting").OutdoorAmbient=origsettings.oabt;game:GetService("Lighting").Brightness=origsettings.brt;game:GetService("Lighting").ClockTime=origsettings;game:GetService("Lighting").FogEnd=200;game:GetService("Lighting").FogStart=20;game:GetService("Lighting").FogColor=191,191,191;game:GetService("Lighting").GlobalShadows=origsettings.gs end end)z:NewButton("Get Code for Door","Please walk after clicking this.",function()m.Notify("Get Code","Enabled Please walk forward the first number is the first numeral for the door.","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})for a2,v in pairs(game:GetService("Workspace").AREA51.CodeModel:GetDescendants())do if v:IsA("Part")then wait(.33)v.CFrame=game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame end end end)local y=x:NewTab("Gun Mods:")local z=y:NewSection("")z:NewButton('Get all Weapons','Gives you all the weapons in-game.',function()for a2,v in pairs(game.Workspace:GetDescendants())do if v:IsA("ClickDetector")then fireclickdetector(v)end end end)z:NewButton('Infinite-Ammo',"Gives you Infinite-Ammo for your weapons.",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One shot Killers","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"MissileTouch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)local a8={repeatamount=100,exceptions={"SayMessageRequest"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()for K,a7 in next,a8.exceptions do if ac.Name==a7 then return aa(ac,...)end end;if ae=="FireServer"or ae=="InvokeServer"then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("ESP:")local z=y:NewSection("ESP for Player/Killers")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Parent.Name=="Characters to kill"and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Killer ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Zombie")and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)local y=x:NewTab("Remove Parts:")local z=y:NewSection("")z:NewButton('Remove Invisible Walls','Click this button to remove the Invisible walls around the map.',function()game:GetService("Workspace")["Invisible Walls"]:Destroy()end)z:NewToggle("Remove Cutscenes","Removes cutscenes from Area-51-Game",function(R)if R then _G.cutScene=true;while wait()do if _G.cutScene==true then workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end else _G.cutScene=false end end)z:NewButton("Remove-Doors","This removes all the doors this cannot be undone.",function()for K,v in pairs(game:GetService('Workspace'):GetDescendants())do if v:IsA("Part")and v.Parent.Name=="Door"then v:Destroy()end end end)local y=x:NewTab("Teleports:")local z=y:NewSection("")z:NewToggle("Loop Teleport to Leader","Enable/Disable to loop teleport to leader.",function(R)if R then _G.loopTeleport=true;while wait()do if _G.loopTeleport==true then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace")["Characters to kill"].Leader.Torso.CFrame end end else _G.loopTeleport=false end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(3508248007,k)end)elseif game.PlaceId==4631179692 then local o="BloodTheme"local x=n.CreateLib("Killhouse UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Main:")local z=y:NewSection("")local am=''z:NewButton("Get all Weapons","Gives you every weapon in-game",function()function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end)z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else warn("")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)local y=x:NewTab("Teleports:")local z=y:NewSection("Start/End Teleports")z:NewButton("Teleport to Start","Teleports you to the start.",function()game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.Killhouse.StartTrigger.CFrame end)z:NewButton("Teleport to End","Teleports you to the end.",function()game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.Killhouse.EndTrigger.CFrame end)local y=x:NewTab("ESP:")local z=y:NewSection("Target/Player")z:NewToggle("Targets Esp","Puts ESP on targets around the map..",function(R)if R then for an,v in pairs(game:GetService("Workspace").AREA51.Killhouse.Targets:GetDescendants())do if v:IsA("Part")and v.Parent.Name=="Target"then local a5=Instance.new("BoxHandleAdornment",v)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=v.Size;a5.Adornee=v;a5.Transparency=0.4;a5.Color=BrickColor.new("Really red")local a=Instance.new("BillboardGui",v)a.Size=UDim2.new(1,0,1,0)a.Name=math.random(100,200)a.AlwaysOnTop=true;local a5=Instance.new("Frame",a)a5.Size=UDim2.new(1,0,1,0)a5.BackgroundTransparency=1;a5.BorderSizePixel=0;local ao=Instance.new("TextLabel",a5)ao.Text=v.Parent.Name;ao.Size=UDim2.new(1,0,1,0)ao.BackgroundTransparency=0;ao.BorderSizePixel=0;ao.TextColor=BrickColor.new("Gun metallic")end end else for K,v in pairs(game:GetService("Workspace").AREA51.Killhouse.Targets:GetDescendants())do if v:IsA("BoxHandleAdornment")or v:IsA("BillboardGui")then v:Destroy()end end end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)elseif game.PlaceId==2092167559 then local o="BloodTheme"local x=n.CreateLib("Killer Mode UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Main:")local z=y:NewSection("")local am=''local z=y:NewSection("Current Team:")z:NewToggle("Kill all Killers:","Enable/Disable to enable Autofarm",function(R)if R then local k=game:GetService('Players').LocalPlayer;game:GetService("Workspace").Killers:FindFirstChild("Giant"):Destroy()for K,v in pairs(game.Workspace.Killers:GetChildren())do if v:IsA("Model")then repeat wait()mouse1press()l.CoordinateFrame=CFrame.new(l.CoordinateFrame.p,v.Head.CFrame.p)k.Character.HumanoidRootPart.CFrame=v.Head.CFrame+v.Head.CFrame.lookVector*-5 until v.Humanoid.Health==0;wait()end end else print("Toggle Off")end end)z:NewToggle("Fullbright","Makes the game bright",function(R)m.Notify("Fullbright","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then game:GetService("Lighting").Brightness=2;game:GetService("Lighting").ClockTime=14;game:GetService("Lighting").FogEnd=100000;game:GetService("Lighting").GlobalShadows=false;game:GetService("Lighting").OutdoorAmbient=Color3.fromRGB(128,128,128)else m.Notify("Fullbright","Disabled","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})origsettings={abt=game:GetService("Lighting").Ambient,oabt=game:GetService("Lighting").OutdoorAmbient,brt=game:GetService("Lighting").Brightness,time=game:GetService("Lighting").ClockTime,fe=game:GetService("Lighting").FogEnd,fs=game:GetService("Lighting").FogStart,gs=game:GetService("Lighting").GlobalShadows}game:GetService("Lighting").Ambient=origsettings.abt;game:GetService("Lighting").OutdoorAmbient=origsettings.oabt;game:GetService("Lighting").Brightness=origsettings.brt;game:GetService("Lighting").ClockTime=origsettings;game:GetService("Lighting").FogEnd=200;game:GetService("Lighting").FogStart=20;game:GetService("Lighting").FogColor=191,191,191;game:GetService("Lighting").GlobalShadows=origsettings.gs end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)local y=x:NewTab("Gun Cheats:")local z=y:NewSection("Rainbow Weapons")z:NewButton("Get all Weapons","Gives you every weapon in-game",function()function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end)z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One shot Killers","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"Missile Touch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("ESP:")local z=y:NewSection("ESP for Player/Killers")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Killer ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game:GetService("Workspace").Killers:GetDescendants())do pcall(function()if v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("PAP Weapons:")local z=y:NewSection("Select Weapon to Pack a Punch")local a9=getrawmetatable(game)local aa=a9.__index;setreadonly(a9,false)a9.__index=newcclosure(function(self,af)if tostring(self)=='Busy'and af=='Value'then return false end;return aa(self,af)end)setreadonly(a9,true)z:NewToggle("PAP All Weapons","PAP all your weapons in your inventory.",function(R)m.Notify("PAP All","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then _G.papAll=true;while wait(5)do if _G.papAll==true then for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(v.Name)end end end else _G.papAll=false end end)z:NewDropdown("PAP Weapon","DropdownInf",{"M1911","RayGun","MP5k","R870","M4A1","AK-47","M1014","Desert Eagle","SVD","M16A2/M203","M14","G36C","AWP"},function(ag)m.Notify("PAP..",ag,"http://www.roblox.com/asset/?id=5502174644",{Duration=4,Main={Rounding=true}})game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(ag)end)local y=x:NewTab("Area51 Doors:")local z=y:NewSection("Open/Close Doors")z:NewToggle("Spam Open Doors","Spam Opens the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewToggle("Spam Close Doors","Spam Closes the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewButton("Open Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end)z:NewButton("Close Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end)local y=x:NewTab("Teleports:")local z=y:NewSection("Teleports")z:NewDropdown("Weapon Teleports","DropdownInf",{"M14","RILG","R870","CLT1","SBG","SVD"},function(ag)local hum=k.Character.HumanoidRootPart;local aj=hum.CFrame;if ag=="M14"then hum.CFrame=CFrame.new(106.981911,323.620026,678.865051,0.108975291,-4.31107949e-08,0.994044483,-5.13666043e-09,1,4.39322072e-08,-0.994044483,-9.89359261e-09,0.108975291)wait(.2)hum.CFrame=CFrame.new(aj)elseif ag=="RILG"then hum.CFrame=CFrame.new(232.505737,373.660004,45.4774323,-0.999948323,-2.07754458e-09,0.0101688765,-3.00104475e-09,1,-9.08010804e-08,-0.0101688765,-9.08269016e-08,-0.999948323)elseif ag=="R870"then hum.CFrame=CFrame.new(143.435638,333.659973,499.670258,0.068527095,6.73678642e-08,-0.997649252,2.92282767e-08,1,6.95342521e-08,0.997649252,-3.39245503e-08,0.068527095)elseif ag=="CLT1"then hum.CFrame=CFrame.new(60.6713562,291.579956,262.712402,-0.0193858538,1.378409e-07,0.999812067,1.73167649e-08,1,-1.37531046e-07,-0.999812067,1.46473536e-08,-0.0193858538)elseif ag=="SBG"then hum.CFrame=CFrame.new(3.0812099,267.780121,184.758041,-0.998869121,3.20666018e-08,-0.0475441888,3.84712493e-08,1,-1.33794302e-07,0.0475441888,-1.35472078e-07,-0.998869121)elseif ag=="SVD"then hum.CFrame=CFrame.new(181.740906,306.660126,179.980011,-0.977237761,-295549789e-08,0.212145314,-3.5164706e-08,1,-2.25858496e-08,-0.212145314,-2.95278366e-08,-0.977237761)elseif ag=="blRU"then hum.CFrame=CFrame.new(19.2511063,313.500336,204.38269,0.113481902,7.8155864e08,0.993540049,-2.13239897e-08,1,-7.62284031e-08,-0.993540049,-1.25357014e-08,0.113481902)end end)z:NewDropdown("Teleport to Room","DropdownInf",{"Cafe-Room","Cartons-Room","Code-Door","Computers-Room","Corridor-to-Meeting-Room","Electricity-Room","Emergency-Hole-Down-To-Area","Entrance-To-Area","Main-Room","Entrance"},function(ag)if ag=="Cafe-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CafeRoom.Tables.Table.Table.Model.Part.CFrame elseif ag=="Cartons-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(149.739914,313.500458,194.231888,0.442422092,6.81004985e-06,-0.896806836,1.24363009e-06,1,8.20718469e-06,0.896806836,-4.74633543e-06,0.442422092)elseif ag=="Code-Door"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CodeDoorRoom.CodeDoor.Door.CFrame elseif ag=="Computers-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(219.700012,310,370.399994,-1,0,0,0,1,0,0,0,-1)elseif ag=="Corridor-to-Meeting-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CorridorToMeetingRoom.Part.CFrame elseif ag=="Electricity-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.ElectricityRoom.Generator1.Base.CFrame elseif ag=="Emergency-Hole-Down-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EmercencyHoleDownToArea.Part.CFrame elseif ag=="Entrance-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EntranceOfArea.Part.CFrame elseif ag=="Main-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.MainRoom.Part.CFrame elseif ag=="Entrance"then hum.CFrame=CFrame.new(327.317322,511.5,397.900269,1,-2.05416537e-08,-2.7642145e-15,2.05416537e-08,1,1.25194637e-08,2.50704388e-15,-1.25194637e-08,1)end end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)elseif game.PlaceId==5740483929 then local o="BloodTheme"local x=n.CreateLib("Hard Classic Mode UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Autofarm:")local z=y:NewSection("Enable/Disable Autofarm")local function A()local B=workspace.CurrentCamera;local C=k.Character;local D=k;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end end;local function J()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.StarterGear end end;for K,v in pairs(game:GetService("Players").LocalPlayer.StarterGear:GetChildren())do if v:IsA("Tool")then v.Parent=game.Players.LocalPlayer.Backpack end end end;local function L()for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end;local function N()for K,v in pairs(game:GetService("Workspace").AREA51.SewerCaptainRoom["Captain Zombie Feeder"].Cage:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end;local function O()local P=k.Character.HumanoidRootPart;function GetWepons(Q)firetouchinterest(P,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end;z:NewToggle("//Autofarm \\","Enables Autofarm for SAKTK",function(R)if R then m.Notify("Enabled Autofarm","Press F to Enable the SAKTK UI to disable autofarm.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})L()N()O()k.CameraMode=Enum.CameraMode.LockFirstPerson;for K,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k.Character end end;game:GetService("StarterGui").TailsPopup.Enabled=false;game:GetService("Players").LocalPlayer.PlayerGui.TailsPopup.Enabled=false;game:GetService("Workspace").Killers:FindFirstChild("Giant"):Destroy()for K,v in pairs(game.Workspace.Killers:GetChildren())do if v:IsA("Model")then repeat wait()mouse1press()l.CoordinateFrame=CFrame.new(l.CoordinateFrame.p,v.Head.CFrame.p)k.Character.HumanoidRootPart.CFrame=v.Head.CFrame+v.Head.CFrame.lookVector*-5 until v.Zombie.Health==0;wait()end end else workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewToggle("Fullbright","Makes the game bright",function(R)m.Notify("Fullbright","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then game:GetService("Lighting").Brightness=2;game:GetService("Lighting").ClockTime=14;game:GetService("Lighting").FogEnd=100000;game:GetService("Lighting").GlobalShadows=false;game:GetService("Lighting").OutdoorAmbient=Color3.fromRGB(128,128,128)else m.Notify("Fullbright","Disabled","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})origsettings={abt=game:GetService("Lighting").Ambient,oabt=game:GetService("Lighting").OutdoorAmbient,brt=game:GetService("Lighting").Brightness,time=game:GetService("Lighting").ClockTime,fe=game:GetService("Lighting").FogEnd,fs=game:GetService("Lighting").FogStart,gs=game:GetService("Lighting").GlobalShadows}game:GetService("Lighting").Ambient=origsettings.abt;game:GetService("Lighting").OutdoorAmbient=origsettings.oabt;game:GetService("Lighting").Brightness=origsettings.brt;game:GetService("Lighting").ClockTime=origsettings;game:GetService("Lighting").FogEnd=200;game:GetService("Lighting").FogStart=20;game:GetService("Lighting").FogColor=191,191,191;game:GetService("Lighting").GlobalShadows=origsettings.gs end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)z:NewButton("Unlock all Secrets","Unlocks all the secrets in the game",function()O()firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,game:GetService("Workspace").AREA51.RadioactiveArea.GiantZombieRoom.GiantZombieEngine.Close.Door2,0)function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game:GetService("Workspace"):GetDescendants())do if v:IsA("Part")and v.Name:match("Paper")or v.Name:match("Reward")then GetWepons(v)end end;for K,v in pairs(game:GetService("Workspace"):GetDescendants())do if v:IsA("Part")and v.Name:match("TheButton")then GetWepons(v)end end;firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,game:GetService("Workspace").AREA51.PlantRoom["Box of Shells"].Box,0)wait(0.2)local a1=k.Character.HumanoidRootPart.CFrame;k.Character.HumanoidRootPart.CFrame=CFrame.new(game:GetService("Workspace").AREA51.ExecutionRoom.Reward.Position)wait(0.2)game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer("M14")k.CFrame=CFrame.new(326.773315,511.5,392.70932,0.982705772,0,-0.185173988,0,1,0,0.185173988,0,0.982705772)end)z:NewButton("Get all Badges","Gives almost every badge.",function()O()firetouchinterest(a,game:GetService("Workspace").AREA51.SecretPath6.Reward)for a2,v in pairs(game:GetService("Workspace").AREA51.Badges:GetDescendants())do if v:IsA("TouchTransmitter")and v.Parent:IsA("Part")then firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,v.Parent,0)wait()firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,v.Parent,1)end end end)z:NewButton("Get Gamepasses","Tries to give you gamepasses.",function()game.Players.LocalPlayer.Character.Humanoid.WalkSpeed=25;O()game.Players.LocalPlayer.Character.Humanoid.Died:Connect(function()wait(8)game.Players.LocalPlayer.Character.Humanoid.WalkSpeed=25;O()J()end)end)local y=x:NewTab("Gun Cheats:")local z=y:NewSection("Rainbow Weapons")z:NewButton("Get all Weapons","Gives you every weapon in-game",function()function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end)z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One shot Killers","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"Missile Touch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("PAP Weapons:")local z=y:NewSection("Select Weapon to Pack a Punch")local a9=getrawmetatable(game)local aa=a9.__index;setreadonly(a9,false)a9.__index=newcclosure(function(self,af)if tostring(self)=='Busy'and af=='Value'then return false end;return aa(self,af)end)setreadonly(a9,true)z:NewToggle("PAP All Weapons","PAP all your weapons in your inventory.",function(R)m.Notify("PAP All","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then _G.papAll=true;while wait(5)do if _G.papAll==true then for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(v.Name)end end end else _G.papAll=false end end)z:NewDropdown("PAP Weapon","DropdownInf",{"M1911","RayGun","MP5k","R870","M4A1","AK-47","M1014","Desert Eagle","SVD","M16A2/M203","M14","G36C","AWP","Crossbow","MG42","FreezeGunas"},function(ag)m.Notify("PAP..",ag,"http://www.roblox.com/asset/?id=5502174644",{Duration=4,Main={Rounding=true}})game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(ag)end)local y=x:NewTab("Doors AREA51:")local z=y:NewSection("Open/Close Doors")z:NewToggle("Spam Open Doors","Spam Opens the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewToggle("Spam Close Doors","Spam Closes the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewButton("Open Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end)z:NewButton("Close Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end)local y=x:NewTab("ESP:")local z=y:NewSection("ESP for Player/Killers")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Parent.Name=="Characters to kill"and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Killer ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Zombie")and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("Teleports:")local z=y:NewSection("Teleports")z:NewDropdown("Weapon Teleports","DropdownInf",{"M14","RILG","R870","CLT1","SBG","SVD"},function(ag)local hum=k.Character.HumanoidRootPart;local aj=hum.CFrame;if ag=="M14"then hum.CFrame=CFrame.new(game:GetService("Workspace").AREA51[ag])wait(.2)hum.CFrame=CFrame.new(aj)elseif ag=="RILG"then hum.CFrame=CFrame.new(232.505737,373.660004,45.4774323,-0.999948323,-2.07754458e-09,0.0101688765,-3.00104475e-09,1,-9.08010804e-08,-0.0101688765,-9.08269016e-08,-0.999948323)elseif ag=="R870"then hum.CFrame=CFrame.new(143.435638,333.659973,499.670258,0.068527095,6.73678642e-08,-0.997649252,2.92282767e-08,1,6.95342521e-08,0.997649252,-3.39245503e-08,0.068527095)elseif ag=="CLT1"then hum.CFrame=CFrame.new(60.6713562,291.579956,262.712402,-0.0193858538,1.378409e-07,0.999812067,1.73167649e-08,1,-1.37531046e-07,-0.999812067,1.46473536e-08,-0.0193858538)elseif ag=="SBG"then hum.CFrame=CFrame.new(3.0812099,267.780121,184.758041,-0.998869121,3.20666018e-08,-0.0475441888,3.84712493e-08,1,-1.33794302e-07,0.0475441888,-1.35472078e-07,-0.998869121)elseif ag=="SVD"then hum.CFrame=CFrame.new(181.740906,306.660126,179.980011,-0.977237761,-295549789e-08,0.212145314,-3.5164706e-08,1,-2.25858496e-08,-0.212145314,-2.95278366e-08,-0.977237761)elseif ag=="blRU"then hum.CFrame=CFrame.new(19.2511063,313.500336,204.38269,0.113481902,7.8155864e08,0.993540049,-2.13239897e-08,1,-7.62284031e-08,-0.993540049,-1.25357014e-08,0.113481902)end end)z:NewDropdown("Teleport to Room","DropdownInf",{"Cafe-Room","Cartons-Room","Code-Door","Computers-Room","Corridor-to-Meeting-Room","Electricity-Room","Emergency-Hole-Down-To-Area","Entrance-To-Area","Main-Room","Entrance"},function(ag)if ag=="Cafe-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CafeRoom.Tables.Table.Table.Model.Part.CFrame elseif ag=="Cartons-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(149.739914,313.500458,194.231888,0.442422092,6.81004985e-06,-0.896806836,1.24363009e-06,1,8.20718469e-06,0.896806836,-4.74633543e-06,0.442422092)elseif ag=="Code-Door"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CodeDoorRoom.CodeDoor.Door.CFrame elseif ag=="Computers-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(219.700012,310,370.399994,-1,0,0,0,1,0,0,0,-1)elseif ag=="Corridor-to-Meeting-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CorridorToMeetingRoom.Part.CFrame elseif ag=="Electricity-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.ElectricityRoom.Generator1.Base.CFrame elseif ag=="Emergency-Hole-Down-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EmercencyHoleDownToArea.Part.CFrame elseif ag=="Entrance-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EntranceOfArea.Part.CFrame elseif ag=="Main-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.MainRoom.Part.CFrame elseif ag=="Entrance"then hum.CFrame=CFrame.new(327.317322,511.5,397.900269,1,-2.05416537e-08,-2.7642145e-15,2.05416537e-08,1,1.25194637e-08,2.50704388e-15,-1.25194637e-08,1)end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(155382109,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)elseif game.PlaceId==3182083477 then local o="BloodTheme"local x=n.CreateLib("Extreme Mode UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Autofarm:")local z=y:NewSection("Enable/Disable Autofarm")local function A()local B=workspace.CurrentCamera;local C=k.Character;local D=k;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end end;local function J()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.StarterGear end end;for K,v in pairs(game:GetService("Players").LocalPlayer.StarterGear:GetChildren())do if v:IsA("Tool")then v.Parent=game.Players.LocalPlayer.Backpack end end end;local function L()for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end;local function N()for K,v in pairs(game:GetService("Workspace").AREA51.SewerCaptainRoom["Captain Zombie Feeder"].Cage:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end;local function O()local P=k.Character.HumanoidRootPart;function GetWepons(Q)firetouchinterest(P,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end;z:NewToggle("//Autofarm \\","Enables Autofarm for SAKTK",function(R)if R then m.Notify("Enabled Autofarm","Press F to Enable the SAKTK UI to disable autofarm.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})L()N()O()k.CameraMode=Enum.CameraMode.LockFirstPerson;for K,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k.Character end end;game:GetService("StarterGui").TailsPopup.Enabled=false;game:GetService("Players").LocalPlayer.PlayerGui.TailsPopup.Enabled=false;game:GetService("Workspace").Killers:FindFirstChild("Giant"):Destroy()for K,v in pairs(game.Workspace.Killers:GetChildren())do if v:IsA("Model")then repeat wait()mouse1press()l.CoordinateFrame=CFrame.new(l.CoordinateFrame.p,v.Head.CFrame.p)k.Character.HumanoidRootPart.CFrame=v.Head.CFrame+v.Head.CFrame.lookVector*-5 until v.Zombie.Health==0;wait()end end else workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewToggle("Fullbright","Makes the game bright",function(R)m.Notify("Fullbright","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then game:GetService("Lighting").Brightness=2;game:GetService("Lighting").ClockTime=14;game:GetService("Lighting").FogEnd=100000;game:GetService("Lighting").GlobalShadows=false;game:GetService("Lighting").OutdoorAmbient=Color3.fromRGB(128,128,128)else m.Notify("Fullbright","Disabled","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})origsettings={abt=game:GetService("Lighting").Ambient,oabt=game:GetService("Lighting").OutdoorAmbient,brt=game:GetService("Lighting").Brightness,time=game:GetService("Lighting").ClockTime,fe=game:GetService("Lighting").FogEnd,fs=game:GetService("Lighting").FogStart,gs=game:GetService("Lighting").GlobalShadows}game:GetService("Lighting").Ambient=origsettings.abt;game:GetService("Lighting").OutdoorAmbient=origsettings.oabt;game:GetService("Lighting").Brightness=origsettings.brt;game:GetService("Lighting").ClockTime=origsettings;game:GetService("Lighting").FogEnd=200;game:GetService("Lighting").FogStart=20;game:GetService("Lighting").FogColor=191,191,191;game:GetService("Lighting").GlobalShadows=origsettings.gs end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)z:NewButton("Unlock all Secrets","Unlocks all the secrets in the game",function()O()firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,game:GetService("Workspace").AREA51.RadioactiveArea.GiantZombieRoom.GiantZombieEngine.Close.Door2,0)function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game:GetService("Workspace"):GetDescendants())do if v:IsA("Part")and v.Name:match("Paper")or v.Name:match("Reward")then GetWepons(v)end end;for K,v in pairs(game:GetService("Workspace"):GetDescendants())do if v:IsA("Part")and v.Name:match("TheButton")then GetWepons(v)end end;firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,game:GetService("Workspace").AREA51.PlantRoom["Box of Shells"].Box,0)wait(0.2)local a1=k.Character.HumanoidRootPart.CFrame;k.Character.HumanoidRootPart.CFrame=CFrame.new(game:GetService("Workspace").AREA51.ExecutionRoom.Reward.Position)wait(0.2)game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer("M14")k.CFrame=CFrame.new(326.773315,511.5,392.70932,0.982705772,0,-0.185173988,0,1,0,0.185173988,0,0.982705772)end)z:NewButton("Get all Badges","Gives almost every badge.",function()O()firetouchinterest(a,game:GetService("Workspace").AREA51.SecretPath6.Reward)for a2,v in pairs(game:GetService("Workspace").AREA51.Badges:GetDescendants())do if v:IsA("TouchTransmitter")and v.Parent:IsA("Part")then firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,v.Parent,0)wait()firetouchinterest(game.Players.LocalPlayer.Character.HumanoidRootPart,v.Parent,1)end end end)z:NewButton("Get Gamepasses","Tries to give you gamepasses.",function()game.Players.LocalPlayer.Character.Humanoid.WalkSpeed=25;O()game.Players.LocalPlayer.Character.Humanoid.Died:Connect(function()wait(8)game.Players.LocalPlayer.Character.Humanoid.WalkSpeed=25;O()J()end)end)local y=x:NewTab("Gun Cheats:")local z=y:NewSection("Rainbow Weapons")z:NewButton("Get all Weapons","Gives you every weapon in-game",function()function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end)z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One shot Killers","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"Missile Touch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("PAP Weapons:")local z=y:NewSection("Select Weapon to Pack a Punch")local a9=getrawmetatable(game)local aa=a9.__index;setreadonly(a9,false)a9.__index=newcclosure(function(self,af)if tostring(self)=='Busy'and af=='Value'then return false end;return aa(self,af)end)setreadonly(a9,true)z:NewToggle("PAP All Weapons","PAP all your weapons in your inventory.",function(R)m.Notify("PAP All","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then _G.papAll=true;while wait(5)do if _G.papAll==true then for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(v.Name)end end end else _G.papAll=false end end)z:NewDropdown("PAP Weapon","DropdownInf",{"M1911","RayGun","MP5k","R870","M4A1","AK-47","M1014","Desert Eagle","SVD","M16A2/M203","M14","G36C","AWP","Crossbow"},function(ag)m.Notify("PAP..",ag,"http://www.roblox.com/asset/?id=5502174644",{Duration=4,Main={Rounding=true}})game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(ag)end)local y=x:NewTab("Doors AREA51:")local z=y:NewSection("Open/Close Doors")z:NewToggle("Spam Open Doors","Spam Opens the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewToggle("Spam Close Doors","Spam Closes the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewButton("Open Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end)z:NewButton("Close Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end)local y=x:NewTab("ESP:")local z=y:NewSection("ESP for Player/Killers")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Parent.Name=="Characters to kill"and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Killer ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Zombie")and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("Teleports:")local z=y:NewSection("Teleports")z:NewDropdown("Weapon Teleports","DropdownInf",{"M14","RILG","R870","CLT1","SBG","SVD"},function(ag)local hum=k.Character.HumanoidRootPart;local aj=hum.CFrame;if ag=="M14"then hum.CFrame=CFrame.new(106.981911,323.620026,678.865051,0.108975291,-4.31107949e-08,0.994044483,-5.13666043e-09,1,4.39322072e-08,-0.994044483,-9.89359261e-09,0.108975291)wait(.2)hum.CFrame=CFrame.new(aj)elseif ag=="RILG"then hum.CFrame=CFrame.new(232.505737,373.660004,45.4774323,-0.999948323,-2.07754458e-09,0.0101688765,-3.00104475e-09,1,-9.08010804e-08,-0.0101688765,-9.08269016e-08,-0.999948323)elseif ag=="R870"then hum.CFrame=CFrame.new(143.435638,333.659973,499.670258,0.068527095,6.73678642e-08,-0.997649252,2.92282767e-08,1,6.95342521e-08,0.997649252,-3.39245503e-08,0.068527095)elseif ag=="CLT1"then hum.CFrame=CFrame.new(60.6713562,291.579956,262.712402,-0.0193858538,1.378409e-07,0.999812067,1.73167649e-08,1,-1.37531046e-07,-0.999812067,1.46473536e-08,-0.0193858538)elseif ag=="SBG"then hum.CFrame=CFrame.new(3.0812099,267.780121,184.758041,-0.998869121,3.20666018e-08,-0.0475441888,3.84712493e-08,1,-1.33794302e-07,0.0475441888,-1.35472078e-07,-0.998869121)elseif ag=="SVD"then hum.CFrame=CFrame.new(181.740906,306.660126,179.980011,-0.977237761,-295549789e-08,0.212145314,-3.5164706e-08,1,-2.25858496e-08,-0.212145314,-2.95278366e-08,-0.977237761)elseif ag=="blRU"then hum.CFrame=CFrame.new(19.2511063,313.500336,204.38269,0.113481902,7.8155864e08,0.993540049,-2.13239897e-08,1,-7.62284031e-08,-0.993540049,-1.25357014e-08,0.113481902)end end)z:NewDropdown("Teleport to Room","DropdownInf",{"Cafe-Room","Cartons-Room","Code-Door","Computers-Room","Corridor-to-Meeting-Room","Electricity-Room","Emergency-Hole-Down-To-Area","Entrance-To-Area","Main-Room","Entrance"},function(ag)if ag=="Cafe-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CafeRoom.Tables.Table.Table.Model.Part.CFrame elseif ag=="Cartons-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(149.739914,313.500458,194.231888,0.442422092,6.81004985e-06,-0.896806836,1.24363009e-06,1,8.20718469e-06,0.896806836,-4.74633543e-06,0.442422092)elseif ag=="Code-Door"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CodeDoorRoom.CodeDoor.Door.CFrame elseif ag=="Computers-Room"then k.Character.HumanoidRootPart.CFrame=CFrame.new(219.700012,310,370.399994,-1,0,0,0,1,0,0,0,-1)elseif ag=="Corridor-to-Meeting-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.CorridorToMeetingRoom.Part.CFrame elseif ag=="Electricity-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.ElectricityRoom.Generator1.Base.CFrame elseif ag=="Emergency-Hole-Down-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EmercencyHoleDownToArea.Part.CFrame elseif ag=="Entrance-To-Area"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.EntranceOfArea.Part.CFrame elseif ag=="Main-Room"then k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").AREA51.MainRoom.Part.CFrame elseif ag=="Entrance"then hum.CFrame=CFrame.new(327.317322,511.5,397.900269,1,-2.05416537e-08,-2.7642145e-15,2.05416537e-08,1,1.25194637e-08,2.50704388e-15,-1.25194637e-08,1)end end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(155382109,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(3508248007,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)elseif game.PlaceId==4678052190 then local o="BloodTheme"local x=n.CreateLib("Juggernaut Mode UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Main:")local z=y:NewSection("Teleports")game:GetService("Workspace").AREA51.MapLimit:Destroy()z:NewToggle("Juggernaut Autofarm:","Enables Autofarm for Juggernaut",function(R)if R then m.Notify("Enabled Autofarm","Press F to enable UI again","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})local l=game.Workspace.CurrentCamera;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end;function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end;for a2,v in pairs(game.Workspace:GetDescendants())do if v:IsA('TouchTransmitter')then v:Destroy()end end;_G.autoFarm=true;while wait(0.5)do if _G.autoFarm==true then game:GetService("Players").LocalPlayer.PlayerScripts.Checks.Disabled=true;for a2,al in pairs(game.Workspace.Killers:GetChildren())do if al:IsA("Model")then repeat wait()game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=al.Head.CFrame+al.Head.CFrame.lookVector*-5 until al.Humanoid.Health<=0 end end end end else G.autoFarm=false;workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewToggle("Kill all as Juggernaut","Kills all Players",function(R)if R then local ap=game.Workspace.Killers.Model;local aq=player.Character;local ar=game:GetService("Players"):GetPlayers()for K,v in pairs(ar)do repeat wait()ap.Torso.CFrame=CFrame.new(v.Character.Head.Position)until v.Character.Humanoid<=0 end else print("Toggle Off")end end)z:NewButton("Teleport to Juggernaut","Teleports to the juggernaut",function()repeat wait()for a2,v in pairs(game.Workspace.Killers:GetChildren())do if v:IsA("Model")then k.Character.HumanoidRootPart.CFrame=v.Head.CFrame+v.Head.CFrame.lookVector*-6 end end until v.Humanoid.Health==0 end)z:NewToggle("Annoy Juggernaut:","Attempts to annoy Juggernaut",function(R)if R then m.Notify("Annoying Juggernaut","lol","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.autoFarm=true;local l=game.Workspace.CurrentCamera;while wait(0.5)do if _G.autoFarm==true then game:GetService("Players").LocalPlayer.PlayerScripts.Checks.Disabled=true;local B=workspace.CurrentCamera;local C=k.Character;local D=k;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;if game.Players.LocalPlayer.Character.Humanoid.RigType==Enum.HumanoidRigType.R6 then game.Players.LocalPlayer.Character.Head.CanCollide=false;game.Players.LocalPlayer.Character.Torso.CanCollide=false;game.Players.LocalPlayer.Character["Left Leg"].CanCollide=false;game.Players.LocalPlayer.Character["Right Leg"].CanCollide=false else if game.Players.LocalPlayer.Character.Humanoid.RigType==Enum.HumanoidRigType.R15 then game.Players.LocalPlayer.Character.Head.CanCollide=false;game.Players.LocalPlayer.Character.UpperTorso.CanCollide=false;game.Players.LocalPlayer.Character.LowerTorso.CanCollide=false;game.Players.LocalPlayer.Character.HumanoidRootPart.CanCollide=false end end;wait(.1)local as=Instance.new("BodyThrust")as.Parent=game.Players.LocalPlayer.Character.HumanoidRootPart;as.Force=Vector3.new(power,0,power)as.Location=game.Players.LocalPlayer.Character.HumanoidRootPart.Position;for a2,al in pairs(game.Workspace.Killers:GetChildren())do if al:IsA("Model")then repeat wait()game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=al.Head.CFrame until al.Humanoid.Health<=0 end end end end else _G.autofarm=false;workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end)z:NewButton("Exit-Spectate","Exits spectate",function()workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end)z:NewButton("Remove-Doors","This removes all the doors this cannot be undone.",function()for K,v in pairs(game:GetService('Workspace'):GetDescendants())do if v:IsA("Part")and v.Parent.Name=="Door"then v:Destroy()end end end)local y=x:NewTab("LocalPlayer")local z=y:NewSection("Humanoid")z:NewToggle("Fly","Allows you to Fly through the game.",function(R)if R then m.Notify("Enabled Fly","Press LeftALT to Enable/Disable Fly.","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.Enabled=true;local l=game.Workspace.CurrentCamera;local k=game:GetService("Players").LocalPlayer;local S=game:GetService("UserInputService")local T=false;local U=false;local V=false;local W=false;local X=false;local Y=false;local function Z()for K,v in pairs(k.Character:GetChildren())do pcall(function()v.Anchored=not v.Anchored end)end end;S.InputBegan:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.LeftAlt then Enabled=not Enabled;Z()end;if s.KeyCode==Enum.KeyCode.W then T=true end;if s.KeyCode==Enum.KeyCode.S then U=true end;if s.KeyCode==Enum.KeyCode.A then V=true end;if s.KeyCode==Enum.KeyCode.D then W=true end;if s.KeyCode==Enum.KeyCode.Space then X=true end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=true end end)S.InputEnded:Connect(function(s,_)if _ then return end;if s.KeyCode==Enum.KeyCode.W then T=false end;if s.KeyCode==Enum.KeyCode.S then U=false end;if s.KeyCode==Enum.KeyCode.A then V=false end;if s.KeyCode==Enum.KeyCode.D then W=false end;if s.KeyCode==Enum.KeyCode.Space then X=false end;if s.KeyCode==Enum.KeyCode.LeftControl then Y=false end end)while game:GetService("RunService").RenderStepped:Wait()do if Enabled then pcall(function()if T then k.Character:TranslateBy(l.CFrame.lookVector*2)end;if U then k.Character:TranslateBy(-l.CFrame.lookVector*2)end;if V then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if W then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(1,0,0))*2)end;if X then k.Character:TranslateBy(l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end;if Y then k.Character:TranslateBy(-l.CFrame:vectorToWorldSpace(Vector3.new(0,1,0))*2)end end)end end else print("ok")end end)z:NewSlider("WalkSpeed","Move the slider to set WalkSpeed for Humanoid",500,0,function(a0)k.Character.Humanoid.WalkSpeed=a0 end)z:NewSlider("JumpPower","Move the slider to set JumpPower for Humanoid",500,0,function(a0)k.Character.Humanoid.JumpPower=a0 end)z:NewSlider("Gravity","Move the slider to set Garavity inside of the workspace.",50,0,function(a0)workspace.Gravity=a0 end)z:NewButton("NoClip","Click this to turn on NoClip",function()k.Character.Humanoid:ChangeState(11)end)z:NewToggle("GodMode","Gives you Godmode",function(R)m.Notify("Godmode","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then local B=workspace.CurrentCamera;local C=game.Players.LocalPlayer.Character;local D=game.Players.LocalPlayer;local E,C=B.CFrame,D.Character;local F=C and C.FindFirstChildWhichIsA(C,"Humanoid")local H=F.Clone(F)H.Parent,D.Character=C,nil;H.SetStateEnabled(H,15,false)H.SetStateEnabled(H,1,false)H.SetStateEnabled(H,0,false)H.BreakJointsOnDeath,F=true,F.Destroy(F)D.Character,B.CameraSubject,B.CFrame=C,H,wait()and E;H.DisplayDistanceType=Enum.HumanoidDisplayDistanceType.None;local I=C.FindFirstChild(C,"Animate")if I then I.Disabled=true;wait()I.Disabled=false end;H.Health=H.MaxHealth else game:GetService("TeleportService"):Teleport(game.PlaceId,game.Players.LocalPlayer)end end)local y=x:NewTab("Gun Cheats:")local z=y:NewSection("Rainbow Weapons")z:NewButton("Get all Weapons","Gives you every weapon in-game",function()function GetWepons(Q)firetouchinterest(k.Character.HumanoidRootPart,Q,0)end;for K,v in pairs(game.Workspace:GetDescendants())do if v.Name:match("WEAPON")and v:IsA("Part")then GetWepons(v)end end end)z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One Shot Juggernaut","Gives you more Damage on Killers",function()local a8={repeatamount=100,exceptions={"SayMessageRequest"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()for K,a7 in next,a8.exceptions do if ac.Name==a7 then return aa(ac,...)end end;if ae=="FireServer"or ae=="InvokeServer"then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("ESP:")local z=y:NewSection("PLAYER ESP/JUGGERNAUT ESP")z:NewToggle("Player ESP","Enables Player-ESP for Players",function(R)if R then _G.on=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.8 end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace:GetDescendants())do pcall(function()if v:FindFirstChild("Humanoid")and v.Parent.Name=="Characters to kill"and v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.on==false else _G.on=false;for K,v in pairs(game:GetService("Workspace")["Characters to kill"]:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)z:NewToggle("Juggernaut ESP","Enables Killer-ESP for Killers",function(R)if R then _G.lol=true;repeat local function ah(player)local a5=Instance.new("BoxHandleAdornment",player)a5.AlwaysOnTop=true;a5.ZIndex=5;a5.Size=player.Size;a5.Adornee=player;a5.Transparency=0.7;a5.Color=BrickColor.new("Bright red")end;function Main(ai)for K,v in pairs(ai:GetChildren())do if v:IsA("BasePart")and not v:FindFirstChild("BoxHandleAdornment")then ah(v)end end end;for K,v in pairs(game.Workspace.Killers:GetDescendants())do pcall(function()if v.Name~=game.Players.LocalPlayer.Name then Main(v)end end)end;wait(7)until _G.lol==false else _G.lol=false;for K,v in pairs(game.Workspace.Killers:GetDescendants())do if v:IsA("BoxHandleAdornment")then v:Destroy()end end end end)local y=x:NewTab("PAP Weapons:")local z=y:NewSection("Select Weapon to Pack a Punch")local a9=getrawmetatable(game)local aa=a9.__index;setreadonly(a9,false)a9.__index=newcclosure(function(self,af)if tostring(self)=='Busy'and af=='Value'then return false end;return aa(self,af)end)setreadonly(a9,true)z:NewToggle("PAP All Weapons","PAP all your weapons in your inventory.",function(R)m.Notify("PAP All","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then _G.papAll=true;while wait(5)do if _G.papAll==true then for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(v.Name)end end end else _G.papAll=false end end)z:NewDropdown("PAP Weapon","DropdownInf",{"M1911","RayGun","MP5k","R870","M4A1","AK-47","M1014","Desert Eagle","SVD","M16A2/M203","M14","G36C","AWP"},function(ag)m.Notify("PAP..",ag,"http://www.roblox.com/asset/?id=5502174644",{Duration=4,Main={Rounding=true}})game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(ag)end)local y=x:NewTab("AREA51 Doors:")local z=y:NewSection("Open/Close Doors")z:NewToggle("Spam Open Doors","Spam Opens the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewToggle("Spam Close Doors","Spam Closes the Area-51 Doors",function(R)if R then _G.spamDoors=true;while wait(0.5)do if _G.spamDoors==true then for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end end else _G.spamDoors=false end end)z:NewButton("Open Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Open"then fireclickdetector(v)end end end)z:NewButton("Close Doors","Opens all the Doors in Area51",function()for K,v in pairs(game:GetService("Workspace").AREA51.Doors:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Name=="Close"then fireclickdetector(v)end end end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(155382109,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(3508248007,k)end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)elseif game.PlaceId==2675280735 then local o="BloodTheme"local x=n.CreateLib("Endless Survival Mode UI",o)function CountTable(q)local r,s=0;repeat s=next(q,s)if s~=nil then r=r+1 end until s==nil;return r end;for t,u in pairs(getgc())do if type(u)=="function"and rawget(getfenv(u),"script")==game.Players.LocalPlayer.PlayerScripts.Stuffs then local w=debug.getconstants(u)if CountTable(w)==5 then if table.find(w,"WalkSpeed")and table.find(w,"GetPropertyChangedSignal")and table.find(w,"Connect")then hookfunction(u,function()end)end end end end;hookfunction(getconnections(game.Players.LocalPlayer.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))[1].Function,function()end)local y=x:NewTab("Main:")local z=y:NewSection("Auto/Repair Planks")z:NewToggle("Autofarm Killers:","Enables Autofarm for Killers",function(R)if R then m.Notify("Enabled Autofarm","Press F to enable UI again","http://www.roblox.com/asset/?id=5082257850",{Duration=15,Main={Rounding=true}})_G.autoFarm=true;local l=game.Workspace.CurrentCamera;for a2,v in pairs(game:GetDescendants())do if v:IsA("TouchTransmitter")then v:Destroy()end end;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end;while wait(0.5)do if _G.autoFarm==true then mouse1click()while wait(0.5)do for a2,al in pairs(game:GetService("Workspace").Killers:GetChildren())do if al:IsA("Model")then repeat wait(0.2)game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame=al.Head.CFrame+al.Head.CFrame.lookVector*-7 until al.Zombie.Health<=0 end end end else _G.autofarm=false;workspace.CurrentCamera.CameraSubject=k.Character:FindFirstChildWhichIsA('Humanoid')workspace.CurrentCamera.CameraType="Custom"k.CameraMinZoomDistance=0.5;k.CameraMaxZoomDistance=400;k.CameraMode="Classic"k.Character.Head.Anchored=false end end end end)z:NewToggle("Auto-Repair Planks","Auto-Repairs Planks",function(R)if R then _G.autoRepair=true;while _G.autoRepair==true do wait(0.5)for K,v in pairs(game:GetService("Workspace").AREA51:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Parent.Name=="Planks"then fireclickdetector(v)end end end else _G.autoRepair=false end end)z:NewToggle("Auto-Turn-On-all Traps","Automatically turns on Traps",function(R)if R then _G.autoRepair=true;while _G.autoRepair==true do wait(0.5)for a2,v in pairs(game:GetService("Workspace").Traps:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Click"then fireclickdetector(v)end end end else _G.autoRepair=false end end)z:NewButton("Remove-Doors","This removes all the doors this cannot be undone.",function()for K,v in pairs(game:GetService('Workspace'):GetDescendants())do if v:IsA("Part")and v.Parent.Name=="Door"then v:Destroy()end end end)z:NewButton("Turn-Power On","This turns on the power.",function()for a2,v in pairs(game:GetService("Workspace").AREA51.ElectricityRoom.PowerManager:GetDescendants())do if v:IsA("ClickDetector")then fireclickdetector(v)end end end)z:NewButton("Turn-On all Traps","This turns on the all Traps..",function()for a2,v in pairs(game:GetService("Workspace").Traps:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Click"then fireclickdetector(v)end end end)z:NewButton("Repair Planks","Repairs all Planks.",function()for K,v in pairs(game:GetService("Workspace").AREA51:GetDescendants())do if v:IsA("ClickDetector")and v.Parent.Parent.Name=="Planks"then fireclickdetector(v)end end end)local y=x:NewTab("Gun Cheats:")local z=y:NewSection("Rainbow Weapons")z:NewButton("Infinite-Ammo","Gives you Infinite Ammo for your weaponary",function()local a3=math.sin(workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(workspace.DistributedGameTime)/2+0.5;local a5=math.sin(workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for a2,a7 in pairs(getreg())do if typeof(a7)=="table"then if a7.shoot_wait then a7.shoot_wait=0;a7.is_auto=true;a7.MaxHealth=0;a7.Health=0;a7.is_burst=false;a7.burst_count=15;a7.bullet_color=BrickColor.new("Toothpaste")a7.inaccuracy=0;a7.is_pap="PAP"a7.vibration_changed=0;a7.touch_mode=false;a7.reloading=false;a7.equip_time=0;a7.holding=true;a7.ready=true;a7.stolen=false;a7.clear_magazine=false;a7.cancel_reload=false;a7.is_grenade=true;a7.is_pap=true;for K,v in pairs(getgc())do if type(v)=="function"and islclosure(v)and not is_synapse_function(v)then local M=debug.getconstants(v)if table.find(M,"ammo")and table.find(M,"update_ammo_gui")and table.find(M,"has_scope")then debug.setconstant(v,2,-999999)end end end end end end end)z:NewButton("One Shot Killers","Gives you more Damage on Killers",function()local a8={repeatamount=100,inclusions={"Missile Touch","Fired"}}local a9=getrawmetatable(game)local aa=a9.__namecall;setreadonly(a9,false)local function ab(ac)for K,a7 in next,a8.inclusions do if ac.Name==a7 then return true end end;return false end;a9.__namecall=function(ac,...)local ad={...}local ae=getnamecallmethod()if ae=="FireServer"or ae=="InvokeServer"and ab(ac)then for K=1,a8.repeatamount do aa(ac,...)end end;return aa(ac,...)end;setreadonly(a9,true)end)z:NewToggle("Rainbow Weapons","Allows you to have Rainbow Weapons.",function(R)if R then m.Notify("Rainbow Guns ","Activated","http://www.roblox.com/asset/?id=5124031298",{Duration=4,Main={Rounding=true}})_G.rainbowdoo=true;while wait(0.1)do if _G.rainbowdoo==true then local a3=math.sin(game.workspace.DistributedGameTime/2)/2+0.5;local a4=math.sin(game.workspace.DistributedGameTime)/2+0.5;local a5=math.sin(game.workspace.DistributedGameTime*1.5)/2+0.5;local a6=Color3.new(a3,a4,a5)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Backpack:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end;for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Part')and v.Parent:IsA('Tool')then v.BrickColor=BrickColor.new(a6)end end end end else _G.rainbowdoo=false;wait(4)for K,v in pairs(k.Character:GetDescendants())do if v:IsA('Tool')then v.Handle.BrickColor=BrickColor.new("Really black")end end end end)z:NewToggle("Equip all Tools","Equips all the tools in your backpack.",function(R)if R then local function O()for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=game:GetService("Players").LocalPlayer.Character end end end;O()else for K,v in pairs(k.Character:GetChildren())do if v:IsA('Tool')then v.Parent=k.Backpack end end end end)z:NewToggle("Save Tools","Saves your tools ",function(R)if R then for a2,v in pairs(k.Backpack:GetChildren())do if v:IsA("Tool")then v.Parent=k end end else for a2,v in pairs(k:GetChildren())do if v:IsA("Tool")then v.Parent=k.Backpack end end end end)z:NewButton("Drop Tools","Drops your tools",function()for a2,v in pairs(k.Backpack:GetChildren())do k.Character.Humanoid:EquipTool(v)v.Parent=nil end end)local y=x:NewTab("Purchase Perks:")local z=y:NewSection("1000 Points required for some perks.")z:NewButton("Juggernog","Purchases Juggernog",function()local player=game:getService("Players").LocalPlayer;local lastPosition=player.Character.PrimaryPart.Position;for a2,v in pairs(game:GetService("Workspace").Perks.Juggernog.Range:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Range"then fireclickdetector(v)end end;k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").Perks.Juggernog.Range.CFrame;wait(0.8)k.Character:MoveTo(lastPosition)lastPosition=nil end)z:NewButton("Speed Cola","Purchases Speed Cola",function()for a2,v in pairs(game:GetService("Workspace").Perks['Speed Cola'].Range:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Range"then fireclickdetector(v)end end;k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").Perks['Speed Cola'].Range.CFrame;wait(0.8)k.Character:MoveTo(lastPosition)lastPosition=nil end)z:NewButton("Double Tap","Purchases Double Tap",function()for a2,v in pairs(game:GetService("Workspace").Perks['Double Tap'].Range:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Range"then fireclickdetector(v)end end;k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").Perks['Double Tap'].Range.CFrame;wait(0.8)k.Character:MoveTo(lastPosition)lastPosition=nil end)z:NewButton("Quick Revive","Purchases Quick Revive",function()for a2,v in pairs(game:GetService("Workspace").Perks['Quick Revive'].Range:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Range"then fireclickdetector(v)end end;k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").Perks['Quick Revive'].Range.CFrame;wait(0.8)k.Character:MoveTo(lastPosition)lastPosition=nil end)z:NewButton("Deadshot Daiquiri","Purchases Deadshot Daiquiri",function()k.Character.HumanoidRootPart.CFrame=game:GetService("Workspace").Perks['Deadshot Daiquiri'].Range.CFrame;wait(0.8)k.Character:MoveTo(lastPosition)lastPosition=nil;for a2,v in pairs(game:GetService("Workspace").Perks['Deadshot Daiquiri'].Range:GetChildren())do if v:IsA("ClickDetector")and v.Parent.Name=="Range"then fireclickdetector(v)end end end)local y=x:NewTab("PAP Weapons:")local z=y:NewSection("Select Weapon to Pack a Punch")local a9=getrawmetatable(game)local aa=a9.__index;setreadonly(a9,false)a9.__index=newcclosure(function(self,af)if tostring(self)=='Busy'and af=='Value'then return false end;return aa(self,af)end)setreadonly(a9,true)z:NewToggle("PAP All Weapons","PAP all your weapons in your inventory.",function(R)m.Notify("PAP All","Enabled","http://www.roblox.com/asset/?id=5082257850",{Duration=4,Main={Rounding=true}})if R then _G.papAll=true;while wait(5)do if _G.papAll==true then for K,v in pairs(game.Players.LocalPlayer.Backpack:GetChildren())do game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(v.Name)end end end else _G.papAll=false end end)z:NewDropdown("PAP Weapon","DropdownInf",{"M1911","RayGun","MP5k","R870","M4A1","AK-47","M1014","Desert Eagle","SVD","M16A2/M203","M14","G36C","AWP"},function(ag)m.Notify("PAP..",ag,"http://www.roblox.com/asset/?id=5502174644",{Duration=4,Main={Rounding=true}})game:GetService("ReplicatedStorage")["Remote Functions"]["PAP Weapon"]:InvokeServer(ag)end)local y=x:NewTab("Modes:")local z=y:NewSection("Teleports")z:NewButton("Rejoin","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(game.PlaceId,k)end)z:NewButton("ServerHop","Click on this button to serverhop to another game.",function()local M={}for a2,v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100")).data)do if type(v)=="table"and v.maxPlayers>v.playing and v.id~=game.JobId then M[#M+1]=v.id end end;if#M>0 then game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,M[math.random(1,#M)])end end)z:NewButton("Normal Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092166489,k)end)z:NewButton("Killer Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2092167559,k)end)z:NewButton("Juggernaut Mode","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4678052190,k)end)z:NewButton("Endless Survival","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(2675280735,k)end)z:NewButton("Killhouse","Click on this button to rejoin the game.",function()game:GetService("TeleportService"):Teleport(4631179692,k)end)z:NewButton("Area-51 Storming","Click on this button to join the game.",function()game:GetService("TeleportService"):Teleport(3508248007,k)end)local y=x:NewTab("Settings:")local z=y:NewSection("Keybind to ToggleUI")z:NewKeybind("Keybind to ToggleUI","Toggles Epic-Minigames UI",Enum.KeyCode.F,function()n:ToggleUI()end)else m.Notify("Game is not supported!","Server hopping to Main Menu","http://www.roblox.com/asset/?id=261113606",{Duration=4,Main={Rounding=true}})wait(0.24)game:GetService('TeleportService'):Teleport(155382109,game.Players.LocalPlayer)end
VakinduPhilliam / Pattern MatchingThe following scripts are written to demonstrate how to compare sequences in Python using the ‘difflib’ module. ‘difflib’ contains a series of helpers for computing deltas. This module provides classes and functions for comparing sequences and pattern matching. It can be used for example, for comparing files, and can produce difference information in various formats, including HTML and context and unified diffs. class difflib.SequenceMatcher This is a flexible class for comparing pairs of sequences of any type, so long as the sequence elements are hashable. The basic algorithm predates, and is a little fancier than, an algorithm published in the late 1980’s by Ratcliff and Obershelp under the hyperbolic name “gestalt pattern matching.” The idea is to find the longest contiguous matching subsequence that contains no “junk” elements; these “junk” elements are ones that are uninteresting in some sense, such as blank lines or whitespace. (Handling junk is an extension to the Ratcliff and Obershelp algorithm.) The same idea is then applied recursively to the pieces of the sequences to the left and to the right of the matching subsequence. This does not yield minimal edit sequences, but does tend to yield matches that “look right” to people. Timing: The basic Ratcliff-Obershelp algorithm is cubic time in the worst case and quadratic time in the expected case. SequenceMatcher is quadratic time for the worst case and has expected-case behavior dependent in a complicated way on how many elements the sequences have in common; best case time is linear. Automatic junk heuristic: SequenceMatcher supports a heuristic that automatically treats certain sequence items as junk. The heuristic counts how many times each individual item appears in the sequence. If an item’s duplicates (after the first one) account for more than 1% of the sequence and the sequence is at least 200 items long, this item is marked as “popular” and is treated as junk for the purpose of sequence matching. This heuristic can be turned off by setting the autojunk argument to False when creating the SequenceMatcher. class difflib.Differ This is a class for comparing sequences of lines of text, and producing human-readable differences or deltas. Differ uses SequenceMatcher both to compare sequences of lines, and to compare sequences of characters within similar (near-matching) lines. Compiled and presented by Vakindu Philliam.
Zhen-Miao / PIC SnATACPaired Insertion Counting for snATAC-seq data
bobleesj / Cif Bond AnalyzerAn interactive Python script that computes the minimum atomic bonding distances from sites, generating histograms and pair counts.
lincc-frameworks-mask-incubator / GundamLightspeed pair counts and correlation functions for large galaxy surveys
Eloise1988 / DEX LATEST PAIRSLatest pairs available on decentralized exchanges, filtered by volumes, liquidity, tx-count and days since creation.
pablolucianop / Count Syllables In SpanishCount syllables of any word in Spanish, displayed in a learning friendly way. It identifies hiatos, diptongos, repeated letters, indivisible pair of characters, and other characteristics, and count syllables with a set of rules hierarchically organized, condensed in one easy to read function.
lyaqing / Snakemake RnaseqA Snakemake pipeline analyzes paired-end mRNA-seq data to generate raw count tables and quality control reports.
IsmailChangezi / Awesome Books 2Awesome books is an which I built pair programming you can see the name of the collaborator inside the readme file. Awesome books helps the user keep count of the books he finished or books they want to read.
CGCL-codes / HMCachedHMCached is an in-memory K-V store built on a hybrid DRAM/NVM system. HMCached utilizes an application-level data access counting mechanism to identify frequently-accessed (hotspot) objects (i.e., K-V pairs) in NVM, and migrates them to fast DRAM to reduce the costly NVM accesses. We also propose an NVM-friendly index structure to store the frequently-updated portion of object metadata in DRAM, and thus further mitigate the NVM accesses. Moreover, we propose a benefit-aware memory reassignment policy to address the slab calcification problem in slab-based K-V store systems, and significantly improve the benefit gain from the DRAM.
getodk / CounterODK Counter is an Android app that lets you keep a count of form and question pairs in ODK Collect.