Mu Complex

Mu Complex

Not enough ratings
Partial game automation script
By <†>Baigle1<†>™
Based off of my own Ep1/2 notes and @Crazyfox's game guide, I used Linux's Bash to automate some of the more difficult and end puzzles in Episode 2. From this, and with some tweaking to decrease the amount of repeated lines and text, I believe that automating the game and machine fully, eg to change time and relaunch the game, navigate websites, solve visual mental challenges with OCR where pipes are not available, and everything else should be possible, but not easy or fast. I've thought about it, but ultimately decided to *not* put in all the effort, even though learning by asking an AI is 20x faster than searching manual page websites for outdated, inaccurate tool commands, with no alternatives or insight.

Notes:

initial: login; brucedayton

mike: login; allomoto

aptitude_test: login; m3g4pa55word

ariannemoon:* (MUST be before birthday unlock)

Set computer time to November 22nd, 1988 and run "generate"

unlock; 03/18/34

timgurton:sexykate

Level 02

danielrich:half0099way

ccm_02:00ADMIN

database:*

richardmills:1littleduck

cat .mp3: IAmLya; level3

Level 03

login airlock; Admiral

unlock pobrian; viols

ssh marcjohan; power; deadbeef

ssh annienods; power; way

ssh ericpoor; power; redblueyellow

ssh stevedoor; power; science

ssh lukemike; power; nonsense

ssh olivernist; power; mapleton

Episode 2

Level 04

main menu:freeme

jackparrot:*

willterk:peterobrian

Level 05

mainframe:5823ba1

kyletopz:*

fredmorgan:e1e3e/18f5d:clara

eddywolvers:* (Do this manually with your brain)

evanice: ssh-agent; jupiter

dolanskanvo:5855c

olivierriddle:6958d/d4180:nelsonriddle

glenrisson (change file to name):*

yacinehouri:8ef1b

bobbylove:e7d62

fuhong:a5ada/582e1 (mailer.mucomplex.com)

elizajones:*(if date is correct):subatomicreaction (Vigenere cypher):bluebird

@mcpltokgen on twitter: "ODPAEIAA" on date "2023-05-19"

ninafez:*:temple

door add 3768.mol, 8017, 2357, .1001, .2221



secret::sterilizecomplex (mp3 file)


./bobbyloveauto.sh:

#!/bin/bash

mousemove="xdotool mousemove 3600 600"
mouseleft="xdotool click 1"
loops=50


start="xdotool type --delay 20 'start'"


bobby1="xdotool type --delay 20 'challenge|x5987|+7117|solve'"
bobby2="xdotool type --delay 20 'challenge|+4563|x15822|solve'"

#eddy1="xdotool type --delay 20 'challenge|+5|x2|-2|solve'"
##eddy2="xdotool type --delay 20 'challenge|square|-7|solve'"

ypc="xdotool type --delay 20 'bot push main cw'"
ypf1="xdotool type --delay 20 'bot push main f1'"
ypf12="xdotool type --delay 20 'bot push f1 cw'"
ypf13="xdotool type --delay 20 'bot push f1 f3'"
ypf2="xdotool type --delay 20 'bot push f2 move'"
ypf22="xdotool type --delay 20 'bot push f2 light'"
ypf3="xdotool type --delay 20 'bot push f3 f2'"

clear="xdotool type --delay 20 'bot clear main'"
clear1="xdotool type --delay 20 'bot clear f1'"
clear2="xdotool type --delay 20 'bot clear f2'"
clear3="xdotool type --delay 20 'bot clear f3'"
df1f="xdotool type --delay 20 'bot push f1 move'"
dc="xdotool type --delay 20 'bot push main cw'"
dcc="xdotool type --delay 20 'bot push main ccw'"
d_rookmove="xdotool type --delay 20 'bot push main f1'"

play="xdotool type --delay 20 'bot play'"

enter="xdotool key Return"

door1="xdotool type --delay 20 'door add .1001.mol'"
door2="xdotool type --delay 20 'door add .2221.mol'"
door3="xdotool type --delay 20 'door add 2357.mol'"
door4="xdotool type --delay 20 'door add 3768.mol'"
door5="xdotool type --delay 20 'door add 8017.mol'"
door="xdotool type --delay 20 'door start'"

if [[ $# -eq 1 ]]; then
if [[ "$1" == "bobby" ]]; then
eval $mousemove
eval $mouseleft
sleep 1
eval $start
eval $enter
sleep 1
eval $bobby1
eval $enter
sleep 1
eval $bobby2
eval $enter

elif [[ "$1" == "dolan" ]]; then
eval $mousemove
eval $mouseleft
sleep 1
# Clear the existing moves in each sequence
eval $clear
eval $enter
eval $clear1
eval $enter
sleep 1
# We're adding moves to f1
eval $df1f
eval $enter
eval $df1f
eval $enter
eval $df1f
eval $enter
sleep 1
# Push the moves into main
eval $dc
eval $enter
eval $d_rookmove
eval $enter
eval $dc
eval $enter
eval $d_rookmove
eval $enter
eval $dcc
eval $enter
eval $d_rookmove
eval $enter
eval $dcc
eval $enter
eval $d_rookmove
eval $enter
eval $dcc
eval $enter
eval $d_rookmove
eval $enter
sleep 1
# Play!
eval $play
eval $enter
elif [[ "$1" == "eddy" ]]; then
echo "Screen imaging, OCR, and maths not implemented. Exiting."
exit 1
eval $mousemove
eval $mouseleft
sleep 1
eval $start
eval $enter
sleep 1
eval $eddy1
eval $enter
sleep 1
eval $eddyscreen
eval $enter
elif [[ "$1" == "yacine" ]]; then
eval $mousemove
eval $mouseleft
sleep 1
eval $clear
eval $enter
eval $clear1
eval $enter
eval $clear2
eval $enter
eval $clear3
eval $enter
sleep 1
eval $ypc
eval $enter
eval $ypf1
eval $enter
eval $ypf1
eval $enter
eval $ypf1
eval $enter
eval $ypf1
eval $enter
eval $ypf12
eval $enter
eval $ypf13
eval $enter
eval $ypf13
eval $enter
eval $ypf2
eval $enter
eval $ypf22
eval $enter
eval $ypf3
eval $enter
eval $ypf3
eval $enter
sleep 1
eval $play
eval $enter
elif [[ "$1" == "mainframe" ]]; then
eval $mousemove
eval $mouseleft
echo "Unleashing the elder god..."
sleep 1
eval $door1
eval $enter
eval $door2
eval $enter
eval $door3
eval $enter
eval $door4
eval $enter
eval $door5
eval $enter
eval $door
eval $enter
fi
else
echo 'This script requires an argument like bobby, dolan, yacine, eddy, or mainframe'
exit 1
fi
   
Award
Favorite
Favorited
Unfavorite
(It said I needed this section)
(Idk why it needs this)