Based on the responses to my post yesterday wanting to know more, here's my guide to
🧑💻Code in Hermitcraft (and other SMP) Fanfic🧑💻
Note: This is just the interpretation of one Jr Software Engineer. If other developers have a different interpretation, I'd love to hear it in the comments or reblogs!
It's super common in Hermitcraft (and I'm assuming other SMP) fanfiction for the plot to revolve around errors in the game itself and how they affect players. The problem is, as a software engineer, this almost always immediately pulls me out of the story as the ways the game errors are described frequently don't make sense.
This is not a condemnation of writers who use game bugs as parts of their stories, as nobody expects all SMP fanfic writers to have a CS degree. Some even do it well and I adore those stories when I find them! But here are some high-level suggestions to have your glitchy plot points make a little more sense. Usually, it's just a slight change in wording that's required.
Code vs Data
"His code is glitched! He's evil now!"
"They carefully pulled at the strands of her player code, trying to find the bug that was causing her pain."
"Wow, your code is so ancient! You're from Alpha, right?"
These sorts of phrases are probably the most common ones I see that yank me right out if a story. Why? Because they're confusing data and code!
So, what is the difference?
Think of code in this scenario like the laws of physics. It's the rules that guide what can and can't happen in the world. It's what says "if you walk, you move forwards", "if you eat, you'll be less hungry", "if you use a shovel on a dirt block, it will end up in your inventory".
Data is the actual "stuff" in the world that the code changes via its rules. Data is the specific blocks in that building, that item hovering above the ground, the mobs staring at you from under the trees, the player character, the player's health, the player's inventory, the player's skin, and, in the fanfic context, the player's personality and memories.
In other words, if it's an action that can happen, it's probably code. If it's a specific thing, it and everything that makes that particular thing unique is data.
Of course, there can be bugs or glitches in the code which means that data does something it shouldn't, such as "if you put some TNT, some dead coral, and a minecart in this very specific configuration, you can duplicate the TNT." In this case, the act of duplication (ie the rules that let duplication occur) is a glitch in the code (the rules allow something they shouldn't), but the duplicated TNT itself isn't code; it's data. Data that shouldn't exist but does anyway because of that glitch in the code.
So, how could you rework the sample phrases above to make more sense?
"He got too close to a glitch, and his personality data got corrupted. He's evil now!"
"They carefully prodded at her player data, trying to find the broken property that was causing her pain."
"Wow, your data structures are so ancient! You're from Alpha, right? I can't believe you've survived so many updates without compatibility issues!"
Code vs Logs
"Xisuma looked through the code to find the source of the glitch."
This one's a little less clear cut, as there are circumstances where players could look at a version of the code. Some of the Minecraft code is Open Source (ie free to look at), and the rest can be decompiled from the Minecraft .jar (ie turned from machine-readable ones-and-zeroes back into words and stuff, although much less human-readable than what the original code would have been). The super-technical players such as the SciCrafters and I think Doc too will look at the code, which is how they make their super efficient farms and find and exploit glitches to, say, put 8 spawners in one chunk.
But generally, the code is not the first place you go when encountering a glitch. I mean, if it were that obvious from the code alone, it probably would have been caught before being shipped!
When something goes wrong, the first place to look is the logs. The logs of what the players have been doing, the logs of previous commands that have been run, the update changelogs for the game, the version history of the (admin-editable) config files, any warnings or error logs from the server itself. For example, if you have a malicious user such as, say, a Helsmit in your story, the logs would show when they entered the world and where, unless they also did something hacky to cover their tracks.
Personally, I also wouldn't say you'd have to stick to exactly what a server would realistically log if it makes your story more interesting. It's easy enough to hand wave that an admin has a mod in place that surfaces more information if it'd make the story better!
In a multi-server setting, this is also the point where the admin of your world could also reach out to the admins of other worlds and discuss if they've seen the issue before and how they solved it. The in-universe equivalent of looking it up on Stack Overflow or Reddit if you will!
Once the admin has looked at the logs and maybe chatted to others, if they still can't fix the issue via commands or config file changes, then it might make sense for them to try looking into the code if they can. Note that not all server admins are necessarily confident at programming as it's not a core part of their job.
But at the very least, at this point the admin should have a better idea of what part of the code could be bugged. This will make it easier to either a) make a patch for the bug or, more likely, b) understand what circumstances trigger the glitch and avoid those circumstances.
TL;DR: The code is not the first place admins will go when glitches cause issues; the logs are!
And as before, example sentence:
"Xisuma trawled through the logs, trying to find any indication of the source of the problem."
To Conclude
Code is the rules that govern what stuff can do and how stuff interacts. The stuff itself is data. When something goes wrong, that typically results in the data being in a state it shouldn't be in, wether that be because that thing's velocity is much higher than it should be after taking advantage of the ravager flight glitch, or because a player and a mob's data structures got combined on accident to leave them a player-mob hybrid.
Of course, this broken data is likely caused by a bug/glitch in the code. It could also be caused by somebody malicious who's purposefully trying to break things by messing with the memory in another way. It could also be because a cosmic ray hit a piece of RAM and flipped a single bit (this is an actual thing that happens believe it or not).
Either way, when something goes wrong, the admin's first point of exploration is the logs, not the code. The logs will give the admin a better idea of what the cause of the issue is, and talking with other admins could give them a solution without ever touching the codebase. But worst-case scenario, it is indeed possible for an admin to go spelunking through the codebase to find the cause of an issue and create a patch for it.
This just covers the most common code-related plot points that I personally see in Hermitcraft/other SMP fanfiction. If you have any further questions about writing code-related plot points, feel free to ask! And also, just to reiterate, this is all just my interpretation. Others may interpret differently, and if you do, I'd love to hear what your alternative interpretations are!
PS: I was also planning a section on hacking here, but this post is already getting long and that's complicated, and also I'm bad at hacking. But let me know if you have any questions related to that that you'd like to see in a follow-up post!
I’m doing this with the absolutely perfect and amazing and lovely @that-was-sick (Go follow her seriously she’s High Quality) because she wouldn’t do it unless I did it. What a nerd.
Favorite song(s)? – Sound Check (Gravity) by Gorillaz, Mad Hatter by Melanie Martinez, On The Rocks by Ken Ashcorp, Time to Die by JT Machinima, Violence Fetish by Disturbed, and Pretty Little Head by Eliza Rickman.
Favorite movie(s)?– The Lego Movie, Pacific Rim, and Rogue One
Favorite TV show(s)?-- Steven Universe, HIMYM, and a bunch of anime that is prob trash.
Height measurement?– 6 foot 2.something inches.
Dream holiday location?– Not really sure! I don’t typically plan vacations.
Favorite weather?– When it’s chilly but the sun is out to warm your skin so it’s like in the 60′s but it feels closer to mid 70′s that is Prime Weather Right There.
Sexuality?– I am a biromantic demisexual!
Favorite video game(s)?– The Tomb Raider reboots, Destiny, Overwatch, Skyrim, and Kingdom/Kingdom: New Lands
Any fandoms you are part of?– Oh man, a lot. So freaking many. So so so very many. Many of which are embarrassing.
Biggest fear(s)?– I’ve got a phobia of dogs (which I’m slowly getting over) and something horrible happening to my best friend.
Favorite book(s)?– The Leviathan Series, the Unwind Series, the Predator Cities Series, and the Inheritance Cycle.
Biggest idol?– Idk Mang
Tell me a secret?– In first grade I shoved a pebble up my noise and it got stuck and I freaked out but couldn’t tell anyone that I had shoved a freaking rock up my nose because I was too embarrassed so instead I sort of just silently panicked until I sneezed and it shot out of my nose and hit some kid in the back of the head during story time and she got angry and thought it was someone throwing a rock at her and blamed the kid next to me.
Favorite food(s)?– Rice, i freaking love me some rice. also Caesar Salads and angel food cake.
Single or taken?– stuck in a relationship with the phantom I tried fighting when i astral projected into an empty parking lot behind an Arby’s at 3:27 am.
Ever got in a fight?– see above.
Done any drugs?– I just took some tylenol.
Got any talents?– I can make this pterodactyl screech and also choke on my own spit, sometimes both at the same time!
Follow any religions or beliefs?– organized religion just isn’t for me.
Country you live in?– “The US of AAAAAAAAAH FUCK FUCK TRUMP IS PRESIDENT FUUUUUUUUCK”
What are you currently wearing?– An old T-shirt, my work shoes and jeans, and carpal tunnel braces.
Last thing you bought?– My mom a birthday present!
Best gift ever received?– My kitty cat Cinnamon Toast Crunch
Name your 3 favorite tumblr blogs!– “There are no favorite blogs, just blogs you dislike less than others- Ghandi” -Michael Scott
Any paranormal experiences?– Me, I’m paranormal, I’m a cryptid.
Best pickup line?– “Hey baby wanna come back to my place and validate my existence?”
Favorite animal(s)?– Cats, Sharks, Opossums, Very Fat n Large Raccoons
Speak any languages?-- English and like 3.5 phrases in French.
How long is your hair?-- Idk like, 4 inches on top and very short on the sides and back???
Selfie?– Check your selfie before you wreck your selfie.
A rant by a software engineer sick of VPN ads from her favourite YouTubers
TL;DR:
Here are some legitimate reasons the average internet user might want to use a VPN:
To connect to their company's internal network
To bypass the Great Firewall of China (or other types of website blocks at country or organisation level)
To watch Netflix etc as if you were in another country
Here are absolutely rubbish reasons to use a VPN:
Privacy
And today, I'll tell you why.
Hang on, won't a VPN stop hackers from stealing my passwords?
I mean, it does encrypt the web traffic coming from your device.
You know what else encrypts web traffic coming from your device? Your browser.
Yes, in the year 2021, pretty much all websites on the internet are accessed over HTTPS. The "S" stands for "secure", as in "your request will be securely encrypted". If your browser is using HTTPS, nobody can capture the data you're sending over the internet. More detail in the "I like too much detail" section at the bottom of this post.
It's very easy to check if you are using HTTPS by looking at your URL bar. In most browsers, it will have a lock on it if secure:
(From top left to bottom right: Chrome on iOS, Safari on iOS, Chrome on Windows, Edge on Windows, Firefox on Windows, and Safari on Mac. Screenshots reflect the UI at the time this post was written. Oh gosh this has taken over 4 hours to write.)
But isn't moar encryption better? What if somebody breaks HTTPS?
For starters, nobody's breaking your HTTPS, and there isn't any benefit from double encrypting. This is because of the maths behind encryption/decryption!
Encryption works kinda like a lock and key, except the lock is maths and the key is a special number only known to the person allowed to unlock the information.
The important thing is, without the key, all the locked data looks like complete and utter garbage. Completely unusable. Barely distinguishable from random noise. There's absolutely no way to tell what the original data was.
The other important thing is that the key is nearly unguessable. As in, with current technology, will generally take more than the lifetime of the universe to guess by chance. And when technology gets faster, we just make the numbers bigger again until they're once again secure.
For any major website you use, they will use a strong encryption algorithm (ie lock) with big numbers so your keys will be strong enough to withstand an attack. This means your data is safe as long as that lock icon is in your URL bar.
A VPN will not make the existing garble any more garbled. The extra $10/month or whatever you're paying for does not buy you any extra protection.
If you want to know more about how encryption and HTTPS in particular work, see the "I like too much detail" section at the end of this post.
Something something viruses
How's a VPN going to stop viruses? It controls the path your internet traffic takes, not the content that gets sent down that path. I guess it could block some known virus-giving hosts? But if it's known to the VPN provider, it's probably also known to the built-in antivirus on your computer who can block it for you.
(Oh yeah, 3rd party antivirus is another thing that's not worth paying for these days. Microsoft's built-in Windows Defender is as good as the third party options, and something something Macs don't get viruses easily because of how they're architected.)
Honestly though, keep your software up to date, don't click on anything suspicious, don't open files from sources you don't trust, and you'll be right most of the time.
And keep your software up to date. Then update your software. Hey, did I mention keeping your stuff updated? Update! Now! It only takes a few minutes. Please update to the latest version of your software I'm begging you. It's the number 1 way to protect yourself from viruses and other malware. Most major software attacks could have been prevented if people just updated their damn software!
But my ISP is spying on me!
Ok, it is true that there are TWO bits of data that HTTPS can't and won't hide. Those are:
The source of a request (your IP)
What website that request is going to (the website's IP)
These are the bits of information that routers use to know where to send your data, so of course they can't be hidden as the data is moving across the internet. And people can see that information very easily if they want to.
Note: this will show which website you're going to, but not which page you're looking at, and not the content of that page. So it will show that you were on Tumblr, but will not show anyone that you're still reading SuperWhoLock content in 2021.
It's this source/destination information that VPNs hide, which is why they can be used to bypass website blocks and region locks.
By using a VPN, those sniffing traffic on your side of the VPN will just show you connecting to the VPN, not the actual website you want. That means you can read AO3 at work/school without your boss/teachers knowing (unless they look over your shoulder of course).
As for those sniffing on the websites end, including the website itself, they will see the VPN as the source of the connection, not you. So if you're in the US and using a VPN node in the UK, Netflix will see you as being in the UK and show you their British library rather than the American one.
If this is what you're using a VPN for and you think the price is fair, then by all means keep doing it! This is 100% what VPNs are good for.
HOWEVER, and this is a big "however", if it's your ISP you're trying to hide your internet traffic from, then you will want to think twice before using a VPN.
Let me put it this way. Without a VPN, your ISP knows every website you connect to and when. With a VPN, do you know who has that exact same information? The VPN provider. Sure, many claim to not keep logs, but do you really trust the people asking for you to send them all your data for a fee to not just turn around and sell your data on for a profit, or worse?
In effect, you're trading one snooper for another. One snooper is heavily regulated, in many jurisdictions must obey net neutrality, and is already getting a big fee from you regardless of where you browse. The other isn't. Again, it's all a matter of who you trust more.
For me personally, I trust my ISP more than a random VPN provider, if for no other reason than my ISP is an old enough company with enough inertia and incompetence that I don't think they could organise to sell my data even if they wanted to. And with the amount of money I'm paying them per month, they've only got everything to lose if they broke consumer trust by on-selling that data. So yeah, I trust my ISP more with my privacy than the random VPN company.
But my VPN comes with a password manager!
Password managers are great. I 100% recommend you use a password manager. If there's one thing you could do right now to improve your security (other than updating your software, speaking of, have you updated yet?), it's getting and using a password manager.
Password managers also come for free.
I'm currently using LastPass free, but am planning to switch after they did a bad capitalism and only let their free accounts access either laptop or mobile but not both now. I personally am planning to move to Bitwarden on friends' recommendation since it's not only free but open source and available across devices. I also have friends who use passbolt and enjoy it, which is also free and open source, but it's also a bit DIY to set up. Great if you like tinkering though! And there are probably many other options out there if you do a bit of googling.
So, yeah, please use a password manager, but don't pay for it unless you actually have use for the extra features.
No I really need to hide my internet activity from everybody for reasons
In this case, you're probably looking for TOR. TOR is basically untraceable. It's also a terrible user experience for the most part because of this, so I'd only recommend it if you need it, such as if you're trying to escape the Great Firewall. But please don't use it for Bad Crimes. I am not to be held liable for any crime committed using information learned from this post.
Further reading viewing
If you want to know more about why you don't need a VPN, see Tom Scott's amazing video on the subject. It's honestly a great intro for beginners.
I like too much detail
Ahhh, so you're the type of person who doesn't get turned off by long explanations I see. Well, here's a little more info on the stuff I oversimplified in the main post about encryption. Uhh, words get bigger and more jargony in this section.
So first oversimplification: the assumption that all web traffic is either HTTP or HTTPS. This isn't exactly true. There are many other application layer internet standards out there, such as ssh, ftp, websockets, and all the proprietary standards certain companies use for stuff such as streaming and video conferencing. Some of these are secure, using TLS or some other security algorithm under the hood, and some of them aren't.
But most of the web requests you care about are HTTP/HTTPS calls. As for the rest, if they come from a company of a decent size that hasn't been hacked off the face of the planet already, they're probably also secure. In other words, you don't need to worry about it.
Next, we've already said that encryption works as a lock and a key, where the lock is a maths formula and the key is a number. But how do we get that key to lock and unlock the data?
Well, to answer that, we first need to talk about the two different types of encryption: symmetric and asymmetric. Symmetric encryption such as AES uses the same key to both encrypt and decrypt data, whereas asymmetric encryption such as RSA uses a different key to encode and decode.
For the sake of my writing, we're going to call the person encrypting Alice, the person decrypting Bob, and the eavesdropper trying to break our communications Eve from now on. These are standard names in crypto FYI. Also, crypto is short for cryptography not cryptocurrencies. Get your Bitcoin and Etherium outta here!
Sorry if things start getting incoherent. I'm tired. It's after 1am now.
So first, how do we get the key from symmetric crypto? This is probably the easier place to start. Well, you need a number, any number of sufficient size, that both Alice and Bob know. There are many ways you could share this number. They could decide it when they meet in person. They could send it to each other using carrier pigeons. Or they could radio it via morse code. But those aren't convenient, and somebody could intercept the number and use it to read all their messages.
So what we use instead is a super clever algorithm called Diffie-Hellman, which uses maths and, in particular, the fact it's really hard to factor large numbers (probably NP Hard to be specific, but there's no actual proof of that). The Wikipedia page for this is surprisingly easy to read, so I'll just direct you there to read all about it because I've been writing for too long. This algorithm allows Alice and Bob to agree on a secret number, despite Eve being able to read everything they send each other.
Now Alice and Bob have this secret number key, they can talk in private. Alice puts her message and the key into the encryption algorithm and out pops what looks like a load of garbage. She can then send this garbage to Bob without worrying about Eve being able to read it. Bob can then put the garbage and the key into the decryption algorithm to undo the scrambling and get the original message out telling him where the good donuts are. Voila, they're done!
But how does Alice know that she's sending her message to Bob and not Eve? Eve could pretend to be Bob so that Alice does the Diffie-Hellman dance with her instead and sends her the secret location of the good donuts instead.
This is where asymmetric crypto comes in! This is the one with private and public keys, and the one that uses prime numbers.
I'm not 100% across the maths on this one TBH, but it has something to do with group theory. Anyway, just like Diffie-Hellman, it relies on the fact that prime factorisation is hard, and so it does some magic with semi-primes, ie numbers with only 2 prime factors other than 1. Google it if you want to know more. I kinda zoned out of this bit in my security courses. Maths hard
But the effect of that maths is easier to explain: things that are encoded with one of the keys can only be decoded with the other key. This means that one of those keys can be well-known to the public and the other is known only to the person it belongs to.
If Alice wants to send a message to Bob and just Bob, no Eve allowed, she can first look up Bob's public key and encrypt a beginning message with that. Once Bob receives the message, he can decrypt it with his private key and read the contents. Eve can't read the contents though because, even though she has Bob's public key, she doesn't know his private key.
This public key information is what the lock in your browser is all about BTW. It's saying that the website is legit based on the public key they provide.
So why do we need symmetric crypto when we have asymmetric crypto? Seems a lot less hassle to exchange keys with asymmetric crypto.
Well, it's because asymmetric crypto is slooooow. So, in TLS, the security algorithm that puts the "S" in "HTTPS", asymmetric RSA is used to establish the initial connection and figure out what symmetric key to use, and then the rest of the session uses AES symmetric encryption using the agreed secret key.
And there you have it! Crypto in slightly-less-short-but-still-high-enough-level-that-I-hope-you-understand.
Just realised how long this section is. Well, I did call it "too much detail" for a reason.
Now, next question is what exactly is and isn't encrypted using HTTPS.
Well, as I said earlier, it's basically just the source IP:port and the destination IP:port. In fact, this information is actually communicated on the logical layer below the application layer HTTPS is on, known as the transport layer. Again, as I said before, you can't really encrypt this unless you don't want your data to reach the place you want at all.
Also, DNS is unencrypted. A DNS request is a request that turns a domain name, such as tumblr.com, into an IP address, by asking a special server called a Domain Name Server where to find the website you're looking for. A DNS request is made before an HTTP(S) request. Anyone who can read your internet traffic can therefore tell you wanted to go to Tumblr.
But importantly, this only shows the domain name, not the full URL. The rest of the URL, the part after the third slash (the first two slashes being part of http://), is stuff that's interpreted by the server itself and so isn't needed during transport. Therefore, it encrypted and completely unreadable, just like all the content on your page.
I was going to show a Wireshark scan of a web request using HTTP and HTTPS to show you the difference, but this has taken long enough to write as it is, so sorry!
I could probably write more, but it's 1:30am and I'm sleepy. I hope you found some of this interesting and think twice before purchasing a VPN subscription. Again, there are legit good uses for a VPN, but they're not the ones primarily being advertised in VPN ads. It's the fact that VPN ads rely so heavily on false advertising that really grinds my gears and made me want to do this rant. It's especially bad when it comes from somebody I'd think of as technologically competent (naming no names here, but if you've worked in tech and still promote VPNs as a way to keep data safe... no). Feel free to ask questions if you want and hopefully I'll get around to answering any that I feel I know enough to answer.
Nighty night Tumblr. Please update your software. And use a (free) password manager. And enable two factor authentication on all your accounts. But mostly just update your software.
Etho looked up from the cows he was feeding to see Bdubs sitting on the edge of a chest.
"You could have been the Boogeyman," said Etho nonchalantly, returning to the livestock. "I mean, you were the Boogeyman. I was right to be cautious."
"I know that, but do you really think I could kill you?"
"You're good with a sword," said Etho, adding some fresh wheat to the cow pen. "I'd give you 40:60 odds."
"Etho," said Bdubs with a sigh. "Do you really think I could kill you."
Etho hesitated, chewing on his lip under his mask.
"I don't know," he said finally. "Maybe?"
"Do you really think our friendship means that little to me?" said Bdubs.
"Bdubs," said Etho, "I always think little–"
"I'm not little!" interrupted Bdubs.
Etho let out a small chuckle before the unsteady silence returned to the room.
"What if it was you?" Bdubs said. "Could you kill me?"
"If I had to," said Etho.
"Meaning what?"
"If you were trying to kill me."
One of the sheep let out a bleat. Etho moved over to fill its feed trough.
"What if we were the final two?" asked Bdubs. "One of us would have to kill the other."
"That's a long time away," said Etho. "One of us will do something stupid and die before then."
"But it could happen."
"I don't wanna think about it yet."
The goat gently butted its head against Etho's back. He turned around, petting its head before filling its feed trough too.
"And what about when one of us goes red?" asked Bdubs, his voice going small as his grip tightened against the edge of the chest. "We won't be allowed to be friends anymore."
"Then don't die and you won't be red," said Etho.
"I'll try not to," said Bdubs with a sad smile. "But you have to promise me too. No getting bored and reckless and throwing your green and yellow lives away."
"I can't promise that," said Etho.
The chicken in the corner popped out another egg. Etho carefully picked it up and put it with the others he was saving for Cleo.
"But I will forgive you," said Etho. "If you do have to kill me. That's just the game. No hard feelings."
"You sure?" asked Bdubs.
"I mean I will use every opportunity to tease you about it," said Etho.
"So business as usual then," said Bdubs, raising an eyebrow.
Etho chuckled.
"And I'll forgive you too," said Bdubs. "I mean, I'd rather you didn't kill me, but, I mean, if it happens it happens."
Etho nodded.
"So, you gonna help me with this, or are you just gonna sit there?" asked Etho, raising an eyebrow as he looked over at Bdubs.
"I'm planning!" said Bdubs, his usual incredulous whine returning to his voice.
"Well maybe you can plan some more wheat for us," Etho joked, throwing some seeds at Bdubs.
I saw more Last Life fan art and it seeded a brain fart story idea so now I'm making it your problem!
Edit: Now edited and posted to AO3!
---
Etho was rudely dragged from his sleep as something soft and heavy dropped onto his face.
"Oh c'mon man!" he groaned, cracking his eye open against the morning sun to glare at his roommate.
"I'm bored," replied Bdubs, his back to Etho as he adjusted his hair in the window's reflection. "You sleep too long."
"It's like 8am."
"Exactly. I've had to entertain myself for a whole 2 hours now!"
Etho grumbled, dragging whatever had landed on him off his back as he sat up, his fingers digging into the soft, green fabric.
"Bdubs, don't you have somewhere better to put your jacket?"
"Try it on!"
"But why?"
Bdubs turned back to face Etho. A very familiar black headband sat atop his forehead.
"Oh no no no no no."
"Oh come on, it'll be fun!" said Bdubs, snatching Etho's jacket off the floor and pulling it on. His hands barely made it out the ends of the sleeves.
"For who?"
"Just think of all the pranks we could pull. Think of the look on Grian's face! 'Aww it's just Bdubs.' 'Aha! No, it's Etho! Run for the hills little man! The PvP master is after you.'"
"You know I'm really not that good at PvP–"
"And anyway, I've seen you looking at my jacket. So soft. So green. So warm. Don't you just wanna wrap it around your shoulders? Feel the soft moss brushing against your cheek?"
Etho hadn't even notice himself rubbing the gentle material between his fingers. He pushed it off onto the bed beside him, half covering it with his blanket as he swung his feet out onto the floor.
"You know it'll never work. One of us is gonna end up dead. Probably you."
"How about if I throw in the clock?"
This got Etho's attention.
"You'll let me wear your clock?" Etho said, raising an eyebrow.
"Sure, sure," said Bdubs as he picked it up off his own bedside table, his smile straining as his fingers brushed along its gilded surface. "Nobody would believe you were me if you didn't have my clock."
Etho pulled the jacket on.
"Hand it over," he said with a wry smile. The jacket really was as comfortable as it looked.
Bdubs' fingers clenched tighter around the clock.
"Bdubs, you promised."
Bdubs sighed, walking over to Etho and placing it into his waiting hand. He hesitated.
"Don't you dare lose it!" said Bdubs. "I'll know if you replace it with a different one."
"I won't. I promise."
Bdubs let go of the clock. Etho reached down and hooked it into place on his belt.
"How do I look?" Etho stood up and did a twirl.
"Almost as good as me. So, an improvement."
This earned Bdubs a friendly shove, chucking as he stumbled a few steps back towards his own side of the room.
The laughter stopped as something caught Bdubs' eye. His eyes went wide as an evil grin crossed his face.
"Oh no no no. I know that look. Whatever it is, no!"
Bdubs looked down at Etho's mask, sitting neatly folded on his bedside table. He looked up at Etho.
"Can I?"
"No."
"It would be funny."
"But it's my mask."
"I let you wear my clock!"
"But it's my mask. People will see me!"
"I can see you right now!"
"Yeah, but you're not people!"
"Hey!"
"It's a compliment!"
Bdubs pouted. "Ok, what about if I wear it just for a minute? Just long enough to see what it'd look like?"
Etho considered for a second. "And then you'd give it back?"
"Pinky promise. I won't wear it outside this room."
Etho curled his fingers gently around the small scrap of fabric and tentatively held it out to Bdubs.
"Just cos I wanna see what you look like."
Bdubs giggled as he slipped it over his ears.
It really was an eerie sight, seeing Bdubs' mop of spiky brown hair sticking out of Etho's headband above Etho's mask, finished off with Etho's jacked sitting at least two sizes too big around Bdubs' shoulders. Like looking in a funhouse mirror.
"Mini me," Etho said with a smirk.
"Hey!" protested Bdubs. "I'm not short!"
Etho pulled Bdubs's hood up over his own head. "Hey Bdubs, what's it like seeing a normal sized version of yourself?"
"I'm normal sized, you're the giant!"
He grabbed Etho's arm and pulled him in front of the window pane. It truly was a weird sight reflected back at them.
"Look at us! Isn't this amazing?"
"We look ridiculous."
"Hello homie buddies! How's the rest of the BEST doing this fantabulous morning?"
The pair of them spun around to face the front doorway through which Skizz has entered, a Tango not far behind him. Etho quickly snapped his hand up across his face. He could already feel the red rising in his cheeks.
"Should I ask what you two got up to last night?" Tango asked, cocking an eyebrow at the two of them.
Etho felt himself dying inside.
"It was Bdubs' idea."
"Sure it was," said Tango with a smirk.
"Hey, whatever you two want to do in your spare time, it's all cool with me," said Skizz.
"Nothing happ– Bdubs, help!"
"Have you two never wondered what you'd look like in each others' clothes?"
"Uh, no."
Etho would have facepalmed if his hand wasn't already occupied covering, well, his face.
"Can you two give us a minute?" he said. "We'll see you in the courtyard."
"No problem!" said Skizz, already leading Tango out the door.
The door shut. Etho let out a breath.
"Gimme that," he said, snatching his mask off of Bdubs' face. "Of all the years I've known you, this was your worst idea."
"Oh please," said Bdubs. "It's been nearly 10 years. I've definitely had worse."
"Nope, this is definitely, 100% the worst."
"Ok, so are you gonna give me back my jacket and clock then?"
It wasn't the first time Iskall found Etho sitting in their shared base, staring at nothing, fidgeting with a slime ball as his mind worked through some problem or plan of genius or chaos.
Today though. Today was different.
There was a new tension in his shoulders. The slime ball was close to bursting in his hands. His brow was furrowed as he stared at the empty patch of flooring in front if him.
"You ok, dude?"
Etho blinked back to the present, shaking his head slightly as if to dislodge whatever thoughts had got stuck there.
"I'm fine," said Etho.
"You don't look fine," said Iskall, crossing his arms.
Etho hesitated for a second.
"I'm going back there," said Etho, looking back at the floor. The slime ball strained against its outer casing.
"Which one?" asked Iskall gently, grabbing his own chair.
"The one with the lives," said Etho.
"Oh."
Etho didn't talk about that place much. But Iskall had heard the night terrors. He saw how Etho flinched when he burned diorite. He knew how Etho avoided the others who'd been whisked away with him to that other world.
Whatever had happened between Season 7 and Season 8, it wasn't good.
"Do you have to go?" asked Iskall.
"I have to," Etho confirmed. "The time will come and I'll just... be there."
Iskall reached over and patted a hand on Etho's shoulder.
"Do you at least have somebody there who you can trust?" asked Iskall.
The slime ball popped, the green goo inside dripping out between Etho's fingers.
Iskall walked over to the storage room and grabbed another, silently passing it to Etho. He accepted it gratefully, wiping the old slime off on his pants.
"Bdubs will be there," said Etho, passing the new slime ball between his hands. "I've know him long enough, that... I'd like to think..."
Iskall nodded.
"Well I'll be here when you get home," said Iskall kindly. "If you need to talk or anything."
"Thanks Iskall," Etho said, looking up with a sad smile in his eyes.
"Just if you do some retail therapy when you're back, please leave some diamonds for food," teased Iskall.
"Hey!" said Etho with a laugh. "I'm not that bad."
Iskall clapped him on the shoulder with a smile.
"Yes you are," he said. "Good thing I'm such a profitable businessman."
"Thanks Iskall," Etho said, eyes crinkling with a genuine smile.