Modding EQ for minimum resources and maximum bots.

interstellarsurfer

Premium Member
Joined
May 22, 2008
Messages
25
Reaction score
1
Points
3
I'm currently in the process of re-optimizing my bot setup, and thought I'd post it here, in case a few of you haven't seen this stuff from the EMU community before, or I wipe out my PC again, lol.

This process minimizes the amount of graphics files EQ unnecessarily loads, for alts that you don't actively play.

Quick Version:

(1) Create a second copy of the EQ directory just for your bots, if you don't have one already.

(2) Extract the included zip into that directory, overwriting all the *_chr.txt files with modified versions. Make sure the two GlobalLoad files are unpacked to the EQ/Resources directory as well.

(3) Modify your EQClient.ini. Under [Defaults], insert the line:
StickFigures=TRUE
----- Also, set:
AllLuclinPcModelsOff=TRUE
LoadVeliousArmorsWithLuclin=FALSE
ServerFilter=1
Sound=FALSE
Music=0
EnvSounds=0
CombatMusic=FALSE
WaterSwap=0

(4) In your EQ directory, find dkf.eqg, dkf_anims.eqg, dkm.eqg, dkm_anims.eqg - delete that shit so EQ will stop loading the damn Drakkin graphics. Those graphics are hard-coded, and not loaded in the normal way. Now all Drakkins default to Human graphics.

(5) Configure your characters to load MQ2NoMountModels, or /docrack NoMountModels, as you prefer. Now you can use Horses. Drogs have never worked with this hack. I haven't tested non-horse mounts. Worst case scenario: buy a 10kp horse from the bazaar. It'll match the speed of your fastest mount because of the mount keyring changes.

(6) Enjoy.


Nearly every PC/NPC will now look like a stick-figure. There *should* also be sufficient models loaded to let you navigate the old world safely (ladders, POK books, ect.). You now have a stupidly fast loading EQ setup, that uses much less system resources.

Maintenance: On patch day, you can patch this alternate installation as usual, using it's copy of Launchpad. You will then have to re-apply my modified files. Alternatively, you could copy over the required files that are updated with each patch. (EXE's, DLL's, eqstr_us.txt, spells_us.txt, dbstr_us.txt). I've used both methods in the past, but I prefer copying my modified files over the Launchpad's updated files. It's easy to miss something when updating by hand, and the client will crash until you figure it out.

This file set will need to be updated if/when they drop new zones on us. Probably not before the next expansion launch.


Original Sources and Research:
EQTitan: Tips for reducing memory usage - GlobalLoad
EZServer: Everquest Tweaks and Settings for Optimal Performance
Project: Loading Time, an endeavor to make all models global.

Useful Tools for the Curious:
EQ-Zip, S3DSpy, EQ Model Viewer and Zone Converter.
 

Attachments

  • EverQuestBotDirectory.rar
    40.5 KB · Views: 80
Last edited:
How do you get around patch days, when you patch EQ and it redownloads the files again?
 
I added that info above. The easiest way is to run Launchpad.exe in the modified installation. It will download the updated files, and undo the modification.

When it is done patching, close LaunchPad, and use the ZIP to overwrite the files again, with our modified version.

It's kind of a nuisance, but the performance improvements are worth it. :)
 
Need to upgrade to windows 10 before July 29th, when I do a fresh install of the os, I think I'll try this out.


Will this make other players stick figures too?

I am hoping this solves all my memory leak issues after zoning a couple of times, since it seems to be graphics related, i.e. people in PoK at the lag pile with their Heros Forge armor hogging memory resources.



And Thank you for this!
 
Yessir, it makes nearly all PCs and NPCs stick figure models, with the exception of drakes. I haven't checked to see if it helps with the ever-present memory leaks that EQ seems to have. I doubt it will hurt, and at the least it gives you a few hundred MB of headroom per client.
 
So installed Windows 10 today and created another EQ directory to test this.

Here are the results from my default(all models on) vs stick figure directory by being in PoK, I was loading in the same character/account in both instances. The attempts from lobby to back to PoK, I ran around the lag pile for a good 30-60 secs each time to account for any extra memory drops.

