World of Warcraft: Forever

They were never here.

Skyveil is a client-side addon that hides Skyborne elves from your game — nameplates, names, whispers, yells, emotes. Block guilds, names, words in the channels you pick. Nothing is blocked until you add it. The plate stays. The body still walks.

Filtering is local. It sends nothing to the server except a /who when you ask and the declines you turn on. If you turn on Guild Command: Private, it also sends the addon messages you press Send for: to your guild, its officers, one member, the other guild's master when you request or remove an alliance link, or (with Alliance Sync linked) the allied guild master and their delegates. As guild master, it also sends a guild rank rename you press Send for. If you turn on Layers (Beta), it also sends your Share line on each press, layer requests, invites, accepts, group leaves, joining and leaving the SkyveilLayers channel and, as host, the lead pass (PromoteToLeader) of leave order 3. Nothing else. Drop the folder in Interface/AddOns and restart. If it shows as out of date, tick Load out of date AddOns.

Every send site in this release, and nothing else: (a) SkyveilSync's one-shot -LocalLlmHint / --local-llm-hint, only when you run it, sends one report's first line, state line and errors once to a model on your own computer (127.0.0.1, ::1 or localhost), then exits; (b) this site's help bar Tier 2 bridge to Ollama (127.0.0.1:11434) or llama.cpp (127.0.0.1:8080) on your computer, only when you turn it on and press Ask; (c) the browser's built-in model, only when you turn it on and press Ask (it runs inside your browser); (d) the addon's /who, decline, Guild Command and Layers sends above. Hints, /skyveil ? and /skyveil debug send nothing. The help bar's search, report reader and micro-model run on this page and send nothing. No cloud service is called.

Live client

Lower the veil

A mock of the gate at dusk. Three Skyborne names go blank. The Human in Ashen Lantern keeps his plate — his chat does not. This client only.

ORGRIMMAR · GATE

3 veiled nearby

Grommash

Orc

Cairne

Tauren

Tyrande

Night Elf

Veyric

Human · Ashen Lantern

General

  • [Grommash] says: Lok'tar. Hold the gate.
  • [Party] [Cairne]: Earth Mother watches. Pull left.
  • [Tyrande] says: Elune be with you. I am drinking at the inn.
  • [Party] [Grommash]: Ready check. We go on three.
  • 4 messages suppressed

What it actually does

Everything the API will allow

Skyveil is not a cheat and not a server mod. It is a nameplate filter and a chat filter — pointed at Skyborne elves, and at the guilds, names and words you choose. Guild Command adds private guild tools (beta), off until you turn them on.

Nameplates

Skyborne names go blank. The plate itself stays.

Chat & emotes

Say, yell, emote, whisper, party, raid, guild, instance, and channels. If they spoke, you never saw it.

Names & tooltips

Target, focus, and raid names blank. Mouseover tooltips hide. /who lines that name a remembered Skyborne are dropped.

Memory

Once a Skyborne walks past, their GUID is stored. Whispers still vanish after they leave range.

Guild veil

A guild name containing a needle you add loses its chat on this client. Nothing is set until you add one. The nameplate stays. Invites, duels, and trades are declined only after you turn those on. The 50-name ignore list is not used.

Chat rules

Block guilds, names, words. A rule matches a word, text, a start, a link or an item, in the channels you pick: say, whisper, trade, general, looking for group, guild, group or system. Hidden lines go to a log you can read back. Word filters from 2.0 became rules in every channel.

Spam and repeat filters

Off by default, so an upgrade hides nothing new. /skyveil spam scores public chat for gold and boost spam. /skyveil repeats hides the same line from the same sender within the repeat window: 30 seconds by default, and /skyveil repeats <seconds> or the Channels tab sets it from 5 to 600 seconds. Friends, guildmates and your group are never hidden by rules or these filters unless you change that.

Profiles, alerts and roster log

Each character picks a profile of settings and rules. Alerts run on your own client: a chat line, sound, raid-warning-style screen text, taskbar flash or screen fade, with a 10-second cooldown per trigger and at most one alert every 2 seconds. The guild roster log records joins, leaves and rank changes and keeps names only as salted hashes. All off until you turn them on.

