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++
![]() # 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 |
||
---|---|---|
.github | ||
cmake | ||
config | ||
deps | ||
doxygen | ||
sql | ||
src | ||
web | ||
.appveyor.yml | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CMakeLists.txt | ||
CMakeSettings.json | ||
CodeStyle.xml | ||
LICENSE.md | ||
README.md | ||
sql_import.sh |
Sapphire - FINAL FANTASY XIV Server Emulator
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.
Links
Final Fantasy XIV © 2010-2018 SQUARE ENIX CO., LTD. All Rights Reserved. We are not affiliated with SQUARE ENIX CO., LTD. in any way.