Noticeably Absent Things
The Six Level Limit (1.25x Limit)
The "six level limit" was a 1.25x level limit with a minimum of 5 hittable levels above the caster. At 6 or more levels above the caster the targets became immune.
Quote:
Originally Posted by September 4 2002 Patch Note
- The hard level limit involving players casting on NPCs has been
removed. This used to be referred to in EQ folklore as the “Six Level
Limit” (It was actually 1.25 times the caster’s level, but more people
likely thought about it the other way.) This means that in the vast
majority of cases, there is at least a small chance that a person will
be able to connect a spell with an NPC, even if they are out of that
NPC’s traditional level range.
|
The September 4 2002 patch partially removed this limit for players. This limit was not found in the resist function, so it had to be outside of it. The function it was in was probably not in the client although we could have easily missed it.
I can confirm that this limit had five hittable levels because I have a 2001 log with a level 14 player (Shortok) casting nukes on level 20 Oasis NPCs and they fully resisted. The chance of a full resist in those circumstances would be 4% if the limit didn't exist. The log had three full resists and the player was a cleric so these stood out a lot as he had virtually zero full resists on other NPCs.
This same cleric at level 26 got four of four full resists on a level 33 goblin NPC in Highkeep. 26 x 1.25 = 32.5, so this confirms that the multiplier is 1.25x and not 1.3x. I found an old Sony developer quote from early 2002 which stated 1.3x but he was incorrect.
I have logs of myself powerleveling characters on Al'Kabor, which is post-patch. I found that I was able to land spells beyond this limit however the resist rate went up dramatically. The patch didn't remove this limit but instead turned it into a soft resist barrier at lower levels. I had a level 19 cleric casting AoEs on a large Solusek's Eye goblin pull which had the king in it, which is a level 30 mob. At level 19 I cast ten spells on the king, and 3 landed for minimal damage. During this single pull my level went from 19 to 24. My resists on the king were significantly elevated until level 24 when they began hitting for full damage. I estimate that Sony may have been adding around 150 points to the king's effective resist value.
At higher levels this 1.25x hard limit remained in place. This is easily found in logs because
this limit applied to pets. Beastlord pets cast a lot of spells, and I have logs of level 60 beastlords doing raid content. These pets are level 47. I found that the pets could not hit NPCs which were above level 58. In Kael for example the pets could hit Kallis Stormcaller easily but they could not hit the Statue of Rallos Zek (level 59) or the temple guardians (level 60) or anything else above 58.
The mage epic pet is level 49 unfocused. I found logs of an epic pet in Plane of Valor and the pet could hit the level 61 mobs but none of the level 62 golems. Since direct damage spells use the 600 scale after the patch, the fact that literally zero pet spells landed indicates that the 1.25x limit at upper levels is a hard limit.
In my 2014 resists thread, I mentioned hard level limits existing at the time on Live servers which prevented all spells from landing. These limits appear to have been the same since the September 4 2002 patch, which seems to have put in place additional limits beyond the 1.25x limit. (either then or PoP launch) Note that, as of now, these limits have been raised on Live servers as of 2025. On Live servers right now a level 50 may land full damage spells on a level 70. But these were the limits in 2014:
Level 50 may hit up to 62 (+12) (this prevents level 50s from hitting level 63 PoSky bosses btw)
Level 55 may hit up to 68 (+13)
Level 60 may hit up to 70 (+10)
Level 61-63 may hit up to 75 (+14 to +12)
Level 64 may hit up to 80 (+16)
Level 65 may hit up to 86 (+21)
So it appears that Sony limited 60 and under players to level 70 targets, and after that limited targets to level 75, 80 and 86. How do I know this was the case since late 2002? Because the
pet summons for level 61-65 players could not land spells on mobs above level 70. I.e. your level 65 necro specter pet (a level 60 pet) which casts SpectreLifetap could never land this spell on a level 71, ever. I found zero cases of this in old logs, and this spell has a -200 adjust on it. (nor did I find a beastlord pet spell landing) In fact I find pet spells landing on the fake Vallon spawns (which are level 70) in PoTimeB but not the real one. It's very obvious.
To summarize:
- The "six level limit" means only three levels of red are hittable until the caster reaches level 24 when the 1.25x limit allows four levels of red.
- The 1.25x limit still existed after Sept 4 2002, it just turned into a soft limit for lower level players only.
- There are other level limits in place restricting who may damage level 71+ mobs with spells. (the attacker must be level 61 or higher)
- Pets are subjected to these limits.
- These limits apply to lifetaps.
I did find an old comment that raises an issue however. This level 53 wizard claims to have landed a lure nuke on the Velious revamp Cazic Thule, which is a level 70 NPC:
Quote:
Originally Posted by Graffe Poster
Was just on a CT raid and the higher level wizards reported ice based droughts hitting. They stopped using lures completely. At level 53 nothing but my lure of frost would hit though. Oh well, good reason to lvl now. Dots were also landing for my necro friend at lvl 57.
|
https://web.archive.org/web/20011225...picID=45.topic
This suggests that lures were exempted from the level limits but that seems weird to me. Maybe they were. A single comment isn't much to go by.
Rain Spell Handicaps
Rain spells in classic had a 20% resist penalty on them when casted on NPCs. This resist penalty is not found in the resist function, oddly.
Quote:
Originally Posted by February 21 2001 Patch Note
— Rain spells no longer count pets against total number of entities they can damage (all rain spells)
|
Quote:
Originally Posted by August 26 2003 Patch Note
- AE Rain Spells were resisted 100% of the time when an NPC was above level 20 and had less than 10% of its hit points left. This will no longer happen.
|
Quote:
Originally Posted by April 12 2005 Patch Note
- NPC’s innate 20% resistance against rain spells has been removed.*
|
I attempted to find the earliest comments remarking on rain resists being unusually high. I found several threads from the late Kunark era mentioning this, with the earliest comment being August 2nd 2000. I can't say when the 20% rain resists went in exactly. There aren't a lot of comments from before that time.
Incidentally I found several comments about rains being low aggro, so it's possible Sony's rain beacon logic was intentionally or unintentionally resulting in near zero aggro. This does make some sense considering the elevated resist rate and resists otherwise doing full hate on typical spells. Some players at the time theorized that the under 10% hitpoints immunity thing was to prevent corpses from poofing, but I don't know why Sony added that.
Belly Casters
"Belly caster" NPCs are NPCs that require the player to be inside of melee range in order to land spells on them, otherwise the spells will always fully resist. The check for this flag was not found in the resist function.
Some people may ask why this exists at all. As somebody who was actively raiding in 1999, I can give the likely explanation. Sony NPCs could get stuck on the zone geometry, and large NPCs could get stuck in doorways. Nagafen and Vox in particular used to often get suck in the doors. While these NPCs could still summon, this allowed players to avoid much of the melee damage. The summon timer is 11 seconds for NPCs under level 66 and players' pets would distract the dragons as well, preventing summons. This seems the most likely reason.
I suspect that belly caster checks were done by race like stun immunity is.
Green NPC Caster Partial Resist Modifier
Prathun's pseudocode includes this:
Code:
If caster is an NPC...
If target is at least 20 levels higher than caster, add (level difference * 1.5) to partial resist modifier.
That was not found in the decompiles, but the neighboring modifiers were. Mid-Luclin seems the most likely date for this:
Quote:
Originally Posted by June 12 2002 Patch Note
- NPCs that are much lower level than their target have had their
potential casting damage reduced using a similar mechanic to the one
that player characters’ level differences use
|
Files, Links and Notes
I uploaded most of the examined decompiled functions in the form of text files to my Google Drive, which can be found here:
https://drive.google.com/drive/folde...PV?usp=sharing
I have a large text file full of research notes (mostly old player comments) which is here:
https://drive.google.com/file/d/19SQ...usp=drive_link
My large NPC statistics spreadsheet which includes parsed NPC resist values from Live servers from 2014 onward:
https://docs.google.com/spreadsheets...usp=drive_link
My saved webpage archive which includes old Sony developer posts and informative player comments:
https://drive.google.com/drive/folde...usp=drive_link
Kicnlag found the tipa16384 archive on Github which was a very rare and valuable source of pre Sept 4 2002 logs:
https://github.com/tipa16384/harcour.../tree/main/DSR
An Internet Archive link which has the old client binaries we decompiled with Ghidra:
https://web.archive.org/web/*/everqu...wnload/patch/*
Internet Archive also has EverQuest ISOs which are easy to find.
My simulation scripts can be found here:
https://drive.google.com/drive/folde...usp=drive_link
Using Ghidra isn't difficult and I would encourage anybody with technical skill who is interested enough to download that and use it. Interpreting the output is the hard part. We certainly did not come close to finding everything interesting.
I also encourage people to download and store local copies of my work, because I know better than most that the Internet is not forever and links often break. Some Internet Archive pages have been lost already. Redundancy is the only way to preserve digital information.