- Spire Admin Add the ability to make booting UCS optional in the Spire Launcher.
- Spire Admin Mobile UI improvements to admin header and zone servers page.
- Spire Admin Improvements to zoneserver stats UI.
- Spire Admin Minor UI tweaks admin header and zoneservers page.
- Spire Admin Stability improvements to distributed launcher.
- Spire Admin Fixed an issue where if two timed restarts were invoked at the same time, the timer feedback in the panel would flip between the two times.
- Spire Admin Fixed an issue where during a timed restart or stop, Spire admin would notify that a scheduled restart or stop after the server restarted or stopped.
- Spire Admin Overhauled the zoneservers page to be more functional, readable and far more performant.
- Spire Admin Significantly improved the performance of the EQEmu Server API communication from Spire admin by upwards of 10x!
- Spire Admin Improve zone server page performance when large amounts of zoneservers are displayed.
- Spire Admin Improve the performance of players online, admin header components.
- Spire Admin Fix an issue where if Spire is loaded via SSL, wss (secure) was not being chosen as a connection backend.
- Server Updater Resolved a minor issue when resolving home directories when doing
eqemu-server:update --compile-server=true --auto=true
- Bot Spell Entries Fixes an issue where a column was renamed from
spellid
tospell_id
, causing the bot spell editor to quit working.
- File Watchers Add more resiliency to file watchers to prevent crashes
- Discord Crash Logs Fix issue where some messages were getting truncated
- Local Users Fix issue where a locally created user may not get associated to the default database connection synchronized from the
eqemu_config.json
file. This would cause the user to not be able to log in to Spire Admin. - Local Users Add information banner that explains to operators to go to the
/connections
page to manage user permissions after user creation. - Database Connections Fix issue where the database connection would not display if a user had bad injected database connections.
- Database Connections Fix issue where deleted users would display in the database connections page.
- Audit Logging Add audit logging to most eqemu server administrative actions. This means if you have Discord webhooks set up for audit logging, you will now see these actions in your Discord channel.
- Discord Webhook Fix issue where the webhook would not update if it was empty
Updating Potential fixes for certain windows users during automatic updating.
Spire Admin Fix issue under unauthenticated local installations where websocket connections would get caught in an authorization loop, spamming the console. Unauthenticated Spire installations will now work properly.
- Spire Admin Add Server Process Management to the permissions page.
- Spire Admin Adjust the UI for the admin header to be more responsive, reduce clutter by removing less valuable status indicators such as UCS and Launcher which can be found on the dashboard page.
- Spire Admin Fix crash log watcher by moving it out of the launcher and into its own processor.
- Configuration Make adjustments to configuration loading to unify and make it more resilient.
Spire Admin Add realtime websocket streaming to display shutdown/restart messages and timer countdowns in the server admin header.
Spire Updates Overhaul core updating logic to be more resilient to cross-platform file paths.
Launcher Fix issue of initializing configuration when a user doesn't already have them in their config.
Installer Fix issue where slow machines would not source database files fast enough leading to a 5-minute execution timeout and a half-sourced database. Quest Hot Reload Watcher Fix potential concurrency issue when loading server config.
Spire Auto Updates Add ability to disable auto updates on bootup via eqemu_config.json option spire.disable_auto_updates if set.
Zone Log Streaming Fix minor issue where unauthenticated users could not stream zone logs. Zone Log Streaming Add "Clear all categories" button to zone log streaming page.
Spire Admin Add real-time websocket streaming back into the zoneservers page in Spire admin. This adds net new functionality to be able to copy to clipboard, pause streams, and search the logs in real-time.
Launcher Fix issue where if launcher was started by the webserver watchdog, the launcher was not properly starting. This would present itself on cold boots of Spire when the configuration is set to start the launcher on boot. Server Config Add locking around server config mechanisms to make it more concurrently safe.
Launcher No longer runs shared memory on start if the server is detected to be online. This can cause issues with existing server processes if shared memory is re-ran while the server is online.
Launcher Add feature that truncates server logs back a configurable amount of days (defaults to 7) on server start. This will keep your server logs from growing out of control and taking up disk space. This can be configured in the server config and the server launcher modal.
- Launcher Add feature to allow users to always download fresh opcodes from server GitHub on server start (Defaults to true). This can be turned off in the server config and the server launcher modal.
- Launcher Fix edge-case in Linux where processes get marked as (deleted) in their process name keeping them from being findable in the launcher "stop" routine.
- Launcher Now runs any pre-startup routines (shared memory, opcodes) in parallel to speed up server boot time.
- Installer Launcher sets config option
web-admin.launcher.updateOpcodesOnStart
totrue
by default - Spire Fix a potential crash issue during offline boots.
Installer Minor fix to using existing MySQL server installs
- Fix an issue with how dynamics are calculated when determining the number of zone processes to start
- Run a second pass at processes after server stop to ensure all processes are killed after attempting soft termination
- Return out of the supervisor loop when the World API is not responding
Spire Admin Zoneservers Fix issue where incorrect guild was being displayed in the zone server list for players.
Occulus has been ported natively to Spire. All remaining features have been ported over to Spire and Occulus has been deprecated. You can safely delete your Occulus binary. If you had your server already started during the update you will need to stop and restart your server to see the new features and use the new launcher.
- Console Logging has been improved to be more verbose and informative. The entire logging system has been overhauled to provide more information to the user and be more useful for debugging for development.
- Banner Spire now renders the image banner on bootup in the console.
- Server Launcher Has been ported natively to Spire featuring improved performance, stability, and reliability. Windows will no longer spawn a separate window for the launcher or for each of the server processes. This will be a huge quality of life improvement for Windows users.
- Quest Hot Reload Has been ported natively to Spire featuring improved performance, stability, and reliability.
- Crash Log Watcher Has been ported natively to Spire.
- Zone Server The zone server page has had a UI overhaul, featuring a differentiation between active, inactive, and static zones. Players now show visually on this page. You can now search by zone name or player name. You can also kill zone processes directly from the UI.
- Server Locking Fix error with locking server while offline.
Server Launcher Remove synthetic 1-second delay on server start/stop/restart
Database Fix an issue that prevents server configuration page from loading if you are missing the qsdatabase config section in your server config
Database Fix an issue where we are not updating the local database connection row properly in certain circumstances
Database Fix issue where an improperly configured secondary database such as queryserv or content database could keep the database object from being inserted into the Spire database connections properly.
Encryption Handle scenarios where user may have parts of an encrypted connection defined but the password is empty. Unencrypting an empty password will result in an out of range error. This will now be handled gracefully and the connection will be skipped if the password is empty.
API Updates Open access to Spire API types for spawn groups, doors, and objects for integration in Sage.
Sage Introduce new page for integration with EQ Sage. Sage, among other things, will be a 3D zone database editor that plugs into the existing Spire API. It is currently in a prototyping/experimental phase and will be undergoing changes to initially support zone editing in a broad sense with details for each individual aspect explored and fine tuned to provide full support for an immersive editing experience. More info can be found in the EQEmu Discord under the #project-requiem channel and any questions can be directed to the creator and maintainer, temp0.
- Spire Admin Fix issue where the server update page would not load because it was not rejecting errors from https://spire.akkadius.com properly. The error occurred because the hosted site is now https (SSL) and we hadn't updated our fetch logic to handle this. This is now fixed and the server update page will load properly again.
- Database Implement log database connection resolving. This allows operators to utilize the "QS" database connection type for logs, particularly sinking player event logs to an external database or server. When a QS connection is specified in the
eqemu_config.json
- player event logs will automatically route to that connection. This is useful for operators who want to sink logs to an external database or server for auditing purposes. The database configuration gets synchronized and injected during Spire bootup and also during Spire Admin configuration saving. - Player Event Log Viewer Player event log request is split from character data bulk loading two split the queries on separate connections
- Spire Admin When making configuration changes in the configuration editor UI - the database connection resolver will flush along with any cached user connections. The
eqemu_config.json
will also be re-injected into thespire_server_database_connections
table - Database Resolver Added a connection type of
eqemu_logs
of whichplayer_event_logs
andplayer_event_log_settings
both route to currently. - Configuration Sync Ensure we also empty fields when they are removed from the
eqemu_config.json
when saving the configuration in Spire Admin
- Spire Admin Message of the day should now be functional again
- Spire Admin Spire now has a server lock / unlock button and status icon that is now present in the admin header visible on all admin pages.
- Spire Admin The dashboard page now has a "Server Addresses" section that displays server world address and local address with copy to clipboard functionality if they are present in the server configuration.
- Spire Admin The dashboard page now has a "Networking Interfaces" section that displays interfaces and realtime bandwidth utilization.
- Special Abilities Calculator Adds support in Special Abilities Calculator for
Immune to Assassinate
andImmune to Headshot
abilities. (Kinglykrab) - Spire Add in application update notifications that inform the user when there is an update available. This is a new feature that will be used in the future to notify users of new Spire releases while in the UI. It supports ignoring the update, only checks periodically.
- Spire Add a manual update check button to the navbar.
- Installer Add back auto installing VC runtime 2015-2019 for Windows users still using Windows 10
- Installer Shorten the server name randomized string to 5 from 10 to prevent UI display issues and make it easier to identify
- Task Editor Fix issue where new tasks were not getting inserted with enabled
1
- Spire Admin Fix issue where editing server configuration would create empty loginserver entries
- Spire Admin Added more resiliency around server configuration editing for loginserver blocks. If loginserver 3 is defined and loginserver 2 is not, it will now create loginserver 2 and fill it with default values. Same goes for position 2 and 1. This will prevent the server from failing to boot due to missing loginserver blocks.
- Database Connections Fix core issue database connection management logic where database connections that failed to established could be cached and used in subsequent requests
- Database Update Spire with latest EQEmulator schema changes
- Spire Admin Tweaks to the UI to keep parts of the UI jumping around while the page is loading
- News News page now takes the full page on initial load
- Installer Randomize long name for server installs to prevent collisions
- Spire Install Fix issue during Spire initialization where users were not able to disable authentication receiving an error
- Server Config Update server admin configuration editor to use new config schema. Mailserver and chatserver have been consolidated to
server.ucs
see EQEmu/Server#3768
- Server Installer Use legacy analytics pipeline to record install counts
- Server Installer Run Spire as regular user on Windows instead of admin
- Server Installer Sign windows binaries
- Downloader Tweaks to downloader logic
- Server Installer Add Windows run as admin check to installer
- Server Installer Add Windows firewall rule creation to installer
- Server Installer Add Windows cmd prompt window maximization to installer
- Server Installer Add "Press enter to continue" to installer when an error occurs to keep the window from disappearing before the user can read the error
- Server Installer Add "Press enter to continue" to installer at the end of installation
- Database Set connection max lifetime to 3 minutes to prevent stale connections from being used
- Downloader Add more resiliency to the file downloader so it fully flushes the file before closing the file handle.
- Login Automation Add ability to login to the login page by passing query params
user
password
andredirect
- Spire Launcher Proxy Speed up command line launcher proxy calls to start/stop/restart
- Spire Updates Fix an issue where Spire command invocations were making API requests to GitHub to check for new versions when they didn't need to.
- Utility Added a
HTTP_DEBUG
environment variable flag that will print exhaustive request debugging - Installer Start to build eqemu server installer v2 binaries alongside of releases. These are not ready for prime time yet but they will be!
- Items Fix an issue with the items page loading due to a recent starting items schema change.
- Items Items search page now surfaces error to the user.
- Server Updates Adjust visual feedback when updating server binaries via CLI
- Spire Updater Fix issue with Spire updater not prompting for any key to restart when there is no terminal attached
- Player Event Logs Fix issue with player event log loading in some cases.
- DiscordEQ Make the DiscordEQ section of eqemu_config.json optional
- DiscordEQ Add eqemu_config.json configuration support for legacy DiscordEQ
- Installer release binary test
EQTraders Added eq traders CLI tools to both scrape and import
eq-traders:scrape
will scrape eqtraders.com and output a JSON file. It will cache all item lookups and page lookups and store them under./data/eqtraders
eq-traders:import
will import the JSON file into the database
- Assets Keep from checking GitHub for asset updates every boot. We check once an hour now on boot and during regular application updates. This prevents us from getting rate limited by GitHub which can prevent other Spire actions from working properly.
- Launcher
spire:spire:launcher stop|restart
will now also kill parent wrapper processes
- Zip Ignore zip deletion errors when deleting old zips
- Spire Admin Fix race condition when rendering server header card
- Spire Admin Fix race condition during log file streaming when switching between files
- Spire Admin Add CLI command
eqemu-server:update
to handle updating an eqemu server via release or self-compiled
- Crash Analytics Fix fingerprinting false positives in windows crash analytics
- Crash Analytics Add loader to page
- Auth Log users out in cases where their token is invalid. Also catches cases where encryption key was changed.
- Crash Analytics Added fingerprinting to crash analytics to help identify duplicate crashes.
- Crash Analytics Add Discord webhook to crash analytics to notify developers of new unique crashes.
- Server Updater Added unique crash counts to the server updater page within Spire Admin
- Video Renderer Additional performance, responsiveness, memory, and stability improvements to the video renderer.
- Spell Editor ID selector input now only engages on input focus instead of hover.
- Video Renderer Optimizations made to the video renderer to fully destroy video elements when out of view, not just stop them from playing. This will help with memory usage and performance. This will benefit all video render standalone utilities and sub-editor panes.
- Database Backup (Spire Admin) Fix an issue with database backup form where compress would reset other selections.
- Spell Animations Default spell previews to start at 3 seconds of the video
Remove Alpha setting toggle and leave alpha tools on by default but still show their badge in navigation as alpha.
Replace Quest API explorer VSCode extension embed with a static image that links to the extension in marketplace
Add zone log streaming back into admin panel zone servers page
Fix a critical issue where saving new entities (items or spells for example) would also duplicate all relational data
Fix an issue where the task list wasn't being refreshed when a task was saved
Fix an issue with the free id fetcher logic when a table uses completely contiguous ranges, we will default to the max id if there are no ranges available
- Spire local setups will now update the database connection name in the connections page on bootup when the server long name has changed
- Spire local setups will now update the database connection name in the connections page when the server long name has changed and the server is running
- When updating server binaries, inform users that they need to power off their server before attempting to update binaries
- Extend
spire:init
command to take two new flags--compile-build-location=/home/eqemu/code/build/
and--compile-server=true|false
. This is used during the eqemu server installer to determine whether Linux users want to initialize their server configuration withrelease
orself-compiled
- Fix display issue with Spire Admin header when sized to different sizes
- Fix edge case issue on Windows with telnet connections to world causing state issues in the dashboard, such as not showing zone list
- Display warning to windows users during server start about windows spawning
- Fix issue where
minZoneProcesses
is being sent as a string instead of a number in the launcher window
- Fix issue where the login screen would be scrunched up on mobile devices
- Fix mobile issues in the server admin UI in the header
- Fix server update releases page to be responsive with header content windows
- Fix an issue where the navbar collapse would not display correctly on mobile
- Fix an issue where Spire release page notifications would appear on the bottom of the page versus the top
- Fix an issue where the Spire release page would not function properly if
spire.akkadius.com
was offline (defaults to local if hosted is not online)
Ignore frequently called admin endpoints in the Spire console output to make it easier to see relevant endpoints being called
/api/v1/admin/system/cpu
/api/v1/admin/system/resource-usage-summary
/api/v1/eqemuserver/client-list
/api/v1/eqemuserver/server-stats
- Removed "Failed to connect to gameserver" error when navigating to server admin page "Zone Servers" and the server is offline
- Removed "Failed to connect to gameserver" error when navigating to server admin page "Reloading (Global)" and the server is offline
- Fix issue where server uptime can sometimes display a bunch of extra data
- Add UI for managing static zone launcher
minZoneProcesses
- When
minZoneProcesses
is set to 0, the Spire will set it to 10 by default. This is to prevent the server from booting with no zone processes
Add command spire:launcher [start|stop|restart]
to start, stop, or restart the launcher. This will be used in the future in tandem with installer v2 and utility scripts to manage the launcher
More improvements to pre-flight checks, they should fail pass-through now and not block the server from booting
- Add command
spire:occulus-update
to update Occulus to the latest version or install it if it doesn't exist #116
- Improvements to how Spire acquires static assets
- Spire will now exit immediately after updating if no terminal is attached #114
- Spire web interface port can now be configured using eqemu_config.json @ spire.http_port if it exists or environment variable
SPIRE_HTTP_PORT
if it exists #112 - Add command
spire:init [username] [password] --auth-enabled=true
to initialize a new Spire install with a default admin #113 - Add command
user:change-password [username] [password]
to change a user's password #113
- Added an asterisk to optional services in the pre-flight checks to make it more clear that they are optional
- Fixed an issue with pre-flight checks where an optional service would keep the operator from booting the server
- Fixed an issue where pre-flight checks would not clear between runs giving false reporting on checks
Fix issue with NPC/Bots editors that were incorrectly sending types on save in the edit form
Fix issue with chat message returns bleeding into other telnet API command output
Fix a regression with Spells and Items editor where changing tabs would wipe out edits made in other tabs
Fix an issue during Spire initialization with older MySQL installs and a collation, index size issue
- Fixed an issue where when the control key is pressed while in an input field that it would bring up a modal help window. This is annoying in circumstances where you use "Ctrl+A" to select all in a text field to delete and the modal pops up. The modal is now cancelled under this scenario
- Fixed an issue where HTTP streams are incorrectly sending
Bearer
headers when a token is not set - JWT signing key will now use the encryption key
- When local installs have authentication disabled, local JWT tokens get purged so API calls aren't made and authentication is rejected
Fix issue with Windows resolving localhost
to ipv6 for server API connections
This release is nothing short of massive. Buckle up! The changelog notes are hefty!
Similar to the dashboard in Occulus, but ported for modernization, quality of life changes, and the high-level server information is always available at the top of every admin page.
You can now manage launch static zones via the Occulus launcher directly in the server start UI.
Before you launch your server, you are required to run basic pre-flight checks, this will ensure that your processes don't have any issues and you are made aware of them before all of your processes are launched in the background
List and search booted zone processes and resources, kill zone processes
Manually backup server assets
Tired of editing that pesky eqemu_config
JSON file manually? Spire admin breaks out configuration editing into easy to use deep-link able sections
Crash log webhooks that you used in Occulus? Spire integrates with Occulus to continue providing those in Spire. You can edit the Discord webhook right in the UI
You know that message players read when they log in? You edit that here
The hot reload functionality that was brought to you in Occulus is now configurable directly from Spire Admin. Anytime you make changes here it will immediately take affect.
Critical bug fixes have also been made to the HRM
You can trigger server reloads directly through Spire. Reloads are triggered globally and reload data from the database into the server memory state.
Many tools already utilize this when editing related data.
List, search, edit your server rules in real time. Spire will reload rules directly on your server immediately so you do not need to manually reload them in game. Super handy!
Ever just want to take a quick manual database backup? Spire admin could not make this any easier by tapping into the native eqemu server utility that wraps around mysqldump
. You can select specific types of tables to dump, dump everything and compress it with an immediate download
Completely overhauled and ported from Occulus. Spire file log viewer is highly performant, streams realtime and only streams changes since the last file write.
Emulates console coloring, filters by log type, search filters, file deletion, bulk file deletion and more!
spire-file-logs-filters.2.mp4
Manage your Discord logging webhooks directly through Spire.
Manage your logging settings directly in Spire admin. Anytime changes are made your logging settings are reloaded real-time in the server without having to reboot or type commands in game!
Accompanied by a massive new feature in the EverQuest Emulator server (see Player Event Logging) we are brought a powerful new explorer for rich auditing tools.
Spire translates event data into viewable NPC, Item, Spell etc. cards to have contextual insight into the events and what they contain.
Any event you can see the richly formatted event or you can inspect the raw event data
You can filter by event type, zone_id, character_id which are top level filters always available and indexed regardless of event type
You can filter by JSON event data
You can even filter by deeply nested data. For example if you're trying to search for a certain item that was traded by doing a nested wildcard search
Once again you're able to edit your player event log settings within spire admin and changes are real-time reloaded in game without having to issue commands!
Spire admin now has a rich interface where you can download new server releases, or build your own (Linux only)
If you'd like to limit access of other users to your server and especially sensitive areas. There are permissions that cover access to various resources within the admin section of Spire in your local installation
Spire when ran locally will now redirect users to a one-time initial setup where users can choose whether they want their install to be guarded by authentication or not.
This bootstraps Spire for local installations.
Spire now has the ability during initial install to be configured with local users and authentication!
Want to quickly and fluidly navigate your way around Spire? There's now a kbar in Spire similar to Discord, Slack, Github etc.
Navigation search can be activated by using Ctrl + K, Ctrl + / or clicking "Search" in the navigation menu
My pressing the Control key, you can now see a modal that will show you Spire keyboard shortcuts
- Item editor edit button now is a hyperlink that can be opened in a new tab #106
- Item editor clone button now is a hyperlink that can be opened in a new tab #106
- Item editor now can deeply link to tabs
- Added "Food" tab with proper item display values in item card preview #100
- Added proper "zero value" for skillmodtype and extradmgskill (Thanks Kinglykrab)
- Add "Corruption" to resist types #92
- Spell editor now can deeply link to tabs
- Have DB String buttons open a new tab to prevent loss of progress in editor #95
- Fix an issue with new merchantlist entries creating a max_status of 0 preventing new merchant items from being displayed #107
- Fix an issue where editing a spell results in a number type error #83
- Fix an issue with copy to clipboard for multiple events being displayed in search #104
- Added user preference default language #98
- Fixed [Bug] Merchant Editor creates new merchant list entries with max status of 0 #107
- Fix an issue where charm file ID would not save properly when numbers were used in the field
- Added a request timeout to the automatic updater routine
- Fix an issue where the executable was getting flagged as suspicious
- Fix an issue where when two or more databases are present client files export will export multiples of the same column
- Fix an issue where mods similar to "combat effects" were rendering on the preview card even if the value was 0
- Fixes Lua Object Return Methods not showing in Lua Methods
- Application icon has been added to windows
- Made some optimizations to the downloading of assets and bootstrapping of assets
- Resolved issues with windows downloading logic
- Resolved issues with windows path resolution in static asset serving
- Spire is now 26MB compressed and 55MB raw from original 516MB compressed and 738MB raw. 13x reduction in binary size
- Static assets are now decoupled from the executable binary and are now downloaded once during the first initial boot of Spire. They won't ever need to download again unless assets update.
- Static assets will also automatically update when there are new assets.
- This will make Spire releases faster, the distributed binary leaner and also result in less wasted bandwidth
- Fixed a minor issue where ammo / power source slots were flip-flopped in the item editor.
- Fixed an issue when adding new Spells to the Bot Spell List.
- Added Bot Spells Entries database relationships to NPC Spells, and Spells New
- Added Bot Nav Tab
- Added Bot Spells under Bot Nav
- Bot Spells pulls Bot Spell Data from bot_spells_entries table
- Same features/functionality as NPC Spells (View spell sets, edit, add new spells to spell set, delete spells from spell set) I removed the ability to delete the Bot Spell list.
Fixed an issue where task cloning did not fully clone all associated activities
Item preview renders now properly show negative values.
Click Types were named improperly and not fully descriptive.
Fix issue where older database versions do not support the MySQL clause RETURNING id
. This disables the newer syntax allowing creates to work properly again.
Users can now be added to server connections that you own. Any user that has a user on Spire, hosted or local is available to add to a connection.
With users, come permissions. You are now able to manage permissions with both read and write for every resource available through Spire. You can also use ALL to grant users to all read or write.
With users (Developers) come the need to monitor bad actors and mistakes!
View audit logs
- Item editor now has a delete button
- Spell editor now has a delete button
- Fix expansion offsets to no longer be offset by 1 per recent server changes
- Fix cash display to be more properly horizontally aligned
- Fixed issue where item being cloned and reassigned to new ID's would reflect wrongly display after save
- Fix issue with nested objects showing up in save actions, preventing some things from saving properly
- Added save action freezing to inputs and buttons when work is being done to change the database. This will ensure that actions are complete before subsequent actions can potentially mess up task data.
- Added a "Fix and re-order task activities" button to fix broken task activities ordering if it were to be in a bad state. Button does nothing if the task is correct
Resolved an issue where nullable fields were not properly being picked up in new update logic.
Update logic for all saves has been rewritten to only update fields that have changed. This will also as a side effect resolve an issue where when values are set to zero, the object would not properly save.
Item slots "Ammo" and "Power Source" were swapped.
Adds support for task requisite activity ID.
Tasks for example in Dragons of Norrath have activities that are not sequential and can be unlocked early in task progression. This update adds support on the editor side.
- Fix an issue where
item_id_list
was binding to an integer instead of a string - Adjust UI elements in sub-editor panes (bordered tables)
Fix an issue where you weren't able to switch active connections
Fix issue where Merchant Editor wasn't rendering NPC preview cards properly
- Added sectional descriptions and info indicators
- Description building should be more clear and concise
- Explore details are now inline with the activity
- Fields
item_id
anditem_goal_id
combine intoitem_id_list
which can contain a single item or list of items that are pipe delimited|
Example (37025|37029|37032) - Fields
npc_id
andnpc_goal_id
combine intonpc_match_list
which can contain a single NPC or a list of NPC's that are pipe delimited|
Example (4007|4009|4013|4024|4036|4043|4078|4080) and can also contain NPC names as partials (orc|gnoll|bear) - Instead of
goalmethod
andrewardmethod
displayed as dropdowns. It simply is a checkbox that displays Quest Controlled - Performance and caching updates
- Resolved issues with tasks saving inconsistently
- Reward window should now display multiple items
- Task rewards now support multiple items inline
- Tasks now save automatically when a field is modified and activity actions are invoked
- Tasks now set proper defaults for
req_activity_id
(-1)
See Server PR for more major system change details EQEmu/Server#2449
Match lists are | pipe separated lists containing NPC ID(s) or partial (wildcard) NPC names. This is very useful especially when trying to filter activity updates by name.
NPC match lists are available with the following activity types
- Deliver
- Kill
- Speak with
- Give
Fields npc_id
and npc_goal_id
have combined
To bring similar flexibility to that there of NPC Match List(s), multiple item's can be used for the following activity types.
- Deliver
- Loot
- Tradeskill
- Fish
- Forage
Exploration used to be managed by the proximities table. Part of the recent waves of simplification this is now managed on the task_activities table to simplify. As a result explore boxes are now visible within the activity pane instead of breaking out as their own sub-editor when editing an explore activity type.
Not only are multiple rewards now possible through the Reward Item ID(s) field (separated by |) you can also see them render in the Task Preview Window
To be updated in official documentation
activity_type | activity_type_description | item_id_list | npc_match_list | dz_switch_id | min_x | max_x | min_y | max_y | min_z | max_z | skill_list | spell_list | item_list | target_name | Description Format |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Deliver | x | x | - | o | o | o | o | o | o | - | - | Name of Item(s) | Name of NPC | Deliver (goalcount) (item_list) to (target_name) |
2 | Kill | - | x | - | o | o | o | o | o | o | - | - | - | Name of NPC | Kill (goalcount) (target_name) |
3 | Loot | x | o | - | o | o | o | o | o | o | - | - | Name of Item(s) | Name of NPC | Loot (goalcount) (item_list) from (target_name) |
4 | Speak With | - | x | - | o | o | o | o | o | o | - | - | - | Name of NPC | Speak with (target_name) |
5 | Explore | - | - | - | x | x | x | x | x | x | - | - | - | Name of Explore Area | Explore (target_name) |
6 | Tradeskill | x | - | - | o | o | o | o | o | o | - | - | Name of Item(s) | - | Create (goalcount) (item_list) using tradeskills |
7 | Fish | x | - | - | o | o | o | o | o | o | - | - | Name of Item(s) | - | Fish for (goalcount) (item_list) |
8 | Forage | x | - | - | o | o | o | o | o | o | - | - | Name of Item(s) Forage x (item_list) |
- | Forage (goalcount) (item_list) |
9 | Use (Cast On) | - | - | - | o | o | o | o | o | o | - | Spell name(s) | - | Name (Anything) | Use (spell_list) on (target_name) |
10 | Use2 (Skill On) | - | - | - | o | o | o | o | o | o | Skill name(s) | - | - | Name (Anything) | Use (skill_list) on (target_name) |
11 | Touch | - | - | x (doors table dz_switch_id) |
o | o | o | o | o | o | - | - | - | Name of Touch Target (Touch target) |
Touch (target_name) |
100 | Give | - | x | - | o | o | o | o | o | o | - | - | - | Name of NPC | Give (goal_count) to (target_name) |
255 | Quest Script | - | - | - | o | o | o | o | o | o | - | - | - | - | - |
- Addresses an issue where connections endpoint was hit when booting the app. When Spire does not have a Spire database, it panics the backend. #63
- Minimal update to restore task editor functionality from schema changes EQEmu/Server#2402
- Proximity functionality will be broken until new fields are handled
- Automatic spell type detection
- List previews
- Manage NPC spell sets fully
- NPC preview
- Search
- Spell list nesting highlighting
- Table pagination
- [Merchant Editor] Fix issue with new items being added not having proper defaults keeping Merchant items from loading properly
- [Task Editor] Fix issue with task activities saving properly
- [Task Editor] Fix an issue with
zone_version
field being populated withnull
on save of new activities - [Merchant Editor] Fix an issue where the delete icon hover was showing "edit" instead of "delete"
- Add basic support for new task fields dz_template_id, lock_activity_id, replay_timer_group, request_timer_group, reward_point_type, reward_points
- More in depth selectors will be added for these fields later
- Fix the task editor's ability to save based on recent database schema changes
- Minor release that publishes early versions of NPC, Merchant editor etc.
- Support for legacy spell icons through user settings
Made changes to various components to streamline margins, cleaner UI across all parts of the app
Popups for Items and Spells now have more consistent behaviors, they stay within viewport, stay only on left or right of element - versus up/down/left/right, now have a zero delay, fade disabled to allow a cleaner experience
Default windowing has been changed across the application as well.
Removed ghost margins in the scrollbar by overhauling most pages within the app to use proper element structure.
If you want to run Spire on a hosted webserver with very basic authentication, you now can today until a more robust users, permissions system is built out.
Simply supply two environment variables BASIC_AUTH_USER
and BASIC_AUTH_PASSWORD
and Spire will only allow requests if you pass the basic authentication gate
A fully featured task editor is now available for use in BETA.
Item preview cards now display relational data, example below. As other tools are built out, this data can link out to those pages, for now it simply displays the data.
- Can be fished in
- Can be foraged in
- Dropped by
- Is a starting item for
- Is found as a ground spawn
- Is sold by merchant(s)
- Is the result of tradeskill recipe(s)
- Is the reward of task(s)
- Unlocks doors
- Backend path management is now unified. Adds support for Spire being ran in a sub-folder ("bin" directory).
- Added over 2,000 spell icons from the live client, now available in the spell editor and used in any spell card
- Spell editor only shows up to 216 icons given that is what is actually used and available in RoF2
- Add model preview to top right of item card preview
- Edit button layout and UI changes
Item and Spell editor tools are now released in full, with the most feature rich sub-editors and selectors
- Recast delay now displays in seconds instead of milliseconds
- Implemented sub-editors for the following fields: id, icon, idfile, material, color, augtype, proceffect, worneffect, focuseffect, scrolleffect, clickeffect, bardeffect
- Added data translations to most remaining fields to make them more obvious to users
- Added formulas to SPA effects
- Conditionally display fields that are not contextually relevant unless certain fields are set
- Fix buff duration display not properly showing times
- Implemented a cone visualizer to real-time preview cone spells
- Implemented a horse selector for teleport_zone via horse type spells
- Implemented a pet selector for teleport_zone via pet type spells
- Implemented a spell selector for spell related fields
- Implemented a zone selector for teleport_zone via pet translocate / gate spells
- Implemented an item selector for item related fields
- Implemented buff duration formulas
- Implemented smart Spell and Item selection inside the effects tab, where SPA fields base, limit, max will pulsate green depending on the SPA to indicate item or spell selection
- Implemented sub-editors for the following fields: id, casting_anim, target_anim, icon, spellanim, cone_start_angle, cone_stop_angle, nimbuseffect, aoerange, teleport_zone, range, min_range, typedescnum, effectdescnum, effectdescnum_2, descnum, components_1, components_2, components_3, components_4, noexpend_reagent_1, noexpend_reagent_2, noexpend_reagent_3, noexpend_reagent_4, recourse_link
- SPA effects are now highlighted when hovered over and selected
- When an SPA is selected, the editor will select reference values from another spell in the database with the same SPA
- Added cast bar simulation components to any field that references cast times
- Fixed sub-editor highlight selection scroll consistency issues where it would not always scroll to the selected preview
- Implement database column filtering that is additive to the normal search fields
- Now have cloning functionality
- Search improvements, adding table and card toggles, result limit toggles
- Sub-editor fields now pulsate green to indicate to the user that there is a sub-editor associated with the field
- Sub-selectors now only activate during input click instead of on hover
- Video viewers now display a black background by default before the video loads in
- Implemented a database strings editor that will allow users to list, create, edit and delete database strings per string type
- Implemented client files management supporting both spells_us.txt and db_str.txt
- Added a range visualizer component that will visualize in game ranges of up to 1,000 units
- All usage of Spell icons in the application have been replaced with sprites
- Item card preview now shows factions
Implemented searching by method param. #23
All item icons in application now load from a spritesheet, removing the dependency on an additional set of 40MB of images being loaded into the binary
- Fixed a bug where sub event examples for Lua were not formatted properly #21
- Viewers now show separate loaders for when content is being downloaded versus when content is being rendered
- Viewers now don't show content until images are fully downloaded and rendered
- Item Icon Viewer now has icons up through live
- Spire should now be roughly 100MB less in executable size.
- Icon viewer inputs are now separated from the preview pane
- Item model viewer inputs are now separated from the preview pane
- Icon viewer now has a fixed scroll viewport
- Item model viewer now has a fixed scroll viewport
- Emitter viewer now has a fixed scroll viewport
- Spell animations viewer now has a fixed scroll viewport
- Video viewers are by default larger to improve browser rendering performance and make it easier to digest visual scanning
- Various UI tweaks to viewers for a much cleaner, simple user experience
- Fixed bug that prevented all previews from showing properly
- Linux auto updates should properly work from this release (1.6.1) and on.
- Special thanks to DeadZergling for all of his effort putting together these high quality preview videos
- Race viewer initial load should now be faster
- Race viewer now includes a models available by zone filter
- Changelog page now only autoplays videos that are in the current viewport
- Adjusted preview video size for emitters
- Improvements to video preview rendering logic
- Spire now has an player animation viewer that can be used standalone and in things like a Spell editor where there are casting and target animations when spells are casted
- Special thanks to DeadZergling for all of his effort putting together these high quality preview videos
- Spire now has an emitter viewer that now makes it easy for anyone looking to manipulate emitter text files in the client to find what kind of effects they want to play with or insert into their zones
- Special thanks to DeadZergling for all of his effort putting together these high quality preview videos
- This release implements self updating and notifies users when a new version of Spire is available for download
Akkadius
Spire is now available for general release and the repository can be found here https://github.com/Akkadius/spire
Spire can be ran as a standalone executable on Windows.
Download the latest release here https://github.com/Akkadius/spire/releases
To run, simply put spire.exe in your server directory and double click (On Windows)
- Initial set of item search filters, more to be added later down the road
- Search for items by either table or card formats, table is default
- Item card preview on table item row hover
- All item fields are supported out of the box with a detailed editor
- Class bitmask selector
- Race bitmask selector
- Deity bitmask selector
- Slot bitmask selector
- Item editor comes bundled with many hover selector and preview tools to make development feedback loop the tightest and best experience it can possibly be. Examples of these include:
- Item free ID selector (hover over "id")
- Item model selector (hover over "idfile")
- Item icon selector (hover over "icon")
- Item color selector (hover over "color")
- Item material previewer (hover over "material", arrow selector) (cloth, chain, plate, robe etc.)
- Item augment type selector (hover over "augtype")
- Item effects selector (hover over any effect "spell id" field)
- The item editor does a lot in the way of setting sane defaults for the user. There are a lot of fields that need to be set when other fields are set so there are triggers that are setup to make this more intuitive.
- When worneffect is set to a non-zero value, worntype is set to 2
- When clickeffect is set to a non-zero value, clicktype is set to 5, recast delay set to 12000, maxcharges -1 and casttime to 3000
- When scrolleffect is set to a non-zero value, scrolltype is automatically set to 7
- When bardeffect is set to a non-zero value, bardeffecttype is set to 8
- When augslot_1_type is set to a non-zero value, augslot_1_visible is set to 1
- When augslot_2_type is set to a non-zero value, augslot_2_visible is set to 1
- When augslot_3_type is set to a non-zero value, augslot_3_visible is set to 1
- When augslot_4_type is set to a non-zero value, augslot_4_visible is set to 1
- When augslot_5_type is set to a non-zero value, augslot_5_visible is set to 1
- Added a Refresh button for local and desktop builds for anyone who wants to refresh their Quest definitions manually. Production and hosted version of Spire receives webhooks when new commits are made to EQEmu/Server and local installations won't receive this and require a manual update.
- (Kinglykrab reported) Dark Elf short name is now DEF, Wood Elf short name is now ELF, High Elf short name is now HIE, Halfling short name is now HFL
- (Kinglykrab reported) Powersource icon was using Charm icon and is now the proper icon
- Scrollbar should be twice the size in width now
- (Trust reported) Expansion bitmask calculator now reports 0 (Classic) correctly
- Added an Only button to classes in the items search view so that search results can filter on items that are only equipped by selected class.
Add version to navbar
Embed the changelog you're reading into the app
Remove application boot dependency on having APP_NAME
set
Initial release