Guild Command: Private (beta)

Off until /skyveil private on. Your GM and officers build your guild's own pack in game: sections such as wings, ranks, reserves, standing, strikes, rival and sister lists, and bank tracking. Sections are sealed and sent over the guild or officer addon channel only when someone presses Send.

Alliance Sync (beta)

Off by default. Two guild masters each press Link to join their guilds. Each guild picks which sections it shares. Officer-only sections, Standing and bank data are never shared.

Layers (Beta)

Layers (Beta): off until you turn it on. It checks each hop and tells you whether it held. SkyveilLayers is a visible chat channel. When you share, anyone in it can see your character, zone and layer.

Beta

Guild Command and Alliance Sync

Guild Command: Private is off until you type /skyveil private on. Your GM and officers build your guild's own pack in game: wings, ranks, reserves, standing weights, schedule, trial rules, membership, contributions, attendance inputs, trials, strikes, rival and sister lists, rival sightings by guild tag, tickets, reagent targets, alliance links, and bank tracking. The public addon ships an empty framework with no guild built in. Member sections go over the guild addon channel and officer sections over the officer channel or a whisper to one officer, each only when someone presses Send. Every section is sealed and keeps its last 5 seals for rollback.

Alliance Sync is off by default. Two guild masters each press Link to join their guilds. Each guild picks which sections it shares. Officer-only sections, Standing and all bank data are never shared. Either guild master unlinks with one press. Each allied guild's delegates (at most 32) share one rate bucket of their own: together they get 60 chunks per 10 seconds, the cap one member gets alone, and one ally's delegates never use up another ally's bucket. A delegate name two allies both list counts on the bucket of the allied guild whose name sorts first. Each member keeps its own 60. The guild masters are not in that bucket; each has its own cap of 460 chunks per 10 seconds.

