• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋
redfetch

redfetch 1.7.0

Download
six wizards levitating a package, the word redfetch underneath


redfetch is for updating software and scripts for EverQuest that RedGuides recommends, as well as those you "watch". It's also open source, how nice.

Installation​

On Windows the easiest way to install redfetch is to download and run redfetch.exe. (optional: If you're still on Windows 10 and want a more modern appearance, follow this guide to set Windows Terminal as your default terminal.)

Make sure you have a recent version of Python

  1. Install pipx
    Bash:
    python -m pip install --user pipx
  2. Make it so you can run packages without having to type "python -m"
    Bash:
    python -m pipx ensurepath
  3. Install redfetch
    Bash:
    pipx install redfetch
When you open a new terminal window you'll be able to run redfetch by typing redfetch from the command line.

Usage​

1) Double-click redfetch.exe to run the script.​

Take a moment to consider your configuration and the settings tab.

2) Click the big blue "Easy Update" button, and then "Yes" or "Always" on the popup.​

a screenshot showing the easy update button

(It's updating Very Vanilla MQ and any of its scripts or plugins you have watched on RedGuides, your licensed resources, and scripts recommended by staff. You can customize this if you like.)

Now you're ready to play EQ with the big boys.

Add more MQ Scripts​

To add more MacroQuest scripts, "watch" them on www.redguides.com/community/resources, and then click the Easy Update button again.

a screenshot showing the watch button on a resource page


If there are non-MQ resources you'd like to keep in sync with redfetch, you can add them as a "special resource" in the local settings file, as shown in settings section.

Command Line​

To run redfetch from the command line:

.exe filepython
.\redfetch.exe updateredfetch update
a screenshot showing the command line interface


Command Line Reference​




Run redfetch --help for the current list, or redfetch <COMMAND> --help for a command's options. It looks like:

📦 Resource Management​

  • update - Update all watched and special resources.
    • --force / -f - Force re-download of all watched resources.
    • --client / --server / -s - Use this client for this run only, without changing your active client.
  • download <ID_OR_URL> - Download a specific resource by ID or URL.
    • ID_OR_URL - RedGuides resource ID or URL
    • --force / -f - Force re-download by resetting this resource's download date.
    • --client / --server / -s - Use this client for this run only, without changing your active client.
  • check - Non-interactive update check (for automation.)
    • --client / --server / -s - Use this client for this run only, without changing your active client.
  • list - List resources and dependencies in your local cache.
  • reset - Reset download dates for watched resources in the database.

🔧 System & Utilities​

  • ui - Launch the Terminal User Interface.
  • run [SHORTCUT] - Run a shortcut (e.g. vvmq, eqbcs, myseq). run by itself will show a full list.
    • SHORTCUT - Shortcut to run: vvmq, eqbcs, eq, eqgame, etc.
    • --client / --server / -s - Use this client for this run only, without changing your active client.
  • open [SHORTCUT] - Open a folder or file (e.g. downloads, mqini). open by itself will show a full list.
    • SHORTCUT - Folder/file to open: downloads, vvmq, eq, etc.
    • --client / --server / -s - Use this client for this run only, without changing your active client.
  • web - Launch the RedGuides.com web interface.
  • agent - Print setup and configuration slop for llm agents.
  • version - Show version and exit.
  • uninstall - Uninstall redfetch and clean up data.
  • logout - Log out and clear cached token and API cache.

🍔 Configuration​

  • config <SETTING_PATH> [VALUES] - Read or update a setting by path. Give no value to print the current one.
    • SETTING_PATH - Dot-separated setting path (e.g., SPECIAL_RESOURCES.1974.opt_in)
    • VALUES - New value. List settings take multiple values (e.g. a.ini b.ini). Omit to print the current value.
    • --add <ENTRY> - Append an entry to a list setting (e.g. a protected file).
    • --remove <ENTRY> - Remove an entry from a list setting.
    • --client / --server / -s - Client to apply the change in.
  • client <CLIENT> - Switch the game client: LIVE, TEST, or EMU (RoF2).
    • CLIENT - LIVE, TEST, or EMU (RoF2)
  • server <SERVER> [NAME] - Switch the active emu server: a name like lazarus, none to use any emu server, or add to add a new server.
    • SERVER - An emu server name (e.g. lazarus), none to use any emu server, or add to add a new server
    • NAME - With add: the new server's name (e.g. myserver)
    • --eqpath - With add: the server's EverQuest folder.
    • --label - With add: display name for a custom server.
    • --patcher-url - With add: download link for the server's patcher (zip or exe); needs --patcher-exe.
    • --patcher-exe - With add: patcher file name, e.g. ThePatcher.exe (inside the zip, if any).
    • --guide - With add: URL of the server's getting-started guide.
    • --shortname - With add: the server's short name as EverQuest knows it.
  • provision <SERVER> - Create a server's EverQuest folder from a clean RoF2 copy, then set it up.
    • SERVER - An emu server name (e.g. lazarus)
    • --source - A clean RoF2 zip, iso, or folder.
    • --destination - Where to create the new EverQuest folder.
  • status - Show the configuration for the current or specified client.
    • --client / --server / -s - Client to show (defaults to current)

📤 Publishing​

  • publish <RESOURCE_ID> - Publish updates to a RedGuides resource.
    • RESOURCE_ID - Existing RedGuides resource ID
    • --description <README.md> / -d - Path to a description file (e.g. README.md) to become the overview description.
    • --version / -v - New version string (e.g., v1.0.1)
    • --message <CHANGELOG.md | MESSAGE> / -m - Path to CHANGELOG.md (keep a changelog), other message file, or a direct message string.
    • --file <FILE.zip> / -f - Path to your zipped release file
    • --domain - If description or message is a .md file with relative URLs, resolve them to this domain (e.g., https://raw.githubusercontent.com/your/repo/main/)


The publish command also has a GitHub Action.

Settings​

settings.local.toml is found in your configuration directory, which by default is c:\Users\Public\redfetch\settings.local.toml. Any keys you add will override their default values in settings.toml.

All settings are prefixed with the environment,

  • [DEFAULT] - encompasses all clients that are not explicitly defined.
  • [LIVE] - EverQuest Live
  • [TEST] - EverQuest Test
  • [EMU] - EQEmulator (see Emu servers)

General settings reference​

These can all be managed from the settings tab in the TUI, or directly in settings.local.toml:

TOML:
[DEFAULT]                  # These settings will be used on all clients, unless overriden.
DOWNLOAD_FOLDER = 'D:\dl'  # where resources land unless they have a path of their own

[LIVE]                     # These settings are only in effect for the Live client
EQPATH = 'C:\EverQuest'    # the live client's EverQuest folder
THEME = "dracula"          # interface theme, ctrl+t to cycle
AUTO_UPDATE = true         # silent update when MacroQuest launches
AUTO_RUN_VVMQ = "always"   # start MQ after updates; "never", or "ask" (default)
NAVMESH_DOWNLOADS = true   # pre-made meshes for the Nav plugin

[EMU]
ACTIVE_SERVER = "lazarus"  # your active server slug name

Adding a special resource​

To add a "special resource" (a non-MQ resource that you want to keep updated), open settings.local.toml and add an entry. You'll need the resource ID (numbers at the end of the url) and a target directory. Example:

TOML:
[LIVE.SPECIAL_RESOURCES.153]
custom_path = 'C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest\maps\Brewall_Maps'
opt_in = true
  • Note the use of single quotes around the path, which are required for windows paths.
The above will install Brewall's maps to the EQ maps directory the next time redfetch update is run for the LIVE client.

Key reference for special resources:

TOML:
[LIVE.SPECIAL_RESOURCES.151] # for resource 151 (MySEQ) when on the live client
opt_in = true                # whether redfetch updates this resource
custom_path = 'C:\MySEQ'     # exact install folder, overrides all defaults

[LIVE.SPECIAL_RESOURCES.151.dependencies.153]  # installs inside the parent resource
subfolder = "maps"           # relative to the parent's folder
flatten = true               # discard the zip's own folder structure
opt_in = true

Emu servers​

redfetch can track more than one emulator server, each with its own EverQuest folder and maps choice.

You can also switch from the command line:

Code:
redfetch client emu
redfetch server lazarus
redfetch server none    # back to "Any emu server"
To add a server redfetch doesn't know about, use the Servers tab, or hand-add an entry to settings.local.toml:

TOML:
[EMU.SERVERS.myserver]
label = "My Server"
opt_in = true
eqpath = 'D:\Games\EQ-MyServer'

Opt out of a staff pick, watched, or default resource​

You can opt out of any resource, including a staff pick. To opt out of downloading KissAssist (resource id 4) across all clients,

TOML:
[DEFAULT.SPECIAL_RESOURCES.4]
opt_in = false
This will stop all updates even if you watch or have a license for the resource. In the very rare case where it's a dependency for a parent resource, you can opt out under the dependency's category.

Self compiling or alternate source MacroQuest​

If you self-compile MacroQuest or use a discord friend's copy, you can still keep your scripts and plugins in sync with redfetch by opting out of Very Vanilla. You can edit the settings.local.toml as shown above, or do it quickly via CLI,

Code:
redfetch.exe config SPECIAL_RESOURCES.1974.opt_in false --client LIVE
redfetch.exe config SPECIAL_RESOURCES.60.opt_in false --client EMU
redfetch.exe config SPECIAL_RESOURCES.2218.opt_in false --client TEST
Then assign the Very Vanilla MQ path to your self-compiled MacroQuest.

Overwrite protection​

If there are specific files within a resource you don't want overwritten, you can add them to the PROTECTED_FILES_BY_RESOURCE setting. Include the resource ID and files you want to protect. e.g.,

TOML:
[LIVE.PROTECTED_FILES_BY_RESOURCE]
1974 = ["CharSelect.cfg", "Zoned.cfg", "MQ2Map.ini", "MQ2MoveUtils.ini"]
153 = ["citymist.txt", "innothule.txt", "oasis.txt"]
navmesh = ["befallen.navmesh", "innothuleb.navmesh"]

Custom category directories​

If you share lua, macros, or plugins directories across multiple MQ environments, you can override where an entire category is installed. Add a CATEGORY_PATHS section to your settings.local.toml:

TOML:
[DEFAULT.CATEGORY_PATHS]
lua = 'D:\\shared\\lua'
macros = 'D:\\shared\\macros'
Absolute paths are used as-is. Relative paths are joined to DOWNLOAD_FOLDER. You can set this globally in [DEFAULT] or per-environment ([LIVE.CATEGORY_PATHS], [TEST.CATEGORY_PATHS], etc.).

Custom post-update launch​

redfetch can launch extra programs after an update completes. Aside from the normal UI toggles, you can add custom to POST_UPDATE_LAUNCH.targets in settings.local.toml, then set command to whatever redfetch should run:

TOML:
[LIVE.POST_UPDATE_LAUNCH]
targets = ["custom"]
command = ['C:\Tools\AfterRedfetch\after-update.exe', '--server', 'LIVE']
You can also combine it with the built-in targets, eqbcs and myseq. For example, to start EQBCS and MySEQ and run your own Python script:

TOML:
[LIVE.POST_UPDATE_LAUNCH]
targets = ["myseq", "custom", "eqbcs"]
command = ["C:\\Users\\Public\\Python\\python.exe", "C:\\Users\\Public\\redfetch\\after_update.py"]
You can set these per-client, e.g. [TEST.POST_UPDATE_LAUNCH], or global [DEFAULT.POST_UPDATE_LAUNCH].

Watchers on RedGuides


Contributing​

I'd love help, conceptually and technically. I'm not a developer and this is my first big python script.

To set up a development environment,

Bash:
git clone https://github.com/RedGuides/redfetch
cd redfetch
pip install hatch
hatch env create dev
hatch shell dev
You can then run your dev version with,

redfetch

Or if the issue is ui-specific, run the terminal UI in debug mode,

textual run --dev .\src\redfetch\main.py

When you're done, type exit to leave the shell.


Not affiliated with or endorsed by EverQuest or its owners.
Author
Redbot
Watchers
511
First release
Last update

Ratings

3.62 star(s) 13 ratings

More resources from Redbot

Share this resource

Latest updates

  1. 1.7.0

    Added Navmeshes for emu RoF2, if you like them thank derple for making the repo New (to...
  2. 1.6.9

    Added redfetch agent prints instructions for your automaton, for those who prefer no ui at all...
  3. 1.6.0

    Changed redfetch now refers to Live/Test/Emu as clients, e.g. redfetch client live, after the...

Latest reviews

This is absolutely amazing! Love the interface and the nod to RP. The old-school vibe feels right at home for an EverQuest utility. Apparently terminal windows are controversial now, but I’m here for it. 😂 Nice work, Redbot!
why go back to terminal window? This feels like a step backwards but it works.
Redbot
Redbot
If you hate how it looks you're in luck, I'm getting pretty close to silent updates so you won't even know redfetch exists.
Lame, what the actual F...ya'll...came back from a short vacay and my launcher is gone....this texty crap is whack
This is amazing. The MUD-style interface is really exciting. It’s the kind of cool UI I’ve dreamed about.
Awesome, love this! Super helpful with my non VV compile!
The UX is honestly attrocious. I can't believe the usable redguides launcher has been deprecated by this vibe coded buggy crap.
So not happy with the complications. Click and forget is what we pay for really. Now a million questions and decisions - do I have to download the plugins and install them? this was done so neatly before. Ok so give it some time and maybe its all ok but initial thoughts are not positive. Why change? redguides launcher was so cool and very easy to understand.
Redbot
Redbot
Nope, you just press the big button and everything's updated. There are fewer clicks and decisions.
I’m one of those who just closed the installer and built MQ2 from the sources ?.
The choice of language and the visual style might not appeal to everyone, that’s for sure.

What’s really interesting, though, are the technical aspects — they make you think about possible solutions for the future. For example, I’ve used similar techniques for Windows UIs with modern GPU shaders, creating nice, dynamic interfaces, and I wonder if this kind of approach could become a solution for tomorrow.

The main thing is that the developer had fun creating this installer — and that really deserves some encouragement! ?
Redbot
Redbot
I don't think updating a lua script calls for GPU shaders, but that's just me.
Confusing, difficult on the eyes, feels like a downgrade from RG Launcher
Redbot
Redbot
If the theme bothers your eyes you can change it with ctrl+t
So good
Back
Top
Cart