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 Akkadius#106
- Item editor clone button now is a hyperlink that can be opened in a new tab Akkadius#106
- Item editor now can deeply link to tabs
- Added "Food" tab with proper item display values in item card preview Akkadius#100
- Added proper "zero value" for skillmodtype and extradmgskill (Thanks Kinglykrab)
- Add "Corruption" to resist types Akkadius#92
- Spell editor now can deeply link to tabs
- Have DB String buttons open a new tab to prevent loss of progress in editor Akkadius#95
- Fix an issue with new merchantlist entries creating a max_status of 0 preventing new merchant items from being displayed Akkadius#107
- Fix an issue where editing a spell results in a number type error Akkadius#83
- Fix an issue with copy to clipboard for multiple events being displayed in search Akkadius#104
- Added user preference default language Akkadius#98
- Fixed [Bug] Merchant Editor creates new merchant list entries with max status of 0 Akkadius#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. Akkadius#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