Loading from Server Select to Character Select:


~25 secs (default all models) vs. ~21 secs (sticks)

Loading into PoK from character select (on Samsung SSD 850 Pro Sata3 /w Rapid Mode Enabled):

~47 secs (default all models) vs. ~34 secs

19% EQ memory left (all models) vs 47% memory left (sticks)

zoning to lobby then back to PoK 1st time:

3% EQ memory loss (no change in either directory)


zoning to lobby then back to PoK 2nd time:

3% memory loss vs. 1% in sticks directory

zoning to lobby then back to PoK 3rd attempt:

2% memory loss vs. 0% in sticks

zoning to lobby then back to PoK 4th attempt:


2% memory loss vs. 0% in sticks

Idle in PoK for about half hour 5th attempt:

1% loss vs 1% loss


Clearly there is a significant improvement in load time from character select to fully into the zone. But, I didn't see much of an improvement from server to character regarding load times.

The crashing is related to zoning and loading of character model assets/heros forge armor fluff people are wearing (already speculated on this theory about a year ago as I pointed out the issue in an earlier forum thread I created since I have been crashing a significant amount over last 2 years from zoning multiple times.


Also, idling in PoK still drops memory too in both directories, this might or not might be related to assets load? Need to further test over 3-4 day idle period.


Q1: is there anyway to turn pets and familiars into stick figures too?

Q2: Some models that got skipped for stick figures that I've found so far, that I'd like to know if there is a way to change them to stick figures (will edit as I find more):

Gunthank Grit II illusion
Bokon Illusion
Arx Worker Contruct
Belikos
Golden Clockwork : Like the Living Legacy npc
Minotaur
Broken Mirror undead mercenary
Gingerbread Man mercenary
Gargoyle (non-classic, like the shroud giver npc)
Puppet string npc (like the morell's castle puppets)
 
Last edited:
With the latest release from 8/13 using the 8/15 bugs compile. I'm seeing load up times from server select to character select go from 21 secs to about 8 secs. No change for character to zone in.

The downside is, I seem to be loosing about 10% EQ memory on load in. Went from 47% to 37%.


This is all under sticks.
 
i run amd 8 core 8150 32gb ram, gtx 770 and sandisk ssd pro. i could get about 12 accounts to run on this setup before maxing cpu.

here's my result

CPUScore : 7.9
D3DScore : 9.9
DiskScore : 8.1
GraphicsScore : 8.2
MemoryScore : 7.9
WinSATAssessmentState : 1
WinSPRLevel : 7.9

How to get your result? Open powershell and run as admin. then paste in this powershell command below

### wait about 2 or so minutes for this to complete ###
winsat prepop

### then run this and look for the result file @ c:\results.txt ###
Get-WmiObject -Class Win32_WinSAT|Select CPUScore,D3DScore,DiskScore,GraphicsScore,MemorySc ore,WinSATAssessmentState,WinSPRLevel|FL|out-file c:\results.txt
 
Got the following error when trying to run the 2nd command.

Code:
Select-Object : A positional parameter cannot be found that accepts argument 'System.Object[]'.
At line:1 char:35
+ ... in32_WinSAT|Select CPUScore,D3DScore,DiskScore,GraphicsScore,MemorySc ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Select-Object], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
 
Last edited:
I noticed a space in MemorySc ore. Try this.

Code:
Get-WmiObject -Class Win32_WinSAT|Select CPUScore,D3DScore,DiskScore,GraphicsScore,MemoryScore,WinSATAssessmentState,WinSPRLevel|FL|out-file c:\results.txt
 
Ran into an issue, where boats appear as stick figures, so your character doesn't get on the platform/deck of the boat and just falls into the water. Any ideas how to fix ?
 
Good question mate. I don't recall specifically including the models for boats. They'll have to be included in the GlobalLoad, or at least in the specific zones where the boat(s) are used. I didn't think of that many moons ago.
 
Bumping this, as I just put these settings on my new laptop.



I'm always looking for ways to reduce the memory footprint of EQ and this is by far one of the best ways to reduce load times and fps.