mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-04 07:23:57 +00:00
# Perl - Add `quest::GetZoneSafeX(zone_id)`. - Add `quest::GetZoneSafeX(zone_id, version)`. - Add `quest::GetZoneSafeY(zone_id)`. - Add `quest::GetZoneSafeY(zone_id, version)`. - Add `quest::GetZoneSafeZ(zone_id)`. - Add `quest::GetZoneSafeZ(zone_id, version)`. - Add `quest::GetZoneSafeHeading(zone_id)`. - Add `quest::GetZoneSafeHeading(zone_id, version)`. - Add `quest::GetZoneMinimumLevel(zone_id)`. - Add `quest::GetZoneMinimumLevel(zone_id, version)`. - Add `quest::GetZoneMaximumLevel(zone_id)`. - Add `quest::GetZoneMaximumLevel(zone_id, version)`. - Add `quest::GetZoneMinimumStatus(zone_id)`. - Add `quest::GetZoneMinimumStatus(zone_id, version)`. - Add `quest::GetZoneTimeZone(zone_id)`. - Add `quest::GetZoneTimeZone(zone_id, version)`. - Add `quest::GetZoneMaximumPlayers(zone_id)`. - Add `quest::GetZoneMaximumPlayers(zone_id, version)`. - Add `quest::GetZoneRuleSet(zone_id)`. - Add `quest::GetZoneRuleSet(zone_id, version)`. - Add `quest::GetZoneNote(zone_id)`. - Add `quest::GetZoneNote(zone_id, version)`. - Add `quest::GetZoneUnderworld(zone_id)`. - Add `quest::GetZoneUnderworld(zone_id, version)`. - Add `quest::GetZoneMinimumClip(zone_id)`. - Add `quest::GetZoneMinimumClip(zone_id, version)`. - Add `quest::GetZoneMaximumClip(zone_id)`. - Add `quest::GetZoneMaximumClip(zone_id, version)`. - Add `quest::GetZoneFogMinimumClip(zone_id)`. - Add `quest::GetZoneFogMinimumClip(zone_id, slot)`. - Add `quest::GetZoneFogMinimumClip(zone_id, slot, version)`. - Add `quest::GetZoneFogMaximumClip(zone_id)`. - Add `quest::GetZoneFogMaximumClip(zone_id, slot)`. - Add `quest::GetZoneFogMaximumClip(zone_id, slot, version)`. - Add `quest::GetZoneFogRed(zone_id)`. - Add `quest::GetZoneFogRed(zone_id, slot)`. - Add `quest::GetZoneFogRed(zone_id, slot, version)`. - Add `quest::GetZoneFogGreen(zone_id)`. - Add `quest::GetZoneFogGreen(zone_id, slot)`. - Add `quest::GetZoneFogGreen(zone_id, slot, version)`. - Add `quest::GetZoneFogBlue(zone_id)`. - Add `quest::GetZoneFogBlue(zone_id, slot)`. - Add `quest::GetZoneFogBlue(zone_id, slot, version)`. - Add `quest::GetZoneSky(zone_id)`. - Add `quest::GetZoneSky(zone_id, version)`. - Add `quest::GetZoneZType(zone_id)`. - Add `quest::GetZoneZType(zone_id, version)`. - Add `quest::GetZoneExperienceMultiplier(zone_id)`. - Add `quest::GetZoneExperienceMultiplier(zone_id, version)`. - Add `quest::GetZoneWalkSpeed(zone_id)`. - Add `quest::GetZoneWalkSpeed(zone_id, version)`. - Add `quest::GetZoneTimeType(zone_id)`. - Add `quest::GetZoneTimeType(zone_id, version)`. - Add `quest::GetZoneFogDensity(zone_id)`. - Add `quest::GetZoneFogDensity(zone_id, version)`. - Add `quest::GetZoneFlagNeeded(zone_id)`. - Add `quest::GetZoneFlagNeeded(zone_id, version)`. - Add `quest::GetZoneCanBind(zone_id)`. - Add `quest::GetZoneCanBind(zone_id, version)`. - Add `quest::GetZoneCanCombat(zone_id)`. - Add `quest::GetZoneCanCombat(zone_id, version)`. - Add `quest::GetZoneCanLevitate(zone_id)`. - Add `quest::GetZoneCanLevitate(zone_id, version)`. - Add `quest::GetZoneCastOutdoor(zone_id)`. - Add `quest::GetZoneCastOutdoor(zone_id, version)`. - Add `quest::GetZoneHotzone(zone_id)`. - Add `quest::GetZoneHotzone(zone_id, version)`. - Add `quest::GetZoneInstanceType(zone_id)`. - Add `quest::GetZoneInstanceType(zone_id, version)`. - Add `quest::GetZoneShutdownDelay(zone_id)`. - Add `quest::GetZoneShutdownDelay(zone_id, version)`. - Add `quest::GetZonePEQZone(zone_id)`. - Add `quest::GetZonePEQZone(zone_id, version)`. - Add `quest::GetZoneExpansion(zone_id)`. - Add `quest::GetZoneExpansion(zone_id, version)`. - Add `quest::GetZoneBypassExpansionCheck(zone_id)`. - Add `quest::GetZoneBypassExpansionCheck(zone_id, version)`. - Add `quest::GetZoneSuspendBuffs(zone_id)`. - Add `quest::GetZoneSuspendBuffs(zone_id, version)`. - Add `quest::GetZoneRainChance(zone_id)`. - Add `quest::GetZoneRainChance(zone_id, slot)`. - Add `quest::GetZoneRainChance(zone_id, slot, version)`. - Add `quest::GetZoneRainDuration(zone_id)`. - Add `quest::GetZoneRainDuration(zone_id, slot)`. - Add `quest::GetZoneRainDuration(zone_id, slot, version)`. - Add `quest::GetZoneSnowChance(zone_id)`. - Add `quest::GetZoneSnowChance(zone_id, slot)`. - Add `quest::GetZoneSnowChance(zone_id, slot, version)`. - Add `quest::GetZoneSnowDuration(zone_id)`. - Add `quest::GetZoneSnowDuration(zone_id, slot)`. - Add `quest::GetZoneSnowDuration(zone_id, slot, version)`. - Add `quest::GetZoneGravity(zone_id)`. - Add `quest::GetZoneGravity(zone_id, version)`. - Add `quest::GetZoneType(zone_id)`. - Add `quest::GetZoneType(zone_id, version)`. - Add `quest::GetZoneSkyLock(zone_id)`. - Add `quest::GetZoneSkyLock(zone_id, version)`. - Add `quest::GetZoneFastRegenHP(zone_id)`. - Add `quest::GetZoneFastRegenHP(zone_id, version)`. - Add `quest::GetZoneFastRegenMana(zone_id)`. - Add `quest::GetZoneFastRegenMana(zone_id, version)`. - Add `quest::GetZoneFastRegenEndurance(zone_id)`. - Add `quest::GetZoneFastRegenEndurance(zone_id, version)`. - Add `quest::GetZoneNPCMaximumAggroDistance(zone_id)`. - Add `quest::GetZoneNPCMaximumAggroDistance(zone_id, version)`. - Add `quest::GetZoneMaximumMovementUpdateRange(zone_id)`. - Add `quest::GetZoneMaximumMovementUpdateRange(zone_id, version)`. - Add `quest::GetZoneMinimumExpansion(zone_id)`. - Add `quest::GetZoneMinimumExpansion(zone_id, version)`. - Add `quest::GetZoneMaximumExpansion(zone_id)`. - Add `quest::GetZoneMaximumExpansion(zone_id, version)`. - Add `quest::GetZoneContentFlags(zone_id)`. - Add `quest::GetZoneContentFlags(zone_id, version)`. - Add `quest::GetZoneContentFlagsDisabled(zone_id)`. - Add `quest::GetZoneContentFlagsDisabled(zone_id, version)`. - Add `quest::GetZoneUnderworldTeleportIndex(zone_id)`. - Add `quest::GetZoneUnderworldTeleportIndex(zone_id, version)`. - Add `quest::GetZoneLavaDamage(zone_id)`. - Add `quest::GetZoneLavaDamage(zone_id, version)`. - Add `quest::GetZoneMinimumLavaDamage(zone_id)`. - Add `quest::GetZoneMinimumLavaDamage(zone_id, version)`. # Lua - Add `eq.get_zone_safe_x(zone_id)`. - Add `eq.get_zone_safe_x(zone_id, version)`. - Add `eq.get_zone_safe_y(zone_id)`. - Add `eq.get_zone_safe_y(zone_id, version)`. - Add `eq.get_zone_safe_z(zone_id)`. - Add `eq.get_zone_safe_z(zone_id, version)`. - Add `eq.get_zone_safe_heading(zone_id)`. - Add `eq.get_zone_safe_heading(zone_id, version)`. - Add `eq.get_zone_minimum_level(zone_id)`. - Add `eq.get_zone_minimum_level(zone_id, version)`. - Add `eq.get_zone_maximum_level(zone_id)`. - Add `eq.get_zone_maximum_level(zone_id, version)`. - Add `eq.get_zone_minimum_status(zone_id)`. - Add `eq.get_zone_minimum_status(zone_id, version)`. - Add `eq.get_zone_time_zone(zone_id)`. - Add `eq.get_zone_time_zone(zone_id, version)`. - Add `eq.get_zone_maximum_players(zone_id)`. - Add `eq.get_zone_maximum_players(zone_id, version)`. - Add `eq.get_zone_rule_set(zone_id)`. - Add `eq.get_zone_rule_set(zone_id, version)`. - Add `eq.get_zone_note(zone_id)`. - Add `eq.get_zone_note(zone_id, version)`. - Add `eq.get_zone_underworld(zone_id)`. - Add `eq.get_zone_underworld(zone_id, version)`. - Add `eq.get_zone_minimum_clip(zone_id)`. - Add `eq.get_zone_minimum_clip(zone_id, version)`. - Add `eq.get_zone_maximum_clip(zone_id)`. - Add `eq.get_zone_maximum_clip(zone_id, version)`. - Add `eq.get_zone_fog_minimum_clip(zone_id)`. - Add `eq.get_zone_fog_minimum_clip(zone_id, slot)`. - Add `eq.get_zone_fog_minimum_clip(zone_id, slot, version)`. - Add `eq.get_zone_fog_maximum_clip(zone_id)`. - Add `eq.get_zone_fog_maximum_clip(zone_id, slot)`. - Add `eq.get_zone_fog_maximum_clip(zone_id, slot, version)`. - Add `eq.get_zone_fog_red(zone_id)`. - Add `eq.get_zone_fog_red(zone_id, slot)`. - Add `eq.get_zone_fog_red(zone_id, slot, version)`. - Add `eq.get_zone_fog_green(zone_id)`. - Add `eq.get_zone_fog_green(zone_id, slot)`. - Add `eq.get_zone_fog_green(zone_id, slot, version)`. - Add `eq.get_zone_fog_blue(zone_id)`. - Add `eq.get_zone_fog_blue(zone_id, slot)`. - Add `eq.get_zone_fog_blue(zone_id, slot, version)`. - Add `eq.get_zone_sky(zone_id)`. - Add `eq.get_zone_sky(zone_id, version)`. - Add `eq.get_zone_ztype(zone_id)`. - Add `eq.get_zone_ztype(zone_id, version)`. - Add `eq.get_zone_experience_multiplier(zone_id)`. - Add `eq.get_zone_experience_multiplier(zone_id, version)`. - Add `eq.get_zone_walk_speed(zone_id)`. - Add `eq.get_zone_walk_speed(zone_id, version)`. - Add `eq.get_zone_time_type(zone_id)`. - Add `eq.get_zone_time_type(zone_id, version)`. - Add `eq.get_zone_fog_density(zone_id)`. - Add `eq.get_zone_fog_density(zone_id, version)`. - Add `eq.get_zone_flag_needed(zone_id)`. - Add `eq.get_zone_flag_needed(zone_id, version)`. - Add `eq.get_zone_can_bind(zone_id)`. - Add `eq.get_zone_can_bind(zone_id, version)`. - Add `eq.get_zone_can_combat(zone_id)`. - Add `eq.get_zone_can_combat(zone_id, version)`. - Add `eq.get_zone_can_levitate(zone_id)`. - Add `eq.get_zone_can_levitate(zone_id, version)`. - Add `eq.get_zone_cast_outdoor(zone_id)`. - Add `eq.get_zone_cast_outdoor(zone_id, version)`. - Add `eq.get_zone_hotzone(zone_id)`. - Add `eq.get_zone_hotzone(zone_id, version)`. - Add `eq.get_zone_instance_type(zone_id)`. - Add `eq.get_zone_instance_type(zone_id, version)`. - Add `eq.get_zone_shutdown_delay(zone_id)`. - Add `eq.get_zone_shutdown_delay(zone_id, version)`. - Add `eq.get_zone_peqzone(zone_id)`. - Add `eq.get_zone_peqzone(zone_id, version)`. - Add `eq.get_zone_expansion(zone_id)`. - Add `eq.get_zone_expansion(zone_id, version)`. - Add `eq.get_zone_bypass_expansion_check(zone_id)`. - Add `eq.get_zone_bypass_expansion_check(zone_id, version)`. - Add `eq.get_zone_suspend_buffs(zone_id)`. - Add `eq.get_zone_suspend_buffs(zone_id, version)`. - Add `eq.get_zone_rain_chance(zone_id)`. - Add `eq.get_zone_rain_chance(zone_id, slot)`. - Add `eq.get_zone_rain_chance(zone_id, slot, version)`. - Add `eq.get_zone_rain_duration(zone_id)`. - Add `eq.get_zone_rain_duration(zone_id, slot)`. - Add `eq.get_zone_rain_duration(zone_id, slot, version)`. - Add `eq.get_zone_snow_chance(zone_id)`. - Add `eq.get_zone_snow_chance(zone_id, slot)`. - Add `eq.get_zone_snow_chance(zone_id, slot, version)`. - Add `eq.get_zone_snow_duration(zone_id)`. - Add `eq.get_zone_snow_duration(zone_id, slot)`. - Add `eq.get_zone_snow_duration(zone_id, slot, version)`. - Add `eq.get_zone_gravity(zone_id)`. - Add `eq.get_zone_gravity(zone_id, version)`. - Add `eq.get_zone_type(zone_id)`. - Add `eq.get_zone_type(zone_id, version)`. - Add `eq.get_zone_sky_lock(zone_id)`. - Add `eq.get_zone_sky_lock(zone_id, version)`. - Add `eq.get_zone_fast_regen_hp(zone_id)`. - Add `eq.get_zone_fast_regen_hp(zone_id, version)`. - Add `eq.get_zone_fast_regen_mana(zone_id)`. - Add `eq.get_zone_fast_regen_mana(zone_id, version)`. - Add `eq.get_zone_fast_regen_endurance(zone_id)`. - Add `eq.get_zone_fast_regen_endurance(zone_id, version)`. - Add `eq.get_zone_npc_maximum_aggro_distance(zone_id)`. - Add `eq.get_zone_npc_maximum_aggro_distance(zone_id, version)`. - Add `eq.get_zone_maximum_movement_update_range(zone_id)`. - Add `eq.get_zone_maximum_movement_update_range(zone_id, version)`. - Add `eq.get_zone_minimum_expansion(zone_id)`. - Add `eq.get_zone_minimum_expansion(zone_id, version)`. - Add `eq.get_zone_maximum_expansion(zone_id)`. - Add `eq.get_zone_maximum_expansion(zone_id, version)`. - Add `eq.get_zone_content_flags(zone_id)`. - Add `eq.get_zone_content_flags(zone_id, version)`. - Add `eq.get_zone_content_flags_disabled(zone_id)`. - Add `eq.get_zone_content_flags_disabled(zone_id, version)`. - Add `eq.get_zone_underworld_teleport_index(zone_id)`. - Add `eq.get_zone_underworld_teleport_index(zone_id, version)`. - Add `eq.get_zone_lava_damage(zone_id)`. - Add `eq.get_zone_lava_damage(zone_id, version)`. - Add `eq.get_zone_minimum_lava_damage(zone_id)`. - Add `eq.get_zone_minimum_lava_damage(zone_id, version)`. # Notes - These methods add support for reading every value that the `zone` table contains, allowing operators to get any information about a specific zone and version they could need.
[Cleanup] Remove GetStartCount() and InitStartTimer() from zone_launch.cpp and zone_launch.h (#3121)
EQEmulator Core Server
| Drone (Linux x64) | Drone (Windows x64) |
|---|---|
EQEmulator is a custom completely from-scratch open source server implementation for EverQuest built mostly on C++
- MySQL/MariaDB is used as the database engine (over 200+ tables)
- Perl and LUA are both supported scripting languages for NPC/Player/Quest oriented events
- Open source database (Project EQ) has content up to expansion OoW (included in server installs)
- Game server environments and databases can be heavily customized to create all new experiences
- Hundreds of Quests/events created and maintained by Project EQ
Server Installs
| Windows | Linux | |
|---|---|---|
| Install Count |
> Windows
> Debian/Ubuntu/CentOS/Fedora
-
You can use curl or wget to kick off the installer (whichever your OS has)
curl -O https://raw.githubusercontent.com/EQEmu/Server/master/utils/scripts/linux_installer/install.sh install.sh && chmod 755 install.sh && ./install.sh
wget --no-check-certificate https://raw.githubusercontent.com/EQEmu/Server/master/utils/scripts/linux_installer/install.sh -O install.sh && chmod 755 install.sh && ./install.sh
Supported Clients
| Titanium Edition | Secrets of Faydwer | Seeds of Destruction | Underfoot | Rain of Fear |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
Bug Reports 
- Please use the issue tracker provided by GitHub to send us bug reports or feature requests.
- The EQEmu Forums are also a place to submit and get help with bugs.
Contributions 
- The preferred way to contribute is to fork the repo and submit a pull request on
GitHub. If you need help with your changes, you can always post on the forums or
try Discord. You can also post unified diffs (
git diffshould do the trick) on the Server Code Submissions forum, although pull requests will be much quicker and easier on all parties.
Contact 
- Discord Channel: https://discord.gg/QHsm7CD
- User Discord Channel:
#general - Developer Discord Channel:
#eqemucoders
Resources
Related Repositories
- ProjectEQ Quests
- Maps
- Installer Resources
- Zone Utilities - Various utilities and libraries for parsing, rendering and manipulating EQ Zone files.
Other License Info
- The server code and utilities are released under GPLv3
- We also include some small libraries for convienence that may be under different licensing
- SocketLib - GPL LibXML
- zlib - zlib license
- MariaDB/MySQL - GPL
- GPL Perl - GPL / ActiveState (under the assumption that this is a free project)
- CPPUnit - GLP StringUtilities - Apache
- LUA - MIT
Contributors
Languages
C++
93.4%
C
2.9%
C#
2.1%
Python
0.5%
Perl
0.3%
Other
0.5%