What it stores, in the SkyveilDB saved variable on your computer under "private": the on/off flag; a dropped-message counter; one bucket per guild with the guild key you paste, sealed sections with their last 5 seals, held changes, bank data members shared with you, with its seals, your own records an officer sends you (strikes, contributions, attendance, trial wing and result, standing weights, the sender's name and when it arrived), queued ticket and wing membership requests (the member's name, the ticket text or wing asked for, its status and time), each allied guild's shared sections and held changes, alliance link requests (the sending character's name, when it arrived, and whether your client saw that character as that guild's master), each guild master you sent a link request to that is still pending (one per guild), a log of up to 5000 request senders' names, the guild each named, and when they arrived, plus when each sender's request was last shown, for rate limits, unlinked guild tags, your own share opt-in, the guild master's list of member names who opted in to the allied roster, and a delegate list version number; bank snapshots (character or guild name, time, gold, item names and counts in bags and bank, the last 100 gold changes, and the guild bank money log with each entry's type, player name and amount); and the bank alts you mark, each with its sharing on/off. Rival guilds are tracked at guild level only; rival records have no player-name or GUID field. Nothing here moves items or gold, kicks, demotes or penalizes anyone.

Layers (Beta): off until you turn it on. It checks each hop and tells you whether it held. SkyveilLayers is a visible chat channel. When you share, anyone in it can see your character, zone and layer. Click a layer to ask a host for an invite, once every 10 minutes. If the hop reverts, that click retries with the next leave order, up to 3 invites. Your Skyveil accepts only the invite from the host it asked, within 30 seconds. Hosts invite up to 3 askers a minute, never a blocked name, only while they can invite: solo, party leader, or raid leader or assistant with a free slot. /sv layers off stops it at once. You ask while solo, join the host, then leave after the hop. A solo host leaves too; a grouped host stays. Skyveil shows the layer you end on. A join can move a grouped host's whole group to the asker's layer.

What it does not do

The engine still draws the body

Addons cannot hide another player's 3D model. That is an engine rule, not a missing checkbox. Skyborne will still occupy space in the world. Names on nameplates are blanked; the plates stay. Tooltips, unit-frame names, and every line of chat they produce are blanked the same way. Turn nameplates on — the engine-drawn names that appear with plates off cannot be filtered per player.

After you see a Skyborne, run /skyveil inspect. The addon stores their race id so detection does not depend on a localized name string. While the veil is on, chat bubbles are checked once a second against your say rules, mutes, veiled guilds and Skyborne names. Inside many instances the game does not give addons the bubbles, so they show as normal there.

Patch notes

What changed

2.3.0

  • Quiet hints: one hint line and an Ask box at the bottom of the options. /skyveil ? <words> (or /skyveil hint) answers in at most 2 lines, only when you ask. No popups, no chat bubbles, no unsolicited chat lines.
  • /skyveil debug reports carry a state line after the client lines: addon, version, error count and the self-check states. No names, GUIDs, realms or layer IDs.
  • SkyveilSync writes SKYVEIL_LATEST.txt and SKYVEIL_LATEST_RETAIL.txt, a copy of the newest report per client, and has a one-shot --local-llm-hint (-LocalLlmHint) for a model on your own computer: one send, then it exits. A normal sync opens no connection.
  • Skyveil Retail 1.1.0-beta: leave order 3 waits until the asker shows as leader (5 s at most), and Layers shows the last shard seen, marked stale.
  • This site has a help bar (press / or ?, or Help in the header). It answers from Skyveil's own help on this page. A pasted report stays in the tab's memory: never stored, never sent off-device.

2.2.0

  • Layers (Beta), off until you turn it on: read your layer, share it on SkyveilLayers (a visible chat channel), ask a host for an invite, host for others, hop checks and self-checks. /skyveil layerlog.
  • /skyveil debug report with Save and reload. It saves the report, including the last 200 layer log lines, to the SavedVariables file; the last 5 are kept. Other players appear as hashed IDs; no chat text and no guild roster.
  • An eleven-tab options panel. The setup repeat line shows your repeat window. /skyveil repeats with a value that is not a number says the range.

2.1.0

  • Chat rules: block guilds, names, words by channel (say, whisper, trade, general, looking for group, guild, group, system). /skyveil rule add, list, on, off, remove.
  • Blocked log in memory for rules, filters, guild veils, mutes and Skyborne lines: /skyveil log, reveal and unblock.
  • Your 2.0 word filters became rules in every channel. /skyveil word add and remove still work.
  • Spam, repeat and low-level whisper filters, all off by default, so an upgrade hides nothing new.
  • Preset rule packs (gold, recruit, links, lfg, Non-Latin text), each previewed before you apply it, and share strings: /skyveil export and import, up to 64 KB, checked over several frames, previewed rule by rule before merge or replace.
  • Profiles: each character picks one. Your 2.0 settings move into the profile Default.
  • Alerts on your own client for rules, roster changes, declines, rival sightings, guild master seals, message floods and veiled-guild group joins: a chat line plus optional sound, raid-warning-style screen text, taskbar flash and screen fade. One alert per 2 seconds, a 10-second cooldown per trigger, off by default. /skyveil alert test.
  • Blocked-line counts per day for 14 days: /skyveil stats, and today's count in the minimap tooltip.
  • Guild needle notes and expiry (7, 30 or 90 days), and an optional group warning that names the guild only.
  • Guild roster log: joins, leaves and rank changes, names kept only as salted hashes, off by default. Former members show as a former member with their last rank. /skyveil roster summary counts ranks and recent activity, in memory only.
  • Minimap button (off by default) and an Addon Compartment entry.
  • Setup in three steps (veil scope, presets, one profile or one per character) for new installs; upgrades see What's new once instead.
  • Options panel with ten tabs, list editors with search, and its own movable window (/skyveil config). Help pages ten lines at a time. Every UI string lives in the enUS locale file. 2.1 sends nothing new.

2.0.0

  • Guild Command: Private (beta), off until /skyveil private on.
  • Alliance Sync (beta), off by default.
  • Guild master cross, on by default; /skyveil cross off.
  • Flood handling and a 2 ms per-frame work budget for sliced work and incoming addon messages.

Upgrading from 1.x

  1. Log out of the game.
  2. Download skyveil.zip below and check its SHA-256.
  3. Delete your old Interface/AddOns/Skyveil folder.
  4. Unzip and put the new Skyveil folder in Interface/AddOns.
  5. Restart the game. A /reload does not load a newly copied addon.
  6. At character select, enable Skyveil. If it shows as out of date, tick Load out of date AddOns.

Your settings stay in SavedVariables, which the new folder does not touch: the veil and every checkbox, guild needles and learned members, hand mutes, word filters (now rules), remembered Skyborne, race ids and declines. Every 1.x and 2.0 slash command still works.

What it saves

What it saves, in the SkyveilDB saved variable on your computer. Account-wide: character names and GUIDs it has seen as Skyborne and the Skyborne race ids it learned (up to 4000 names and 4000 GUIDs, only while remember is on); lower-case names of characters seen in a guild you veil, each with that guild's name (up to 4000); the guild master cross on/off; the settings version; one-time flags (2.0 settings moved into profiles, first-run setup done, the last What's new version shown); the profile list and which profile each character uses, keyed by character name and realm; the Guild Command data under "private"; a random salt for debug report IDs and the last 5 debug reports you saved (/skyveil debug Save and reload, or at each logout and /reload: addon version, client build, settings, the last 200 layer log lines, hop and self-check results and Skyveil errors, with other players as hashed IDs). Per profile: every setting (veil, decline, spam filter and its level, repeat filter and its window in seconds, low-level whisper filter and its level, friend, guild and group exemptions, alerts for rules, roster changes, declines, rival sightings, guild master seals, message floods and veiled-guild group joins, the alert outputs (sound, raid-warning-style text on your screen, taskbar icon flash, screen fade) with per-alert output switches, the alert cooldown, the group warning on/off, roster log on/off, minimap button shown and its position around the minimap, Layers share and host on/off and the host invite cap); Layers blocked names as hashes; your guild needles, each with an optional note of up to 60 characters and an optional expiry date (7, 30 or 90 days), muted names, guilds exempted with unblock or exemptguild (removed with unexempt), and the 2.0 word list; blocked-line counts per day for the last 14 days (a total, per channel and per rule; no text and no names); your chat rules (number, kind, text, channels, on/off, hide or highlight); how many lines each rule hid; and whether the 2.0 words became rules. A preset adds ordinary rules; the preset packs are not saved. Roster log, account-wide, only after /skyveil roster on: a random salt, the last roster you saw as salted hashes with each member's rank number, and up to 500 entries of time, change (join, leave or rank), salted hash and old and new rank numbers. A hash is the first 16 hex characters of SHA-256 of the salt and the lower-case character name without realm. No member name is saved. Not saved: the blocked-line log (the last 200 hidden lines with sender, text, rule and channel, in memory until you log out or reload), alert cooldowns and waiting alerts, the session name-to-hash cache and the names of current members it shows for this session, the roster summary (members per rank, active in 7 and 30 days), the group members already warned about, an import waiting for apply or cancel, the Guild Command send log, and layer lists and the layer log (session only, except the copy in a saved debug report).

