1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 06:27:45 +00:00
A Final Fantasy XIV 4.0+ Server Emulator written in C++
Find a file
Mordred dceff7eed6 Merge branch 'develop' of https://github.com/SapphireMordred/Sapphire into develop
# Conflicts:
#	.appveyor.yml
#	.gitmodules
#	.travis.yml
#	CMakeLists.txt
#	CMakeSettings.json
#	README.md
#	cmake/FindMySQL.cmake
#	cmake/paths.cmake
#	deps/datReader/Dat.cpp
#	deps/datReader/Dat.h
#	deps/datReader/DatCat.cpp
#	deps/datReader/DatCat.h
#	deps/datReader/DatCategories/bg/lgb.h
#	deps/datReader/DatCategories/bg/sgb.h
#	deps/datReader/Exd.cpp
#	deps/datReader/Exd.h
#	deps/datReader/ExdCat.cpp
#	deps/datReader/ExdCat.h
#	deps/datReader/ExdData.cpp
#	deps/datReader/ExdData.h
#	deps/datReader/Exh.cpp
#	deps/datReader/Exh.h
#	deps/datReader/File.cpp
#	deps/datReader/File.h
#	deps/datReader/GameData.cpp
#	deps/datReader/GameData.h
#	deps/datReader/Index.cpp
#	deps/datReader/Index.h
#	deps/datReader/SqPack.cpp
#	deps/datReader/SqPack.h
#	deps/datReader/bparse.cpp
#	deps/datReader/bparse.h
#	deps/datReader/conv.cpp
#	deps/datReader/conv.h
#	deps/datReader/crc32.cpp
#	deps/datReader/crc32.h
#	deps/datReader/stream.cpp
#	deps/datReader/stream.h
#	deps/datReader/zlib.cpp
#	deps/datReader/zlib.h
#	deps/mysqlConnector/Connection.cpp
#	deps/mysqlConnector/Connection.h
#	deps/watchdog/Watchdog.h
#	sql/schema/inserts.sql
#	sql/schema/schema.sql
#	src/api/PlayerMinimal.h
#	src/api/SapphireApi.cpp
#	src/api/main.cpp
#	src/common/Common.h
#	src/common/CommonGen.h
#	src/common/Config/ConfigMgr.cpp
#	src/common/Database/DbCommon.h
#	src/common/Database/DbConnection.cpp
#	src/common/Database/DbWorkerPool.cpp
#	src/common/Exd/ExdDataGenerated.cpp
#	src/common/Exd/ExdDataGenerated.h
#	src/common/Logging/Logger.cpp
#	src/common/Network/CommonActorControl.h
#	src/common/Network/Connection.cpp
#	src/common/Network/Connection.h
#	src/common/Network/PacketDef/Ipcs.h
#	src/common/Network/PacketDef/Zone/ClientZoneDef.h
#	src/common/Network/PacketDef/Zone/ServerZoneDef.h
#	src/common/Util/Util.cpp
#	src/common/Util/UtilMath.cpp
#	src/common/Util/UtilMath.h
#	src/dbm/DbManager.cpp
#	src/dbm/main.cpp
#	src/lobby/Forwards.h
#	src/lobby/GameConnection.cpp
#	src/lobby/GameConnection.h
#	src/lobby/ServerLobby.cpp
#	src/lobby/mainLobbyServer.cpp
#	src/scripts/action/common/ActionSprint3.cpp
#	src/scripts/common/CmnDefCutSceneReplay.cpp
#	src/scripts/common/GilShop.cpp
#	src/scripts/common/aethernet/Aetheryte.cpp
#	src/scripts/common/aethernet/HousingAethernet.cpp
#	src/scripts/common/eobj/HousingEstateEntrance.cpp
#	src/scripts/common/housing/CmnDefHousingSignboard.cpp
#	src/scripts/common/warptaxi/WarpTaxi.cpp
#	src/scripts/instances/questbattles/ChasingShadows.cpp
#	src/scripts/quest/ManFst001.cpp
#	src/scripts/quest/ManFst002.cpp
#	src/scripts/quest/ManFst003.cpp
#	src/scripts/quest/ManFst004.cpp
#	src/scripts/quest/ManFst005.cpp
#	src/scripts/quest/ManSea001.cpp
#	src/scripts/quest/ManSea002.cpp
#	src/scripts/quest/ManSea003.cpp
#	src/scripts/quest/ManWil001.cpp
#	src/scripts/quest/ManWil002.cpp
#	src/scripts/quest/ManWil003.cpp
#	src/scripts/quest/ManWil004.cpp
#	src/scripts/quest/subquest/gridania/SubFst001.cpp
#	src/scripts/quest/subquest/gridania/SubFst002.cpp
#	src/scripts/quest/subquest/gridania/SubFst003.cpp
#	src/scripts/quest/subquest/gridania/SubFst004.cpp
#	src/scripts/quest/subquest/gridania/SubFst005.cpp
#	src/scripts/quest/subquest/gridania/SubFst008.cpp
#	src/scripts/quest/subquest/gridania/SubFst009.cpp
#	src/scripts/quest/subquest/gridania/SubFst010.cpp
#	src/scripts/quest/subquest/gridania/SubFst011.cpp
#	src/scripts/quest/subquest/gridania/SubFst013.cpp
#	src/scripts/quest/subquest/gridania/SubFst014.cpp
#	src/scripts/quest/subquest/gridania/SubFst015.cpp
#	src/scripts/quest/subquest/gridania/SubFst019.cpp
#	src/scripts/quest/subquest/gridania/SubFst026.cpp
#	src/scripts/quest/subquest/gridania/SubFst029.cpp
#	src/scripts/quest/subquest/gridania/SubFst030.cpp
#	src/scripts/quest/subquest/gridania/SubFst034.cpp
#	src/scripts/quest/subquest/gridania/SubFst039.cpp
#	src/scripts/quest/subquest/gridania/SubFst041.cpp
#	src/scripts/quest/subquest/gridania/SubFst045.cpp
#	src/scripts/quest/subquest/limsa/SubSea001.cpp
#	src/scripts/quest/subquest/limsa/SubSea012.cpp
#	src/scripts/quest/subquest/uldah/SubWil000.cpp
#	src/scripts/quest/subquest/uldah/SubWil001.cpp
#	src/scripts/quest/subquest/uldah/SubWil002.cpp
#	src/scripts/quest/subquest/uldah/SubWil004.cpp
#	src/scripts/quest/subquest/uldah/SubWil006.cpp
#	src/scripts/quest/subquest/uldah/SubWil007.cpp
#	src/scripts/quest/subquest/uldah/SubWil018.cpp
#	src/scripts/quest/subquest/uldah/SubWil019.cpp
#	src/scripts/quest/subquest/uldah/SubWil020.cpp
#	src/scripts/quest/subquest/uldah/SubWil021.cpp
#	src/scripts/quest/subquest/uldah/SubWil022.cpp
#	src/scripts/quest/subquest/uldah/SubWil027.cpp
#	src/scripts/quest/subquest/uldah/SubWil028.cpp
#	src/scripts/quest/subquest/uldah/SubWil029.cpp
#	src/tools/action_parse/main.cpp
#	src/tools/discovery_parser/main.cpp
#	src/tools/event_object_parser/instance.tmpl
#	src/tools/event_object_parser/main.cpp
#	src/tools/event_object_parser/questbattle.tmpl
#	src/tools/exd_common_gen/main.cpp
#	src/tools/exd_struct_gen/ExdData.cpp.tmpl
#	src/tools/exd_struct_gen/ExdData.h.tmpl
#	src/tools/exd_struct_gen/main.cpp
#	src/tools/exd_struct_test/main.cpp
#	src/tools/mob_parse/main.cpp
#	src/tools/nav_export/lgb.h
#	src/tools/nav_export/main.cpp
#	src/tools/nav_export/nav/TiledNavmeshGenerator.cpp
#	src/tools/nav_export/navmesh_exporter.h
#	src/tools/nav_export/obj_exporter.h
#	src/tools/pcb_reader/lgb.h
#	src/tools/pcb_reader/main.cpp
#	src/tools/pcb_reader/nav/TiledNavmeshGenerator.cpp
#	src/tools/pcb_reader/navmesh_exporter.h
#	src/tools/pcb_reader/obj_exporter.h
#	src/tools/quest_parser/main.cpp
#	src/tools/questbattle_bruteforce/main.cpp
#	src/world/Action/Action.cpp
#	src/world/Action/Action.h
#	src/world/Action/ActionLut.h
#	src/world/Action/ActionLutData.cpp
#	src/world/Action/EffectBuilder.cpp
#	src/world/Action/EffectBuilder.h
#	src/world/Action/EffectResult.cpp
#	src/world/Action/EffectResult.h
#	src/world/Action/EventAction.cpp
#	src/world/Action/EventAction.h
#	src/world/Action/ItemAction.cpp
#	src/world/Action/ItemAction.h
#	src/world/Actor/Actor.cpp
#	src/world/Actor/Actor.h
#	src/world/Actor/BNpc.cpp
#	src/world/Actor/BNpc.h
#	src/world/Actor/Chara.cpp
#	src/world/Actor/Chara.h
#	src/world/Actor/EventObject.cpp
#	src/world/Actor/EventObject.h
#	src/world/Actor/Npc.cpp
#	src/world/Actor/Npc.h
#	src/world/Actor/Player.cpp
#	src/world/Actor/Player.h
#	src/world/Actor/PlayerEvent.cpp
#	src/world/Actor/PlayerInventory.cpp
#	src/world/Actor/PlayerQuest.cpp
#	src/world/Actor/PlayerSql.cpp
#	src/world/Event/Director.cpp
#	src/world/Event/Director.h
#	src/world/Event/EventHandler.h
#	src/world/ForwardsZone.h
#	src/world/Inventory/HousingItem.cpp
#	src/world/Inventory/HousingItem.h
#	src/world/Inventory/Item.cpp
#	src/world/Inventory/Item.h
#	src/world/Inventory/ItemContainer.cpp
#	src/world/Inventory/ItemContainer.h
#	src/world/Linkshell/Linkshell.h
#	src/world/Manager/ActionMgr.cpp
#	src/world/Manager/ActionMgr.h
#	src/world/Manager/DebugCommandMgr.cpp
#	src/world/Manager/DebugCommandMgr.h
#	src/world/Manager/EventMgr.cpp
#	src/world/Manager/EventMgr.h
#	src/world/Manager/HousingMgr.cpp
#	src/world/Manager/HousingMgr.h
#	src/world/Manager/InventoryMgr.cpp
#	src/world/Manager/InventoryMgr.h
#	src/world/Manager/ItemMgr.cpp
#	src/world/Manager/ItemMgr.h
#	src/world/Manager/LinkshellMgr.cpp
#	src/world/Manager/LinkshellMgr.h
#	src/world/Manager/MarketMgr.cpp
#	src/world/Manager/MarketMgr.h
#	src/world/Manager/NaviMgr.cpp
#	src/world/Manager/NaviMgr.h
#	src/world/Manager/PlayerMgr.cpp
#	src/world/Manager/PlayerMgr.h
#	src/world/Manager/RNGMgr.cpp
#	src/world/Manager/RNGMgr.h
#	src/world/Manager/ShopMgr.cpp
#	src/world/Manager/ShopMgr.h
#	src/world/Manager/TerritoryMgr.cpp
#	src/world/Manager/TerritoryMgr.h
#	src/world/Math/CalcBattle.cpp
#	src/world/Math/CalcStats.cpp
#	src/world/Math/CalcStats.h
#	src/world/Navi/NaviProvider.cpp
#	src/world/Navi/NaviProvider.h
#	src/world/Network/GameConnection.cpp
#	src/world/Network/GameConnection.h
#	src/world/Network/Handlers/ActionHandler.cpp
#	src/world/Network/Handlers/CFHandlers.cpp
#	src/world/Network/Handlers/ClientTriggerHandler.cpp
#	src/world/Network/Handlers/EventHandlers.cpp
#	src/world/Network/Handlers/GMCommandHandlers.cpp
#	src/world/Network/Handlers/InventoryHandler.cpp
#	src/world/Network/Handlers/PacketHandlers.cpp
#	src/world/Network/PacketWrappers/ActorControlSelfPacket.h
#	src/world/Network/PacketWrappers/EffectPacket.h
#	src/world/Network/PacketWrappers/ExaminePacket.h
#	src/world/Network/PacketWrappers/NpcSpawnPacket.h
#	src/world/Network/PacketWrappers/PlayerSetupPacket.h
#	src/world/Network/PacketWrappers/PlayerSpawnPacket.h
#	src/world/Network/PacketWrappers/UpdateInventorySlotPacket.h
#	src/world/Script/NativeScriptApi.cpp
#	src/world/Script/NativeScriptApi.h
#	src/world/Script/NativeScriptMgr.cpp
#	src/world/Script/NativeScriptMgr.h
#	src/world/Script/ScriptLoader.cpp
#	src/world/Script/ScriptMgr.cpp
#	src/world/Script/ScriptMgr.h
#	src/world/ServerMgr.cpp
#	src/world/ServerMgr.h
#	src/world/Session.cpp
#	src/world/Session.h
#	src/world/StatusEffect/StatusEffect.cpp
#	src/world/StatusEffect/StatusEffect.h
#	src/world/Territory/Cell.cpp
#	src/world/Territory/House.cpp
#	src/world/Territory/House.h
#	src/world/Territory/Housing/HousingInteriorTerritory.cpp
#	src/world/Territory/Housing/HousingInteriorTerritory.h
#	src/world/Territory/HousingZone.cpp
#	src/world/Territory/HousingZone.h
#	src/world/Territory/InstanceContent.cpp
#	src/world/Territory/InstanceContent.h
#	src/world/Territory/Land.cpp
#	src/world/Territory/Land.h
#	src/world/Territory/QuestBattle.cpp
#	src/world/Territory/QuestBattle.h
#	src/world/Territory/Territory.cpp
#	src/world/Territory/Territory.h
#	src/world/mainGameServer.cpp
2021-11-22 23:29:45 +01:00
.github Punctuation 2018-12-11 00:21:51 +01:00
cmake create data directory 2020-02-08 10:15:14 +11:00
config add customisable log level to config 2019-01-25 19:00:21 +11:00
deps exd parser optimizations 2021-09-13 16:30:32 +02:00
doxygen fix doxygen missing documentation after project restructure 2019-01-14 21:32:18 +11:00
sql Major rewrite of zonelines, aetherytes and discoveries 2019-10-21 23:24:26 +02:00
src Merge branch 'develop' of https://github.com/SapphireMordred/Sapphire into develop 2021-11-22 23:29:45 +01:00
web True out of source build now possible. 2019-01-02 15:09:59 +01:00
.appveyor.yml actually gets past cmake now 2019-10-14 18:57:31 +11:00
.editorconfig Update submodules and editorconfig 2018-08-30 13:38:40 +02:00
.gitignore fix some build directories not being ignored 2019-02-09 16:50:55 +11:00
.gitmodules add actions submodule 2020-01-26 21:24:38 +11:00
.travis.yml update travis config to use g++-8 2019-10-14 18:45:17 +11:00
CMakeLists.txt add actions submodule 2020-01-26 21:24:38 +11:00
CMakeSettings.json vs2019 support & dropping std::experimental::filesystem 2019-10-14 18:41:28 +11:00
CodeStyle.xml Code style adjusted for 2 spaces and various other small things, checkout CodeStyle.xml for details 2018-08-29 21:40:59 +02:00
LICENSE.md Initial commit of the sapphire server 2017-08-08 13:53:47 +02:00
README.md make readme more lazy 2020-02-10 13:42:22 +11:00
sql_import.sh Update .gitignore and sql_import.sh 2018-12-13 12:47:59 +01:00

Sapphire - FINAL FANTASY XIV Server Emulator

FFXIV Sapphire

Discord Server Linux Build Status Windows Build Status

Sapphire is a FINAL FANTASY XIV 4.0+ Server Emulator currently in development.

Sapphire is a research project to learn how retail servers work and currently not production code; at this time it is insecure (use throwaway passwords for accounts) and you should expect a lot of things unimplemented or broken (of course contributions are always welcome).

Dependencies + Compiling

Sapphire requires the following software:

Name Windows Linux
CMake 3.0.2+ and C++17 capable compiler Visual Studio 2019 gcc 8 and g++ 8 or newer, or equivalent clang version.
MySQL Server 5.7 Official Site MySQL server from your distribution's package manager

Please check the wiki for detailed installation/build instructions for your OS.

Final Fantasy XIV © 2010-2018 SQUARE ENIX CO., LTD. All Rights Reserved. We are not affiliated with SQUARE ENIX CO., LTD. in any way.