Table of Contents
A Noob's Guide to the Crypt
By Axiom — Originally posted in Discord
This guide shares a few things I've picked up starting the crypt.
Learnings
- As so often with this game: good gear & bad code > good code & bad gear. You can get away with bad code if your gear is good.
- The crypt isn't hard to do – but some monsters are hard to kill 🙂
Practical Tips
- You MUST have good tanking-ability (which means gear)
- Optional: You should be able to AoE (for Spike)
- I opted for Priest / Warrior / Warrior, simply because all 3 can tank and 1 can heal. It's the most resilient combo I have available.
- A lonely monster is an easy monster!
- Avoid monsters that are close together.
- Have a good blacklist!
- Found an easy mob but Orlok (or some other tough mob) is close? Blacklist!
- Found a hard mob with the healer attached? Blacklist!
- Found an easy mob with the healer attached? Go for the healer first!
- Yes, by blacklisting a ton of mobs you lose out on loot
- But: You also stay alive, you don't enter a death loop, and you don't spend 2 hours in the same crypt!
- Remember, this is the noob's guide to the crypt! 😄 We ignore hard challenges and go for low-hanging fruit!
Want to Crypt? Here's How!
- You must be able to open a crypt instance
- You make the instance ID available to all characters so they can join it
- You should track the mobs you already defeated
- Record the time you enter the crypt and delete the instance after X time (30 minutes? 1 hour?)
All of the above (1-3) can be solved via `localStorage`.
Housekeeping: Delete the instance if you killed all monsters (tracked in step 2) or if you've spent too much time in the instance (tracked in step 3).
Characters Must Be Able to Enter the Crypt
- Is there a Crypt-ID in localStorage and you're not already in the crypt?
- If you're far from the crypt door, move to the door
- If you're at the crypt door, enter the crypt using the ID from localStorage
Okay, Now You Are Inside
Make sure all characters go to the same spot.
An easy spot is at the vbats – it's the only static spawn in the crypt and always at the same location.
The Simplest Way of Farming the Crypt
- If nothing else, kill all vbats and delete the crypt instance from `localStorage`
- Repeat!
Congratulations! You can now farm `crings` & `ceaarings` — vbats drop A LOT of them.
If you only farm vbats, you’ve likely already got loot worth more than the crypt key (which usually goes for 3–5M).
Farming Other Mobs than Vbats
- Find out what you can kill safely
- If it's in `parent.entities`, go there and hammer away! 😄
You’ll soon find there are a lot of edge cases:
- There’s a healer that can make an easy monster like Bill undefeatable when attached
Write targeting logic AND safety logic:
- Does the mob you want to farm have a healer (“a5”) within X pixels? → Ignore it
- …But maybe attack the healer? 🙂
- Is the monster leveled? → Blacklist!
- Is the monster named Orlok? → Run!! 😄
Do this well, and you can farm most things.
I *can* farm everything except Orlok — *if* the monster is alone.
You Don’t Need Pathfinding
Pathfinding is hard to do — and even harder to do well!
One of the most dreaded parts of the crypt is that all monsters (except vbats) roam around. Their location changes every run.
But I figured: What is pathfinding? It finds a path from A to B.
We kind of have that already with `smart_move()`.
We know A (our current position), But we don’t know B (the next monster).
So… let's roam!
Roaming Logic (The Easy Way)
I chose the most inefficient but simple solution: Just visit all or most intersections of the crypt and record them!
- Make an array of waypoints
- The array must be ordered
- Start from the middle of the crypt
- Keep adding waypoints until you complete a full loop
How to Roam
Simple rules!
If the current character is the master/tank:
- Find the closest waypoint
- Are the other 2 characters close?
- If not → Stay at current waypoint and wait
- If yes → Move to the next waypoint
- Can't find other characters with `get_player()` (they may be dead)? → Go to `waypoints[0]` and regroup
If the character is not the master/tank:
- Can you get the master with `get_player()`? → Move to him!
- If not → Go to `waypoints[0]` and regroup
And that's how you roam the crypt the easy way! 😄
It’s inefficient as hell, yes. But it gets the job done — you’ll cover the whole crypt. 😄
And That’s It!
I hope you enjoyed!
Thank You
BONUS: Edge Cases
The crypt is full of edge-cases. It’s what it’s famous for!
- Monster X is easy! Let's attack!
- Oh, this time it has a healer…
- Oh, now it's next to Orlok too…
So how do we noobs deal with it?
Ignore the Edge-Cases
Yes! Simply ignore the edge-cases! 🤣
Here it comes:
- Do not write code to handle edge-cases.
- Write code to find good cases!
Your target selection should reflect what a safe monster is.
- If it matches your “safe” definition → Attack it
- If not → Ignore it
This is the easiest way (that I found) to get decent target selection with minimal code — for a wide range of targets and situations.
—
Originally written by Axiom in Discord. Minor formatting applied for wiki readability.