Install

Four steps. Then /skyveil.

  1. 01

    Download skyveil.zip, for World of Warcraft: Forever (interface 16001), and unzip it. This gives you two folders: Skyveil and SkyveilSync.

  2. 02

    Place the Skyveil folder in Interface/AddOns of your Forever install.

  3. 03

    Fully restart the game. /reload is not enough for a newly copied addon.

  4. 04

    At character select, click AddOns and enable Skyveil. If it is greyed out, tick Load out of date AddOns.

AddOns path

World of Warcraft\_classic_\Interface\AddOns\

If the addon does not appear, open the Battle.net install directory and look for Interface/AddOns.

Download skyveil.zip

SHA-256: 6cb4e868ce4ce045c2e3641682f1b01ed77c77dcd8501d4bee8a8ba2163d59c7

Retail

Skyveil Retail 1.1.0-beta

Two downloads, one per game. skyveil.zip is Skyveil 2.3.0 for World of Warcraft: Forever (interface 16001). skyveil-retail.zip is Skyveil Retail 1.1.0-beta for World of Warcraft retail (interface 120105). Retail marks some game data secret and blocks some sends. The table shows what each client does.

FeatureForever (Skyveil)Retail (Skyveil Retail)
Skyborne veilYesMatches no one. Skyborne is a Forever race.
Guild veil and mutesYesYes. Names, guilds and IDs the game marks secret are skipped.
Chat rules and filtersYesYes. During chat lockdown (a Mythic+ run, a PvP match, an instance encounter) lines arrive secret and pass unfiltered.
Alerts, roster log, statsYesYes
Guild CommandYesYes. Sends are held during chat lockdown; press again later.
Layers (Beta)YesYes, as layer (shard). Outside instances and chat lockdown only.
Debug reportYesYes. Records the client flavor, interface and build.
SkyveilSyncYes, in skyveil.zipYes, in skyveil-retail.zip
  1. 01Download skyveil-retail.zip, for World of Warcraft retail (interface 120105), and unzip it. This gives you two folders: SkyveilRetail and SkyveilSync.
  2. 02Place the SkyveilRetail folder in Interface/AddOns of your retail install.
  3. 03Fully restart the game. /reload is not enough for a newly copied addon.
  4. 04At character select, click AddOns and enable Skyveil Retail.

AddOns path

World of Warcraft\_retail_\Interface\AddOns\

World of Warcraft/_retail_/Interface/AddOns/

Download skyveil-retail.zip

SHA-256: a0cc991ca6be7ea66aeb9d411189748e43245057fae98a5197f1e16bb227f427

Slash commands

Talk to it in chat

  • /skyveil

    Open the options panel

  • /skyveil help

    Every command, from the addon itself

  • /skyveil on

    Lower the veil

  • /skyveil off

    Raise the veil

  • /skyveil toggle

    Flip on or off

  • /skyveil inspect

    Race id, file, GUID, and guild of your target

  • /skyveil status

    Nearby, Skyborne, guild and rule counts

  • /skyveil guild add text

    Match this text inside a guild name

  • /skyveil guild remove text

    Drop that needle

  • /skyveil guild list

    Show needles and how many names are learned

  • /skyveil mute Name

    Hide that player's chat on this client

  • /skyveil unmute Name

    Undo a hand mute

  • /skyveil word add text

    Hide any message that contains the text (a rule in every channel)

  • /skyveil word remove text

    Drop that word filter

  • /skyveil rule add word text

    Add a chat rule; kinds word, contains, starts, link, item, wild; scope=trade,say,…

  • /skyveil rule list

    List rules with hit counts; on, off or remove one by number

  • /skyveil log

    Last blocked lines (memory only)

  • /skyveil reveal 1

    Show one blocked line

  • /skyveil unblock 1

    Turn off the rule that hid that line, exempt its guild or unmute its sender

  • /skyveil spam normal

    Spam filter for public chat: off, low, normal, strict (off by default)

  • /skyveil repeats on

    Hide the same line from the same sender within the repeat window (off by default)

  • /skyveil repeats 60

    Set the repeat window in seconds: 5 to 600, 30 by default

  • /skyveil lowlevel 10

    Hide whispers from known levels below 10 (off by default)

  • /skyveil unexempt list

    List guilds exempted with unblock; /skyveil unexempt <guild> removes one, /skyveil exemptguild <guild> adds one

  • /skyveil exempt guild on

    Friends, guild, group: never hidden by rules or the spam, repeat and low-level filters (all on)

  • /skyveil preset gold

    Add a rule pack: gold, recruit, links, lfg, nonlatin

  • /skyveil export

    Print a share string of your rules

  • /skyveil import string

    Add rules from a share string (up to 64 KB)

  • /skyveil profile list

    Profiles: list, use, copy, delete, rename, reset

  • /skyveil alerts rule on

    Alerts on your client: rule, roster, decline, sound

  • /skyveil roster on

    Guild join, leave and rank log with hashed names

  • /skyveil minimap on

    Show the minimap button (off by default)

  • /skyveil setup

    First-run setup: presets and filters

  • /skyveil who

    One /who for one of your guild needles. Five-second cooldown.

  • /skyveil cross off

    Hide the guild master cross (on by default)

  • /skyveil clearcache

    Forget remembered Skyborne names and GUIDs

  • /skyveil forgetids

    Forget learned race ids

  • /skyveil forgetguilds

    Forget learned guild members; needles stay

  • /skyveil layers

    Layers (Beta): open the tab; share on|off, host on|off, off, block Name, unblock Name, cap 1-3 (off until you turn them on)

  • /skyveil layerlog

    This session's layer events, 200 lines (memory only, cleared at logout except a saved debug report's copy)

  • /skyveil debug

    Debug report to copy; Save and reload saves it to the SavedVariables file (last 5 kept)

  • /skyveil private help

    Guild Command: Private (beta), off until /skyveil private on

  • /sv

    Same as /skyveil

Questions

Before you unzip

Does this hide their 3D model?

No. Addons have no API for hiding another player's world model. Skyveil blanks the name on the plate, and blanks tooltips and chat. The body still renders. Engine-drawn names with nameplates off cannot be filtered per player.

Can other players tell I have this?

Yes, for anyone who receives a Guild Command message: with Guild Command: Private on, your guild, its officers, one member you send to, the other guild's master for an alliance link, or (with Alliance Sync linked) the allied guild master and their delegates receive Skyveil addon messages, so they can tell you run it. With Layers (Beta) sharing on, SkyveilLayers is a visible chat channel: anyone in it can see your character, zone and layer, and hosts and askers see your invites and group joins. The filters are local, and chat rules, profiles, alerts, the roster log and the minimap button send nothing. /skyveil who sends a single who query you asked for. Skyveil doesn't announce declines; the other player sees the decline. Addon messages go only when you press Send. As guild master, a rank rename you press Send for is visible to the guild. Their client is unchanged.

How does it know who is Skyborne?

It matches the race name and file against Skyborne, Skyborn, and Shen'dorei. Target one and run /skyveil inspect. A learned race id is stored so later matches do not depend on the localized string.

Does this mute a whole guild?

It does, once you add a needle. Nothing is matched until you do. Chat from a learned member drops. Their plate stays. A player who later shows a guild that does not match is forgotten. A hand mute stays until you unmute, and it does not need a guild.

Why not the ignore list?

The ignore list holds 50 names. Forever groups by ruleset, not by realm, so a large guild is not avoided by changing server. This filter does not write to the ignore list.

Where do I put the folder?

Inside Interface/AddOns of the Forever install. Check the Battle.net install directory if the addon does not appear.

It is greyed out at character select.

Skyveil.toc uses interface 16001. If the game lists it as out of date, tick Load out of date AddOns at character select.

How do I upgrade from 1.x or 2.0?

Log out, delete the old Interface/AddOns/Skyveil folder, unzip the new one in its place, and restart the game. Your settings carry over: your 2.0 settings move into a profile named Default, and word filters become rules in every channel. Spam, repeat and low-level filters stay off, so nothing new is hidden. You see What's new once at login.

Where are the patch notes?

In the Patch notes section on this page, in the CHANGELOG of README.txt inside the zip, and in game once as What's new.

When does Forever launch?

Blizzard: 4 November 2026, 3:00 p.m. Pacific. Early name reservation is 27 October through 3 November. Invite-a-friend codes do not grant Skyborne.

Will this get me banned?

It uses these kinds of game API: chat message filters and nameplate and unit-frame changes on your client; addon messages for Guild Command; the guild rank rename (guild master only); the /who query; and the decline and cancel calls for invites, duels and trades. Declines run only if you turn them on, /who only when you ask, and Guild Command sends only when you press Send. It does not automate combat or inject into other clients. Not affiliated with Blizzard.

Download Skyveil