Compare commits

...
Sign in to create a new pull request.

3024 commits

Author SHA1 Message Date
Xaver
c2e2466fb7
Merge pull request #10915 from WinterSolstice8/petskill_stun_sleep_etc
Some checks failed
Builds / Clang Tidy (push) Has been cancelled
Builds / Build-2 (push) Has been cancelled
Builds / Build-3 (push) Has been cancelled
Builds / Cache Build (push) Has been cancelled
Builds / Cache Build-1 (push) Has been cancelled
Builds / Cache Build-2 (push) Has been cancelled
Builds / Build (push) Has been cancelled
Builds / Build-1 (push) Has been cancelled
[core] Interrupt petskills with sleep/stun/etc during completion
2026-07-27 02:01:37 +02:00
Xaver
d3998777c7
Merge pull request #10906 from Xaver-DaRed/enfeebling
[Combat] Make magic hit rate global function use a table of parameters
2026-07-27 01:54:05 +02:00
Xaver
8fdab6037a
Merge pull request #10910 from ThrisStraizo/lizardblizzard
[lua] [sql] Additional TP move adjustments
2026-07-27 01:33:00 +02:00
WinterSolstice8
ea6b9e66e3 [core] Interrupt petskills with sleep/stun/etc during completion 2026-07-26 17:08:30 -06:00
Xaver
44cbcdb751
Merge pull request #10913 from sruon/candy_shop
[lua] Gate shop items to Astral Candescence availability
2026-07-27 00:01:20 +02:00
sruon
115ec6340e Gate shop items to Astral Candescence availability 2026-07-26 15:19:56 -06:00
ThrisStraizo
f3c6939e52 Additiona TP move adjustments
This PR adjusts the ready/animation lockout time of Lizards, Crabs, Bunnies, and Monke.
2026-07-26 12:57:36 -07:00
Xaver-DaRed
39135f9532 Make magic hit rate global function use a table of parameters 2026-07-26 19:56:58 +02:00
sruon
bd929bdd40
[core] Resolve AI targets through EntityId to fix UAF (#10908)
* Feed EntityId through ChangeTarget controller/state

* Deprecate CState constructor with raw targid

* Remove redundant m_targid from CState

* Remove cached m_PTarget from CState

* Replace CState uint16 target API with EntityId

* Store mob controller targets as EntityId

* Store charmer as EntityId in charm controller

* Remove dead m_LastTopEnmity from trust controller

* Replace state GetTarget with a single EntityId target() accessor
2026-07-26 19:01:11 +02:00
Xaver
ce20393ab9
Merge pull request #10855 from 9001-Solutions/9001/elegy-potency-bug
[lua] Fix elegy potency bug
2026-07-26 13:31:39 +02:00
Xaver
8a350e69c0
Merge pull request #10897 from KiplingFFXI/Various-PH-Fixes
[lua] Various PH Fixes
2026-07-26 13:30:49 +02:00
Zach Toogood
b9cb1ab4f1
Merge pull request #10905 from sruon/states_entityid_t
[core] Construct AI states with EntityId
2026-07-26 08:17:02 +01:00
Xaver
57fcbfbcf9
Merge pull request #10907 from UmeboshiXI/mobskill_fixes
[lua] 2k, 4k, 10k Needles Mobskill Param Adjustment
2026-07-26 06:08:08 +02:00
Xaver
2c03e0bd7b
Merge pull request #10901 from CriticalXI/module_errors
[lua][module] Correct module startup errors
2026-07-26 05:37:35 +02:00
Xaver
424c45b179
Merge pull request #10902 from KiplingFFXI/Goblin-Wolfman-Resistances
[lua] Implement Goblin Wolfman resistances
2026-07-26 05:36:33 +02:00
Umeboshi
c1b81f9221 [lua] 2k, 4k, 10k Needles Mobskill Param Adjustment 2026-07-25 20:35:05 -07:00
Xaver
77d3b3c519
Merge pull request #10904 from WinterSolstice8/drain_weapons
[lua] [sql] implement Deae Gratia, Vampiric Claws, crafted drain weapons. Tweak linear add effect rate formula
2026-07-26 05:00:56 +02:00
sruon
31942963ad Remove SetTarget uint16 shim 2026-07-25 20:35:35 -06:00
sruon
24a49d2443 Feed EntityId through Engage controller/state 2026-07-25 19:58:57 -06:00
sruon
d8fa900a5b Tidy AIContainer codestyle 2026-07-25 19:58:57 -06:00
sruon
19ce7b6f7e Construct TriggerState with EntityId 2026-07-25 19:58:57 -06:00
sruon
16b2679e82 Construct MobSkillState with EntityId 2026-07-25 19:58:57 -06:00
sruon
385a46d671 Construct ItemState with EntityId 2026-07-25 19:58:57 -06:00
sruon
35b353d642 Construct RangeState and MagicState with EntityId 2026-07-25 19:58:56 -06:00
sruon
c6e17543e4 Construct PetSkillState with EntityId 2026-07-25 19:58:56 -06:00
sruon
0eae29dcfa Construct WeaponSkillState with EntityId 2026-07-25 19:58:56 -06:00
sruon
987b397bf3 Construct light states with EntityId 2026-07-25 19:58:56 -06:00
sruon
e10af5a73e Construct AbilityState with EntityId 2026-07-25 19:58:56 -06:00
sruon
8ed324c9d1 Allow construction of states with EntityId 2026-07-25 19:58:56 -06:00
sruon
3eaf824499 Make m_targid private in states 2026-07-25 19:58:56 -06:00
WinterSolstice8
9c1a4b710b
Merge pull request #10898 from sruon/controllers_entityid
[core] Feed EntityId through the controllers
2026-07-25 19:22:52 -06:00
WinterSolstice8
77f233bad1 [lua] dStat linear formula: Subtract out the floor for per stat rate 2026-07-25 19:11:20 -06:00
WinterSolstice8
ed6d43eb50 [lua] [sql] Implement Vampiric Claws/Deae Gratia, crafted drain weapons 2026-07-25 19:09:47 -06:00
Kipling
34e7331aa9 Goblin Wolfman resistances 2026-07-25 16:00:28 -07:00
Critical
cca7d1c2c8 [lua][module] Correct module startup errors 2026-07-25 15:54:06 -06:00
Xaver
2949f26b97
Merge pull request #10596 from sruon/qm_timers
[lua] Remove duplicate QM logic from Zilart Kings QMs
2026-07-25 21:00:31 +02:00
sruon
6e46195a42 Feed EntityId through the controllers 2026-07-25 11:55:46 -06:00
9001-Sols
1692f07bf0 [lua] Fix elegy potency bug 2026-07-25 11:48:48 -04:00
Kipling
55125a2fea NM placeholder fixes and cleanup
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-25 16:47:17 +02:00
Xaver
b4b833512e
Merge pull request #10895 from sruon/ratelimit_config
[core] Load packet rate limits from config
2026-07-25 15:32:41 +02:00
sruon
9efb5449b4 Remove duplicate QM logic in Zilart King scripts 2026-07-25 00:58:59 -06:00
sruon
053b1f700a Load rate limits from config 2026-07-25 00:06:57 -06:00
Xaver
dd5d6c4e42
Merge pull request #10891 from sruon/entityid_t_mig
[core] Rename EntityId, feed to Controller methods
2026-07-25 07:44:39 +02:00
Xaver
59473eff67
Merge pull request #10894 from ThrisStraizo/wyverntpmoveready
[sql] [lua] Adjust several mob TP abilities
2026-07-25 07:38:26 +02:00
sruon
480efca09a Feed EntityId to Controller::WeaponSkill 2026-07-24 18:52:39 -06:00
sruon
bfcbafe3f4 Feed EntityId to Controller::Ability 2026-07-24 18:40:05 -06:00
ThrisStraizo
ad331314a4 Adjust several mob TP abilities
This PR adjusts the TP abilities of Scorpions, Wyverns, Skeletons, Ghosts, and Pugils to reflect their actual ready times.
2026-07-24 17:22:06 -07:00
Xaver
998cf9de9f
Merge pull request #10893 from WinterSolstice8/auto_refresh_setpoints
[sql] Fix BLU Auto Refresh trait value
2026-07-25 01:38:56 +02:00
Xaver
9bf2014a4d
Merge pull request #10668 from Xaver-DaRed/final-damage
[Cleanup] Stoneskin handling and usage
2026-07-25 01:38:17 +02:00
WinterSolstice8
8cacc78ed1 [sql] Fix BLU Auto Refresh trait value 2026-07-24 17:11:39 -06:00
Xaver-DaRed
f9f3d2bbd3 Remove legacy Stoneskin power tracking method
AKA: Remove stupid "stonekin" modifier
2026-07-25 00:24:55 +02:00
Xaver
a5937baa37
Merge pull request #10854 from 9001-Solutions/9001/synth-support-material-loss-bug
[lua] Fix Synthesis Support subPower
2026-07-24 23:58:45 +02:00
Xaver
a3cf278b40
Merge pull request #10889 from PocketDev89/fix-eight-of-cups-mute
[lua] Add Mute additional effect to Eight of Cups
2026-07-24 23:55:21 +02:00
Mobpsycho
9dc71d24b5 [lua] Add Mute additional effect to Eight of Cups
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-24 22:46:01 +02:00
Xaver
ee8d05894f
Merge pull request #10835 from PocketDev89/era-missionary-man-jp-midnight
[Module] Restore era JP midnight wait on Missionary Man
2026-07-24 21:48:50 +02:00
Xaver
38bb162a29
Merge pull request #10876 from Nobutadas/conquest-rank-ties
[C++][lua] Conquest: Set rank of ties for first to lower value
2026-07-24 21:45:06 +02:00
sruon
6c5ec5e6b7 Rename EntityID_t to EntityId 2026-07-24 13:05:10 -06:00
sruon
14ea61834d Feed EntityID_t to Controller::RangedAttack 2026-07-24 12:55:45 -06:00
Xaver
998cdc5985
Merge pull request #10832 from Nobutadas/quest-to-cure-a-cough
[sql][lua] Stop event Raminel from receiving onSpawn
2026-07-24 20:37:43 +02:00
Xaver
77ef5b408b
Merge pull request #10890 from sruon/yaml_jobtype_enum
[core, lua, yaml] Port Job to YAML based enum
2026-07-24 20:36:58 +02:00
Xaver-DaRed
67aba7c85a Cleanup stoneskin handling and usage 2026-07-24 20:35:54 +02:00
sruon
10ad3c8e77 Feed EntityID_t to FaceTarget 2026-07-24 12:27:06 -06:00
Xaver
6574d899ca
Merge pull request #10883 from Skold177/Update-Character-Sheet-with-Skill-Latents
[C++] Refresh character skills when activating a +skill latent effect
2026-07-24 20:08:28 +02:00
sruon
1238aa094b Feed EntityID_t to Controller::Cast 2026-07-24 12:04:51 -06:00
Skold
47453e4675 Handle +Skill Latent Effects
Ensures they are applied/updated when activated
2026-07-24 10:57:36 -06:00
sruon
7c1dd81f30 Port Job to YAML based enum 2026-07-24 10:44:10 -06:00
Xaver
7978595f6c
Merge pull request #10888 from Nobutadas/quest-say-it-with-flowers
[lua] Quest Say It With Flowers: Add title reward
2026-07-24 18:11:42 +02:00
Nobutadas
1261f5feaf [lua] Quest Say It With Flowers: Add title reward 2026-07-24 10:43:31 -05:00
Xaver
0db6d4e83d
Merge pull request #10886 from KiplingFFXI/Sandy-9-1-and-9-2-Audits
[lua] [sql] Sandy 9-1 and 9-2 audits
2026-07-24 16:49:23 +02:00
Kipling
28440aee7e Sandy 9-1 and 9-2 audits
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-24 16:15:42 +02:00
Xaver
0eb7c999a2
Merge pull request #10842 from Skold177/LoadPet-fix
[C++] Update LoadPet with frame check
2026-07-24 14:15:44 +02:00
Xaver
b83e640898
Merge pull request #10761 from WinterSolstice8/adjust_content_tag_npcs
[core] Spawn, but hide content tagged NPCs
2026-07-24 14:13:54 +02:00
Xaver
c3081c830f
Merge pull request #10859 from Hatberg/mamook-aggro-link-audit
[sql] Mamook aggro/link audit
2026-07-24 14:11:33 +02:00
Xaver
9772851cc6
Merge pull request #10867 from sruon/yaml_mod_enum
[core, lua, yaml] Port Mod to YAML based enum
2026-07-24 14:10:43 +02:00
Xaver
a07c2ef99a
Merge pull request #10878 from Skold177/Update-RSE-to-unhidden
[lua] Clean Up / Fix RSE Sachet NM Code
2026-07-24 14:09:37 +02:00
Xaver
5ded01107a
Merge pull request #10879 from Nobutadas/Mokop-Sankop-Fix
[sql] Fix Mokop-Sankop animation in Windurst
2026-07-24 14:07:22 +02:00
Xaver
732a026217
Merge pull request #10882 from sruon/fix_battle2_clipper_flake
[test] Tweak flaky tests; reset weather between tests
2026-07-24 14:03:34 +02:00
Xaver
ec5a3cae9a
Merge pull request #10884 from darco313/fix/explorers-footsteps-shadowreign
[lua] Add Shadowreign support to An Explorer's Footsteps
2026-07-24 14:02:44 +02:00
Xaver
85f9a58ee8
Merge pull request #10887 from sruon/more_entityid_t
[core] Tidy controllers code style
2026-07-24 13:56:33 +02:00
sruon
e2b53585dd Port Mod to YAML based enum 2026-07-24 01:45:45 -06:00
sruon
d868a41b7b Tidy controllers style/const 2026-07-24 01:37:19 -06:00
Xaver
c88b4338a5
Merge pull request #10885 from sruon/yamlfmt
[tools] Custom YAML formatter
2026-07-24 09:24:31 +02:00
sruon
a2fb602f76 Use custom formatter for YAML files 2026-07-24 00:37:00 -06:00
sruon
2af32e9865 Reformat all YAML files with consistent style 2026-07-24 00:12:05 -06:00
sruon
847657cbbf Enforce LF for YAML 2026-07-24 00:10:57 -06:00
darco313
4485b10936 [lua] Add Shadowreign support to An Explorer's Footsteps
Stone Monuments existed only in present-day zones. In the Wings of the
Goddess past ("[S]") zones they were targetable but inert: trading
Selbina Clay gave no Clay Tablet and examining them showed no
inscription. Fixes #10817.

Retail behavior (ffxiclopedia / bg-wiki, cross-checked against the
monument coordinates in npc_list.sql):

- 8 [S] zones hold the same monument as a present-day slot; Abelard
  credits their tablets identically. Each is mapped to its twin's slot
  index and gil in monumentTable and given the trade handler.
- The 3 [S]-only zones (Vunkerl Inlet, Grauberg, Fort Karugo-Narugo)
  are not part of the quest and are left inert. Sources disagree on
  whether clay yields a useless tablet there (bg-wiki) or nothing
  (ffxiclopedia); kept the conservative "nothing", matching current
  behavior.
- Examining any monument reads its inscription (event 900); wired in
  DefaultActions for all 11 [S] zones. Verified in-game that event 900
  renders in Batallia Downs [S] and the three past-only zones.

Adds an xi_test suite covering present-day credit, [S] credit, the
no-double-credit rule, the inert orphan, and the inscription trigger.
2026-07-23 23:46:31 -04:00
sruon
d018fd3594 [test] Fix flaky effect flag and soultrapper tests, reset weather 2026-07-23 18:33:11 -06:00
sruon
29492c00c7 [test] Fix flaky battle2 Clipper and gardening mog safe tests 2026-07-23 18:18:58 -06:00
Skold177
bf4953b6ee Clean Up / Fix RSE Sachet NM Code
Cleans up the RSE Sachet NM Code - uses simplified logic for turning QMs on / off
2026-07-23 20:17:40 -04:00
Nobutadas
d892d5eeaa [sql] Fix Mokop-Sankop animation in Windurst 2026-07-23 16:25:45 -05:00
Xaver
777de3fa6c
Merge pull request #10877 from sruon/xi_test_retry
[test] Support retrying individual tests on failure
2026-07-23 22:23:41 +02:00
sruon
46d84c32e3 Support retrying individual tests on failure 2026-07-23 13:27:09 -06:00
Xaver
d926936635
Merge pull request #10875 from Skold177/Promyvion-Entry-Requirements
[lua] Promyvion Entry Requirements Bugfix
2026-07-23 21:26:28 +02:00
Xaver
e156a05bf4
Merge pull request #10868 from Auzali/add-ROTZ-tags-601-650
[sql] Audit some synthesis content tags (601-650)
2026-07-23 21:25:46 +02:00
Xaver
b8f8075723
Merge pull request #10874 from Nobutadas/ef-nm-buffs
[sql] EF - NM flags plus delay and skill list fixes
2026-07-23 21:24:11 +02:00
Nobutadas
46c8fca5f7 [C++][lua] Conquest: Set rank of ties for first to lower value 2026-07-23 14:12:12 -05:00
Skold177
7abc276d22 Promyvion Fight Requirements
Fixes an edge case where you couldn't help with Promyvion fights if you were on the mission, but had beaten that specific battlefield.
2026-07-23 13:49:00 -04:00
Nobutadas
e0742659d6 [sql] EF - NM flags plus delay and skill list fixes 2026-07-23 12:21:21 -05:00
Xaver
b78832d611
Merge pull request #10866 from cocosolos/alpine-ninja
[docker,alpine] Use ninja-build instead of samurai
2026-07-23 18:53:40 +02:00
Xaver
d7455f460e
Merge pull request #10873 from Skold177/Shadow-Lord-Bug-Fixes
[lua] [sql] Shadow Lord Bug Fixes
2026-07-23 18:52:32 +02:00
Xaver
681c5387a1
Merge pull request #10871 from sruon/entityidt
[core] Validate targets by identity instead of targid / tidy AI states
2026-07-23 18:50:32 +02:00
Xaver
657512d90c
Merge pull request #10872 from sruon/traits-filtering
[core, lua] Start filtering certain traits on monsters
2026-07-23 18:48:10 +02:00
Skold177
7b7a990bc2 Shadow Lord Bug Fixes
Fixes issues with TP move usage, mana cost. Improves performance by caching time variables.
2026-07-23 11:41:01 -04:00
sruon
7dc84274e4 Filter certain traits on monsters 2026-07-23 00:18:37 -06:00
sruon
b6376ecba8 Add EntityID_t overloads for target validation 2026-07-22 22:27:44 -06:00
sruon
f02198e629 CMobEntity::getMobMod const 2026-07-22 21:55:12 -06:00
sruon
c01bd24694 lastAttackerId converted to EntityID_t 2026-07-22 21:54:57 -06:00
sruon
4640ec544c Clean up state files const/style 2026-07-22 21:49:53 -06:00
taylorleary
a22230633f [sql] Audit some synthesis content tags (601-650) 2026-07-22 22:56:22 -04:00
Corey Sotiropoulos
13f4387512
[docker,alpine] Use ninja-build instead of samurai 2026-07-22 22:18:46 -04:00
Xaver
e1b5bea15c
Merge pull request #10864 from sruon/clamming
[lua] Clamming loot tables; Increase Alraune chance
2026-07-23 03:06:52 +02:00
sruon
c71acba110 Add real clamming loot tables 2026-07-22 18:28:33 -06:00
Xaver
f930f93b6d
Merge pull request #10784 from Nobutadas/weapon-break-mixin
[C++, sql, lua] Update general mob break mixins
2026-07-23 02:23:36 +02:00
Nobutadas
cd345bb401 [sql][lua] Rename event Raminel to avoid onSpawn 2026-07-23 02:13:48 +02:00
Xaver
6621e08306
Merge pull request #10863 from Frankie-hz/linkshellfix
[cpp] Fixes broken linkshell query causing errors when wearing a broken linkshell while logged out
2026-07-23 01:49:36 +02:00
Xaver
8b84193c34
Merge pull request #10830 from Nobutadas/blade-of-darkness
[lua] Restrict kill types for Chaosbringer
2026-07-23 01:37:06 +02:00
Xaver
ee4c49dcaf
Merge pull request #10857 from Hatberg/bowho-aggro
[sql] Bo'Who Warmonger aggro behaviour
2026-07-22 23:53:55 +02:00
Xaver
ead0327334
Merge pull request #10862 from sruon/attack_delay_fix
[core] Fix attack timer skipping the tick it swings on
2026-07-22 23:41:46 +02:00
Frank
d94defb80f [cpp] Fixes broken linkshell query 2026-07-22 16:53:55 -04:00
Xaver
6a4f883c75
Merge pull request #10861 from WinterSolstice8/misc_fixes
[lua] Add in minimum value to linear add effect function
2026-07-22 22:32:17 +02:00
sruon
1e11440a8c Fix attack timer skipping the tick it swings on 2026-07-22 14:26:39 -06:00
WinterSolstice8
c740923f20 [lua] Add in the minimum value to the linear add effect rate calc 2026-07-22 14:03:12 -06:00
Xaver
a21732e68c
Merge pull request #10858 from Xaver-DaRed/drb
[Magic] Fix instrument check
2026-07-22 21:55:19 +02:00
Skold177
06912e4f7d Update LoadPet with frame check
Ensures a stored automaton frame never has a stale PetID
2026-07-22 13:55:43 -04:00
Hatberg
0624f1dc53 [sql] Mamook aggro/link audit 2026-07-22 19:51:00 +02:00
Xaver-DaRed
f3a119d497 Magic: fix instrument check 2026-07-22 18:25:45 +02:00
Hatberg
fade5f22b8 [sql] BhoWho Warmonger add aggro 2026-07-22 17:27:34 +02:00
Xaver
6e5b3f5de7
Merge pull request #10851 from UmeboshiXI/mobmod_commands_pets
[lua] Allow Mobmod Commands To Be Used On Pets
2026-07-22 15:57:02 +02:00
WinterSolstice8
5e1f6d99ba
Merge pull request #10856 from Xaver-DaRed/trades2
[Audit] Bastok quest trades
2026-07-22 07:56:21 -06:00
Umeboshi
1c87b55496 [lua] Allow Mobmod Commands To Be Used On Pets 2026-07-22 04:35:25 -07:00
Xaver
2414935811
Merge pull request #10852 from sruon/yaml_mobmod_enum
[core, lua, yaml] Migrate ANIMATIONTYPE / MOBMOD to YAML based enum
2026-07-22 11:48:08 +02:00
sruon
43ceff0c43 Port MobMod to YAML based enum 2026-07-22 10:18:49 +02:00
sruon
555a4d283a Port Animation to YAML based enum 2026-07-22 10:18:49 +02:00
Xaver-DaRed
3af1f2bbb8 Audit Bastok quest trades 2026-07-22 09:45:27 +02:00
Xaver
4b45d57265
Merge pull request #10821 from sruon/ptarget
[core] Improve EntityID_t; Resolve UAF with captured pointers in lua bindings
2026-07-22 08:25:43 +02:00
9001-Sols
87d15607e8 [lua] Fix Synthesis Support subPower 2026-07-22 02:24:55 -04:00
Xaver
328378a925
Merge pull request #10845 from Hatberg/assorted-link-aggro-fixes
[sql] Assorted Bat, Worm, Diatryma Link / Aggro fixes
2026-07-22 08:15:04 +02:00
Xaver
547e0d10f4
Merge pull request #10850 from KiplingFFXI/citipati-and-xolotl-fixes-again
[lua, sql] Citipati and Xolotl despawn fixes
2026-07-22 07:24:41 +02:00
Xaver
fd504670f0
Merge pull request #10847 from Skold177/Ranged-Attack-State-Times-/-Setting
[C++] Adjust Ranged Attack State Delays
2026-07-22 07:21:29 +02:00
Xaver
510eb82ee2
Merge pull request #10846 from Nobutadas/zone-transition-bug
[C++]  Remove NavMesh snap on zone transition
2026-07-22 07:19:19 +02:00
Xaver
2cbbc9ed41
Merge pull request #10849 from sruon/death_zone
[core] Warp players as corpses if dieing during warp
2026-07-22 07:18:32 +02:00
Xaver
fc647ebd32
Merge pull request #10848 from WinterSolstice8/dainslaif_bloodsword
[lua] [sql] Implement Dainslaif's dINT proc rate scaling, implement bloodsword
2026-07-22 07:17:20 +02:00
Nobutadas
fbf353f549 [lua][sql] Update break on mobs 2026-07-21 23:07:55 -05:00
sruon
2624e7e39b Fix UAF with captured pointers in several bindings 2026-07-21 21:52:06 -06:00
sruon
269f55a403 BattleEntity stores EntityID_t instead of targid 2026-07-21 21:52:03 -06:00
sruon
ab25cd14bc Skip teleport if dead 2026-07-21 21:03:22 -06:00
sruon
7c5abe3063 Don't auto-HP warping dead players 2026-07-21 20:00:29 -06:00
Kipling
1efa97c7a0 Citipati and Xol Fixes 2026-07-21 18:49:30 -07:00
Skold
c3ea6ded20 Adjust Ranged Attack State Delays
Adjusts Ranged Attack State Delays to current Retail Values
2026-07-21 21:37:49 -04:00
WinterSolstice8
b96d447f73 [lua] [sql] Implement Bloodsword add effect 2026-07-21 19:18:59 -06:00
WinterSolstice8
34e85e3cd8 [lua] Give Dainslaif it's proper dINT rate scaling 2026-07-21 19:18:59 -06:00
WinterSolstice8
5c37dae39b [lua] Add linear scaling function for add effect dStat 2026-07-21 19:18:59 -06:00
Nobutadas
5c5a068c8e [C++] Remove NavMesh snap on zone transition 2026-07-21 19:54:27 -05:00
WinterSolstice8
440577b7bb
Merge pull request #10841 from Xaver-DaRed/cerb2
[Fix] Ensure Cerberus isnt moving before executing "Roar" and mobskill logic
2026-07-21 16:07:45 -06:00
Zach Toogood
358d1c084b
Merge pull request #10813 from LandSandBoat/feature/cpptrace-tombstones
Core: Rewrite crash tombstone generation
2026-07-21 21:40:34 +01:00
Hatberg
6b5fffdcdc [sql] Assorted Link / Aggro fixes 2026-07-21 22:13:14 +02:00
Xaver
29e26b9ee9
Merge pull request #10843 from Hatberg/ghatsad-levelrequired
[lua] Ghatsad frame/head level requirement fix
2026-07-21 21:37:07 +02:00
Zach Toogood
81a40e08bf CI: Add PkgConfig to docker 2026-07-21 19:47:16 +01:00
Xaver
5b109d8dda
Merge pull request #10839 from UmeboshiXI/Bat_Detection_Fixes
[sql] Bat/Funguar Aggro/Link Behavior Adjustments
2026-07-21 20:23:19 +02:00
Hatberg
a7c5bb7bd9 [lua] Ghatsad frame/head level requirement fix 2026-07-21 20:18:14 +02:00
Zach Toogood
5ed8e5c3a6 Core: Don't use ptrace to detect debugger
It is destructive: it succeeds when nothing is attached, leaving us traced by our own parent (usually the shell),
and the tracee cannot undo that with PTRACE_DETACH. A later fatal signal then stops the process forever,
waiting on a "tracer" that will never continue it.
2026-07-21 19:11:38 +01:00
Xaver-DaRed
e4849671ea Ensure Cerberus isnt moving before executing "Roar" and mobskill logic 2026-07-21 16:27:18 +02:00
Xaver
242ab0d055
Merge pull request #10840 from Nobutadas/shrine-of-ruavitau-teleporters
[lua] Fix Shrine of RuAvitau teleporters
2026-07-21 16:09:32 +02:00
Xaver
9051fe1188
Implement Cerberus Mechanics (#10829)
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-21 15:53:44 +02:00
Nobutadas
a89516e32d [lua] Fix Shrine of RuAvitau teleporters 2026-07-21 15:39:22 +02:00
ThrisStraizo
89a9e108fb Implement Cerberus Mechanics
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-21 15:04:54 +02:00
Umeboshi
524b18daa4 [sql] Bat/Funguar Aggro/Link Behavior Adjustments 2026-07-21 06:02:24 -07:00
sruon
d2164ed20c
[lua] Clamming fixes; Remove KI on zone-out; Increase point cooldown (#10837)
* Remove clamming kit when zoning out of Bibiki

* Revert clamming variables to charvar to properly handle disconnects

* Clamming cooldown bumped to 16s but per point
2026-07-21 13:20:53 +02:00
Xaver
769db07f4e
Merge pull request #10836 from sruon/equipset_reset_tp
[core] Only reset TP on legitimate swaps
2026-07-21 13:16:18 +02:00
Xaver
4b8b2f55bd
Merge pull request #10834 from UmeboshiXI/mob_rangedattack_interrupt_fix
[lua] Remove Hit Interrupt For Ranged Mobskills
2026-07-21 13:12:49 +02:00
sruon
de12fa1a7f Only reset TP on legitimate swaps 2026-07-21 01:39:31 -06:00
Mobpsycho
bfe36cbc2e Add trailing newline 2026-07-21 02:47:18 -04:00
Umeboshi
b09c3f4b5f [lua] Remove Hit Interrupt For Ranged Mobskills 2026-07-20 23:34:09 -07:00
Mobpsycho
e62d5a1479 Restore era JP midnight wait on Missionary Man 2026-07-21 02:27:45 -04:00
Xaver
9a7858cbfc
Merge pull request #10828 from Nobutadas/quest-rock-bottom
[lua] Correct Rock Bottom trade requirements
2026-07-21 08:02:06 +02:00
Xaver
cd552bcf55
Merge pull request #10827 from Skold177/Icarus-Wing-Store-TP
[lua] Give Icarus Wing Store TP scaling
2026-07-21 07:34:04 +02:00
Xaver
8c24c9b552
Merge pull request #10831 from sruon/signet_food
[core, lua] Restrict Sanction/Sigil food bonus to relevant regions
2026-07-21 07:33:16 +02:00
Xaver
77c95523cb
Merge pull request #10833 from sruon/item_prices
[lua, sql] Cotton Tofu NPC price; Flask of Vitriol typo
2026-07-21 07:30:52 +02:00
Nobutadas
6fd2f8a4e6 [lua] Restrict kill types for Chaosbringer 2026-07-20 22:41:43 -05:00
sruon
9328afd31e Cotton Tofu sell price
Co-Authored-By: montijin <2160211+montijin@users.noreply.github.com>
2026-07-20 21:39:36 -06:00
sruon
e81dd98d9b Rename flask of vitriol 2026-07-20 21:39:16 -06:00
sruon
14639e79e2 Restrict Sanction/Sigil food bonus to relevant regions 2026-07-20 20:56:36 -06:00
Nobutadas
b5e626a6ad [lua] Correct Rock Bottom trade requirements 2026-07-20 19:13:44 -05:00
Skold
498009c347 Give Icarus Wing Store TP scaling
Found on the JP Wiki
2026-07-20 19:05:46 -04:00
Zach Toogood
28ff08be9c CI: Add libdwarf dependency 2026-07-20 22:10:36 +01:00
Zach Toogood
0ce919df73 Core: Report CMAKE_BUILD_TYPE on startup 2026-07-20 21:48:34 +01:00
Xaver
7425d858f4
Merge pull request #10825 from Skold177/Update-Bane-to-use-effect-addMod
[lua] Update Bane to use effect:addMod
2026-07-20 21:16:13 +02:00
Xaver
d92651b9d6
Merge pull request #10824 from Hatberg/mom-repeat
[lua] Mom the Adventurer - fix Daughter section zone check
2026-07-20 21:12:33 +02:00
Zach Toogood
ab366144c6 Core: Make core dumps opt-in 2026-07-20 19:52:50 +01:00
Xaver
e7f251342f
Merge pull request #10822 from sruon/job_change_item_cancel
[core] Cancel item use on job change
2026-07-20 20:52:23 +02:00
Xaver
d85b11337a
Merge pull request #10823 from Skold177/Atonement
[lua] Move Atonement Clamp
2026-07-20 20:52:04 +02:00
Skold177
5a799eee71 Update Bane to use effect:addMod
Players no longer get double speed down
2026-07-20 14:45:23 -04:00
Hatberg
bc1124be15 [lua] Mom the Adventurer - fix Daughter repeat, Parnika text 2026-07-20 20:44:04 +02:00
Xaver
33ea9577ed
Merge pull request #10785 from Skold177/Era-Exp-Loss
[lua] [C++] Era experience points loss setting
2026-07-20 19:18:07 +02:00
Skold177
fbe9e8aeb0 Move Atonment Clamp
Moves it before damage adjustments so damage modifiers are calculated properly.
2026-07-20 13:12:12 -04:00
sruon
2e57e05400 Cancel item use on job change 2026-07-20 11:00:36 -06:00
Xaver
2b80efd295
Merge pull request #10815 from KiplingFFXI/Gigas-BST-Fixes
[lua] Gigas BST Fixes
2026-07-20 18:58:58 +02:00
Xaver
3613966fd1
Merge pull request #10819 from ThrisStraizo/resranksplus
[Combat] Add Gravity resistance rank
2026-07-20 18:49:19 +02:00
Kipling
a797a734ae Gigas BST Fixes
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-20 18:28:39 +02:00
ThrisStraizo
4c6d16541a Add Gravity resistance rank
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-20 16:19:27 +02:00
Xaver
942c06c070
Merge pull request #10807 from CriticalXI/casket_tags
[sql] Treasure casket default status adjustment
2026-07-20 14:22:21 +02:00
Xaver
b4e6bdfe41
Merge pull request #10793 from ThrisStraizo/charbywarrior
[sql] Adjust Charybdis' job to Warrior
2026-07-20 14:20:20 +02:00
Xaver
4cd9bba164
Merge pull request #10805 from ThrisStraizo/byakkores
[lua] [sql] Adjust Byakko res and stats
2026-07-20 14:19:55 +02:00
WinterSolstice8
4228a18040
Merge pull request #10814 from Xaver-DaRed/trades
[Chore] Audit all mission uses of `npcUtil.tradeHasExactly()`
2026-07-20 06:17:05 -06:00
Xaver
b80867ff6b
Merge pull request #10820 from Skold177/Fix-Reward-Skill
[lua] Fix Reward Mobskill Case
2026-07-20 11:22:14 +02:00
sruon
3cc2ac4ca0 EntityID_t stores more information for accurate lookups 2026-07-20 02:40:42 -06:00
sruon
984bd8bb6b Stamp all entities with an auto-incrementing ID 2026-07-20 02:40:42 -06:00
sruon
1120c0e30d Allow looking up instances by run ID 2026-07-20 02:40:41 -06:00
sruon
f6e8650d0a Stamp instances with a unique auto-incrementing ID 2026-07-20 02:40:31 -06:00
Zach Toogood
6214f806ab CMake: Use libdwarf for symbols on Linux 2026-07-20 08:33:00 +01:00
Skold
178b4cef5f Fix Reward Mobskill Case
Linux Strikes Again
2026-07-20 00:59:23 -04:00
Xaver-DaRed
998fc80d00 Fix incorrect ToAU mission 11 to 12 wait and timer 2026-07-20 03:35:58 +02:00
Zach Toogood
facb3dcc8d CMake: CMAKE_CXX_SCAN_FOR_MODULES: OFF 2026-07-20 01:37:53 +01:00
Zach Toogood
0bc89e1adf Clang: -Wno-nontrivial-memcall 2026-07-20 01:37:41 +01:00
Zach Toogood
459b4d4622 Debug: Fix const-ness of raw_trace.resolve() 2026-07-20 01:33:10 +01:00
Xaver-DaRed
be85f0cb0e Audit and destroy all mission uses of npcUtil.tradeHasExactly() 2026-07-20 02:15:52 +02:00
Zach Toogood
1615216fe0 Chore: Suppress warnings on XI_STRINGIFY 2026-07-20 01:11:48 +01:00
Zach Toogood
41cfd0bad3 Core: Clean up Win-only defines 2026-07-20 00:37:45 +01:00
Zach Toogood
9c229e0e10 Core: Improve tombstone reports on Mac 2026-07-20 00:37:44 +01:00
Zach Toogood
ddeabc42dc Core: Get other-thread traces in tombstone
If we crash on a worker thread, we should try to collect what the main thread was up to and report that too. If we crash on the main thread, only report that.
2026-07-20 00:37:44 +01:00
Zach Toogood
1a0e12ffb4 Core: Mark hang and crash as NOINLINE 2026-07-20 00:37:44 +01:00
Zach Toogood
2771b87b22 Core: Add debug core dump hints 2026-07-20 00:37:43 +01:00
Zach Toogood
223dfdd52b Core: Add more info to tombstones 2026-07-20 00:37:43 +01:00
Zach Toogood
4d5ce01669 Core: Use cpptrace for tombstone generation 2026-07-20 00:37:43 +01:00
Zach Toogood
6e10cb2202 Chore: Un-vendor Wheaty 2026-07-20 00:37:43 +01:00
Zach Toogood
bd4fd739f9 Chore: Un-vendor wepoll 2026-07-20 00:37:31 +01:00
WinterSolstice8
e187df7456
Merge pull request #10801 from Xaver-DaRed/audit-mission-trades
[Proposal] Introduce `npcUtil.tradeMatches()` and apply usage to some missions
2026-07-19 17:00:44 -06:00
Xaver
180bec2d4c
Merge pull request #10802 from sruon/no_sleep_zones
[core] Tick all zones all the time / Grid scheduling
2026-07-20 00:39:00 +02:00
Xaver
6b86852cbe
Merge pull request #10812 from Skold177/Merry-Map-Markers
[lua] Implement Merry Map Markers
2026-07-20 00:37:25 +02:00
Xaver
a0dd4877e6
Merge pull request #10811 from CriticalXI/mining_delay
[lua] Add forced gathering wait server setting
2026-07-20 00:29:56 +02:00
Skold
55e46cb4a0 Implement Merry Map Markers
Implements Merry Map Markers in Bastok, Windurst, Sandy, Jeuno & Ah Zahbi.
2026-07-19 18:06:46 -04:00
Xaver
599141a24d
Merge pull request #10810 from sruon/pit_doors
[lua] Colosseum gate NPCs default actions
2026-07-19 22:49:28 +02:00
Critical
bfbd36d127 [lua] Add forced gathering wait server setting 2026-07-19 14:46:04 -06:00
Zach Toogood
41e7fa215e
Merge pull request #10803 from LandSandBoat/watchdog_crash_updates
Core: Crash directly in Watchdog instead of throwing
2026-07-19 21:43:40 +01:00
Xaver
cd93db71cd
Merge pull request #10809 from cocosolos/homebrew-update
[ci] Only update homebrew once per workflow run
2026-07-19 22:41:52 +02:00
ThrisStraizo
7a60bf8cab Adjust Byakko res and stats
This PR adjusts Byakko according to my testing and Jimmy's sheet.
2026-07-19 13:33:11 -07:00
Xaver
56d6a38a02
Merge pull request #10808 from Skold177/Default-Mog-Locker-State
[lua] Adjust Default Mog Locker State
2026-07-19 22:29:11 +02:00
sruon
4a24574c54 Colosseum gate NPCs default actions 2026-07-19 14:24:47 -06:00
Skold
be4a712ce7 Adjust Default Mog Locker State
Defaults to Al Zahbi only on unlock.
2026-07-19 15:58:46 -04:00
Corey Sotiropoulos
7bc23f138d
[ci] Only update homebrew once per workflow run
Maybe the cause of the following error:
 Error: Another `brew update` process is already running.
2026-07-19 19:44:03 +00:00
Xaver
4cc07da9d5
Merge pull request #10804 from Skold177/Remove-Skillchain-Resistance-Rank-Reduction
[C++] [lua] Remove Skillchain Resistance Rank Reduction + Add Pre SoA Magic Burst Module
2026-07-19 21:35:00 +02:00
Critical
427fe14b37 [sql] Treasure casket default status adjustment 2026-07-19 13:34:48 -06:00
sruon
eaefcc5700 Grid scheduling 2026-07-19 13:29:49 -06:00
Zach Toogood
11cca488bb Chore: Un-vendor backward-cpp 2026-07-19 20:24:56 +01:00
Zach Toogood
ea60e3dacd CMake: Add cpptrace dep 2026-07-19 20:24:25 +01:00
Zach Toogood
f8331b60b8 CMake: Pass XI_BUILD_TYPE into build 2026-07-19 20:23:00 +01:00
Skold
802822f4cd Remove Skillchain Resistance Rank Reduction
Removes the Resistance Rank reduction skillchains were getting.
2026-07-19 14:49:13 -04:00
Zach Toogood
2fbf2296df Core: Crash directly in Watchdog instead of throwing 2026-07-19 18:40:48 +01:00
Xaver-DaRed
ba0769e253 Introduce npcUtil.tradeMatches() and apply usage to some missions 2026-07-19 19:34:25 +02:00
Skold
47a5ef3d18 Era Experience points setting
Adds a new tier for 4-24 that is 10% experience points loss.
2026-07-19 11:38:46 -04:00
Zach Toogood
27154fd497
Merge pull request #10800 from LandSandBoat/tidy_wotg_nation_quests
Quests: Tidy WOTG nation quests
2026-07-19 14:22:24 +01:00
Zach Toogood
caefc4b3c3 Quests: Add tests for WOTG-SAN-01 and 02 2026-07-19 13:45:09 +01:00
Zach Toogood
092083b041 Quests: Add trade reminders for WOTG-WIN-3 2026-07-19 13:44:46 +01:00
Zach Toogood
9f0ecf54bd Quests: Fix WOTG-WIN-1 reminder text 2026-07-19 13:20:04 +01:00
Xaver
2ff24289a2
Merge pull request #10777 from Xaver-DaRed/laughmore
[Fix] Laughing Bison animation for the sign
2026-07-19 14:13:20 +02:00
Zach Toogood
dc3f4b9cb5 Quests: First pass of WOTG nation quests intro tests 2026-07-19 13:08:16 +01:00
Zach Toogood
f89cd10a2f Quests: Tidy headers of WOTG nation quests 2026-07-19 12:57:09 +01:00
Zach Toogood
0b4532b693 Quests: Quick port of WOTG-WIN-03 to IF 2026-07-19 12:49:26 +01:00
Xaver
4a2f7aef51
Merge pull request #10674 from Xaver-DaRed/kakarul
[mixin] Create a separate mixin for "sleep at night" behavior and apply it
2026-07-19 13:30:42 +02:00
Zach Toogood
006e618d06 Chore: Rename WOTG Nation Quests 2026-07-19 12:27:56 +01:00
Xaver-DaRed
da0bcd135c Fix Laughing Bison animation for the sign 2026-07-19 13:21:28 +02:00
Xaver
169f59a5b2
Merge pull request #10791 from KiplingFFXI/SAM-Unlock-Quest-Audits
[lua, sql] SAM Unlock Quest Audits
2026-07-19 12:54:53 +02:00
Xaver
de90d6c821
Merge pull request #10799 from KiplingFFXI/duessa-despawn-fix
[lua] Duessa Death Fixes
2026-07-19 12:50:01 +02:00
Xaver
78c8936e1b
Merge pull request #10789 from Skold177/Update-checkPetCommand
[lua] Fix checkPetCommand
2026-07-19 12:45:05 +02:00
Xaver
05eda58eb9
Merge pull request #10787 from Skold177/Era-Signet-Duration
[lua] Globalize bestowSignet, add Era module
2026-07-19 12:44:05 +02:00
Xaver
bd0e90b266
Merge pull request #10792 from Skold177/Escape-Zone-Masks
[C++] [lua] Fix 5 Zone Masks, Add 3 Escape Locations, Fix Escape message
2026-07-19 12:43:06 +02:00
Kipling
751ff95f45 SAM unlock Quest and NMs audit
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-19 12:26:58 +02:00
Kipling
e1746ea400 Fix Fradubio (NM) pets despawn on death
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-19 12:17:04 +02:00
Xaver
a2a7ea5ec3
Merge pull request #10798 from KiplingFFXI/NIN-DRG-SAM-Quest-Era-Module
[sql] [module] NIN DRG SAM quest era module
2026-07-19 12:11:36 +02:00
Xaver
126470a768
Merge pull request #10796 from Skold177/Don't-allow-Harvests-into-a-locked-Mog-Safe-2
[C++] Disallow Gardening Harvests into Locked Mog Safe 2
2026-07-19 11:56:47 +02:00
Xaver
04bb7255b0
Merge pull request #10790 from sruon/fix-session-hash-collision
[core] Session hash collision, login hardening, rlimits
2026-07-19 11:50:47 +02:00
Xaver
b844cbb540
Merge pull request #10794 from KiplingFFXI/Ding-Bat-Pos-Fix
[sql] Ding Bat POS Fix
2026-07-19 11:49:54 +02:00
Xaver
fc9bd559ca
Merge pull request #10797 from Skold177/Marksmanship-Module-Aftermaths
[lua] Fix Marksmanship Module Aftermaths
2026-07-19 11:49:14 +02:00
Zach Toogood
6f1a7fee86
Merge pull request #10795 from sruon/guild_close
[core] Suppress Guild Close message / Music IDs uint16
2026-07-19 09:49:01 +01:00
sruon
c934bc39ef Disable sleeping empty zones 2026-07-19 00:37:17 -06:00
Kipling
1903632d0c NIN DRG SAM quest era module 2026-07-18 23:08:01 -07:00
Skold
7c809f6d26 Fix Escape Zone Masks / Update Can't Escape Msg.
Updates two zone masks Yugghott Grotto and Sealions Den - Fixes the can't escape message.
2026-07-19 02:07:17 -04:00
Skold
536bff167d Fix Marksmanship Module Aftermaths
Correctly passes xi.slot.RANGED instead of xi.slot.MAIN.
2026-07-19 01:47:40 -04:00
Xaver
e977df5211
Merge pull request #10788 from steed9/fix/gold-musketeer-diabolos-earring-latents
[sql] Fix Gold Musketeer's Ring VIT and Diabolos's Earring ACC latents
2026-07-19 07:33:38 +02:00
Skold
49e5bb54dd Don't allow Harvests into Locked Mog Safe 2
Makes it so you cannot harvest unless it's unlocked.
2026-07-19 01:17:45 -04:00
sruon
e71825e0d3 Retrieve zone musics as uint16 2026-07-18 23:06:29 -06:00
sruon
88015eba58 Set high bit on daily guild close to suppress message
This tells the client to not print the "Shop is closed" message if the shop window isn't presently opened.
2026-07-18 23:04:37 -06:00
Kipling
db1dc709a1 Ding Bat POS Fix 2026-07-18 21:41:56 -07:00
ThrisStraizo
ffa7af13af Adjust Charybdis' job to Warrior
As it turn out, Charybdis is a Warrior.
2026-07-18 21:09:52 -07:00
Spencer Steed
bcea01506a Fix Gold Musketeer's Ring and Diabolos's Torque latents. 2026-07-19 04:39:07 +02:00
Skold
6fe9908423 Fix checkPetCommand
Fix checkPetCommand
2026-07-18 22:25:13 -04:00
Xaver
0ba9ae3db7
Merge pull request #10786 from KiplingFFXI/DRG-Unlock-Quest-Audits
[lua] DRG Unlock Quest Audits
2026-07-19 03:24:28 +02:00
sruon
ab3027f9af Raise open-file soft limit to the hard limit 2026-07-18 19:01:34 -06:00
sruon
0d8a97fd87 Harden charselect reply write and reject 0.0.0.0 map address 2026-07-18 19:01:34 -06:00
sruon
aea694ad15 Fix session hash collision for concurrent same-IP logins 2026-07-18 18:58:22 -06:00
Skold
2de771d590 Globalize bestowSignet, add Era module
Adds a module for the era signet duration.
2026-07-18 20:54:24 -04:00
Kipling
d895ca21e9 DRG Unlock Quest Audits 2026-07-18 17:13:21 -07:00
Nobutadas
6a37270c8c [C++,lua] Critical hit hooks for ranged and BLU 2026-07-18 18:56:21 -05:00
Xaver
d2710742bf
Merge pull request #10783 from Skold177/Fix-Olla-Spawn-Behavior
[lua] [sql] Fix Olla Pequena/Media/Grande spawn location, audit spell list.
2026-07-19 01:38:58 +02:00
Skold
bf1e02b524 Fix Olla Pequena/Media/Grande
Fixes their spawning behavior and spell lists.
2026-07-18 19:11:00 -04:00
Xaver
ae9eefee78
Merge pull request #10782 from Skold177/Era-Gobbiebag-Fame-Requirements
[lua] Gobbiebag Fame Requirement Module
2026-07-19 01:07:02 +02:00
Xaver
aac719a04d
Merge pull request #10779 from KiplingFFXI/More-Content-Tags-and-POS-Fixes
[sql] More Content Tags and POS Fixes
2026-07-19 00:44:06 +02:00
Skold
bdf6c93ddd Era Gobbiebag Fame Requirements
No more free bags.
2026-07-18 18:38:36 -04:00
Kipling
c3d8bdf265 Fix some content tags and mob spawn points 2026-07-18 23:30:54 +02:00
Zach Toogood
a28182e60d
Merge pull request #10780 from LandSandBoat/windows_is_slow_lol
Core: Add speedup options for Windows
2026-07-18 22:19:09 +01:00
Zach Toogood
c26b659858 Chore: Link winmm in StandardProjectSettings 2026-07-18 20:50:55 +01:00
Zach Toogood
e6a7ae498f dbtool: Add WinDefender exclusions task
Co-Authored-By: WinterSolstice8 <60417494+wintersolstice8@users.noreply.github.com>
2026-07-18 20:50:37 +01:00
Zach Toogood
42faedde8a Core: Various Windows tweaks to performance
Co-Authored-By: sruon <sruon@users.noreply.github.com>
2026-07-18 20:50:01 +01:00
Xaver
0e0601e5ef
Merge pull request #10685 from steed9/fix/old-counterstance-def
[cpp] Add USE_OLD_COUNTERSTANCE for era Counterstance DEF
2026-07-18 18:28:14 +02:00
Xaver
3715d3967e
Merge pull request #10707 from Nobutadas/boat-visible-on-depart-bug
[C++, lua] Make player invisible to self during zone-in events and transport events
2026-07-18 18:21:53 +02:00
Zach Toogood
f719a74159
Merge pull request #10776 from LandSandBoat/own_our_own_network_buffers
Core: Own our own network buffers
2026-07-18 15:47:11 +01:00
Nobutadas
f976d4150e [lua] Audit CoP 1-1 and Transport events 2026-07-18 08:21:33 -05:00
Nobutadas
853fdfe3eb [C++] Hide player from own events when marked hidden 2026-07-18 08:20:18 -05:00
Zach Toogood
0cb2ac1a9d Core: Only make 1 SQL query when loading a char
This used to be 3 round trips, and we recently got it down to 2. We can now get it down to a single round trip and let the DB handle the logic for whether or not the session_key is present.
2026-07-18 14:07:00 +01:00
Xaver
9ddaa299f5
Merge pull request #10755 from KiplingFFXI/barge-adjustments-and-NM-fixes
[Barge] Dialogue, Mob Spawning, and NM Adjustments
2026-07-18 14:06:20 +02:00
Kipling
f47090c1de Barge fixes and NM Adjustments 2026-07-18 13:35:27 +02:00
Zach Toogood
225666dd27 dbtool: Support local network from ip menu 2026-07-18 12:34:50 +01:00
Zach Toogood
ad8bd1d4e6 Core: Add Box alias for unique_ptr 2026-07-18 11:48:53 +01:00
Zach Toogood
37b29bc3bd Map: Move socket recv/send to own thread 2026-07-18 11:45:22 +01:00
Xaver
f7ff675271
Merge pull request #10775 from Hatberg/nokkhi-jinjahl-quiver-npc-enums
[lua] Nokkhi Jinjahl quiver npc enums, item luas
2026-07-18 12:39:57 +02:00
Zach Toogood
43a28cce91 Chore: Change stats reporting ordering 2026-07-18 11:31:22 +01:00
Xaver-DaRed
40823b40eb Create a separate mixin for "sleep at night" behavior and apply it 2026-07-18 12:28:27 +02:00
Xaver
9fc48a414b
Merge pull request #10770 from Hatberg/sauro-sabertooth-steal-cockatricemeat
[sql] Sabertooth Tiger Steal tables
2026-07-18 12:24:48 +02:00
Zach Toogood
7d562e4853 Chore: Use Fn in socket.h 2026-07-18 11:18:29 +01:00
Zach Toogood
649497138d Ext: Vendor SPSCQueue 2026-07-18 11:18:16 +01:00
Xaver
a556b30a8b
Merge pull request #10767 from KiplingFFXI/various-mob-pos-fixes
[sql] Various Mob POS Fixes
2026-07-18 12:11:46 +02:00
Xaver
e4fb1422c3
Merge pull request #10769 from KiplingFFXI/Sandy-8-2-Audits
[lua] Sandy 8-2 Fixes
2026-07-18 11:48:32 +02:00
Xaver
21885c9b11
Merge pull request #10773 from KiplingFFXI/NIN-Unlock-Quest-Audits
[lua, sql] NIN Unlock Quest Audits
2026-07-18 11:45:09 +02:00
Hatberg
38281155c2 [sql] Sabertooth Tiger meat steal tables 2026-07-18 11:40:48 +02:00
Xaver
b2e9cf8154
Merge pull request #10766 from cocosolos/smaller-cache
[ci] Remove built exes from build cache
2026-07-18 11:38:54 +02:00
Xaver
214e9b60ea
Merge pull request #10765 from Nobutadas/fix-door
[sql] Allow Mjoll's Goods' door to be closed
2026-07-18 11:38:04 +02:00
Xaver
1d614d5c33
Merge pull request #10772 from sruon/equip_cesti
[core] Fix H2H rendering with weaponless lockstyle
2026-07-18 11:37:26 +02:00
Xaver
dd3c3f7a1b
Merge pull request #10774 from sruon/mog_locker
[lua] Adjust Mog Locker lease when switching access
2026-07-18 11:36:14 +02:00
Xaver
5a8bb3ab95
Merge pull request #10768 from sruon/ghost_ammo_item
[core] Fix ghost item showing in ammo slot
2026-07-18 11:35:01 +02:00
Hatberg
f83a9fe146 [lua] Nokkhi Jinjahl quiver npc enums, item luas 2026-07-18 11:30:08 +02:00
sruon
3891fe732f Adjust Locker lease when switching access 2026-07-18 02:55:01 -06:00
Kipling
dc72a83fd3 NIN Unlock Quest Audits 2026-07-18 01:04:44 -07:00
sruon
313267e3ce Fix H2H rendering with weapon-less lockstyle 2026-07-18 01:54:44 -06:00
Kipling
56ec99819c Sandy 8-2 Fixes 2026-07-17 23:12:57 -07:00
sruon
945246f166 Fix ghost item in ammo slot 2026-07-17 23:34:25 -06:00
Kipling
a5c6d4609a mob pos fixes 2026-07-17 22:11:43 -07:00
Corey Sotiropoulos
15b9686b8d
[ci] Remove built exes from build cache 2026-07-18 04:22:10 +00:00
Xaver
794ec3a369
Merge pull request #10753 from Hatberg/npc-tswe-panipahr-interaction
[lua] NPC Tswe Panipahr (Manaclipper ticket) cleanup
2026-07-18 05:34:03 +02:00
Xaver
4b44f288b9
Merge pull request #10762 from Skold177/Dynamis-Lord
[lua] [sql] Update Dynamis Lord
2026-07-18 05:31:11 +02:00
Nobutadas
c9624e4107 [sql] Start Mjoll's Goods door in closed state 2026-07-17 22:26:33 -05:00
sruon
a306f81ecb Handle onEventUpdate for Manaclipper ticket seller 2026-07-17 21:06:50 -06:00
Skold
24956c5512 Update Dynamis Lord
Updates the script for Dynamis Lord
2026-07-18 05:03:05 +02:00
Xaver
5a69701a16
Merge pull request #10764 from KiplingFFXI/Sandy-Missions-Piece-of-Paper-KI-Fix
[lua] Sandy 6-1 & 6-2 Key Item Fix
2026-07-18 04:15:49 +02:00
Kipling
69e0e8f91a Sandy 6-1 Key Item Fix 2026-07-17 18:39:56 -07:00
Xaver
69fc597c1e
Merge pull request #10763 from sruon/knockback_caps
[sql] Correct animation ID for Steaming Rage / Feather Barrier
2026-07-18 03:36:21 +02:00
sruon
0b4582d766 Correct animation ID for Steaming Rage / Feather Barrier 2026-07-17 19:09:08 -06:00
Xaver
6aa9458fc9
Merge pull request #10746 from Nobutadas/conquest-amount-allow-reducing
[C++] Account for if conquest setting is reduced midweek
2026-07-18 03:08:14 +02:00
Xaver
ad2f679ea6
Merge pull request #10748 from ThrisStraizo/miniavatarfights
[lua] [sql] Trials Size Avatar Fight Res Override
2026-07-18 03:06:23 +02:00
Xaver
3cdbf97811
Merge pull request #10757 from Hatberg/stardust-repeatable-mustzone
[lua] Stardust quest repeatable mustZone and Accept
2026-07-18 03:05:33 +02:00
WinterSolstice8
995f0b6e31
Merge pull request #10743 from Xaver-DaRed/skip
[Combat] Skip SDT checks on absorb
2026-07-17 18:48:25 -06:00
WinterSolstice8
f8bddd99a9
Merge pull request #10714 from Xaver-DaRed/garden
[Chore] Garden of Ru'Hmet minor pass
2026-07-17 18:46:49 -06:00
WinterSolstice8
af6a40ae58
Merge pull request #10702 from Xaver-DaRed/stuff
[Fix] Various item blocking fixes
2026-07-17 18:42:30 -06:00
Xaver
8a6c3d44fe
Merge pull request #10760 from KiplingFFXI/Sandy-6-2-Aggro-Fixes
[lua] Sandy 6-2 Aggro Fixes
2026-07-18 02:13:17 +02:00
Xaver
d0265ec3db
Merge pull request #10756 from ThrisStraizo/kamlanautaggro
[lua] Kamlanaut aggro range fix
2026-07-18 01:56:26 +02:00
WinterSolstice8
d74530918e [core] Spawn, but hide content tagged NPCs
Apparently, some cutscenes contain NPCs in different content tags,
such as WoTG NPCs now appearing in a pre WoTG CS because they are in town now

This will allow the client to request info on those NPCs and the server will reply with their look etc.
2026-07-17 17:52:55 -06:00
Hatberg
da420bb080 [lua] NPC Tswe Panipahr (Manaclipper) cleanup 2026-07-18 01:43:49 +02:00
Hatberg
ebbb161b59 [lua] Stardust quest repeatable mustZone
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-18 01:36:43 +02:00
Xaver
c01b5b32d5
Merge pull request #10754 from Hatberg/habetrot-qm-15min
[lua] Habetrot qm respawn 15 mins
2026-07-18 01:33:23 +02:00
ThrisStraizo
19d90155e4 Kamlanaut aggro range fix
This PR adjusts Kamlanaut's aggro so he doesn't aggro players loading into the fight.
2026-07-17 16:30:25 -07:00
Kipling
23de6a3232 Sandy 6-2 Aggro Fixes 2026-07-17 16:27:37 -07:00
Hatberg
7a7126ae11 [lua] Habetrot qm respawn 15 mins 2026-07-17 21:37:32 +02:00
Xaver
cb80c79906
Merge pull request #10751 from Hatberg/raptors-food-content-tag
[sql] Set Raptor's Food npcs to ROV, hide from widescan
2026-07-17 17:57:22 +02:00
Xaver
1feaa69c70
Merge pull request #10750 from Nobutadas/Add-bartabaq
[lua] Add Bartabaq outpost vendor to Oldton Movalpolos
2026-07-17 17:56:12 +02:00
Nobutadas
8df1f04d8a [lua] Add Bartabaq outpost vendor 2026-07-17 08:20:48 -05:00
Hatberg
78a2a023dc [sql] Set Raptor's Food npcs to ROV, hide from widescan 2026-07-17 15:10:27 +02:00
Xaver
0a8adc8aa5
Merge pull request #10717 from Hatberg/windurst-6-1-cardians
[sql, lua] Fix Windurst Mission 6-1 Jack Cardians
2026-07-17 12:38:43 +02:00
Hatberg
42dd4e6169 [sql, lua] Fix Windurs 6-1 Jack Cardians
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-17 12:07:42 +02:00
Xaver
2673fad6bc
Merge pull request #10741 from Auzali/add-ROTZ-tags-551-600
[sql] Audit some synthesis content tags (551-600)
2026-07-17 11:42:53 +02:00
Xaver
868acf1f2c
Merge pull request #10745 from ThrisStraizo/boreasdmgfix
[lua] [sql] Correct Boreas Cesti AE to 5-7 DMG
2026-07-17 11:39:10 +02:00
Xaver
b24f3f14a4
Merge pull request #10716 from eliroo12/fix/killereffectAudit
[sql] Audit Killer Effects on Items based on BG wiki
2026-07-17 11:35:21 +02:00
Xaver
90cb069b1e
Merge pull request #10744 from ThrisStraizo/claimtarasque
[lua] Make Tarasque claimed on spawn
2026-07-17 11:03:40 +02:00
ThrisStraizo
ad7d8e6c52 Correct Boreas Cesti AE to 5-7 DMG
This PR corrects the AE of Boreas Cesti to random 5-7 of magic wind damage.
2026-07-17 10:48:22 +02:00
ThrisStraizo
1a6b1d7472 Trials Size Avatar Fight Res Override
Recent changes to Avatar SQL res ranks had the unintended consequence of making the Mini fights harder than it should be.
2026-07-16 22:52:30 -07:00
Nobutadas
542ddba843 [C++] Account for if conquest setting is reduced midweek 2026-07-16 22:55:21 -05:00
Xaver-DaRed
046904e127 Combat: Skip SDT checks on absorb 2026-07-17 01:19:29 +02:00
Spencer Steed
d797d2ba25 Add era Counterstance DEF behind USE_OLD_COUNTERSTANCE
Pre-WotG Counterstance used DEF = 1 + VIT/2 (+ Minne), ignoring gear and Protect. Retail half-DEF behavior is unchanged when the setting is false.
2026-07-16 17:54:05 -05:00
ThrisStraizo
5b5ea69a10 Make Tarasque claimed on spawn
This PR deletes unnecessary settings on Tarasque's spawn so he properly claims on spawn.
2026-07-16 15:53:05 -07:00
Xaver
377c206fce
Merge pull request #10742 from Nobutadas/fix-fade-to-black-nation-change
[lua] Fix fade-to-black nation change event
2026-07-16 23:26:42 +02:00
Nobutadas
7d28390b27 [lua] Fix fade-to-black nation change event 2026-07-16 15:57:50 -05:00
Xaver
d3113efbea
Merge pull request #10740 from Xaver-DaRed/check
[Fix] Not checking if pet is nil before fetching pet entity type
2026-07-16 22:43:24 +02:00
taylorleary
37d73695a5 [sql] Audit some synthesis content tags (551-600) 2026-07-16 16:40:24 -04:00
Xaver-DaRed
e6210918ba Fix not checking if pet is nil before fetching pet entity type 2026-07-16 21:43:37 +02:00
Xaver
93d45bddc4
Merge pull request #10737 from Xaver-DaRed/duration-range
[Chore] Make `xi.mobskills.calculateDuration` work like it claims it does
2026-07-16 21:11:14 +02:00
Xaver
ac7e7d1467
Merge pull request #10735 from WinterSolstice8/charvar_lengthen
[core] [lua] Extend charvar to 64 characters, add size check msg
2026-07-16 19:57:56 +02:00
Xaver
f11adb1d84
Merge pull request #10739 from WinterSolstice8/ifrits_mining_point_redux
[sql] Adjust Ifrit's Cauldron's 2nd set of mining points to be visible
2026-07-16 19:49:02 +02:00
Xaver
9e6c062a7e
Merge pull request #10738 from KiplingFFXI/Silk-Caterpillar-Despawn-Fix
[lua] Silk Caterpillar Despawn Fixes
2026-07-16 19:27:16 +02:00
WinterSolstice8
52cc69b57f [sql] Adjust Ifrit's Cauldron's 2nd set of mining points to be visible 2026-07-16 11:24:11 -06:00
Xaver
e7a0ffd802
Merge pull request #10736 from Nobutadas/intro-cs-on-nation-swap
[lua] Perform intro event on nation swap
2026-07-16 19:08:26 +02:00
WinterSolstice8
c25653dd2e [core] [lua] Extend charvar to 64 characters, add size check msg 2026-07-16 11:05:31 -06:00
Kipling
f2cc43d096 Silk Caterpillar Despawn Fixes 2026-07-16 09:52:19 -07:00
Xaver-DaRed
3beb15e4be Make xi.mobskills.calculateDuration work like it claims it does 2026-07-16 18:34:15 +02:00
Xaver
8bd3c5e31e
Merge pull request #10732 from ThrisStraizo/smnmaatdmgtaken
[lua] Update SMN Maat's defenses
2026-07-16 17:38:28 +02:00
Xaver
1971699237
Merge pull request #10730 from ThrisStraizo/stickythreadduration
[lua] Update Sticky Thread TP scaling duration
2026-07-16 17:27:26 +02:00
Xaver
836a0d2d6a
Merge pull request #10733 from UmeboshiXI/Utsusemi_Message_Correction
[lua] Correct Utsusemi Effect Wear Message
2026-07-16 17:23:11 +02:00
Xaver
f3f7843dc1
Merge pull request #10734 from KiplingFFXI/Sandy-8-1-Audits
[lua, sql] San d'Oria Mission 8-1 Audits
2026-07-16 17:22:42 +02:00
Nobutadas
ec1160d230 [lua] Perform intro event on nation swap 2026-07-16 10:22:19 -05:00
Kipling
b44c56f9f3 Sandy 8-1 Audits 2026-07-16 02:19:55 -07:00
Umeboshi
c7fb2f3320 [lua] Correct Utsusemi Effect Wear Message 2026-07-15 22:56:25 -07:00
ThrisStraizo
8fd3720877 Update SMN Maat's defenses
This PR makes it so Maat takes half damage from everything and increases his defense to reflect the auto attack damage received.
2026-07-15 22:18:42 -07:00
ThrisStraizo
b93d7c0d10 Update Sticky Thread TP scaling duration
This PR updates sticky thread to use the same scaling as Sonic Boom.  At 1k, sticky thread's duration will always be exactly 3m.  This scales all the way to 3k, where the duration is 9m
2026-07-15 18:19:57 -07:00
Xaver
34a92a55ff
Merge pull request #10720 from Nobutadas/expeditionary-force-with-one-zone
[lua] Expeditionary Force - Award Influence
2026-07-16 01:50:47 +02:00
Xaver
cc767c0435
Merge pull request #10729 from Nobutadas/event-skipped-gates-toau
[lua] Event Audit: ToAU gates, Sandy 1-2, and THF AF3
2026-07-16 01:38:34 +02:00
Xaver-DaRed
9a1911f852 Delete empty onMobDeath functions with bad parameters 2026-07-16 00:56:53 +02:00
Xaver-DaRed
958b30275d Minor Garden of Ruhmet cleanup 2026-07-16 00:56:53 +02:00
Xaver
35568aa8b5
Merge pull request #10728 from ThrisStraizo/faustreadymsg
[lua] Give Despot 1ms Ready time for Ready Message
2026-07-16 00:56:38 +02:00
Xaver
5935a2ee38
Merge pull request #10725 from WinterSolstice8/south_gusta_qms
Clean up south gustaberg QMs, adjust campfire default action
2026-07-16 00:56:12 +02:00
Nobutadas
4e7bf67d10 [lua] Event Audit: ToAU gates, Sandy 1-2, and THF AF3 2026-07-15 17:54:12 -05:00
Xaver
caac54f426
Merge pull request #10727 from Xaver-DaRed/cop-8-2
[Fix] Add check for CoP 8-2 to disallow entering The garden of Ru'Hmet
2026-07-16 00:53:42 +02:00
WinterSolstice8
1cb7a7645f
Merge pull request #10721 from Xaver-DaRed/s
[Magic] Remove string penalty from song potency
2026-07-15 16:40:29 -06:00
Xaver
0a2825dc95
Merge pull request #10726 from WinterSolstice8/fstr_fix
[lua] Fix mob fstr lower bounds
2026-07-16 00:33:51 +02:00
ThrisStraizo
c9dd1b046e Give Despot 1ms Ready time for Ready Message
This PR gives Despot's subsequent Panzerfausts 1ms of ready time to accurately reflect retail's ready messaging.
2026-07-15 15:29:32 -07:00
Xaver-DaRed
6423f79910 Add check for CoP 8-2 to disallow entering The garden of Ru'Hmet 2026-07-16 00:22:34 +02:00
WinterSolstice8
2b09985334 [lua] fix mob ranged fSTR lower bounds 2026-07-15 16:04:03 -06:00
Xaver
f7a7b370f4
Merge pull request #10724 from Hatberg/ominous-cloud-enums
[lua] Ominous Cloud enums, add missing pouch luas
2026-07-15 23:59:27 +02:00
WinterSolstice8
abb0bd807b [lua] Fix mob fstr lower bounds 2026-07-15 15:55:17 -06:00
Xaver
f11395c345
Merge pull request #10723 from WinterSolstice8/appraisal_fix
[lua] Appraisal: Don't lock items unless they will actually be taken
2026-07-15 23:51:40 +02:00
Xaver
d7355dbd64
Merge pull request #10722 from WinterSolstice8/blu_quest_tradehas_bs
[lua] Adjust BLU quest tradehas order to not lock item accidentally
2026-07-15 23:46:40 +02:00
WinterSolstice8
ee562f1c7c [lua] Adjust campfire default action to match retail in sgusta 2026-07-15 15:41:46 -06:00
WinterSolstice8
694cd7925b [sql] Adjust South Gustaberg QMs to match retail
qm1 = Bubbly Bernie
qm2 = Galkan Sausage campfire

The rest are out of bounds ???s or perma-despawned ones that might be for events.
2026-07-15 15:41:46 -06:00
Xaver
7b89225165
Merge pull request #10719 from WinterSolstice8/sunsand
[lua] Change Sunsand must zone check to ~= 0
2026-07-15 23:23:49 +02:00
Hatberg
14b9e50805 [lua] Ominous Cloud enums, add missing pouch luas 2026-07-15 23:22:38 +02:00
WinterSolstice8
c59df6142a [lua] Appraisal: Don't lock items unless they will actually be taken 2026-07-15 15:09:18 -06:00
Nobutadas
b6915cb5ff [lua] Expeditionary Force - Award Influence 2026-07-15 15:53:56 -05:00
Xaver-DaRed
d03ad7b9f3 Remove string penalty from song potency 2026-07-15 22:53:35 +02:00
Xaver
ec73fd02d7
Merge pull request #10718 from WinterSolstice8/add_10th_point_morion_worm
[lua] Add missing 10th point to Morion Worm QM
2026-07-15 22:37:19 +02:00
WinterSolstice8
8076914c5a [lua] Adjust BLU quest tradehas order to not lock item accidentally 2026-07-15 14:16:30 -06:00
WinterSolstice8
43c2a77f42 [lua] Change Sunsand must zone check to ~= 0 2026-07-15 14:11:41 -06:00
WinterSolstice8
4b6a2577ab [lua] Add missing 10th point to Morion Worm QM 2026-07-15 14:06:39 -06:00
Xaver
2b8fc21d26
Merge pull request #10715 from KiplingFFXI/Faust-Aggro-Fix
[lua] Faust Aggro Fixes
2026-07-15 21:51:46 +02:00
Kipling
4685cb369b Faust Aggro Fixes 2026-07-15 12:17:50 -07:00
Eliroo
0f32dd99aa Correct Killer Effects on Items 2026-07-15 14:16:54 -05:00
Xaver-DaRed
1c4b1d2906 Remove Server Variable usage from Awaerns and Ixaern 2026-07-15 13:21:53 +02:00
Xaver
b7cf888227
Merge pull request #10664 from Skold177/KS99-Wyrm-No-Miss
[lua] Fix KS99 Wyrm Remove All Miss on Spawn
2026-07-15 12:57:50 +02:00
Xaver
4a547799bb
Merge pull request #10709 from SpencerSteed/fix/chi-blast-boost-multiplier
[lua] Fix Chi Blast Boost multiplier
2026-07-15 12:56:59 +02:00
Xaver
abc58c3784
Merge pull request #10713 from KiplingFFXI/Remove-Castle-Zvahl-Baileys-Music
[sql] Remove Castle Zvahl Baileys Music
2026-07-15 12:56:07 +02:00
Kipling
92b8c80020 Remove Castle Zvahl Baileys Music 2026-07-15 00:32:29 -07:00
Xaver
538ae51a38
Merge pull request #10712 from KiplingFFXI/Pirates-Music
[lua] Add Music to Pirates
2026-07-15 09:24:13 +02:00
Spencer Steed
710cb5faec [lua] Fix Chi Blast Boost multiplier
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 08:17:08 +02:00
Kipling
8c8d4bd08c Add Music to Pirates 2026-07-14 23:14:14 -07:00
Xaver
f162dd1abb
Merge pull request #10711 from KiplingFFXI/ZM4-Audits
[lua, sql] ZM4 Fixes and Audits
2026-07-15 08:10:26 +02:00
Xaver
7ab3825a49
Merge pull request #10710 from UmeboshiXI/Utsusemi_Knockback_Fix
[core] Allow Blink/Utsusemi to negate knockback
2026-07-15 07:59:28 +02:00
Xaver
1796bd6255
Merge pull request #10706 from ThrisStraizo/suzyres
[sql] [lua] Audit Suzaku res
2026-07-15 07:54:21 +02:00
ThrisStraizo
cb20325964 Audit Suzaku res
This PR removes bullshit res ranks that don't exist on Suzaku and adds Bind res rank 10 and adjusts silence to rank 10.
2026-07-14 22:29:13 -07:00
Kipling
3edc447413 ZM4 Fixes and Audits 2026-07-14 20:59:53 -07:00
Umeboshi
75dc4a99a8 [core] Allow Blink/Utsusemi to negate knockback 2026-07-14 19:23:05 -07:00
Xaver
fb3b50bb7f
Merge pull request #10708 from Xaver-DaRed/tele
Fix teleport spells
2026-07-15 02:41:38 +02:00
Xaver-DaRed
2afa9aa4b6 Fix teleport spells 2026-07-15 02:13:13 +02:00
Xaver
a7f65d33c2
Merge pull request #10705 from WinterSolstice8/kill_targetlines_setting
[core] Add setting to hide readies target id
2026-07-15 01:56:31 +02:00
Xaver-DaRed
ea9b68dfbf Various item blocking fixes 2026-07-15 01:29:59 +02:00
WinterSolstice8
89720a8900 [core] Add setting to hide readies target id 2026-07-14 14:41:18 -06:00
Xaver
4ff91ad25a
Merge pull request #10703 from Skold177/Change-Pet-getMobHP()-to-int32
[c++] Change Pet getMobHP() to int32
2026-07-14 21:50:48 +02:00
Skold177
b24f30f1d4 Change Pet getMobHP() to int32
Changes getMobHP() to int32 so that hp is accurately returned
2026-07-14 15:04:06 -04:00
Xaver
95ff516e2f
Merge pull request #10701 from Skold177/Content-Tags
[sql] Add Content Tags, Fix Apex Drifer Mob Groups
2026-07-14 19:40:29 +02:00
Xaver
60198381e9
Merge pull request #10700 from Skold177/Harden-Promy-Vahzl-Boss-Engage
[lua] Harden Promy-Vahzl boss engage logic
2026-07-14 19:18:53 +02:00
Xaver
a5ff970ac2
Merge pull request #10699 from WinterSolstice8/store_tp_merits
[lua] Add in store tp merit to tp return calc
2026-07-14 19:03:55 +02:00
Skold177
c8e204cb2e Add Content Tags, Fix Apex Drifer Mob Group
Adds content tags to various NPCs/NMs and fixes the mob group for Apex mobs.
2026-07-14 12:46:45 -04:00
WinterSolstice8
5b4079d940 [lua] Add in store tp merit to tp return calcs 2026-07-14 18:34:39 +02:00
Skold
233c459d95 Fix KS99 Wyrm No Miss
Removes No Miss Effect on Spawn
2026-07-14 12:11:34 -04:00
Skold177
8d194cb073 Harden Promy Vahzl Boss Engage
Adds a check in death to make sure it fires if the target is killed instantly.
2026-07-14 11:47:04 -04:00
Xaver
5390474f67
Merge pull request #10698 from Skold177/Fix-Ark-Angel-MR
[lua] Add guard to Ark Angel MR Pet summoning
2026-07-14 17:43:29 +02:00
Xaver
0ec8235c9f
Merge pull request #10697 from sruon/more_qm_fixes
[lua, sql] Fix Den of Rancor QMs. Add Goblin Footprint in RuAun
2026-07-14 17:33:07 +02:00
Xaver
6d91ce0ded
Merge pull request #10695 from sruon/double_job_fix
[core] Tighten job change checks
2026-07-14 17:27:42 +02:00
Xaver
ca572acc27
Merge pull request #10696 from WinterSolstice8/alwaysrelevant_npc_fix
[core] Skip grid check on UpdateEntityPacket for always relevant npc
2026-07-14 17:23:52 +02:00
Skold177
5f527fe6a4 Fix Ark Angel MR Pet Respawn
Makes it so she cannot summon another pet if current one is alive
2026-07-14 11:10:57 -04:00
sruon
f6cdfdca25 Fix Den of Rancor QMs 2026-07-14 09:03:47 -06:00
sruon
8bcd3b16ee Add Goblin Footprint in RuAun 2026-07-14 09:03:47 -06:00
Xaver
166c884c32
Merge pull request #10694 from Nobutadas/eco-warrior-garrison-xp-fix
[lua] Restrict xp in Eco-Warrior and Garrison
2026-07-14 16:48:03 +02:00
WinterSolstice8
b4ddbea641 [core] Skip grid check on UpdateEntityPacket for always relevant npc 2026-07-14 08:07:33 -06:00
sruon
8b640c8829 Tighten job change checks 2026-07-14 07:46:41 -06:00
Xaver
2eb63e480a
Merge pull request #10684 from sruon/di_culling
[core, lua, sql, yaml] Fence render culling; Domain Invasion POC
2026-07-14 15:19:21 +02:00
Nobutadas
dfa6718450 [lua] Restrict xp in Eco-Warrior and Garrison 2026-07-14 08:18:11 -05:00
Xaver
aad3026a31
Add Final Roll to Pulling the Strings (#10688)
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-14 15:01:34 +02:00
Xaver
ae2c2adb8c
Merge pull request #10690 from Skold177/Fix-SMN-Blood-Pact-TP-Consumption
[lua] [sql] Fix SMN BP TP Consumption
2026-07-14 14:51:28 +02:00
UmeboshiXI
d311881879
MNK/PUP Mob Weapon Delay Audits (#10693)
* [sql] Bugbear Delay Audit

* [sql] Gigas Delay Audit

* [sql] Orc Delay Audit

* [sql] Sahagin MNK Delay Audit

* [sql] Tauri Delay Audit

* [sql] Troll MNK/PUP Delay Audit

* [sql] Mandragora Delay Audit

* [sql] Apkallu Delay Audit

* [sql] Fomor/Shade MNK Delay Audit
2026-07-14 14:45:36 +02:00
Skold
b89977cdc1 Add Final Roll to Pulling the Strings
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-14 14:26:38 +02:00
sruon
d38fa1454f Fence rendering culling; Domain Invasion POC 2026-07-14 13:41:43 +02:00
Xaver
0a3f2e3390
Merge pull request #10683 from Aeshur/fix-elevator-name
[chore] Restore Ra'Kaznar elevator retail names
2026-07-14 13:35:55 +02:00
Xaver
88b2f96076
Merge pull request #10686 from sruon/rental_no_zone
[core] Deny zoning with rental chocobo to non-riding zones
2026-07-14 13:35:13 +02:00
Xaver
63b2c41207
Merge pull request #10687 from sruon/modules_yaml
[core, yaml] Rename ZoneMisc::AuctionHouse
2026-07-14 13:34:05 +02:00
Xaver
526aaabab1
Merge pull request #10692 from KiplingFFXI/Mamool-Ja's-Lizard-(Mamook)-Fix
[sql] Mamool Ja's Lizard (Mamook) Fix
2026-07-14 13:33:27 +02:00
Xaver
ed59c7aa1b
Merge pull request #10691 from KiplingFFXI/Sandy-7-1-and-7-2-Audits
[lua, sql] Sandy Mission 7-1 and 7-2 Audits
2026-07-14 13:29:38 +02:00
Xaver
99270513b2
Merge pull request #10689 from sruon/npc_sell_prices_2
[lua] Adjust guild stocks
2026-07-14 13:28:03 +02:00
Xaver
1ec261db89
Merge pull request #10682 from Xaver-DaRed/excalibur
[Combat] Rename `isRanged` to `ignoreEnSpell` and apply to Excalibur
2026-07-14 13:27:28 +02:00
Kipling
633cd2488f Mamool Ja's Lizard Fix 2026-07-14 00:16:49 -07:00
Kipling
db37e3d4ca Sandy 7-1 and 7-2 Audits 2026-07-13 23:24:31 -07:00
Skold177
6c642ed975 Fix SMN BP TP Consumption
Fixes SMN BP TP Consumption
2026-07-14 02:10:53 -04:00
sruon
a50872d468 Rename ZoneMisc::AuctionHouse 2026-07-13 23:58:58 -06:00
sruon
dad9c143f5 Adjust guild stocks 2026-07-13 23:55:55 -06:00
sruon
4c14424658 Deny zoning with rental chocobo to non-riding zones 2026-07-13 23:02:38 -06:00
Aeshur
d6a7795a21 [chore] Restore Ra'Kaznar elevator retail names 2026-07-13 21:07:11 -04:00
Xaver
8288c74708
Merge pull request #10681 from sruon/win_92_cs_params
[core] Don't block REQSUBMAPNUM during CS
2026-07-14 02:16:17 +02:00
Xaver
83510e9e81
Merge pull request #10679 from WinterSolstice8/update_weapon_reset
[core] change resetDelay to use setDelay of base delay
2026-07-14 02:13:49 +02:00
Xaver
c9f2cef286
Merge pull request #10677 from Nobutadas/expeditionary-force-mob-models-skills-audit
[sql] Update Expeditionary Force models and skills
2026-07-14 01:51:12 +02:00
Xaver
392f244f4c
Merge pull request #10680 from Hatberg/fomor-party-onmobinit
[lua] Move fomorParty superlink to onMobInit
2026-07-14 01:45:01 +02:00
Xaver-DaRed
d37bea4ccd Damaging AEs: Rename isRanged to ignoreEnSpell & apply to Excalibur 2026-07-14 01:25:41 +02:00
Nobutadas
955f48f7c6 [sql] Update Expeditionary Force models and skills 2026-07-13 18:23:37 -05:00
sruon
2976131650 Do not block REQSUBMAPNUM while in CS 2026-07-13 17:21:29 -06:00
sruon
e531c00c3c Correct flags for Windurst 9-2 final CS in Walls 2026-07-13 17:21:15 -06:00
WinterSolstice8
a0ad89b54b
Merge pull request #10669 from Xaver-DaRed/getfirstid
[Chore] Convert some raw entity IDs to GetFirstID() methods
2026-07-13 17:11:31 -06:00
WinterSolstice8
0dfda321ca [core] change resetDelay to use setDelay of base delay 2026-07-13 17:07:24 -06:00
Hatberg
1600c6ba9e [lua] Move fomorParty superlink to onMobInit 2026-07-14 00:56:31 +02:00
Xaver
2f8dc79983
Merge pull request #10675 from sruon/khaf_shop
[lua, sql] Khaf Jhifanm shop accounts for Astral Candescence
2026-07-13 23:07:48 +02:00
Xaver
de09f9ff88
Merge pull request #10676 from Nobutadas/Exp-force-zone-and-mobs
[lua][sql] Create Expeditionary Force mobs and enable zones
2026-07-13 22:23:04 +02:00
Nobutadas
65d535d363 [lua][sql] Create Expeditionary Force mobs and enable zones
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-13 14:51:06 -05:00
sruon
ca810e6ab2 Khaf Jhifanm shop accounts for Candescence 2026-07-13 11:36:34 -06:00
Xaver
420af48f25
Merge pull request #10673 from Skold177/Convert-Call-of-the-Wildcat-to-IF
[lua] Convert Lure of the Wildcat to IF
2026-07-13 18:42:36 +02:00
Xaver
8d51560d84
Merge pull request #10672 from KiplingFFXI/Sandy-6-2-Audits
[lua, sql] San d'Oria Mission 6-2 Audits
2026-07-13 17:56:07 +02:00
Skold177
29ffa41366 Convert Call of the Wildcat to IF
Converts the remaining two cities to IF
2026-07-13 11:32:35 -04:00
Kipling
2ead23a552 Sandy 6-2 Audits 2026-07-13 08:22:20 -07:00
Xaver-DaRed
0164ed8eb2 Convert some raw entity IDs to GetFirstID() methods 2026-07-13 15:40:46 +02:00
Xaver
6c69480348
Merge pull request #10510 from Nobutadas/expeditionary-force-battle-logic
[lua] Expeditionary Force Battle Logic
2026-07-13 14:53:34 +02:00
Nobutadas
93b014fa90 [lua] Expeditionary Force Battle Logic
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-13 13:59:16 +02:00
Xaver
b548d95698
Merge pull request #10666 from ThrisStraizo/grahjob
[sql] Update Ghrahs to war main blm sub
2026-07-13 13:45:34 +02:00
ThrisStraizo
952f91f83f Update Ghrahs to war main blm sub
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-13 12:46:30 +02:00
Xaver
305f0bc3fa
Merge pull request #10661 from Nobutadas/ranger-quest-time
[lua] RNG quest: Kill tiger in the correct amount of time
2026-07-13 12:43:59 +02:00
Xaver
efe06ee87f
Merge pull request #10659 from SpencerSteed/fix/typed-stoneskin-rampart
[core, lua] Fix Rampart Magic Shield absorbing physical damage
2026-07-13 12:05:09 +02:00
Xaver
3a72ef5294
Merge pull request #10665 from Skold177/Fix-Meikyo-Shisui-WS-TP-return
[lua] Remove Extra Hits TP from Meikyo Shisui
2026-07-13 11:28:44 +02:00
Xaver
273a84dbca
Merge pull request #10663 from Skold177/Royall-Jelly-Bugfix
[lua] Fix Queen Jelly Spawn HP
2026-07-13 11:08:48 +02:00
Xaver
7171b4a781
Merge pull request #10662 from ThrisStraizo/bunbunjobs
[sql] Update normal rabbits to be warriors
2026-07-13 11:07:42 +02:00
Xaver
6cf9b9259a
Merge pull request #10655 from Skold177/Add-Settings-for-Mog-House-options
[C++] [lua] Add settings for Mog House options
2026-07-13 11:06:58 +02:00
Xaver
b6fc7b3fc0
Merge pull request #10648 from Nobutadas/event-flag-hidden
[C++] Add hidden option for event
2026-07-13 11:05:36 +02:00
Xaver
4529c2c8fb
Merge pull request #10643 from Skold177/Fix-Maidens-Virelai
[C++] [lua] Fix Maidens Virelai
2026-07-13 11:04:58 +02:00
Xaver
1f1045c763
Merge pull request #10667 from sruon/bos_trap_doors
[lua] Enable Bostaunieux trap doors
2026-07-13 11:00:34 +02:00
sruon
bb07bae2b0 Enable Bostaunieux trap doors
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-07-13 02:05:50 -06:00
Skold
0eedb73ce7 Remove Extra Hits TP from Meikyo Shisui
Makes it so TP Returned = 0.
2026-07-13 01:06:04 -04:00
Skold
8d9b1f9537 Fix Queen Jelly HP
Makes it so she spawns with missing HP
2026-07-13 00:21:14 -04:00
Skold
c08fbb3d9e Add settings to Mog House settings
Adds a setting for Mog House 2F and Mog Garden
2026-07-13 00:13:30 -04:00
ThrisStraizo
6d56c36370 Update normal rabbits to be warriors
Bunnies being thfs is the exception, not the rule.

What in the hell was going on there?
2026-07-12 21:01:40 -07:00
Xaver
33471f0695
Merge pull request #10658 from WinterSolstice8/te_timer
[core] Reduce Third Eye merit recast reduction by half with Seigan
2026-07-13 04:36:14 +02:00
Nobutadas
159a3576f8 [lua] Kill tiger in the correct amount of time 2026-07-12 21:02:34 -05:00
Xaver
7784dc802e
Merge pull request #10656 from WinterSolstice8/get_unkillable
[core] [lua] add getUnkillable to lua bindings
2026-07-13 03:23:25 +02:00
Spencer Steed
6695a94e32 Fix Rampart Magic Shield absorbing physical damage.
Honor existing stoneskin subType 1/2 used by frozen_mist, hydro_wave, and
Rampart. Skip absorption only when attack type is known incompatible.
Refs #9665.
2026-07-12 20:21:45 -05:00
Xaver
fe46dc06ad
Merge pull request #10657 from ThrisStraizo/somestealitemadjusts
[sql] Update some bunnies to have stealable meat
2026-07-13 03:10:32 +02:00
WinterSolstice8
e3b014a206 [core] Reduce Third Eye merit recast reduction by half with Seigan 2026-07-12 18:55:10 -06:00
Xaver
f01acbe70a
Merge pull request #10652 from WinterSolstice8/delay_junk
[core] Don't do silly calculations for no reason for base delay
2026-07-13 02:53:22 +02:00
Xaver
9f36def60c
Merge pull request #10654 from WinterSolstice8/spell_interrupt
[core] Adjust magic state interrupt
2026-07-13 02:46:06 +02:00
ThrisStraizo
4e9c03205c Update some bunnies to have stealable meat
This PR adjusts some bun buns to steal their bun buns.
2026-07-12 17:38:41 -07:00
Skold
f0db19a151 Fix Maidens Virelai
Fixes Maidens Virelai not charming mobs correctly and also adds assist behavior.
2026-07-12 20:32:55 -04:00
WinterSolstice8
1efae911cf [core] [lua] add getUnkillable to lua bindings 2026-07-12 18:28:01 -06:00
Xaver
87ee4d098f
Merge pull request #10653 from ThrisStraizo/mnkmaataccadjust
[lua] Adjust Maat Mnk's accuracy
2026-07-13 02:27:33 +02:00
WinterSolstice8
ce22567821
Merge pull request #10651 from ThrisStraizo/cccadjust
[lua] Gil adjustment for Cargo Crab Colin
2026-07-12 18:22:27 -06:00
WinterSolstice8
cbf05f3163 [core] Don't do silly calculations for no reason for base delay 2026-07-12 18:16:59 -06:00
WinterSolstice8
9fc7761ff8 [core] Adjust magic state interrupt
Stun should interrupt non-song at the end of a cast.
Stun should interrupt songs only if stunned at the end of a cast.
2026-07-12 17:55:47 -06:00
ThrisStraizo
1536315932 Adjust Maat Mnk's accuracy
This PR adjusts Maat Mnk's accuracy to observed levels and should give players the fighting chance they need.
2026-07-12 16:54:13 -07:00
Xaver
9fdd4347bc
Merge pull request #10650 from sruon/vos_qms
[lua, sql] Fix Valley of Sorrows QMs
2026-07-13 01:37:46 +02:00
ThrisStraizo
5cb594e512 Gil adjustment for Cargo Crab Colin
This PR fixes a mistake I made 10 months ago.
2026-07-12 15:43:50 -07:00
sruon
cbbf0f2121 Fix Valley of Sorrows QMs 2026-07-12 16:25:56 -06:00
Xaver
dd76cf94aa
Merge pull request #10649 from Skold177/Add-Bind-to-Mountain-Buster
[lua] Add Bind Effect to Mountain Buster
2026-07-12 23:43:35 +02:00
Skold
c3d3d8fe1b Add Bind to Mountain Buster
Adds a 13-60 seconds Bind to Mountain Buster
2026-07-12 17:16:33 -04:00
Xaver
e2c054fdd1
Merge pull request #10647 from Nobutadas/teleport-do-not-while-chocobo
[lua] Block teleports while mounted
2026-07-12 21:08:05 +02:00
Nobutadas
7c0540d90d [lua] Block teleports while mounted
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-12 20:37:36 +02:00
Xaver
0d18ae3024
Merge pull request #10631 from ThrisStraizo/bstmaatpetfix
[lua] Rewrite freshly summoned pet logic's return pos
2026-07-12 19:20:38 +02:00
ThrisStraizo
eb8aad55b6 Rewrite freshly summoned pet logic's return pos
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-12 18:52:45 +02:00
Nobutadas
9bb70605eb [cpp] Add hidden option for event 2026-07-12 11:08:09 -05:00
Xaver
e17930bd9b
Merge pull request #10638 from whiskeyhughes/fix-bringplayer-homepoint
[ipc] Fix bringPlayer sending target to Home Point instead of specified location
2026-07-12 14:58:10 +02:00
Xaver
6f4d18e48a
Merge pull request #10645 from Hatberg/mom-signpost-fixes
[lua] Fix quest getMustZone, Bastok Mom quests, Konschtat signposts
2026-07-12 12:52:36 +02:00
Joshua Hughes
7f92e6bdee Fix player transport sending target to HP instead of location
handleMessage_SendPlayerToLocation (used when the target is on a different zone-server instance than the caller) always sent the target to their Home Point instead of the caller's location, ignoring the destination coordinates entirely. Only reproducible in a multi-instance setup (multiple xi_map processes). Same-instance transport was unaffected, since it goes through a different code path (setPos()) that already used the correct flag.
2026-07-12 12:36:03 +02:00
Xaver
ba71ff8044
Merge pull request #10640 from ThrisStraizo/oztrojatrapdoor
[lua] Fix Oztroja trap door timing
2026-07-12 12:34:55 +02:00
Xaver
ee1495ea21
Merge pull request #10641 from Skold177/Fix-Windurst-6-1-Cardians-Linking
[sql] Fix Windurst 6-1 Cardians linking
2026-07-12 12:34:01 +02:00
Xaver
365f86d7d3
Merge pull request #10637 from Skold177/Fix-Caster-Check-in-mobUtils
[C++] Fix caster check in mob utils
2026-07-12 12:33:32 +02:00
Xaver
185565a35a
Merge pull request #10639 from sruon/yaml_entity_npc_enums
[core, yaml] Port SkillType / Detects / NameVis / EntityFlags to YAML
2026-07-12 12:32:29 +02:00
Xaver
f15b3aa279
Merge pull request #10635 from Skold177/Fix-Automaton-Healing
[lua] Fix Automaton Healing Calculations
2026-07-12 12:31:50 +02:00
Xaver
e6ba83d48c
Merge pull request #10642 from sruon/hagakoff
[lua] Require Astral Candescence for certain shop items; Hagakoff shop
2026-07-12 12:29:19 +02:00
Xaver-DaRed
5b59cfc2ff Rewrite "Mom the adventurer" and cleanup associated module 2026-07-12 12:23:51 +02:00
Xaver
6efe0c2d79
Merge pull request #10646 from sruon/shops_tweaks
[lua] Tweak Curry Powder and Sabiki Rig guild shop prices
2026-07-12 11:42:27 +02:00
Hatberg
2c729a3bde [lua] Fix quest getMustZone, Bastok Mom quests, Konschtat signposts 2026-07-12 11:06:30 +02:00
sruon
dc07afb62e Tweak Curry Powder and Sabiki Rig guild shop prices 2026-07-12 02:32:17 -06:00
sruon
58e2ef896e Port SkillType to YAML based enum 2026-07-11 23:38:31 -06:00
sruon
18d662bd7a Reorder Hagakoff shop and check for Candescence 2026-07-11 23:17:11 -06:00
sruon
f45a5b901e Require Astral Cadescence for certain shop items 2026-07-11 23:16:41 -06:00
Skold
29bdb5342f Fix Windurst 6-1 Cardians linking
Adds linking to the 6-1 Cardians
2026-07-12 00:56:09 -04:00
Xaver
3edc17c215
Merge pull request #10636 from Skold177/Fix-7-2-Orc-Wyvern
[sql] Fix 7-2 Orcs Wyvern
2026-07-12 06:54:28 +02:00
ThrisStraizo
c089626913 Fix Oztroja trap door timing
This PR fixes the timing of the trap door in Castle Oztroja
2026-07-11 21:46:38 -07:00
Skold
605f295f8a Fix caster check in mob utils
Adds bard to the check
2026-07-12 00:12:37 -04:00
Xaver
ba0d77fff9
Merge pull request #10633 from Nobutadas/Chocobo-sound-fix
[lua] Remove city chocobo sound on event
2026-07-12 06:09:54 +02:00
Xaver
ac2105a344
Merge pull request #10632 from CriticalXI/vendor_era_audit
[lua][module] Adds modules to rework many vendor stocks
2026-07-12 06:05:08 +02:00
Xaver
12658f3429
Merge pull request #10634 from ThrisStraizo/ninleechesaggro
[lua] Force Nin unlock leeches to aggro/claim on spawn
2026-07-12 06:01:06 +02:00
Skold
bf441f5253 Fix 7-2 Orcs Wyvern
Keeps it from casting spells
2026-07-11 23:52:39 -04:00
sruon
9eb69b546c Remove unused CNpcEntity::hpHidden 2026-07-11 21:41:00 -06:00
sruon
f492c0b74c Port Detects to YAML based enum 2026-07-11 21:41:00 -06:00
ThrisStraizo
ffb1ec6e60 Force Nin unlock leeches to aggro/claim on spawn
This PR makes the leeches from the NIN unlock quest to forcibly aggro/claim.
2026-07-11 20:32:07 -07:00
Skold
55014f2d0b Fix Automaton Healing Calculations
Fixes the healing calculations for automatons
2026-07-11 23:32:02 -04:00
Nobutadas
6223d51e06 [lua] Remove city chocobo sound on event 2026-07-11 22:24:48 -05:00
Critical
263a707e31 [lua][module] Adds modules to rework many vendor stocks 2026-07-11 21:10:30 -06:00
Xaver
cce3be6b6f
Merge pull request #10630 from ThrisStraizo/earlybirdki
[lua] Delete KIs at the correct prog for Early Bird Catches the Bookworm
2026-07-12 04:33:17 +02:00
sruon
e9af421f99 Port NameVis and EntityFlags to YAML based enums 2026-07-11 20:16:44 -06:00
ThrisStraizo
e5558d59bd Delete KIs at the correct prog for Early Bird Catches the Bookworm
This PR correctly deletes KIs for the correct progs for Early Bird Catches the Bookworm.
2026-07-11 19:06:44 -07:00
Xaver
5860513aaa
Merge pull request #10626 from Xaver-DaRed/quest
[Interaction] Rewrite "A flash in the pan" and other minor fixes
2026-07-12 04:04:48 +02:00
Xaver
bf52e62ad3
Merge pull request #10627 from sruon/qm_fixes
[sql] Fix Alzadaal QMs
2026-07-12 03:24:25 +02:00
Xaver
7ad150622a
Merge pull request #10538 from Hatberg/promyvion-vahzl-link-aggro
[sql] Promyvion-Vahzl link/aggro audit
2026-07-12 03:14:25 +02:00
Xaver
9ccb1be4a2
Merge pull request #10586 from SpencerSteed/fix/merit-recast-toau-era
[lua, sql][module] Fix ToAU/era merit ability recast bugs
2026-07-12 03:12:05 +02:00
Xaver-DaRed
b2cd6f79e9 Rewrite "A flash in the pan" and other minor fixes 2026-07-12 03:05:13 +02:00
Xaver
02d2c802e2
Merge pull request #10622 from Skold177/Content-Tags
[sql] Additional NPC Content Tags
2026-07-12 02:59:32 +02:00
Xaver
943c66a2a2
Merge pull request #10628 from ThrisStraizo/valorandhonorpos
[sql] Valor and Honor spawn point
2026-07-12 02:58:23 +02:00
Xaver
bff09d984f
Merge pull request #10629 from ThrisStraizo/beachpugilaggro
[sql] Make Beach Pugils not link
2026-07-12 02:47:03 +02:00
sruon
b2924f950b Bump NPC script name column to 64 chars 2026-07-11 18:34:02 -06:00
Skold
022a51cdfa Content Tags
Adds Content Tags to various NPCs

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-07-11 20:32:17 -04:00
ThrisStraizo
7e7aa2d57b Make Beach Pugils not link
As it turns out, beach pugils shouldn't link.
2026-07-11 17:19:37 -07:00
sruon
1f0ab1815b Fix Wajaom NPC stray position 2026-07-11 18:18:41 -06:00
Xaver
b22190ce1f
Merge pull request #10625 from Skold177/Superlink-BCNMs
[lua] Add Superlink to Kindred Spirits
2026-07-12 02:07:41 +02:00
ThrisStraizo
c1e9145136 Valor and Honor spawn point
Make Valor and Honor spawn in water as Tanaka intended
2026-07-11 17:02:16 -07:00
Xaver
015fca4c1b
Merge pull request #10623 from Skold177/PUP-Module-Attachment-Fixes
[lua] PUP Era Module Bug Fixes
2026-07-12 01:54:44 +02:00
Xaver
701c50380a
Merge pull request #10620 from Aeshur/rakaznar-transit-devices
[lua] Add Ra'Kaznar elevators
2026-07-12 01:54:10 +02:00
Xaver
a8d7283ba3
Merge pull request #10624 from sruon/gs_tweaks
[lua, sql] Guild Shops tweaks
2026-07-12 01:53:03 +02:00
sruon
56d2e7bc07 Fix Alzadaal QMs 2026-07-11 17:51:21 -06:00
Skold
f9d8828dbe Add Superlink to Kindred Spirits
Adds Superlink to Kindred Spirits
2026-07-11 18:38:24 -04:00
sruon
0129055a23 Enable Hocho in guild shops 2026-07-11 16:21:09 -06:00
sruon
c1b430a99f Tweak fishing guild shops 2026-07-11 16:21:09 -06:00
sruon
1109fe03ba Tweak Wahnid guild shop restocks 2026-07-11 16:21:09 -06:00
sruon
cb35499538 Tweak Bornahn supply 2026-07-11 16:19:34 -06:00
Skold
4aadfe2ddb PUP Era Module Bug Fixes
Reduces the Ranged Attack Cooldown Reduction of Drum Magazine. Prevents Economizer from activating without Dark Manuevers.
2026-07-11 18:07:58 -04:00
Aeshur
14bcb059c9 [lua] Add Ra'Kaznar elevators 2026-07-11 17:36:24 -04:00
montijin
e06e433097
Fix the base sell values of 11 more items. (#10621)
* Fix more BaseSell Values

* Fix typo in item_basic.sql price correction
2026-07-11 21:26:48 +00:00
Xaver
8c85f08622
Merge pull request #10619 from sruon/yaml_zone_mob_enums
[core, yaml] Migrate SPAWNTYPE/BEHAVIOR/ROAMFLAG/IMMUNITY/ZONETYPE/ZONEMISC enums to YAML
2026-07-11 22:16:08 +02:00
Xaver
ff8c24ca2e
Merge pull request #10615 from Nobutadas/cutscene-drop-emnity-scent
[C++] Set scent tracking mobs to deaggro on m_Locked
2026-07-11 21:02:10 +02:00
sruon
fd48af3475 Move enum_traits.h to common for cross-module enum use 2026-07-11 12:56:51 -06:00
Xaver
cc80235e8d
Merge pull request #10612 from Xaver-DaRed/Porphyrion
Document Upper Delkfutts Tower Key ??? npc
2026-07-11 20:33:01 +02:00
Xaver
bb24ba0fb6
Merge pull request #10610 from Xaver-DaRed/Konchtat-qms
[Fix] Audit Konchtat Highlands ??? npcs
2026-07-11 20:32:42 +02:00
Xaver
8bb60cb235
Merge pull request #10617 from console08/patch-1
Fix Tutorial Quest Step 10 Copper A.M.A.N. Voucher reward
2026-07-11 19:52:32 +02:00
Xaver
32aa504e2b
Merge pull request #10618 from Frankie-hz/posfixe
[sql] Fixes a few mobs stuck in huts inside Maze of Shakhrami
2026-07-11 19:50:37 +02:00
Frankie-hz
699d97010e [sql] Maze of Shakhrami position fixes 2026-07-11 12:40:10 -04:00
console08
e9eca07d85
Fix Tutorial Quest Step 10 Copper A.M.A.N. Voucher reward 2026-07-11 08:24:58 -07:00
Xaver
47063b98e1
Merge pull request #10614 from Nobutadas/Phuabo-can-rengage-after-dive
[lua] Phuabo AI breaks in disengage
2026-07-11 16:59:04 +02:00
Xaver
d7c55ababa
Merge pull request #10616 from Nobutadas/windurst-2-2-fail-breaks-2-3-cutscene
[lua] Reset mission status for failed Windurst 2-2
2026-07-11 16:44:50 +02:00
Nobutadas
c0a29c8b82 [lua] Fix bug in Phuabo deaggro 2026-07-11 09:06:35 -05:00
Nobutadas
8178fcb358 [lua] Reset mission status of failed Windurst 2-2 2026-07-11 08:49:28 -05:00
Nobutadas
42fdeed3aa [C++] Set all mobs to deaggro on m_Locked 2026-07-11 08:07:20 -05:00
Xaver
72884e46b7
Merge pull request #10613 from Xaver-DaRed/missing-param
[Fix] Add back missing parameter to status AEs deleted on accident
2026-07-11 14:14:16 +02:00
Xaver-DaRed
29587c0c6b Add back missing parameter to status AEs deleted on accident 2026-07-11 13:39:20 +02:00
Xaver-DaRed
59091656d2 Document Upper Delkfutts Tower Key ??? npc 2026-07-11 13:24:20 +02:00
Xaver-DaRed
19859722be Audit Konchtat Highlands ??? npcs and associated quests
Co-Authored-By: Hatberg <Hatberg@users.noreply.github.com>
2026-07-11 13:00:45 +02:00
Xaver
fa9cfec718
Merge pull request #10609 from Aeshur/rala-sluice-gates
[lua] Add Rala Waterways sluice gate handlers
2026-07-11 12:45:52 +02:00
Xaver
27d92620cf
Merge pull request #10575 from Skold177/Fix-Early-Bird-Catches-the-Wyrm
[lua] Fix Wyrm Draw-in Location
2026-07-11 12:38:47 +02:00
sruon
2f21b285f2 Port ZoneMisc to YAML based enum 2026-07-11 02:59:18 -06:00
sruon
1e3fcf944b Port ZoneType to YAML based enum 2026-07-11 02:48:57 -06:00
sruon
7371778b01 Port Immunity to YAML based enum 2026-07-11 02:41:03 -06:00
sruon
0d787f284a Port RoamFlag to YAML based enum 2026-07-11 02:23:21 -06:00
sruon
9757ca7525 Port Behavior to YAML based enum 2026-07-11 02:23:21 -06:00
sruon
0a6004fd61 Port Weather and SpawnType to YAML based enums 2026-07-11 01:45:50 -06:00
Xaver
8c5864634d
Merge pull request #10608 from ThrisStraizo/angrycrabs
[lua] Update Knight Crabs and KA to always Aggro
2026-07-11 09:42:08 +02:00
ThrisStraizo
23188affbe Update Knight Crabs and KA to always Aggro
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-11 09:11:14 +02:00
Aeshur
fe280e6add [lua] Add Rala Waterways sluice gate handlers 2026-07-11 02:46:12 -04:00
Xaver
6e3d46a3dc
Merge pull request #10606 from sruon/flaky_tests_fixes
[test] Tweak flaky tests
2026-07-11 08:40:07 +02:00
Xaver
480fb0abc8
Merge pull request #10607 from ThrisStraizo/frairslanternjobfix
[sql] Friars Lantern (no grow) job fix
2026-07-11 08:40:05 +02:00
Xaver
70c5252ceb
Merge pull request #10605 from Frankie-hz/itemlog
[cpp] Adds extra logging for ITEM_TRANSFER packet on reserved items
2026-07-11 08:36:31 +02:00
ThrisStraizo
a87b0dbefa Friars Lantern (no grow) job fix
Skold's evidence shows ALL are war/blm
2026-07-10 22:56:02 -07:00
Xaver
7fefff75cd
Merge pull request #10599 from ThrisStraizo/frairslanternstandback
[sql] Friars Lantern no standback fix
2026-07-11 07:48:22 +02:00
sruon
37ceb569d8 Tweak flaky tests 2026-07-10 23:31:57 -06:00
Frankie-hz
e1def3711c [cpp] Adds extra logging for ITEM_TRANSFER packet on reserved items 2026-07-11 01:31:18 -04:00
Xaver
d1b913a40c
Merge pull request #10604 from Skold177/Fix-Kuftal-Rock
[sql] Fix Kuftal Rock always being down
2026-07-11 07:03:59 +02:00
Xaver
12b49cf72c
Merge pull request #10600 from Skold177/Fix-Porphyrion
[sql] Fix Porphyrion Mob Family
2026-07-11 06:52:50 +02:00
Xaver
b5c0510729
Merge pull request #10603 from ThrisStraizo/fafres
[sql] Faf/Nidhogg removal of immunities in SQL
2026-07-11 06:24:16 +02:00
Xaver
408ec0779a
Merge pull request #10602 from Skold177/Fix-RSE-Quest-Dialogue
[lua] Fix RSE Quest Dialogue
2026-07-11 06:20:49 +02:00
Xaver
63c603f22a
Merge pull request #10594 from CriticalXI/tiamat_drop_module
[sql][module] Adds module to revert Tiamat to drop Herald's Gaiters
2026-07-11 06:18:32 +02:00
Xaver
4c9ed7641e
Merge pull request #10595 from Skold177/Repair-Message-Fix
Fix PUP Module Repair Message
2026-07-11 06:18:04 +02:00
Skold
cbea124907 Fix Kuftal Rock always being down
Sets the default position to DOOR_CLOSED
2026-07-11 00:06:19 -04:00
Xaver
a89065aef2
Merge pull request #10593 from sruon/paralyze_msg
[core] Tweak Paralyze message; Consume Blood Pact CD on paralyze
2026-07-11 06:05:53 +02:00
Xaver
b39a3f4cd1
Merge pull request #10597 from sruon/bolts_add
[fix] Fix bolts additional effects typo
2026-07-11 06:04:48 +02:00
Xaver
55ffb344c2
Merge pull request #10591 from ThrisStraizo/kaadjust
[lua] [sql] King Arthro adjustments
2026-07-11 06:03:55 +02:00
Xaver
26f50d2f3f
Merge pull request #10601 from sruon/wajaom_tablets
[sql] Fix Wajaom Engraved Tablet models
2026-07-11 06:02:32 +02:00
Xaver
c385ac0241
Merge pull request #10590 from Frankie-hz/abysseamobs
[sql] Adds content tags to Abyssea mobs
2026-07-11 06:00:58 +02:00
ThrisStraizo
10cf025104 Faf/Nidhogg removal of immunities in SQL
Faf/Nidhogg had overlooked immunities to bind/paralyze in SQL.

These mobs have already been thoroughly researched and their immunities have been added to lua
2026-07-10 20:57:54 -07:00
Skold
250a16a337 Fix RSE Quest Dialogue
Fixes RSE Quest Dialogue
2026-07-10 23:31:32 -04:00
Xaver
02d01a3b64
Merge pull request #10592 from Frankie-hz/itgfixes
[sql] Changes seethers in promyvion zones to check as a normal mob
2026-07-11 05:11:44 +02:00
sruon
5636a9ca0d Fix Wajaom Tablet models 2026-07-10 20:45:53 -06:00
ThrisStraizo
537b17e0ad Friars Lantern no standback fix
This PR swaps the job/subjobs of friars lanterns so they don't stand back.
2026-07-10 19:39:20 -07:00
Skold
d05a9d8aae Fix Porphyrion Mob Family
Turns him into a Gigas
2026-07-10 22:38:02 -04:00
sruon
754b27b4a3 Fix bolts addEffect typo 2026-07-10 20:16:14 -06:00
Skold
997d2d5663 Fix PUP Module Repair Message
Changes the message to not display 0 HP
2026-07-10 21:33:54 -04:00
Frankie-hz
43688b4157 [sql] Adds content tags to Abyssea mobs 2026-07-10 21:17:02 -04:00
Critical
66a1cf00b1 [sql][module] Adds module to revert Tiamat to drop Herald's Gaiters 2026-07-10 18:51:45 -06:00
ThrisStraizo
e772cd2c97 King Arthro adjustments
This PR adjusts King Arthro's def, res, casting AI, gil, delay and paralyze power.
2026-07-10 17:46:35 -07:00
sruon
24e0a479ce Apply cooldown to Blood Pact on paralyze proc 2026-07-10 18:22:12 -06:00
sruon
861383ecf4 Single message on paralyze proc 2026-07-10 18:21:58 -06:00
Frankie-hz
cc658b5923 [sql] Adds mob pool for Seethers in regular Promy zones 2026-07-10 20:13:42 -04:00
Xaver
72939618aa
Merge pull request #10577 from Nobutadas/neutral-conquest-state
[cpp][sql][lua] Conquest: add Neutral region control
2026-07-11 02:13:15 +02:00
Skold177
da6e3e05bb Fix Wyrm Draw-in Location
Swaps a - coordinate for a positive one
2026-07-10 19:19:36 -04:00
Xaver
3a88c758f3
Merge pull request #10585 from Xaver-DaRed/modulebs
Update `calculateAbsorbtion` and `calcullateNullification` in modules
2026-07-11 01:00:34 +02:00
Xaver
85688aca65
Merge pull request #10589 from sruon/lockstyle_err
[core] Tighten lockstyle checks
2026-07-11 00:25:10 +02:00
Xaver-DaRed
bb490d3e07 Update modules combat folder location and structure 2026-07-10 23:52:51 +02:00
Xaver-DaRed
4193cadd0d Update calculateAbsorbtion and calcullateNullification in modules 2026-07-10 23:50:22 +02:00
Xaver
8a39084e82
Merge pull request #10588 from Xaver-DaRed/crystal-overflow
[Fix] Cap crystal trade overflow conquest points to 1000
2026-07-10 22:53:17 +02:00
sruon
276039e2bf Reject lockstyle if item can't be equipped / has wrong skill type 2026-07-10 14:49:26 -06:00
Xaver
220cf56dfc
Merge pull request #10587 from KiplingFFXI/Zoredonite-Bug-Fixes
[lua] Zoredonite Bug Fixes
2026-07-10 22:45:01 +02:00
Kipling
a25adffece Zoredonite Bug Fixes 2026-07-10 13:20:46 -07:00
Xaver-DaRed
a828ff707d Cap crystal trade overflow conquest points to 1000 2026-07-10 22:18:57 +02:00
Xaver
4483c3717f
Merge pull request #10584 from Skold177/lua]-Rename-mob-files-to-match-case-of-SQL
[lua] Rename mob files to match SQL
2026-07-10 22:06:41 +02:00
Spencer Steed
6faf88039e [sql, lua][module] Fix ToAU/era merit ability recast bugs
Wire Super Jump and Weapon Bash meritModIDs, use action:setRecast for era Sange/Scavenge, align Snake Eye/Fold/Fealty formulas with 150s merit values, and fix weapon_bash_effect SQL name.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 15:02:27 -05:00
sruon
bb8bbc0042 Reject lockstyle if item is no longer owned 2026-07-10 13:29:31 -06:00
Xaver
04cf10aed5
Merge pull request #10583 from sruon/totd_sleeping_zones
[fix] Handle TOTD despawning differently in sleeping zones
2026-07-10 21:22:53 +02:00
Skold177
040b72b608 [lua] Rename mob files to match SQL
Changed all the ones I found
2026-07-10 15:02:54 -04:00
Xaver
e8f7e6600e
Merge pull request #10581 from Skold177/Add-TP-clamp-to-aftermath-handler
[lua] Add TP Clamp to Aftermath handler
2026-07-10 20:38:48 +02:00
sruon
cb3466db14 Handle TOTD despawning differently in sleeping zones 2026-07-10 12:30:09 -06:00
Xaver
dc4e70b64a
Merge pull request #10579 from Xaver-DaRed/avatarTPspells
[Fix] Ifrit's TP spells
2026-07-10 20:17:18 +02:00
Skold177
449d422eb2 Add TP Clamp to Aftermath handler
Ensures atleast 1000 tp is fed to the handler
2026-07-10 14:09:16 -04:00
Xaver-DaRed
9344a4348e Fix Ifrit's TP spells 2026-07-10 19:47:27 +02:00
Nobutadas
63812beca3 [cpp][sql][lua] Add Neutral region control 2026-07-10 11:34:57 -05:00
Xaver
55b5955109
Merge pull request #10576 from Xaver-DaRed/more
[Bandaid] Blue spell ecosystem being nil
2026-07-10 18:20:30 +02:00
Xaver-DaRed
791af1b250 Bandaid: Blue spell ecosystem being nil 2026-07-10 17:38:47 +02:00
Xaver
bcc4565225
Merge pull request #10564 from Xaver-DaRed/maat
[Fix] Maat testimony check
2026-07-10 17:01:58 +02:00
Xaver
ec6af00b7c
Merge pull request #10570 from Skold177/More-Content-Tags
[sql] Correct Crimson-Toothed Pawberry qm / Content Tag Toppi-Meppi
2026-07-10 16:49:44 +02:00
Xaver
9e1afc51a8
Merge pull request #10566 from Auzali/add-ROTZ-tags-501-550
[sql] Audit some synthesis content tags (501-550)
2026-07-10 16:49:00 +02:00
Xaver
d201f205ca
Merge pull request #10574 from KiplingFFXI/Xolotl-Fixes
[lua] Xolotl Bug Fixes
2026-07-10 16:41:25 +02:00
Xaver
390bf3a238
Merge pull request #10565 from Skold177/Photosynthesis-Bugfix
[lua] [sql] Add Mandragora & Sabotender Photosynthesis
2026-07-10 16:32:36 +02:00
Xaver
6f4bb93579
Merge pull request #10569 from sruon/gshop_tweaks
[lua] Tweak guild shops target stock
2026-07-10 16:31:23 +02:00
Xaver
2cddd6f3dc
Merge pull request #10572 from Skold177/Seiryu-Job
[lua] [sql] Update Seiryu to WAR/RDM
2026-07-10 16:28:16 +02:00
Kipling
1342b15f2b Xolotl Bug Fixes 2026-07-10 01:03:31 -07:00
Zach Toogood
b5c284bc46
Merge pull request #10568 from sruon/chocobo_toteboard
[core, lua] Remaining Chocobo Racing packets; Toteboard NPCs
2026-07-10 09:51:36 +02:00
Zach Toogood
eb0e85d327
Merge pull request #10571 from sruon/item_transfer_log
[core] Log item name and ID when a locked trade happens
2026-07-10 09:50:58 +02:00
Zach Toogood
c75853fe3e
Merge pull request #10573 from sruon/asan_crash_linkshell
[core] Unequip linkshell and rebind new when changing item during promotion
2026-07-10 09:50:14 +02:00
sruon
6c814f7b5d Unequip linkshell and rebind new when changing item during promotion 2026-07-10 00:19:37 -06:00
Skold
b9e43e6809 Update Seiryi to WAR/RDM
Changes the job based on capture.
2026-07-10 02:00:34 -04:00
sruon
6e462ea3ca Log item name and ID when a locked trade happens 2026-07-10 00:00:31 -06:00
Skold
d7d0f4fa8d Fix Crimson Pawberry QM and Toppi-Meppi Content Tag
Adds some more content tags, fixes tonberry mitts NM
2026-07-10 01:56:51 -04:00
sruon
f5f660bb21 Tweak guild shops target stock 2026-07-09 23:15:44 -06:00
WinterSolstice8
aaa1c3082b
Merge pull request #10567 from Skold177/Fix-Tateeya-from-accepting-more-than-1-attachment
[lua] Fix Tateeya Attachment Trade
2026-07-09 23:12:30 -06:00
sruon
cc544e832d Toteboard packets 2026-07-09 22:49:19 -06:00
Skold
6d1a597101 Fix Tateeya Attachment Trade
Prevents more than 1 item from being accepted
2026-07-09 23:46:17 -04:00
Skold
6aab1e5994 Add Mandragora / Sabotender Photosynthesis
Adds Mandragora / Sabotender Photosynthesis
2026-07-09 23:20:02 -04:00
Xaver
ebb2284584
Merge pull request #10542 from Xaver-DaRed/arrows
[Combat] Add physical checks to nullification and absobption, convert Spikes, and audit some Ammo Additional effects
2026-07-10 05:14:12 +02:00
taylorleary
25da384ae3 [sql] Audit some synthesis content tags (501-550) 2026-07-09 22:23:44 -04:00
Xaver-DaRed
c76adfe30f Fix maat testimony check 2026-07-10 03:50:17 +02:00
Xaver
19a6b3511c
Merge pull request #10479 from CriticalXI/summoner_adjust
[lua,sql,cpp][module] Summoner era modules and adjustments
2026-07-10 02:15:42 +02:00
Xaver
9e943a5fe4
Merge pull request #10560 from Skold177/Mog-House-Exit-Module
[lua] Mog House Exit Event Module
2026-07-10 02:00:38 +02:00
Xaver
8ebec83cc6
Merge pull request #10557 from Skold177/Add-some-NPC-Content-Tags
[sql] Content Tag some NPCs
2026-07-10 02:00:19 +02:00
Critical
716edd3d20 [lua,sql,cpp][module] Summoner era modules and adjustments 2026-07-09 17:12:00 -06:00
Skold177
81d17575e0 Content Tag some NPCs
Adds some content tags for outdoor zones and cities.

Co-Authored-By: John Smith <215467762+normalname33@users.noreply.github.com>
2026-07-09 19:09:34 -04:00
Xaver
5d04fa0fe7
Merge pull request #10559 from sruon/30260703_new_entities
[sql] July 2026 new entities + fix QMs
2026-07-10 00:45:00 +02:00
Skold
3949d478e2 Mog House Exit Event Module
Adds a module for the old mog house job change exit prompt.
2026-07-09 18:20:25 -04:00
sruon
2b14759cf4 Fix Uggalepih mismatched QMs 2026-07-09 15:03:35 -06:00
sruon
4366bb16a6 Fix Yhoator mismatched QMs 2026-07-09 15:03:35 -06:00
sruon
bfe844b369 Fix Jugner mismatched QMs 2026-07-09 15:03:35 -06:00
sruon
b0efbca15b Fix SGusta mismatched QMs 2026-07-09 15:03:35 -06:00
sruon
296ec74650 Fix Wajaom mismatched QMs 2026-07-09 15:03:35 -06:00
sruon
1075ee0e03 Fix Bhaflau mismatched QMs 2026-07-09 15:03:35 -06:00
sruon
bc0a41c69a New mobs in Stellar Fulcrum
Stellar Fulcrum new BCNM
2026-07-09 15:03:35 -06:00
sruon
15a2b093c1 Shift NPCs up in Stellar Fulcrum 2026-07-09 15:03:34 -06:00
sruon
492c86ab6f Temenos entities rework 2026-07-09 15:03:34 -06:00
Xaver-DaRed
89c3abef4f Kill finalMagicNonSpellAdjustments() 2026-07-09 20:47:23 +02:00
Xaver-DaRed
66197fbad0 Make mob spikes use their own spikes global system 2026-07-09 20:33:49 +02:00
Xaver-DaRed
7a055dc19f Convert Excalibur to new AE system and normalize parameters 2026-07-09 20:33:48 +02:00
Xaver-DaRed
25112ad6fe Edit calculateNullification() to account for non-magical damage source 2026-07-09 20:33:48 +02:00
Xaver-DaRed
ad00b54ec2 Edit calculateAbsorption() to account for non-magical damage sources 2026-07-09 20:33:48 +02:00
Xaver-DaRed
e2880c6a41 Audit some Arrows/Bolts Additional effect: Elemental damage 2026-07-09 20:33:48 +02:00
Xaver
b6d799f3c4
Merge pull request #10544 from ThrisStraizo/startermobdamage
[lua] Adjust starter mob attack to match retail damage
2026-07-09 19:42:36 +02:00
Xaver
60851c362e
Merge pull request #10555 from montijin/cherry-muffin-recipe-fix
Correct HQ results for Cherry Muffin Recipe
2026-07-09 19:42:10 +02:00
Xaver
2516316dba
Merge pull request #10556 from sruon/post_maint_leather
[lua] Tweak Leather guild shop initial stock
2026-07-09 19:41:41 +02:00
sruon
5e018a4779 Phantom Gem Box NPC in cities 2026-07-09 10:43:54 -06:00
WinterSolstice8
88c6075b57
Merge pull request #10539 from cocosolos/step-limit
Increase constexpr steps limit for clang builds
2026-07-09 10:38:41 -06:00
sruon
f64a9b34a5 Tweak Leather guild shop initial stock 2026-07-09 10:36:03 -06:00
Montijin
f38a1c5106 Correct HQ results for Cherry Muffin Recipe 2026-07-09 10:13:56 -05:00
Xaver
0ffb464acf
Merge pull request #10545 from Skold177/era-skillchain
[lua] Era Skillchain Module
2026-07-09 16:30:02 +02:00
Xaver
ddbd0530b3
Merge pull request #10554 from Skold177/Tiamat-Bugfix
[lua] Tiamat Mighty Strikes Bugfix
2026-07-09 16:20:18 +02:00
Skold177
6f5b60c3e7 Era Skillchain Module
Adds a Era Skillchain Module
2026-07-09 10:03:50 -04:00
Skold
3855c78e96 Tiamat Mighty Strikes Bugfix
Fixes Mighty Strikes
2026-07-09 09:47:05 -04:00
Xaver
05794af70b
Merge pull request #10552 from sruon/post_maint_guild
[lua] Adjust guild initial stocks
2026-07-09 11:28:21 +02:00
Xaver
f7864f2272
Merge pull request #10551 from sruon/30260703_1
[client] July 2026 Version Update 30260703 1
2026-07-09 11:07:48 +02:00
sruon
e5a496c50f Adjust guild initial stocks 2026-07-09 01:10:34 -06:00
sruon
14be6366c0 [July 2026 VU] Cities NPC shifts 2026-07-09 00:37:42 -06:00
Xaver
151d0fcb26
Merge pull request #10550 from Skold177/Jormungand
[lua] [sql] Update Grand Wyrms, add Revilers Helm
2026-07-09 08:26:01 +02:00
sruon
b4f0d85a64 [July 2026 VU] New items
Dark Amood gained MysteryBox flag
2026-07-09 00:20:12 -06:00
sruon
249ae3830f [July 2026 VU] String shifts 2026-07-09 00:20:12 -06:00
sruon
4d311b479d [July 2026 VU] Disable level correction in Stellar Fulcrum 2026-07-09 00:08:22 -06:00
Xaver
11ba14934c
Merge pull request #10546 from KiplingFFXI/Sky-Timer-Cleanups
Sky NM + Vodyanoi Respawn/Cleanup
2026-07-09 08:02:13 +02:00
sruon
2f779f9a01 Bump client version July 2026 VU 2026-07-08 23:57:56 -06:00
Xaver
d4f888c8a4
Merge pull request #10548 from Skold177/capcallskills
[lua] Add Automaton Skills to !capallskills
2026-07-09 07:49:14 +02:00
Xaver
6433dbdc1a
Merge pull request #10549 from WinterSolstice8/rycharde
[lua] Don't lock Dhalmel Meat when not necessary
2026-07-09 07:48:35 +02:00
Skold177
c410cacf43 Update Grand Wyrms, Add Revilers Helm
Refactors Jormungand/Vrtra, also cleans up Tiamat some more after realizing it could be cleaner.
2026-07-09 01:33:21 -04:00
Corey Sotiropoulos
ccd146cd1a
Bump constexpr steps limit for clang builds 2026-07-09 03:42:33 +00:00
WinterSolstice8
2927d1c5ad
Merge pull request #10547 from WinterSolstice8/jakaka_fix
[lua] Fix Jakaka trigger function accessing nil
2026-07-08 21:34:07 -06:00
WinterSolstice8
72d5fbd05c [lua] Don't lock Dhalmel Meat when not necessary 2026-07-08 21:19:01 -06:00
Skold
1e11ee9c45 Add Automaton Skills to !capallskills
Add automaton skills to !calcallskills
2026-07-08 23:18:56 -04:00
WinterSolstice8
acad0e8b44 [lua] Fix Jakaka trigger function accessing nil 2026-07-08 20:20:01 -06:00
Kipling
8dc35237e6 Sky Respawn Timer Cleanup 2026-07-08 18:38:40 -07:00
ThrisStraizo
0868d148c9 Adjust starter mob attack to match retail damage
This PR adjusts the attack of starter mobs to deal the same damage observed on retail.
2026-07-08 17:00:04 -07:00
Zach Toogood
f950fe0076
Merge pull request #10533 from cocosolos/mac-test
[ci] Run xi_test on macOS
2026-07-08 21:04:44 +02:00
Hatberg
059ac98622 Promyvion-Vahzl link/aggro audit 2026-07-08 19:39:20 +02:00
WinterSolstice8
eee6d6d873
Merge pull request #10537 from sruon/npc_sell_prices
[sql] NPC sell prices audit
2026-07-08 10:52:22 -06:00
Xaver
bf22459568
Merge pull request #10534 from sruon/choco_racing_pkt
[core] Chocobo Racing packets and binding
2026-07-08 18:42:11 +02:00
Xaver
affbd99c33
Merge pull request #10536 from Skold177/Attachment-Burdens
[lua] Attachment Burden Penalties
2026-07-08 18:41:43 +02:00
sruon
1e5e6d049b Update NPC sell prices to retail values
Co-Authored-By: montijin <2160211+montijin@users.noreply.github.com>
2026-07-08 10:25:32 -06:00
Skold
2f61c8fa48 Attachment Burden Values
Adds Attachment Burden Values for Flame Holder, Ice Maker, Barrage Turbine, Economizer, Eraser, Heat Capacitor, and Replicator.
2026-07-08 10:31:07 -04:00
Xaver
65e308fe50
Merge pull request #10530 from Xaver-DaRed/combat3
[lua] Move `combat` folder outside `globals` and make it load before it
2026-07-08 15:37:56 +02:00
Xaver-DaRed
0fb133ed39 Cleanup requires and hook to lua loading
Co-Authored-By: sruon <sruon@users.noreply.github.com>
2026-07-08 14:07:25 +02:00
sruon
1494a9978c Chocobo racing packets/bindings 2026-07-07 19:30:37 -06:00
Xaver
0573193955
Merge pull request #10532 from Skold177/Refactor-Tiamat
[lua] Refactor Tiamat
2026-07-08 02:55:08 +02:00
Xaver
540b63aeff
Merge pull request #10529 from Skold177/Puppetmaster-Modules
[sql] [lua] ToAU Era PUP Module Suite
2026-07-08 02:32:18 +02:00
Skold
8f24765549 Refactor Tiamat
Cleans up code, caches extra locals, make it easier to read. No changes.
2026-07-07 20:23:43 -04:00
Xaver
cb4ec8bb51
Merge pull request #10531 from Nobutadas/ulhpemde-no-dive
[lua] Stop Ul'hpemde from diving
2026-07-08 02:03:46 +02:00
Skold177
5dfabb93d4 ToAU Era PUP Module Suite
Recreates ToAU Era Puppetmaster.
2026-07-07 17:58:07 -04:00
Nobutadas
a5e540db62 [lua] Stop Ul'hpemde from diving 2026-07-07 15:57:29 -05:00
Xaver-DaRed
852d89ff9b Move Combat folder outside globals folder 2026-07-07 20:28:23 +02:00
Xaver
666feae62e
Merge pull request #10528 from Nobutadas/can-not-redeem-exp-voucher
[lua] Allow purchase of exp ring with voucher
2026-07-07 19:53:05 +02:00
WinterSolstice8
b03c54d860
Merge pull request #10523 from Xaver-DaRed/sc-cleanup
[Cleanup] Old skillchain code
2026-07-07 11:40:44 -06:00
Nobutadas
150d7cb6d6 [lua] Allow purchase of exp ring with voucher 2026-07-07 10:37:06 -05:00
Xaver
94e1231146
Merge pull request #10500 from Nobutadas/conquest-guards-reward-expeditionary-force
[lua] Enable EF conversations with conquest guards
2026-07-07 14:58:03 +02:00
Nobutadas
cc49e49f3c [lua] Enable EF conversations with conquest guards
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-07-07 13:11:20 +02:00
Xaver
b1ec7ad858
Merge pull request #10524 from Auzali/add-ROTZ-tags-451-500
[sql] Audit some synthesis content tags (451-500)
2026-07-07 10:11:06 +02:00
Xaver
8e48ad1306
Merge pull request #10525 from KiplingFFXI/Cyranuce-M-Cutauleon-Audits
Cyranuce M Cutauleon Audits
2026-07-07 09:59:46 +02:00
Xaver
89bbc7b68e
Merge pull request #10527 from ThrisStraizo/crossattackboost
[lua] Update Glyryvilu's Cross Attack
2026-07-07 09:59:23 +02:00
ThrisStraizo
8859bb47ae Update Glyryvilu's Cross Attack
This PR appropriately juices Glyryvilu's Cross Attack to send adventurers into the shadow realm.
2026-07-06 22:30:52 -07:00
Kipling
18bd8fb860 DRG Job Quest NM Audits 2026-07-06 22:19:52 -07:00
Xaver
51fedb9f8d
Merge pull request #10520 from Skold177/Skill_FTP_Modifier
[core] [C++] [lua] Mobskill specific fTP adjustment bindings
2026-07-07 06:42:18 +02:00
Xaver
8c7ab50653
Merge pull request #10522 from ThrisStraizo/khimmyadjust
[lua] [sql] Add Khimaira res ranks
2026-07-07 06:09:06 +02:00
taylorleary
7095c79d16 [sql] Audit some synthesis content tags (451-500) 2026-07-06 23:39:35 -04:00
Xaver
39d127a795
Merge pull request #10519 from WinterSolstice8/login_otp_display
[login] Set OTP features bit if account has OTP enabled
2026-07-07 05:37:35 +02:00
Xaver-DaRed
6081d81522 Cleanup old skillchain code 2026-07-07 05:36:46 +02:00
Skold
ec936a6b35 Skill Specific fTP Binding
Adds a lua binding to increase the fTP modifier of mobskills.
2026-07-06 23:32:02 -04:00
ThrisStraizo
ab94cec20e Add Khimaira res ranks
This PR adjusts Khimairas res ranks and correct gil drop value.
2026-07-06 19:29:36 -07:00
Xaver
3a95395b65
Merge pull request #10521 from Xaver-DaRed/interruption
[Fix] Prevent interruption during chainspell
2026-07-07 03:05:13 +02:00
Xaver-DaRed
e10c72ac99 Prevent interruption during chainspell 2026-07-07 01:58:13 +02:00
Xaver
cb8aa9e206
Merge pull request #10517 from Xaver-DaRed/combat
[Combat] General cleanup and prep work for other changes
2026-07-07 01:54:24 +02:00
WinterSolstice8
2fc73083ae [login] Set OTP features bit if account has OTP enabled 2026-07-06 17:14:35 -06:00
Xaver-DaRed
94e43ac5a7 Audit status effect removal location for spell-specific effects 2026-07-06 22:30:45 +02:00
Zach Toogood
f90cc5836b
Merge pull request #10508 from LandSandBoat/cpp23
Core: Upgrade to C++23
2026-07-06 20:39:17 +01:00
Zach Toogood
9868e8ee82 Test: Init Catch2 after TestApplication 2026-07-06 11:34:07 -06:00
Zach Toogood
7b721271d5 Test: Add Catch2 tests 2026-07-06 11:34:07 -06:00
Zach Toogood
9248f142ea Core: Tidy Variant 2026-07-06 11:34:07 -06:00
Zach Toogood
eba66c5f0e Core: Introduce Heap 2026-07-06 11:34:07 -06:00
Zach Toogood
8fd37f9a15 Core: Add lint exception for pq.pop() 2026-07-06 11:34:07 -06:00
Zach Toogood
e1eca269b0 Chore: Run and tidy a chunk of IWYU warnings 2026-07-06 11:34:07 -06:00
Zach Toogood
47e1618820 Core: Upgrade to C++23
- Add Fn = std::move_only_function alias (as a polyfill)
- Fix lifetime issues in ConsoleService handoff
- Propagate use of Fn, HashMap, FlatHashMap, Maybe, ErrorOr
- Find (and kind of force) the use of deducing this
2026-07-06 11:34:06 -06:00
Zach Toogood
17cc7389ad Core: Upgrade build to C++23 2026-07-06 11:33:21 -06:00
Xaver
836c113fe0
Merge pull request #10518 from sruon/yaml_claim_spawn_enums
[core, lua, yaml] Convert ClaimType, SpawnAnimation, AttackType, MobType to YAML based enums
2026-07-06 19:28:53 +02:00
sruon
86f73d04e8 Port MobType to YAML based enum 2026-07-06 10:25:32 -06:00
sruon
a4a25ca765 Port AttackType to YAML based enum 2026-07-06 10:25:32 -06:00
sruon
2c7fc37eae Port SpawnAnimation to YAML based enum 2026-07-06 10:25:32 -06:00
sruon
fd0caff31b Port ClaimType to YAML based enum 2026-07-06 10:25:32 -06:00
Xaver-DaRed
9a78254070 Audit some requires 2026-07-06 15:47:53 +02:00
Xaver-DaRed
0b36e6bc14 Rework magic burst multiplier function 2026-07-06 15:47:33 +02:00
Xaver-DaRed
42e0613c87 Move magic burst script to combat folder and update usage and requires 2026-07-06 15:35:18 +02:00
Xaver-DaRed
6045f90b6e Globalize 2 spell tables
Dont push it
2026-07-06 14:51:33 +02:00
Xaver-DaRed
fd7a828c65 Move job points enum file to the enum folder 2026-07-06 12:35:55 +02:00
Xaver
e84e5f873a
Merge pull request #10514 from Auzali/add-ROTZ-tags-401-450
[sql] Audit some synthesis content tags (401-450)
2026-07-06 11:01:34 +02:00
Xaver
b5473a51cb
Merge pull request #10516 from sruon/ability_failed_ja_freeze
[core] Skip animation lock if JA couldnt be fired
2026-07-06 11:00:12 +02:00
Xaver
ab488be5fb
Merge pull request #10513 from Skold177/Reduce-Ranged-Attack-Damage
[lua] Reduce Ranged Attack to 1.0 fTP
2026-07-06 10:59:25 +02:00
Xaver
702e0b0135
Merge pull request #10512 from ThrisStraizo/treechests
[lua] Retail Accurate Boyahda Tree Coffer Positions
2026-07-06 10:58:33 +02:00
Xaver
0fe2d13ba8
Merge pull request #10511 from sruon/yaml_entity_enums
[core, lua, yaml] Port Allegiance and Status to YAML based enums
2026-07-06 10:58:13 +02:00
sruon
32ffaff292 Skip animation lock if JA couldnt be fired 2026-07-05 23:50:52 -06:00
taylorleary
c5657d02b7 [sql] Audit some synthesis content tags (401-450) 2026-07-05 23:54:06 -04:00
Skold
782a25b5ab Reduce Ranged Attack Damage
Reduces the fTP of Ranged Attack to 1.0 from 1.5
2026-07-05 22:48:59 -04:00
ThrisStraizo
d198a1a3ff Retail Accurate Boyahda Tree Coffer Positions
This PR updates the coffer positions to be in retail accurate positions in the tree.
2026-07-05 19:10:08 -07:00
sruon
3d6ee87468 Port Allegiance and Status to YAML based enums 2026-07-05 20:00:10 -06:00
WinterSolstice8
1dd38e3fef
Merge pull request #10463 from sruon/spawn_time_rework
[core, sql] Allow customized spawn times for TOTD mobs
2026-07-05 19:36:46 -06:00
sruon
1cc1b82dbb Allow customized spawn times for TOTD mobs
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-07-05 18:45:07 -06:00
Xaver
2b5f10f14d
Merge pull request #10507 from Xaver-DaRed/macc66
[Proposal] [Magic] Edit instrument macc and remove day macc bonuses
2026-07-06 01:57:32 +02:00
Xaver
4c47ab09e2
Merge pull request #10509 from Nobutadas/expeditionary-force-treasure-coffers
[lua] Add Expeditionary Force reward for treasures
2026-07-06 00:00:50 +02:00
Nobutadas
9d695fb764 [lua] Enable Expeditionary Force with Treasure 2026-07-05 16:36:22 -05:00
Xaver-DaRed
4a411e5944 Edit instrument macc and remove day macc bonuses 2026-07-05 22:09:17 +02:00
Zach Toogood
3c7bfaa48a
Merge pull request #10506 from LandSandBoat/more_udp_stats
Core: Add UDP backpressure stats
2026-07-05 19:22:35 +01:00
Xaver
a12fa4de66
Merge pull request #10505 from sruon/guild_holidays
[core, lua] Support optional holiday setting for guild shops
2026-07-05 19:52:34 +02:00
Xaver
9e19298081
Merge pull request #10498 from Nobutadas/remove-expeditionary-force-key-items-on-nation-swap
[lua] Remove Expeditionary Force KI on Nation Swap
2026-07-05 19:20:41 +02:00
Zach Toogood
ab7466d241 Core: Add UDP backpressure stats 2026-07-05 18:09:40 +01:00
sruon
dee8d92131 Optional holiday setting for guild shops 2026-07-05 10:44:05 -06:00
Xaver
f1cde8f17e
Merge pull request #10501 from sruon/test/gardening
[core, test] Tweak Moghancement tiebreaking; gardening/moghancements tests
2026-07-05 18:09:43 +02:00
sruon
8f9d0e81c9 Gardening tests 2026-07-05 09:15:42 -06:00
Zach Toogood
9e34680cbf
Merge pull request #10504 from LandSandBoat/random_improvements
Lua: Migrate to math.randomInt and math.randomFloat 💣💣💣
2026-07-05 16:13:57 +01:00
Nobutadas
11e91561ae [lua] Remove Expeditionary Force KI on Nation Swap 2026-07-05 08:56:48 -05:00
Zach Toogood
e1cab1c894 Lua: Migrate to math.randomInt and math.randomFloat 2026-07-05 14:55:22 +01:00
Zach Toogood
6591fa6ac0 Lua: Add math.randomInt and math.randomFloat
For clarity
2026-07-05 14:33:55 +01:00
Zach Toogood
94cced67ed Core/Lua: Add math.randomNormal() 2026-07-05 14:08:12 +01:00
Zach Toogood
866795648b Test: Add more math.random() tests 2026-07-05 13:49:00 +01:00
Zach Toogood
b518961aca Core: Harden synthutils to use only doubles 2026-07-05 13:48:34 +01:00
Zach Toogood
8cdaa6965c xirand: Add narrow-to-float safety 2026-07-05 13:47:59 +01:00
Zach Toogood
ef25799939 Core: Make math.random() binding resolution clear 2026-07-05 13:24:50 +01:00
Zach Toogood
129b82e47d
Merge pull request #10503 from LandSandBoat/remove_elision
Core: Remove Lua empty function elision
2026-07-05 12:44:33 +01:00
Zach Toogood
14a6dbf80f Core: Manually clear authenticatedSessions_ on shutdown 2026-07-05 11:56:59 +01:00
Zach Toogood
e91068d080 Tests: Harden 'Item use' test
Co-authored-by: WinterSolstice8 <60417494+WinterSolstice8@users.noreply.github.com>
2026-07-05 11:56:13 +01:00
Zach Toogood
2c2882ec09 Core: Remove Lua empty function elision
From the big comment:

// NOTE: We previously experimented with empty-handler elision here: using LuaJIT's bytecode
// introspection to detect stub handlers (`function() end` JIT-ing to a single `RET0` op),
// cache them as nil, and skip the C++ -> Lua call entirely on lookup.
//
// It was difficult and fiddly: several call sites use a handler's validity as an existence check
// or pass the handler onward as an Interaction Framework fallback, so eliding silently broke
// them (e.g. food items stopped applying stats) in ways that were hard to debug.
//
// Measured under an insane synthetic load (~5000 active status effects), the total saving was
// only ~0.25ms of main-loop time per second. Cool concept, but not worth the effort.
2026-07-05 11:55:10 +01:00
Xaver
bf8a779eae
Merge pull request #10499 from Skold177/Shadow_Lord-Fixes
[lua] [sql] Update Shadow Lord spell list
2026-07-05 09:12:26 +02:00
Skold
1f2d8d500e Update Shadow Lord spell list
Updates Shadow Lord Spell list
2026-07-05 00:00:12 -04:00
Xaver
88beeeb9bf
Merge pull request #10497 from Nobutadas/audit-expeditionary-force-mob-levels
[sql] Update Expeditionary Force mob levels and spawns
2026-07-05 04:23:38 +02:00
Xaver
e53b7e2290
Merge pull request #10496 from Nobutadas/add-lua-hooks-for-conquest
[C++] Add lua hooks to modify conquest influence
2026-07-05 04:13:02 +02:00
Nobutadas
227e880c9e [sql] Update Expeditionary Force levels and spawn 2026-07-04 20:01:35 -05:00
Nobutadas
ad886c6ef8 [C++] Add lua hooks to modify conquest influence 2026-07-04 19:05:08 -05:00
Xaver
2a1591b5ba
Merge pull request #10488 from Xaver-DaRed/killer
[Combat] Implement ecosystem damage multipliers
2026-07-05 02:03:04 +02:00
Xaver-DaRed
1218a14533 Implement ecosystem damage multipliers
Circle effects. Blue spell ecosystem properties, etc...
2026-07-05 00:59:26 +02:00
Xaver
72a8ab9bc3
Merge pull request #10484 from sruon/renamef
[core, sql] Support forced rename flow in lobby; Add retail vulgar name check
2026-07-05 00:48:40 +02:00
Xaver
140dc9f52a
Merge pull request #10495 from Auzali/fix-several-synth-recipe-tags
fix several tags that were initially overlooked during ROTZ tag batches
2026-07-04 23:59:32 +02:00
Xaver
eba02d4f41
Merge pull request #10494 from ThrisStraizo/coraf3fix
[lua] COR AF3 Fight (Against All Odds) bugfix
2026-07-04 22:15:41 +02:00
Corey Sotiropoulos
ba209c9299
[ci] Run xi_test on macOS 2026-07-04 15:33:38 -04:00
Xaver
5deacbb912
Merge pull request #10492 from Nobutadas/Add-Subpower-Hook-to-Base-XP-on-Unrestricted-Level
[C++] Add Level Restriction Subpower Hook to Allow XP Based on True Level
2026-07-04 21:33:28 +02:00
taylorleary
d10a28b2bf fix several tags that were initially overlooked during ROTZ tag batches 2026-07-04 15:31:35 -04:00
ThrisStraizo
3e51a63740 COR AF3 Fight (Against All Odds) bugfix
This PR makes it so the fight is winnable and the death message doesn't play multiple times per player.
2026-07-04 12:31:30 -07:00
Xaver
c0ad180ecd
Merge pull request #10491 from Nobutadas/lua]-Update-and-add-gate-glyph-teleport-items-for-Expeditionary-Force
[lua] Update and add gate glyph teleport items for Expeditionary Force
2026-07-04 21:24:55 +02:00
WinterSolstice8
6045fd5879
Merge pull request #10490 from Nobutadas/dynamic-entities-in-instances
[C++] Fix ally NPCs not spawning in instances
2026-07-04 11:49:15 -06:00
Nobutadas
a46e335e79 [C++] Add Subpower Hook to Base XP on True Level 2026-07-04 11:59:37 -05:00
sruon
24af747f9b Explicitly state badnames.bin is not a retail file 2026-07-04 10:56:32 -06:00
Nobutadas
1e8875c5f9 [lua] Update and add gate glyph teleport items 2026-07-04 11:38:29 -05:00
Nobutadas
d8cfbebd2c [C++] Fix ally NPCs not spawning in instances 2026-07-04 11:09:21 -05:00
Xaver
29e2c03817
Merge pull request #10489 from WinterSolstice8/granite_door
[sql] [lua] Audit Temple Guardian and its Granite Door
2026-07-04 17:24:29 +02:00
WinterSolstice8
af8be49950 [sql] [lua] Audit Temple Guardian and its Granite Door 2026-07-04 08:24:12 -06:00
Zach Toogood
e7c8403b18
Merge pull request #10487 from LandSandBoat/xi_rand_improvements
xirand: Make usage deterministic on all platforms
2026-07-04 15:10:23 +01:00
Zach Toogood
a3f1ec5534 xirand: Add compile-time tests for skew 2026-07-04 14:16:27 +01:00
Zach Toogood
b9a14dc2e9 xirand: Fix integer promotion issue in GetRandomNumber 2026-07-04 13:15:39 +01:00
Zach Toogood
e6aabae622 xirand: Make usage deterministic on all platforms
- Replace default engine with Squirrel5
- Replace distribution helpers with techniques taken from Rust, NumPy, etc.
- Fix long-standing workaround for open/closed intervals
- Updates test seeds and outputs to match
- Reformat
2026-07-04 12:49:08 +01:00
Zach Toogood
b1d4c8ac76
Merge pull request #10486 from LandSandBoat/update_clang_format_rules
Chore: Update clang format rules
2026-07-04 11:56:49 +01:00
Xaver
df543b1a2a
Merge pull request #10478 from Auzali/add-ROTZ-tags-351-400
[sql] Audit some synthesis content tags (351-400)
2026-07-04 12:25:02 +02:00
Zach Toogood
8c56629924
Merge pull request #10485 from LandSandBoat/map_exit
Core: Slightly cleaner exit for xi_map
2026-07-04 11:21:38 +01:00
Zach Toogood
d26022395b Chore: Run new clang-format rules
- West const
- Lambda alignment
- Spacing around scopes and namespaces

This makes some things a little worse (packing, unions), but it makes many things much better
2026-07-04 10:56:27 +01:00
Zach Toogood
981ff1193e Chore: Update clang-format rules 2026-07-04 10:52:23 +01:00
Xaver
85c0386e4b
Merge pull request #10483 from Skold177/Son_of_Anansi_Skill_List
[sql] Fix Son of Anansi Animations
2026-07-04 11:45:18 +02:00
Zach Toogood
497e2fb7a8 Core: Slightly cleaner exit for xi_map 2026-07-04 10:38:16 +01:00
sruon
ba1d033e06 Skip binary files in CI general checks 2026-07-03 22:37:45 -06:00
sruon
35dbd73d86 Support forced rename flow in lobby 2026-07-03 21:57:53 -06:00
WinterSolstice8
40ffb3957b
Merge pull request #10482 from WinterSolstice8/remove_forced_aggro_los_test
[test] Remove changing wall groundskeeper aggro from aggro test
2026-07-03 20:53:04 -06:00
Skold
86ad2105f1 Fix Son of Anansi Animations
Do Come Into My Parlor, see right animations used
2026-07-03 22:49:34 -04:00
WinterSolstice8
31aed360f2 [test] Remove changing wall groundskeeper aggro from aggro test 2026-07-03 19:45:51 -06:00
Xaver
12a8a2a93b
Merge pull request #10481 from WinterSolstice8/groundskeeper_stuff
[lua] Set wall groundskeepers to aggro
2026-07-04 03:22:03 +02:00
WinterSolstice8
ec9a17d90d [lua] Set wall groundskeepers to aggro 2026-07-03 18:25:40 -06:00
taylorleary
9a424ada80 [sql] Audit some synthesis content tags (351-400) 2026-07-03 14:53:37 -04:00
Xaver
89fadbe1ff
Merge pull request #10477 from Xaver-DaRed/interruptcleanup
[Fix] Trusts not getting interrupted
2026-07-03 19:12:30 +02:00
Xaver-DaRed
1d1c9dd6ed Fix Trusts not getting interrupted
Also: cleanup
2026-07-03 18:01:43 +02:00
Xaver
a8a85b3dde
Merge pull request #10473 from Xaver-DaRed/tutorial
[Interaction] Convert tutorial mini-questline to a hidden quest and modernize it
2026-07-03 17:33:34 +02:00
Xaver-DaRed
1a67a808fa Fix aiso CI: Use new aiso directory instead of old one
Co-Authored-By: WinterSolstice8 <WinterSolstice8@users.noreply.github.com>
2026-07-03 16:33:20 +02:00
Xaver-DaRed
b3b0deed53 Convert tutorial mini-questline to a hidden quest and modernize it
Co-Authored-By: greentchristian-LSB <greentchristian-LSB@users.noreply.github.com>
2026-07-03 13:57:03 +02:00
Xaver
4acc9ea57f
Merge pull request #10471 from WinterSolstice8/sirens_tear_gusta
[lua] [sql] Reorder some QMs in North Gustaberg (and [S]), audit Siren's Tear
2026-07-03 03:22:24 +02:00
Xaver
88a9affefe
Merge pull request #10472 from ThrisStraizo/coraf2fixes
[lua] COR AF2 Bugfix
2026-07-03 03:14:04 +02:00
Xaver
3c89e2ba27
Merge pull request #10474 from Xaver-DaRed/missing
[Fix] Add missing require in the healing effect script
2026-07-03 03:06:07 +02:00
Zach Toogood
4057c36eb4
Merge pull request #10476 from LandSandBoat/misc_findings
Core: Ensure binding of const CLuaBaseEntity*
2026-07-03 02:05:36 +01:00
Zach Toogood
4886906a60 Core: More safety in ~CTrustController() 2026-07-03 01:04:24 +01:00
Zach Toogood
4ab82eb0ae Core: Ensure binding of const CLuaBaseEntity* 2026-07-03 01:03:50 +01:00
Xaver-DaRed
d0d48cecd4 Add missing require in the healing effect script 2026-07-03 01:52:20 +02:00
WinterSolstice8
69f51e3ea4 [lua] Set qm2 default action in North Gustaberg 2026-07-02 17:27:24 -06:00
WinterSolstice8
48066c0cc2 [lua] Audit Siren's Tear QM 2026-07-02 17:27:17 -06:00
ThrisStraizo
9c6473eea5 COR AF2 Bugfix
This PR makes it so trading the Hydrogauge to Leleroon does not consume the Hydrogauge.
2026-07-02 16:18:22 -07:00
WinterSolstice8
39f7ea8706 [sql] Reorder QMs in North Gustaberg and Shadowreign version 2026-07-02 16:34:03 -06:00
Zach Toogood
73e379eda1
Merge pull request #10470 from LandSandBoat/bump_deps
Ext: Bump all dependencies
2026-07-02 22:44:48 +01:00
Zach Toogood
5f5f029513
Merge pull request #10469 from LandSandBoat/remove_mariadb_cpp_connector
Ext: Remove Mariadb CPP connector
2026-07-02 22:27:04 +01:00
Zach Toogood
372336b20a Ext: Bump all dependencies 2026-07-02 21:38:26 +01:00
Zach Toogood
2459ddac33 Ext: Remove Mariadb CPP connector 2026-07-02 21:10:05 +01:00
Zach Toogood
0539cd69a4
Merge pull request #10468 from LandSandBoat/more_perf
Tracy: Build capture tools on Mac/Linux + Capture Instructions
2026-07-02 20:35:30 +01:00
Zach Toogood
d279951a3a Tracy: Add port support to capture.py 2026-07-02 19:15:10 +01:00
Zach Toogood
aeb8432018 Tracy: Build capture tools on Mac/Linux 2026-07-02 19:06:10 +01:00
Zach Toogood
9e539e3a24 Misc: Add tracy* to gitignore 2026-07-02 18:47:14 +01:00
Zach Toogood
86c19197a6 Entities: Remove unused members 2026-07-02 18:45:58 +01:00
Xaver
5fe06d7218
Merge pull request #10467 from ThrisStraizo/maattweaks
[lua] Additional Maat damage adjustments
2026-07-02 12:51:16 +02:00
ThrisStraizo
54af93d7d3 Additional Maat damage adjustments
This PR adjusts Maats damage to bring in more in line with reality for a level 70 doing the fight.
2026-07-01 20:42:13 -07:00
Xaver
559d8f8e54
Merge pull request #10466 from Auzali/add-ROTZ-tags-301-350
[sql] Audit some synthesis content tags (301-350)
2026-07-02 05:19:33 +02:00
Xaver
77c91353af
Merge pull request #10464 from sruon/traverser_stone_fix
[core, sql] Tweak Traverser Stone default column value, add tests
2026-07-02 04:55:37 +02:00
taylorleary
50bbad9173 [sql] Audit some synthesis content tags (301-350) 2026-07-01 22:45:25 -04:00
sruon
0aafb8025d Add tests for Abyssea Traverser Stones
Co-Authored-By: lefneer311 <142682619+lefneer311@users.noreply.github.com>
2026-07-01 19:30:49 -06:00
WinterSolstice8
d6633baf2a
Merge pull request #10461 from Skold177/Fix-Meikyo-Shisui-sequence-on-interrupt
[core] [C++] Fix Meikyo Shisui sequence on interrupt
2026-07-01 18:53:20 -06:00
WinterSolstice8
9bd03f53ef
Merge pull request #10457 from sruon/depr_cguildshop
[core, sql] Deprecate legacy guild shop system
2026-07-01 18:50:36 -06:00
WinterSolstice8
b67cae9c16
Merge pull request #10456 from Xaver-DaRed/fixsc
[Skillchain] Fix out of bounds table data fetching
2026-07-01 18:50:24 -06:00
WinterSolstice8
1b416850ca
Merge pull request #10458 from sruon/alter_ego_cats
[core] New Alter ego upgrade categories, minor CHAT_NAME names update
2026-07-01 18:50:15 -06:00
WinterSolstice8
67bfd418e3
Merge pull request #10460 from WinterSolstice8/unset_no_despawn_battlefield
[core] Unset no despawn in battlefield cleanup
2026-07-01 18:50:04 -06:00
WinterSolstice8
94863b5bd2
Merge pull request #10459 from WinterSolstice8/update_exp_table_comment
[modules] update comment in exp sql module
2026-07-01 18:49:47 -06:00
Skold
723df05222 Fix Meikyo Shisui sequence on interrupt
Ensures Meikyo Shisui sequence continues even after being interrupted.

Co-Authored-By: WinterSolstice8 <60417494+WinterSolstice8@users.noreply.github.com>
2026-07-01 19:43:08 -04:00
WinterSolstice8
9b05174c15 [core] Unset no despawn in battlefield cleanup
Some BCs may use NMs that don't despawn, so handle this automatically
2026-07-01 16:04:40 -06:00
WinterSolstice8
8307cbb093 [modules] update comment in exp sql module 2026-07-01 16:00:36 -06:00
sruon
c0c7eeaffb Update CHAT_NAME documentation to match XiPackets 2026-07-01 14:37:00 -06:00
sruon
080f1e593e Add newer Alter Ego categories 2026-07-01 14:14:05 -06:00
sruon
51034e95ed Deprecate legacy guild shop system 2026-07-01 13:49:59 -06:00
Xaver
02463324f6
Merge pull request #10453 from WinterSolstice8/update_shared_status_names
[yaml] Update names of some statuses that share the same script
2026-07-01 21:30:43 +02:00
Xaver
9b66ab6f43
Merge pull request #10454 from sruon/guild_chiyo
[lua, sql] Remaining Guild Shops converted to Lua
2026-07-01 21:30:22 +02:00
Xaver
839d4824eb
Merge pull request #10455 from Skold177/Add-isEngaged()-to-Dispel-scripts
[lua] Add isEngaged() to Dispel lua spell lists
2026-07-01 21:28:40 +02:00
Xaver-DaRed
428b5869eb Skillchain: Fix out of bounds table data fetching 2026-07-01 21:25:07 +02:00
Skold177
aee9b1d247 Add isEngaged() to Dispel lua spell lists
Adds isEngaged() to Dispel so it cannot be returned out of combat.
2026-07-01 14:23:29 -04:00
sruon
1db6cc5629 Reorder guild shop entries to match expected order 2026-07-01 12:01:16 -06:00
WinterSolstice8
88e2542d8b [yaml] Update names of some statuses that share the same script 2026-07-01 11:13:06 -06:00
Xaver
b3c521ecd2
Merge pull request #10447 from Xaver-DaRed/Cascade
[Magic] Implement Cascade JA and effect properly
2026-07-01 19:08:00 +02:00
WinterSolstice8
61ffc95c2b
Merge pull request #10452 from LandSandBoat/small_perf
Core: Don't walk RTTI tree in updateEntityPacket
2026-07-01 10:54:52 -06:00
Xaver
754351bcfc
Merge pull request #10451 from Skold177/Correct-some-SQL-Spell-Lists
[sql] Correct remaining spell lists for mobs with lua overrides
2026-07-01 18:44:26 +02:00
sruon
f9ebe55b01 Fishing guild shops converted to Lua 2026-07-01 10:44:13 -06:00
Xaver-DaRed
419298bc23 Implement Cascade JA and effect properly 2026-07-01 18:22:54 +02:00
Zach Toogood
6ed8665274 Core: Don't walk RTTI tree in updateEntityPacket 2026-07-01 16:43:57 +01:00
Skold
928f4da819 Correct some SQL spell list entries
Sets some additional monsters with lua overrides to the default spell list (2)
2026-07-01 11:29:07 -04:00
Xaver
3b1970a8ab
Merge pull request #10450 from WinterSolstice8/spawnlist_erase_fixup
[core] Remove pending deleted pets from players spawnlists
2026-07-01 15:40:54 +02:00
WinterSolstice8
60ea100ba8 [core] Remove pending deleted pets from players spawnlists
Adjust condition for removing trusts from players spawnlists
2026-07-01 06:02:54 -06:00
Xaver
a0d00fd082
Merge pull request #10443 from Skold177/Clean-Up-Avatar.lua-/-Refactor-Light-Spirit
[core] [C++] [lua] Restore optional targeting to TryCastSpell() / Cleanup Avatar.lua
2026-07-01 13:30:11 +02:00
Xaver
ad110f06e5
Merge pull request #10440 from KiplingFFXI/Sacrarium-NM-Audits
[lua, sql] Sacrarium NM Audits
2026-07-01 13:27:59 +02:00
Xaver
adc0aa1e70
Merge pull request #10449 from Xaver-DaRed/nill-check
[Fix] Add nil check to shadow lord listener
2026-07-01 13:00:46 +02:00
Xaver-DaRed
32141ea192 Add nil check to shadow lord listener 2026-07-01 12:31:01 +02:00
Kipling
85be2c7445 Sacrarium NM Audits
Co-authored-by: Skold177 <113406182+Skold177@users.noreply.github.com>
2026-06-30 22:09:35 -07:00
Skold
2d157e991d Restore Optional Targeting to TryCastSpell() Refactor Avatar.lua
Restores optional targeting inside of tryCastSpell() and cleans up avatar.lua/light spirit logic.
2026-07-01 00:44:25 -04:00
Xaver
c533e126ab
Merge pull request #10448 from Skold177/Correct-Automaton-Spawn-Animation
[lua] Fix Automaton Spawn Animation
2026-07-01 06:43:44 +02:00
Xaver
33d5069928
Merge pull request #10446 from Skold177/Add-spell-lists-for-lua-casters-that-do-not-buff
[SQL] [Lua] Create default spell list for lua overrides that do not cast buffs
2026-07-01 06:11:18 +02:00
Skold
b50ee79813 Fix Automaton Spawn Animation
Sets them to spawn animation 1.
2026-06-30 23:55:44 -04:00
Skold
077cbf5c88 Create new default spell list for non-buffing mobs
Creates a new default spelll list for non-buffing mobs so that they are not woken up outside of combat.
2026-06-30 21:48:07 -04:00
Xaver
d1bded2760
Merge pull request #10442 from WinterSolstice8/zoning_cleanup
[core] [lua] Add some zoning guardrails & remove unused/broken function, fix dropped 0x00As
2026-06-30 20:37:56 +02:00
WinterSolstice8
c94e1ca575
Merge pull request #10437 from Xaver-DaRed/aura
[Chore] Minor cleanup of GEO related effects and job util
2026-06-30 12:06:42 -06:00
WinterSolstice8
01c66ec923 [core] Fix no-resend with dropped 0x00As 2026-06-30 09:40:19 -06:00
WinterSolstice8
ed36e44e05 [core] Add some guardrails to some zoning logic 2026-06-30 09:11:27 -06:00
WinterSolstice8
eaa0d5389d
Merge pull request #10441 from Xaver-DaRed/magic-order
[Magic] General damage spell maintenance
2026-06-30 08:53:41 -06:00
WinterSolstice8
80053c3a61
Merge pull request #10433 from Xaver-DaRed/skillchain
[Proposal] [Combat] Convert skillchain damage calculations to lua
2026-06-30 08:51:58 -06:00
WinterSolstice8
48790dde2b [core] [lua] Remove unused and broken function 2026-06-30 08:35:35 -06:00
Xaver-DaRed
97b1af14f6 General damage spell maintenance 2026-06-30 13:11:23 +02:00
Xaver
0d249ea832
Merge pull request #10429 from CriticalXI/beastmaster_adjust
[lua, sql, cpp] Beastmaster Sic bugfix; Sic Era Module
2026-06-30 10:51:39 +02:00
Xaver
4470d6c1b4
Merge pull request #10439 from Auzali/add-ROTZ-tags-251-300
[sql] Audit some synthesis content tags (251-300)
2026-06-30 10:29:22 +02:00
taylorleary
2caeabd88f [sql] Audit some synthesis content tags (251-300) 2026-06-30 01:15:07 -04:00
Critical
ee8131a2ff [lua, sql, cpp] Beastmaster Sic bugfix; Sic Era Module 2026-06-29 21:32:34 -06:00
sruon
db5a8fc66d Goldsmithing guild shops converted to Lua 2026-06-29 21:02:06 -06:00
Xaver
53a25d1d31
Merge pull request #10436 from Nobutadas/event-audit-cop5-3-until-end
[lua] Event updates for CoP 5-3 until end of CoP
2026-06-30 01:54:21 +02:00
Xaver-DaRed
ca1f1c1681 Cleanup Geo effects 2026-06-30 01:24:45 +02:00
Xaver-DaRed
a640623bd1 Style changes 2026-06-30 01:07:40 +02:00
Nobutadas
3452b4c77a [lua] Event updates for CoP 5-3 Until End 2026-06-29 18:03:10 -05:00
sruon
87279ae651 Clothcraft guild shops converted to Lua 2026-06-29 15:19:24 -06:00
sruon
4ba342d0a9 Shih Tayuun guild shop converted to Lua 2026-06-29 13:21:25 -06:00
Xaver-DaRed
8df4dea7b3 Convert skillchain damage calculations to lua
Co-Authored-By: WinterSolstice8 <WinterSolstice8@users.noreply.github.com>
2026-06-29 19:34:56 +02:00
Xaver
654a876638
Merge pull request #10430 from Skold177/Remove-SQL-lookup-for-valid-lua-overrides
[C++] [lua] Disable SQL Fallback for valid lua spell overrides
2026-06-29 17:53:38 +02:00
Zach Toogood
496aace238
Merge pull request #10431 from LandSandBoat/aggro_retap_test
Tests: Add Aggro-LOS test and Aggro-tap test
2026-06-29 16:50:10 +01:00
Zach Toogood
52b836d76a Tests: Add Aggro-tap test 2026-06-29 15:58:41 +01:00
Zach Toogood
a7b9a120ae Tests: Add Aggro-LOS test 2026-06-29 12:21:53 +01:00
Xaver
d28d6016e7
Merge pull request #10427 from WinterSolstice8/aqueducts_doors
[lua] Audit Aqueducts locked doors
2026-06-29 11:52:34 +02:00
Zach Toogood
450d7ba660 Core: Add steps checking to rayIntersect
Without this, if garbage or "outside mesh" coords are passed in, we'll get a 2^40+ number to try and raycast again, making us essentially spin forever. This bounds that scenario so we come out at worst in under a second. No ideal, but better than death
2026-06-29 10:03:51 +01:00
Zach Toogood
7c3867cf30
Merge pull request #10426 from WinterSolstice8/fix_aggro
[core] Add onUpdate to spawn list functions
2026-06-29 09:36:44 +01:00
sruon
a5748e532b Kueh Igunahmori guild shop converted to Lua 2026-06-28 23:55:14 -06:00
Xaver
49942536d6
Merge pull request #10266 from Nobutadas/update-conquest-influence-limit
[C++][sql][lua] Raise influence cap and reset weekly influence
2026-06-29 07:50:10 +02:00
sruon
3b59388e0a Dehbi Moshal guild shop converted to Lua 2026-06-28 22:47:18 -06:00
Skold
fb2f6a4da6 Disable SQL Fallback for valid lua spell overrides
Removes SQL lookup for valid lua overrides that return 0.
2026-06-28 23:22:30 -04:00
sruon
6a050f923c Ndego guild shop converted to lua 2026-06-28 20:58:48 -06:00
sruon
5c52eaca97 Gathweeda / Wahraga guild shops converted to Lua 2026-06-28 20:29:19 -06:00
Nobutadas
ce928bf782 [cpp,sql,lua] Raise influence cap and reset weekly 2026-06-28 20:12:49 -06:00
sruon
3690de4bc9 Chaupire guild shop converted to Lua 2026-06-28 18:48:58 -06:00
sruon
9750b40184 Doggomehr guild shop converted to Lua 2026-06-28 18:48:58 -06:00
sruon
10c913d9ed Tsutsuroon guild shop converted to lua 2026-06-28 18:48:58 -06:00
sruon
9bdc95f2ca Silver Owl guild shop converted to Lua 2026-06-28 18:48:58 -06:00
sruon
f2bb78a945 Maymunah guild shop converted to Lua 2026-06-28 18:48:58 -06:00
WinterSolstice8
badd18713f [lua] Audit Aqueducts locked doors 2026-06-28 18:46:08 -06:00
WinterSolstice8
814d000316 [core] Add onUpdate to spawn list functions 2026-06-28 18:19:43 -06:00
Xaver
8b86eb22df
Merge pull request #10422 from ThrisStraizo/blmthfmaatadjust
[lua] [sql] Small Maat tweaks
2026-06-29 01:47:39 +02:00
Xaver
03e050c240
Merge pull request #10416 from Aeshur/survival-skills
[lua] Add SoA survival skill obstacle traversing
2026-06-29 01:47:07 +02:00
Xaver
b0950b25e0
Merge pull request #10424 from CriticalXI/cor_audit
[lua, sql][module] COR Era Adjustment Modules; COR and module bug fix
2026-06-29 01:44:02 +02:00
Xaver
f6f0ca3f7e
Merge pull request #10425 from Auzali/add-ROTZ-tags-201-250
[sql] Audit some synthesis content tags (201-250)
2026-06-29 01:43:45 +02:00
taylorleary
e7eb2f691d [sql] Audit some synthesis content tags (201-250) 2026-06-28 19:00:52 -04:00
ThrisStraizo
b41373ecd9 Small Maat tweaks
This PR makes sure THF Maat cannot be hidden from and BLM Maat appropriately takes half magic damage to make up for his very small health pool.
2026-06-28 14:46:20 -07:00
Aeshur
a39b72a899 [lua] Add SoA survival skill obstacle traversing 2026-06-28 17:43:38 -04:00
Xaver
d12e7cee9c
Merge pull request #10418 from Skold177/Prevent-Patrolling-Mobs-From-Buffing
[C++] Prevent mobs with path flag patrol from buffing.
2026-06-28 23:07:27 +02:00
sruon
cdc7c7886a Jabbar guild shop converted to Lua 2026-06-28 14:57:16 -06:00
sruon
632b3db30a Jirokichi guild shop converted to Lua 2026-06-28 14:57:16 -06:00
sruon
44f877dd63 Achika guild shop converted to lua 2026-06-28 14:57:16 -06:00
sruon
22836b9ce3 Vuliaie guild shop converted to Lua 2026-06-28 14:57:16 -06:00
Xaver
0b62ed4726
Merge pull request #9962 from Skold177/AutomatonMixin
[lua] [sql] Troll Automaton Mixin
2026-06-28 21:51:58 +02:00
Critical
ac57b7ad21 [lua, sql][module] COR Era Adjustment Modules; COR and module bug fix 2026-06-28 13:51:36 -06:00
Skold
6ebd915731 Prevent Patrolling mobs from buffing
Prevents mobs with pathflag patrol from casting buffs.
2026-06-28 15:47:30 -04:00
Xaver
34682b0724
Merge pull request #10411 from Xaver-DaRed/magic
[Magic] Code Theurgic focus, Addle fixes, Introduce Addle II and Enspell duration bonus
2026-06-28 21:32:12 +02:00
Xaver
c70f20d971
Merge pull request #10419 from Skold177/Meikyo-Shisui-Fix
[C++] Fix Meikyo Shisui / Sekkanoki TP spent Interactions
2026-06-28 21:29:22 +02:00
Skold
0ef9a90ce9 [lua] [sql] Troll Automaton Mixin
Adds a mixin to randomize troll automatons.
2026-06-28 15:24:12 -04:00
Skold
4b7c91ff1f Fix Meikyo Shisui / Sekkanoki Interactions
Fixes Meikyo Shisui / Sekkanoki interactions with TP costs.

Co-Authored-By: WinterSolstice8 <60417494+WinterSolstice8@users.noreply.github.com>
2026-06-28 00:00:16 -04:00
Xaver
8d460cae60
Merge pull request #10417 from Xaver-DaRed/empty2
[Chore] Remove empty functions from npc scripts
2026-06-28 00:39:28 +02:00
Xaver-DaRed
cf04fcb15b Remove empty functions from npc scripts 2026-06-28 00:11:05 +02:00
Xaver
947f0bed47
Merge pull request #10414 from Aeshur/yahse-adoulin-ferry
[lua] Implement Yahse-Adoulin Ferry
2026-06-27 19:35:47 +02:00
Xaver
34c3d79562
Merge pull request #10385 from Aeshur/snakes-on-the-plains-if
[lua] Convert Snake on the Plains to IF
2026-06-27 19:06:01 +02:00
Xaver
8a71ecc8cb
Merge pull request #10413 from Skold177/Cryptonberry
[sql] Add Cryptonberry skill list
2026-06-27 18:58:25 +02:00
Aeshur
6723c3318d [lua] Implement Yahse-Adoulin Ferry 2026-06-27 12:52:36 -04:00
Xaver
672179f107
Merge pull request #10410 from LandSandBoat/state_stack
Core: Refactor use of AI::StateStack
2026-06-27 18:44:39 +02:00
Skold
2d48e0daad Add Cryptonberry skill list
Adds a skill list for Cryptonberries that excludes Everyones Grudge / Rancor
2026-06-27 12:27:42 -04:00
Zach Toogood
6ab71f2bac Core: Refactor use of AI::StateStack
- Removes direct use of the top of the state stack, in favour of a seperate member where we keep the current state.
- Adds tests to reproduce previous ASan errors and a few other logical tests - now all passing
- General tidying
2026-06-27 17:48:53 +02:00
Xaver-DaRed
808f8ea9e3 Add "Enspell Duration Bonus" modifier and apply it to items and code 2026-06-27 13:31:36 +02:00
Xaver-DaRed
701075e759 Handle Addle properly and Implement Addle II 2026-06-27 13:31:36 +02:00
Xaver-DaRed
04bd22c4f3 Implement Theurgic Focus MAB bonus 2026-06-27 12:30:48 +02:00
Zach Toogood
26ec91e0f8 Test: Track exit status
Fix ASAN complaint on exit
2026-06-27 10:56:16 +01:00
Xaver
6bbf612c09
Merge pull request #10409 from ThrisStraizo/moreselfdestruct
[lua] [sql] Self-Destruct and Hypothermal Combustion adjustments
2026-06-27 11:53:24 +02:00
ThrisStraizo
ac40555987 Self-Destruct and Hypothermal Combustion adjustments
This adjusts Self-Destruct and Hypothermal Combustion to ignore MDB as Tanaka intended.  It also adjusts Hypothermal Combustion to be the same as Self-Destruct and adjusts cluster single explosions.
2026-06-26 21:50:50 -07:00
Xaver
f106015623
Merge pull request #10407 from Auzali/add-ROTZ-tags-151-200
[sql] Audit some synthesis content tags (151-200)
2026-06-27 02:14:19 +02:00
Xaver
9c4957017c
Merge pull request #10381 from Xaver-DaRed/Lamia-19
[Chore] Make Lamia 19 script readable by humans.
2026-06-27 02:12:20 +02:00
Xaver-DaRed
2b5f62a5c3 Use listener to try to not to call all players in a zone every tick 2026-06-27 01:43:36 +02:00
taylorleary
795c1fef28 [sql] Audit some synthesis content tags (151-200) 2026-06-26 18:06:08 -04:00
Xaver
0e109d2c51
Merge pull request #10406 from Skold177/Add-medicated-effect-to-!reset
[lua] Adds medicine/food removal to !reset
2026-06-26 20:48:10 +02:00
Skold177
0f462d5210 Adds medicine/food removal to !reset
Adds medicine/food effect removal to !reset for easier testing.
2026-06-26 14:07:21 -04:00
Zach Toogood
8218cdf58f
Merge pull request #10405 from LandSandBoat/raycast_broad_phase_cull
XiMesh: Speed up raycast with broad-phase culling
2026-06-26 18:36:15 +01:00
sruon
d7ed78d4d5 Chiyo Guild Shop converted to Lua 2026-06-26 11:23:18 -06:00
Xaver
3fafd9981d
Merge pull request #10402 from KiplingFFXI/Shen-Audits
[lua, sql] Shen Audits
2026-06-26 19:03:54 +02:00
Xaver
c3e4387c53
Merge pull request #10404 from UmeboshiXI/Era_Avatar_Adjustments
[core][lua][sql] Avatar Weapon/Bloodpact Damage Modules
2026-06-26 18:36:42 +02:00
Kipling
70cca2df9b Shen Audits
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-26 18:36:42 +02:00
Zach Toogood
f177cffb9d XiMesh: Speed up raycast with broad-phase culling 2026-06-26 17:29:29 +01:00
Zach Toogood
91ad4dabbf
Merge pull request #10403 from LandSandBoat/spatial_hashing
Core: Add SpatialGrid to reduce work in ZoneServer (plus many other performance goodies)
2026-06-26 14:35:06 +01:00
Umeboshi
f95916e166 [core][lua][sql] Avatar Weapon/Bloodpact Damage Modules 2026-06-26 05:06:01 -07:00
Zach Toogood
514d543f49 Core: Add SpatialGrid to reduce work in ZoneServer 2026-06-26 12:47:57 +01:00
Zach Toogood
6602ccdba7 Core: Extract tapMobAggro from the SpawnMOBs aggro lambda 2026-06-26 12:41:05 +01:00
Zach Toogood
23ca4c3ad0 Core: Remove TaskGroup usage in ZoneEntities
The setup cost of TaskGroup was much higher than the benefits.
Will be worth revisiting if we ever manage to have multiple threads and Lua states working within a single zone.
Replaced with tickEntityScratch_ and loops.
2026-06-26 12:40:41 +01:00
Zach Toogood
55b8d609a9 Core: Use FlatHashMap for EntityList_t 2026-06-26 12:40:41 +01:00
Zach Toogood
82f7334faf Core: Use FlatHashMap for SpawnIDList_t 2026-06-26 12:40:41 +01:00
Zach Toogood
e2de5aa909 Core: Optimise zlib_{compress, decompress} 2026-06-26 12:40:41 +01:00
Zach Toogood
5e114579af Core: Re-use a scratch packet in networking
Instead of constantly re-allocating a new one :)
2026-06-26 12:40:17 +01:00
Zach Toogood
1f307345a8 Core: Collapse queries in recv_parse
The previous standalone "SELECT charid" existence check was a redundant round-trip.The accid query already validates the char exists.
2026-06-26 09:46:43 +01:00
Zach Toogood
3ed5d5dd48 Core: Add blowfish_{encipher, decipher}_blocks 2026-06-26 09:45:26 +01:00
Zach Toogood
e26b3d8b2b Chore: Add .cpm-cache/ to gitignore 2026-06-26 09:40:23 +01:00
Xaver
d8bda8cbe9
Merge pull request #10398 from CriticalXI/cor_audit
[lua] Route quick draw logic through corsair job util
2026-06-26 10:30:46 +02:00
Xaver
64cbba5244
Merge pull request #10401 from Auzali/add-ROTZ-tags-101-150
[sql] Audit some synthesis content tags (101-150)
2026-06-26 10:17:50 +02:00
Xaver
c7928e9ee9
Merge pull request #10400 from WinterSolstice8/pal_mines_audit
[sql] Quadav Fetich droplist audit + a few others in pal mines
2026-06-26 10:10:13 +02:00
taylorleary
5ec7f6201a [sql] ROTZ Content Tags 101-150 2026-06-25 23:50:39 -04:00
WinterSolstice8
172feae427 [sql] Quadav Fetich droplist audit + a few others in pal mines 2026-06-25 20:41:29 -06:00
Critical
9eba401df5 [lua] Route quick draw logic through corsair job util
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-25 20:32:27 +02:00
Xaver
13ea78ae40
Merge pull request #10399 from Auzali/add-ROTZ-tags-51-100
[sql] Audit some synthesis content tags (51-100)
2026-06-25 11:22:00 +02:00
Xaver
afa6915bd8
Merge pull request #10392 from Xaver-DaRed/empty
[Chore] Remove all cases of empty mob functions inside scripts/zones folder
2026-06-25 08:23:59 +02:00
taylorleary
337f0adbd6 [sql] ROTZ Content Tags 51-100 2026-06-25 01:57:49 -04:00
Aeshur
eebb71208a [lua] Convert Snake on the Plains to IF 2026-06-24 22:35:08 -04:00
Xaver
7fd08e9a17
Merge pull request #10397 from ThrisStraizo/warmaatadjustment
[lua] Additional Maat Adjustments
2026-06-24 23:59:30 +02:00
ThrisStraizo
dbd44101d1 Additional Maat Adjustments
This PR adjusts Maats damage to be more in line with 66-70 engagement of the fight.
2026-06-24 13:30:21 -07:00
Xaver
64a8f3dafc
Merge pull request #10393 from UmeboshiXI/Mob_BaseDamage_Refactor
[core][lua] Mob Weapon Damage Refactor
2026-06-24 20:27:36 +02:00
Zach Toogood
0899465bb6
Merge pull request #10391 from LandSandBoat/empty_handler_elision
Core: Add basic level of Lua empty-handler elision
2026-06-24 16:34:56 +01:00
Zach Toogood
3b0b963617 Test: Add test to verify default Horro module 2026-06-24 15:49:22 +01:00
Xaver
601470126d
Merge pull request #10394 from Xaver-DaRed/fixes
[Fix] 2 cases of missing parameters and a quest not propely written
2026-06-24 14:46:21 +02:00
Xaver-DaRed
95bb204a96 Fixes 2 cases of missing parameters and a quest not propely written 2026-06-24 13:53:56 +02:00
Umeboshi
721e3d1985 [core][lua] Mob Weapon Damage Refactor 2026-06-24 03:59:11 -07:00
Xaver-DaRed
88dc1b6dcc Remove all cases of empty mob functions inside scripts/zones folder
(That I could find)
2026-06-24 12:30:13 +02:00
Zach Toogood
09ac8a5e89 Core: Add basic level of Lua empty-handler elision
This is not a crutch to start being lazy with how we lay out our Lua files and what we put into the Lua state!
2026-06-24 09:43:59 +01:00
Zach Toogood
f5392bfd75
Merge pull request #10389 from LandSandBoat/fix-debugger-dir
Set DEBUGGER_WORKING_DIRECTORY for Ninja debug sessions
2026-06-23 23:45:42 +01:00
Xaver
5732c6bd1e
Merge pull request #10386 from lapislosh/base
Add mimeo stone hidden quest and update rewards
2026-06-23 21:28:31 +02:00
Xaver
060f07895d
Merge pull request #10380 from ThrisStraizo/selfdestructfix
[lua] Self Destruct damage fix
2026-06-23 21:26:29 +02:00
Xaver
2e394ff025
Merge pull request #10357 from CriticalXI/cor_audit
[lua, c++] Corsair job util enhancements
2026-06-23 21:24:00 +02:00
claywar
1c38e88138
Set DEBUGGER_WORKING_DIRECTORY for Ninja debug sessions 2026-06-23 14:02:02 -04:00
Xaver
295ac78528
Merge pull request #10384 from Skold177/DoBuffTick
[C++] [lua] Removed nested buffing logic from doRoamTick, add doBuffTick
2026-06-23 18:17:14 +02:00
Zach Toogood
847d643d99
Merge pull request #10382 from LandSandBoat/performance_improvements
Core: Reinstate and improve 2nd-level Lua caching
2026-06-23 17:02:14 +01:00
hapro
1c65b73953 add mimeo stone quest and update rewards 2026-06-23 11:31:05 -04:00
Skold
50b1662462 Change Sweep test enemy from BRD to MNK
This test could sometimes fail as the Yagudo BRD could be busy casting a song when this test runs.
2026-06-23 11:14:38 -04:00
Skold177
95441da5fc Removed nested buffing logic from doRoamTick, add doBuffTIck
Removes out of combat spell casting from being nested inside of mob roam.
2026-06-23 10:55:21 -04:00
Zach Toogood
4787c5acf1 Core: Refactor "2nd-level" caching to be the only cache
This was a sort of misnomer from when we moved from constantly re-reading Lua from the disk to storing everything in the Lua state. Now we don't constantly walk the Lua state - we jump right to our cached Lua functions.
2026-06-23 15:43:11 +01:00
Zach Toogood
01b2beb72f Core: Throttle TryLink() 2026-06-23 14:22:53 +01:00
Zach Toogood
7009d0fb72 Core: Replace xi:eraseIf with stdlib version 2026-06-23 14:21:45 +01:00
Zach Toogood
f6434f362d Build: Tidy up default build config selection 2026-06-23 14:21:14 +01:00
Zach Toogood
e711fc8e04 Core: Reinstate and improve 2nd-level Lua caching 2026-06-23 12:28:00 +01:00
Zach Toogood
bef2342f9b Core: Tidy event handler 2026-06-23 12:28:00 +01:00
Zach Toogood
1aed28a22d Deps: Add FlatHashMap 2026-06-23 12:28:00 +01:00
Zach Toogood
f81e77c8ff Scripts: Add tracy capture helper script 2026-06-23 12:28:00 +01:00
Zach Toogood
f72ddee704 Scripts: Add build helper script (for CLI help) 2026-06-23 12:28:00 +01:00
Zach Toogood
a847dd01be Build: Add CMakePresets for easier CLI builds 2026-06-23 12:27:59 +01:00
ThrisStraizo
cf81279e43 Self Destruct damage fix
This PR adjusts Self Destruct damage to reflect retail accurate behavior.
2026-06-22 19:15:12 -07:00
Xaver
c02531ddaf
Merge pull request #10379 from CriticalXI/battlefield_bugfix
[lua, cpp] Pulling the Plug fixes; OnSpellCastStart fix
2026-06-23 00:02:05 +02:00
Critical
05c00d3bb8 [lua, cpp] Pulling the Plug fixes; OnSpellCastStart fix 2026-06-22 15:19:43 -06:00
Xaver
ddce6298f5
Merge pull request #10370 from cwalke39/base
[lua] Adding CrystalWar Quest 7 70
2026-06-22 21:25:57 +02:00
Xaver
264bd2b41d
Merge pull request #10383 from LandSandBoat/los_cache
Core: Add LosCache to CanSeeTarget
2026-06-22 21:16:38 +02:00
Zach Toogood
dd538ecf6c
Merge pull request #10375 from MoombaDS/graceful-shutdown-on-signal
[C++] Core: Fix map server shutdown crash on SIGINT/SIGTERM
2026-06-22 19:22:51 +01:00
Zach Toogood
6240e3bf3c Core: Add LosCache to CanSeeTarget 2026-06-22 19:01:33 +01:00
Xaver-DaRed
d655041a28 Make Lamia 19 script readable by humans. 2026-06-22 16:38:43 +02:00
Xaver
7632a4e99d
Merge pull request #10261 from KiplingFFXI/Arrapago-Reef-NM-Audits
[lua] [sql] Arrapago Reef NM Audits
2026-06-22 16:28:00 +02:00
Kipling
66013b70f1 Arrapago Reef NM Audits 2026-06-22 14:01:04 +02:00
Zach Toogood
03cb598c5b
Merge pull request #10378 from LandSandBoat/logging_improvements
Core: Logging improvements
2026-06-22 10:44:50 +01:00
Zach Toogood
e8dbb246fa
Merge pull request #10377 from LandSandBoat/db_c_backend
DB: Extract out interface, implement C-connector backend
2026-06-22 10:28:37 +01:00
Critical
53299bdbcd [lua, sql] Corsair job util enhancements
Co-Authored-By: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-22 11:14:20 +02:00
Zach Toogood
d58978daa5 DB: Extract out interface, implement C-connector backend 2026-06-22 09:21:44 +01:00
Zach Toogood
09b262bfc1 Scripts: Add LLVM windows path to run_clang_format.py 2026-06-22 09:16:45 +01:00
Xaver
ded72c7b00
Merge pull request #10364 from CriticalXI/leujaoam_cleansing
[lua, cpp] Leujaoam Cleansing Assault; Lootbox Logic
2026-06-22 08:10:55 +02:00
Critical
4e07f64f99 [lua, cpp] Leujaoam Cleansing Assault; Lootbox Logic 2026-06-21 18:10:56 -06:00
Zach Toogood
614fef3a33 Core: Improve logging
- Invert settings/string building checks
- Improve backtrace circular buffer
- Improve custom formatters
- Cache loggers for quick lookup
- Memoize settings access and results
2026-06-21 22:43:41 +01:00
Zach Toogood
61ab350399 Core: Improve to_upper, to_lower 2026-06-21 22:38:38 +01:00
Xaver
74a5384439
Merge pull request #10371 from Skold177/Heady-Artifice
[sql] [lua] Implement Overdrive, Tactical Switch, Correct Burden Calculations
2026-06-21 21:09:48 +02:00
Xaver
ad85890e35
Merge pull request #10374 from TeoTwawki/base
Strip comment that has not aged well
2026-06-21 21:04:27 +02:00
Skold
41c52121b7 Implement Overdrive / Tactical Switch
Implements Overdrive / Tactical Switch / Cleans up some functions in automaton.lua / Fixes burden calculations.
2026-06-21 14:12:56 -04:00
TeoTwawki
c594e84511
Strip comment that has not aged well
Back when I wrote these comments, they were easy to prove true. Most of it even still applies in many cases. But more and more exceptions have piled up after the level cap increased and new gear was added. Individual items can have different behaviors in regard to proc rate, damage values, and base stats being used in their math. Back in the old 75 cap era no amount  of MND affected my Holy Mauls. No Amount of INT affected my fire sword. Today there are very definitely melee weapons that use these stats, and more. Even a dagger or 2 using AGI in their math.
2026-06-21 16:53:42 +00:00
Xaver
20ed074b0f
Merge pull request #10367 from Xaver-DaRed/shadow-lord-1
[Fix] Table data fetching for Shadow Lord phases
2026-06-21 18:22:21 +02:00
Zach Toogood
b092ed90f3
Merge pull request #10373 from LandSandBoat/mock_socket_interface
Core: Add mockable socket interface
2026-06-21 17:21:03 +01:00
Zach Toogood
83078e00c2
Merge pull request #10372 from LandSandBoat/status_effect_refactor
Core: Refactor StatusEffectContainer to hide allocations
2026-06-21 17:11:21 +01:00
Joe Griffith (Moomba)
848adc0ca2 Core: Fix crash on shutdown via SIGINT/SIGTERM 2026-06-21 15:56:03 +00:00
Zach Toogood
1e2ec9c3a7 Core: Add mockable socket interface 2026-06-21 15:44:54 +01:00
Zach Toogood
8334db98ce Lua: Add second-level caching for status effect scripts 2026-06-21 14:42:15 +01:00
Zach Toogood
1c30434a18 Test: Rename constants in status benchmark 2026-06-21 13:08:48 +01:00
Zach Toogood
efa445c0c6 Core: Add more tracy scopes to StatusEffectContainer 2026-06-21 12:24:59 +01:00
Zach Toogood
6f7e0c4d9e Core: Refactor StatusEffectContainer to hide allocations 2026-06-21 12:10:24 +01:00
Zach Toogood
eb7c9f9032 Test: Add estimated network drain to status benchmark 2026-06-21 12:09:24 +01:00
Zach Toogood
9d8949f9e9 Test: Add Status Effect benchmark test 2026-06-21 11:59:46 +01:00
Zach Toogood
4fc8d28ba7 Core: Fix xi_map tracy linkage 2026-06-21 11:57:35 +01:00
Crazyalextrebek
e4b9e51af2 [lua] Adding CrystalWar Quest 7 70 2026-06-20 21:31:31 -06:00
Xaver
d8a950d33c
Merge pull request #10369 from Skold177/Implement-Heady-Artifice
[lua] [sql] Implement JA Heady Artifice
2026-06-21 04:38:05 +02:00
Skold
e331b2c55b Implement JA Heady Artifice
Implements JA Heady Artifice, which allows automatons to use 2-hour abilities. Retires the automaton abilities ENUM and moves them into mobskills.
2026-06-20 22:11:02 -04:00
Xaver-DaRed
fbae82c2ea Cleanup Shadow Lord (phase 1) lua file 2026-06-21 00:22:59 +02:00
Xaver-DaRed
890cfb0036 Fix table data fetching for Shadow Lord phases 2026-06-21 00:09:44 +02:00
Zach Toogood
55230ff2a6
Merge pull request #10368 from LandSandBoat/zone_interface
Core: Add WeatherContainer, clean up Zone interface surface
2026-06-20 22:41:19 +01:00
Zach Toogood
6892d2d4fe Core: Clean up Zone interface surface 2026-06-20 21:20:28 +01:00
Zach Toogood
cf60b9abc9 Core: Add WeatherContainer 2026-06-20 21:20:16 +01:00
Zach Toogood
f3276a28cf
Merge pull request #10366 from LandSandBoat/tidy_entities
Core: Rename entity files (charentity.h -> char_entity.h, etc.)
2026-06-20 20:11:46 +01:00
Zach Toogood
7a8832595b Core: Fix some accidental copies during iteration 2026-06-20 19:11:50 +01:00
Zach Toogood
e612d3542f Core: Tidy interfaces for {automaton, fellow, npc, pet, trust}_entity 2026-06-20 15:17:41 +01:00
Zach Toogood
38a93d078f Core: Tidy CTrustEntity interface 2026-06-20 13:46:29 +01:00
Zach Toogood
8aa8398041 Core: Remove friend class decl from CCharEntity 2026-06-20 13:14:05 +01:00
Zach Toogood
f8c3d5d01b Core: Tidy up entity class declarations and destructors 2026-06-20 13:08:16 +01:00
Zach Toogood
ccb6fbef57 Core: Reorg CAutomatonEntity and associated types 2026-06-20 12:57:22 +01:00
Zach Toogood
65f125846e Core: Rename entity files (charentity.h -> char_entity.h, etc.) 2026-06-20 11:56:34 +01:00
Frank
ddf2e57de9
[sql] Adjusts the remaining COP/TOAU zones for retail mob levels (#10365)
* [sql] Adds retail level changes for Ifrits Cauldron

* [sql] Adds retail level changes for Gustav Tunnel

* [sql] Adds retail level changes for  Labyrinth of Onzozo

* [sql] Adds retail level changes for Arrapago Reef

* [sql] Adds retail level changes for Halvung

* [sql] Adds retail level changes for Aydeewa Subterrane
2026-06-20 09:41:35 +02:00
Xaver
d116888183
Merge pull request #10362 from Skold177/Increase-Moblin-Fantoccini-Dice-Range
[sql] Increase Marionette Dice Range
2026-06-20 09:26:57 +02:00
Xaver
c99c613b7d
Merge pull request #10359 from KiplingFFXI/Pso'Xja-NM-Audits
[lua] [sql] Golden-tongued Culberry Audits
2026-06-20 09:26:29 +02:00
Xaver
ff521269ce
Merge pull request #10358 from Skold177/Change-getSkillCap-to-warning
[C++] [lua] Change ordering of LoadAutomaton() in lua_baseentity
2026-06-20 09:25:37 +02:00
Skold177
d449280514 Update LoadAutomaton ordering in lua_baseentity
Changes the ordering of LoadAutomaton in lua_baseentity so it matches the same flow found in myroom_job.cpp.
2026-06-19 21:52:55 -04:00
Zach Toogood
b72413a5c6
Merge pull request #10361 from LandSandBoat/cmake_split
Build: Split xi_map cmake targets
2026-06-20 01:13:48 +01:00
Zach Toogood
010e392d80 Build: Split xi_map cmake targets 2026-06-20 00:08:29 +01:00
Kipling
b6440fbb26 Culberry Audits 2026-06-19 12:12:27 -07:00
Skold177
01889ff211 Increase Marionette Dice Range 2026-06-19 12:11:02 -04:00
Xaver
85edb5fa8f
Merge pull request #10347 from Frankie-hz/reworkmodules
[modules] Rework module structure for lua
2026-06-19 08:21:54 +02:00
Xaver
1d80a71457
Merge pull request #10355 from UmeboshiXI/Bloodpacts_Physical
[lua] Convert Physical Bloodpacts To Mobskill Framework
2026-06-19 08:21:20 +02:00
Frank
69ebfeb7e0
[sql] Adjusts more mob levels to match retail for 10 more zones (#10356)
* [sql] Adds retail level changes for Kuftal Tunnel

* [sql] Adds retail level changes for Sea Serpent Grotto

* [sql] Adds retail level changes for VeLugannon Palace

* [sql] Adds retail level changes for King Ranperres Tomb

* [sql] Adds retail level changes for Dangruf Wadi

* [sql] Adds retail level changes for Inner Horutoto Ruins

* [sql] Adds retail level changes for Ordelles Caves

* [sql] Adds retail level changes for Gusgen Mines

* [sql] Adds retail level changes for Crawler's Nest

* [sql] Adds retail level changes for Fei'Yin
2026-06-19 07:16:51 +02:00
Frankie-hz
9eaf4e2689 [modules] rework module structure 2026-06-19 01:16:49 -04:00
Umeboshi
36fd600beb [lua] Convert Physical Bloodpacts To Mobskill Framework 2026-06-18 20:02:08 -07:00
Xaver
5592b25ae2
Merge pull request #10354 from Frankie-hz/levelsfive
[sql] Adjusts more mob levels to match retail for 9 more zones
2026-06-19 03:53:47 +02:00
Xaver
ce00dc8066
Merge pull request #10353 from sruon/paunelie_shop
[lua, sql] Linkshell vendors converted to lua
2026-06-19 03:39:13 +02:00
Xaver
bd87f35f91
Merge pull request #10352 from sruon/latent_enums
[core, lua] Migrate DAMAGE_TYPE, LATENT, ECOSYSTEM enums to YAML
2026-06-19 03:13:43 +02:00
sruon
6bf63da04d Linkshell vendors converted to lua 2026-06-18 18:36:07 -06:00
sruon
05c20a592f Migrate DAMAGE_TYPE enum to YAML 2026-06-18 18:17:36 -06:00
sruon
3cb7f6d35f Migrate ECOSYSTEM enum to YAML 2026-06-18 16:16:04 -06:00
sruon
a6b0ea737a Migrate LATENT enum to YAML codegen 2026-06-18 15:57:11 -06:00
Xaver
22901d7d35
Merge pull request #10350 from sruon/goblin_chip_shops
[lua, sql] Chip Goblins guild shops converted to Lua
2026-06-18 10:29:28 +02:00
Xaver
6e140398b6
Merge pull request #10344 from Skold177/Globalize-Attachment-Modifiers-/-Cleanup-Automaton.lua
[C++] [lua] Globalize attachment modifiers, implement Volt Gun, cleanup Automaton.lua
2026-06-18 10:21:23 +02:00
Skold
984b000675 Globalize Attachment Mods, Add Volt Gun, Cleanup Automaton.lua
Globalizes the attachment modifiers, implements volt gun and cleans up automaton lua.

Co-Authored-By: WinterSolstice8 <60417494+WinterSolstice8@users.noreply.github.com>
2026-06-18 09:32:41 +02:00
sruon
809edb261a Chip Goblins guild shops converted to Lua 2026-06-18 01:28:32 -06:00
Xaver
220e2a6791
Merge pull request #10349 from sruon/akamafula_shop
[lua, sql] Akamafula converted to standard shop
2026-06-18 08:42:42 +02:00
Xaver
ca34f0073e
Merge pull request #10348 from neelahaneesh03-ops/fix/10336-deus-ex-automata-typo
[good-first-issue] Fix typo: DEUX_EX_AUTOMATA TO DEUS_EX_AUTOMATA
2026-06-18 08:42:29 +02:00
Xaver
dac03908be
Merge pull request #10346 from sruon/guild_yabby
[lua, sql] Yabby Tanmikey guild shop converted to Lua
2026-06-18 08:38:38 +02:00
Xaver
5365396b02
Merge pull request #10343 from ThrisStraizo/maatadjustments
[lua] [sql] More Maat Adjustments
2026-06-18 08:34:33 +02:00
sruon
70f316d2a0 Akamafula converted to standard shop 2026-06-18 00:13:53 -06:00
neelahaneesh03-ops
353b818a29 Fix typo: DEUX_EX_AUTOMATA TO DEUS_EX_AUTOMATA 2026-06-18 01:18:52 -04:00
sruon
f1a47645ea Yabby Tanmikey guild shop converted to Lua 2026-06-17 21:21:09 -06:00
ThrisStraizo
dd1028b323 More Maat Adjustments
Tweak the base dmg on certain Maat fights.

Add a conditional for the enrage line delivery to happen on Asuran Fists itself to be more retail accurate.
2026-06-17 15:37:45 -07:00
WinterSolstice8
904864dcb1
Merge pull request #10341 from cocosolos/ci-upgrade-2
Update to clang-format-22
2026-06-17 15:23:01 -06:00
Corey Sotiropoulos
be830dbb47 Update to clang-format-22 2026-06-17 13:55:42 -06:00
Xaver
97063025f7
Merge pull request #10342 from sruon/missing_hitboxes
[sql] Backfill missing mob hitboxes
2026-06-17 16:58:30 +02:00
sruon
07f6676849 Backfill missing mob hitboxes 2026-06-17 01:12:05 -06:00
Xaver
b1563093dd
Merge pull request #10335 from Skold177/Automaton-Equalizer
[C++] [lua] Implement Automaton Equalizer
2026-06-17 08:49:43 +02:00
Xaver
f33090c542
Merge pull request #10339 from Aeshur/empyrean-armor-fixes
[sql] Fix Unkai Sune-Ate + Bale Gauntlets mods
2026-06-17 08:46:32 +02:00
Xaver
f2764bac99
Merge pull request #10340 from sruon/status_effects_cleanup
[core] Cleanup Status Effects enums
2026-06-17 08:45:43 +02:00
WinterSolstice8
9584aaadfe
Merge pull request #10333 from cocosolos/ci-upgrade
Update Docker/CI to latest Ubuntu/Alpine, Clang22+GCC15
2026-06-16 21:25:21 -06:00
sruon
7c19130c59 Improve error message when codegen dependencies are missing 2026-06-16 21:04:19 -06:00
sruon
13ff0a7927 Cleanup deprecated Status Effect enums 2026-06-16 20:58:39 -06:00
Corey Sotiropoulos
88769f91b4
[docker] Fix issue with write access
Scripts were just being mounted instead of copied during buildtime to
save time, but this caused write access issues when generating enums
during the build.
2026-06-17 01:36:25 +00:00
Corey Sotiropoulos
1363188e72
[ci] Update actions versions
Node.js 20 is deprecated. Upgrade to latest versions of affected actions.
2026-06-17 01:36:17 +00:00
Corey Sotiropoulos
88db5c32ec
Clean up cppcheck errors
- Add explicit co_return for cppcheck errors [missingReturn]
- Return by const reference. [returnByReference]
2026-06-17 01:34:31 +00:00
Corey Sotiropoulos
86c7b27ca5
Clean clang-tidy-22 warnings
performance-unnecessary-copy-initialization
2026-06-17 01:34:31 +00:00
Corey Sotiropoulos
91933242a7
Update some dependencies
Fixes build issues with clang-22.
2026-06-17 01:34:31 +00:00
Corey Sotiropoulos
5822f31afe
[ci,docker] Update to Ubuntu 26.04
- Updates to LLVM22 and GCC15.
- Updates runners to Python 3.14.
2026-06-17 01:34:30 +00:00
Corey Sotiropoulos
c325ca7c27
[docker] Update to latest Alpine stable
Updates to LLVM22 and GCC15.
2026-06-17 01:34:30 +00:00
Aeshur
fa4d5a044a [sql] Fix Unkai Sune-Ate + Bale Gauntlets mods 2026-06-16 19:01:05 -04:00
WinterSolstice8
baeabac590
Merge pull request #10337 from WinterSolstice8/submodule
[navmeshes] Update submodule commit
2026-06-16 10:33:45 -06:00
WinterSolstice8
063008c1d9 [navmeshes] Update submodule commit 2026-06-16 10:05:07 -06:00
Skold
eed8b48112 Implement Automaton Equalizer
Implements the automaton attachment Equalizer
2026-06-16 11:16:18 -04:00
WinterSolstice8
aeebca38a7
Merge pull request #10331 from sruon/yaml_status_effects
[core, lua, sql] YAML as static data source; enums codegen; schema validation
2026-06-16 05:14:33 -06:00
Xaver
ef9705c1e1
Merge pull request #10326 from Skold177/Fix-Repair-Kit-/-Mana-Tank-Interactions
[C++] [lua] Fix Repair Kit / Mana Tank Interactions
2026-06-16 09:21:30 +02:00
Xaver
4936249998
Merge pull request #10328 from Frankie-hz/levelsfour
[sql] Adjusts more mob levels to match retail for 8 more zones
2026-06-16 09:21:02 +02:00
Xaver
dcb04ab2d2
Merge pull request #10327 from sruon/mep_guild
[lua, sql] Kopopo / Mep guild shops converted to Lua
2026-06-16 09:13:38 +02:00
Xaver
1263a4995d
Merge pull request #10329 from CriticalXI/cor_audit
[lua] Update COR roll effect luas
2026-06-16 09:12:38 +02:00
sruon
6f40ea8625 YAML data: codegen pipeline + status_effects migration 2026-06-16 00:32:19 -06:00
Critical
9980ac5e1e [lua] Update COR roll effect luas 2026-06-15 20:27:08 -06:00
Frankie-hz
96475f8ede [sql] Adds retail level changes for Korroloka Tunnel 2026-06-15 21:04:51 -04:00
Frankie-hz
cfb644db73 [sql] Adds retail level changes for Zeruhn Mines 2026-06-15 21:01:39 -04:00
Frankie-hz
b754045677 [sql] Updates to Bostaunieux Oubliette mob levels 2026-06-15 21:00:45 -04:00
Frankie-hz
6af70322fb [sql] Adds retail level changes for Ranguemont Pass 2026-06-15 20:57:36 -04:00
Frankie-hz
ed771ff6e5 [sql] Adds retail level changes for Castle Zvahl Keep 2026-06-15 20:56:23 -04:00
Frankie-hz
21b84398dc [sql] Adds retail level changes for Castle Zvahl Baileys 2026-06-15 20:55:43 -04:00
Frankie-hz
640d463c8b [sql] Adds retail level changes for Den of Rancor 2026-06-15 20:54:27 -04:00
Frankie-hz
a2ff69179f [sql] Adds retail level changes for Middle Delkfutts Tower 2026-06-15 20:50:12 -04:00
Frankie-hz
de595c3eaa [sql] Adds retail level changes for Dragons Aery 2026-06-15 20:49:54 -04:00
Frankie-hz
0b1c5dddd7 [sql] Adds retail level changes for Castle Oztroja 2026-06-15 20:41:56 -04:00
Frankie-hz
b8757bfb54 [sql] Adds retail level changes for Monastic Cavern 2026-06-15 20:40:37 -04:00
Frankie-hz
60b971523c [sql] Adds retail level changes for Davoi 2026-06-15 20:37:38 -04:00
Frankie-hz
7a3c654ed2 [sql] Adds retail level changes for Giddeus 2026-06-15 20:36:32 -04:00
Frankie-hz
5bff523848 [sql] Adds retail level changes for Palborough Mines 2026-06-15 20:35:36 -04:00
Frankie-hz
d3ded4ad16 [sql] Adds retail level changes for Fort Ghelsba 2026-06-15 20:31:35 -04:00
Frankie-hz
e1cf636c7f [sql] Adds retail level changes for Ghelsba Outpost 2026-06-15 20:30:44 -04:00
Frankie-hz
d8a814049d [sql] Adds retail level changes for Behemoths Dominion 2026-06-15 20:28:51 -04:00
sruon
bdae3da585 Kopopo guild shop converted to lua 2026-06-15 16:20:36 -06:00
sruon
65202a708e Mep Nhapopoluko Guild Shop converted to lua 2026-06-15 16:14:45 -06:00
Skold
ca9bc14452 Fix Repair Kit / Mana Tank Interactions
Fixes the handling of repair kit and mana tank with captures from retail.
2026-06-15 17:18:03 -04:00
Xaver
2c8127ca77
Merge pull request #10321 from KiplingFFXI/Stubborn-Dredvodd-Audits
[lua] [sql] Stubborn Dredvodd Audits
2026-06-15 22:26:37 +02:00
Kipling
2796f526b3 Stubborn Dredvodd Audits 2026-06-15 12:59:29 -07:00
Xaver
e31a15a2d8
Merge pull request #10316 from KiplingFFXI/Attohwa-Chasm-NM-Audits
[lua] [sql] Attohwa Chasm NM Audits
2026-06-15 21:53:20 +02:00
Xaver
bf9df132a6
Merge pull request #10319 from Skold177/Update-Automaton-Base-Damage-Calculation
[C++] Update Automaton Base Damage Calculation
2026-06-15 21:51:26 +02:00
Xaver
bd8229126f
Merge pull request #10325 from Omnione/emote_rate_limit
Fix Emote rate limit to 1 sec
2026-06-15 21:47:06 +02:00
MrSent
8248228db3 Fix Emote rate limit to 1 sec 2026-06-15 18:16:31 +01:00
Xaver
9a99d5e4ed
Merge pull request #10318 from Frankie-hz/levelstwo
[sql] Adjusts more mob levels to match retail for 7 more zones
2026-06-15 18:49:47 +02:00
Zach Toogood
5c3ede09bb
Merge pull request #10324 from LandSandBoat/enforce_navmeshes
Core: Enforce the usage of ximeshes and navmeshes
2026-06-15 17:38:25 +01:00
Zach Toogood
4c9cb343e5
Merge pull request #10323 from LandSandBoat/zmq_conflict
Core: Refactor ZMQ usage into ZMQService
2026-06-15 17:38:13 +01:00
Xaver
ddcb412f78
Merge pull request #10322 from KiplingFFXI/Almighty-Apkallu-Spawn-Animation
[lua] [sql] Almighty Apkallu Spawn Animation
2026-06-15 18:35:31 +02:00
Zach Toogood
439cadd7d5 Core: Enforce the usage of ximeshes and navmeshes 2026-06-15 16:32:07 +01:00
Zach Toogood
e98f785ebb Core: Refactor ZMQ usage into ZMQService 2026-06-15 15:51:48 +01:00
Kipling
8aa5014647 Almighty Apkallu Spawn Anim 2026-06-15 00:30:53 -07:00
Skold
75532fc22b Update Automaton Base Damage Calculation
Improves the calculation for automaton base damage with a capture from retail and analysis from Jimmayus
2026-06-14 22:44:56 -04:00
Frankie-hz
3b24d268a2 [sql] Adds retail level changes for Qufim Island 2026-06-14 22:04:26 -04:00
Frankie-hz
3d0bf5c9d3 [sql] Adds retail level changes for Yuhtunga Jungle 2026-06-14 22:03:03 -04:00
Frankie-hz
86bb6a4996 [sql] Adds retail level changes for West Sarutabaruta 2026-06-14 21:59:14 -04:00
Frankie-hz
adf7547314 [sql] Adds retail level changes for Cape Teriggan 2026-06-14 21:58:32 -04:00
Frankie-hz
9321bbb84b [sql] Adds retail level changes for Beaucedine Glacier 2026-06-14 21:56:37 -04:00
Frankie-hz
e888f3ddff [sql] Adds retail level changes for Konschtat Highlands 2026-06-14 21:54:32 -04:00
Frankie-hz
b8dca56081 [sql] Adds retail level changes for North Gustaberg 2026-06-14 21:52:31 -04:00
Xaver
1e8a89ec63
Merge pull request #10317 from Skold177/Nott
[lua] [sql] Implement Nott for Trusts
2026-06-14 22:03:47 +02:00
Skold
a1d2f8043e Implement Nott for Trusts
Implement Nott, add to Apururu (UC) and Sylvie (UC)
2026-06-14 15:39:46 -04:00
Kipling
815031a116 Attohwa Chasm NM Audits 2026-06-14 10:01:20 -07:00
Xaver
b6754010de
Merge pull request #10296 from ThrisStraizo/chestillusion
[sql] Check for chest illusion before failure checks
2026-06-14 14:10:38 +02:00
Xaver
879e3a6cae
Merge pull request #10314 from Skold177/Retail-Accurate-Automaton-Skill-Caps
[C++] [lua] Implement Retail Accurate Automaton Skill Caps
2026-06-14 13:45:45 +02:00
Xaver
9f15b6994f
Merge pull request #10313 from WinterSolstice8/login_stale_char_data
[login] Mark char data structs as stale on successful login
2026-06-14 13:01:14 +02:00
Xaver
e8d30bbaf2
Merge pull request #10311 from Nobutadas/event-skipped-audit-up-to-CoP-5-2
[lua] Event Skipped and Cutscene Audit for CoP 2-5 to 5-2
2026-06-14 13:00:51 +02:00
Xaver
e5a6158343
Merge pull request #10310 from Frankie-hz/levelsone
[sql] Adjusts mob levels to match retail for various zones
2026-06-14 12:59:27 +02:00
Xaver
46c456a8e5
Merge pull request #10315 from sruon/amulya_guild
[lua, sql] Amulya Guild Shop converted to lua
2026-06-14 12:49:38 +02:00
Skold
41978b47e1 Implement Retail Accurate Automaton Skill Caps
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-14 12:48:02 +02:00
Xaver
6804062120
Merge pull request #10312 from WinterSolstice8/auto_skill_menu
[core] Move merit bonus in PUP data packet
2026-06-14 12:42:15 +02:00
Xaver
6f76d0b5d6
Merge pull request #10309 from ThrisStraizo/maatfixes
[lua] More Maat adjustments
2026-06-14 12:41:22 +02:00
Xaver
640e8b3828
Merge pull request #10308 from Hatberg/riverne-aggro-link-test
[sql] Riverne A01 Linking/Aggro fixing
2026-06-14 12:39:51 +02:00
sruon
b4dd0af85c Amulya Guild Shop converted to lua 2026-06-13 20:27:47 -06:00
WinterSolstice8
1849ca2dab [login] Mark char data structs as stale on successful login 2026-06-13 20:06:17 -06:00
WinterSolstice8
e1ea86f0a2 [core] Move merit bonus in PUP data packet 2026-06-13 19:12:38 -06:00
Nobutadas
cd210f8f3a [lua] Event Audit for CoP 3-1 to 5-2 2026-06-13 19:00:41 -05:00
Frankie-hz
26b73b3701 [sql] Adds retail level changes for Valkurm Dunes 2026-06-13 16:32:22 -04:00
Frankie-hz
64a2595f28 [sql] Adds retail level changes for La Theine Plateau 2026-06-13 16:31:25 -04:00
Frankie-hz
78af594f0c [sql] Adds retail level changes for The Garden of RuHmet 2026-06-13 16:29:07 -04:00
Frankie-hz
9a651cf8cf [sql] Adds retail level changes for Grand Palace of Hu'Xzoi 2026-06-13 16:28:28 -04:00
Frankie-hz
9a3df220aa [sql] Adds retail level changes for Al'Taieu 2026-06-13 16:27:13 -04:00
Frankie-hz
be23b736ef [sql] Adds retail level changes for Promy Dem 2026-06-13 16:23:05 -04:00
Frankie-hz
945b61bc54 [sql] Adds retail level changes for Oldton Movalpolos 2026-06-13 16:19:05 -04:00
Frankie-hz
99c5cfee26 [sql] Adds retail level changes for PsoXja 2026-06-13 16:17:50 -04:00
Frankie-hz
41e63a7a7d [sql] Adds retail level changes for Carpenters Landing 2026-06-13 16:16:09 -04:00
ThrisStraizo
5e440f6367 [lua] More Maat adjustments
This PR adjusts the quest finished dialogue for Maat after obtaining Maats cap, setting the level cap to max level instead of 99, and removing the titles in the mob luas as its already provided in the IF.
2026-06-13 11:45:09 -07:00
Xaver
f904a66a53
Merge pull request #10307 from Frankie-hz/slotsseven
[sql, lua] Add spawn slot and levels for the last of COP/TOAU zones
2026-06-13 19:09:06 +02:00
Frankie-hz
98cf330ec0 [sql, lua] Correction for spawn slot info for Mt. Z 2026-06-13 12:39:56 -04:00
Hatberg
8779f8e59e [sql] Riverne A01 Linking/Aggro fixing 2026-06-13 18:33:25 +02:00
Frankie-hz
905aabf5e8 [sql, lua] Add spawn slot and levels for Riverne - Site #B01 2026-06-13 12:04:12 -04:00
Frankie-hz
7c51f86fca [sql, lua] Add spawn slot and levels for Bhaflau Thickets 2026-06-13 11:59:45 -04:00
Frankie-hz
f1cb277a0e [sql, lua] Add spawn slot and levels for Wajaom Woodlands 2026-06-13 11:53:43 -04:00
Frankie-hz
61c34abefb [sql, lua] Add spawn slot and levels for Lufaise Meadows 2026-06-13 11:47:13 -04:00
Frankie-hz
3ac5ab5c07 [sql, lua] Add spawn slot and levels for Promyvion - Mea 2026-06-13 11:41:28 -04:00
Frankie-hz
5480467d65 [sql, lua] Add spawn slot and levels for Promyvion - Holla 2026-06-13 11:34:49 -04:00
Xaver
52fc146197
Merge pull request #10298 from ThrisStraizo/finalmaat
[lua] [sql] Final Stage Maat Migration to Individualized Luas
2026-06-13 13:48:49 +02:00
ThrisStraizo
7b0c9975cf Final Stage Maat Migration to Individualized Luas
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-13 13:22:16 +02:00
Xaver
c1d262a66f
Merge pull request #10301 from Skold177/Fix-Weeping-Willow-Respawn-Behavior
[lua] Fix Lumber Jack / Weeping Willow despawn interaction.
2026-06-13 13:10:35 +02:00
Xaver
3630c6a781
Merge pull request #10306 from Hatberg/aqueducts-link-aggro-test
[sql] Phomiuna Aqueducts aggro/link fixes
2026-06-13 12:52:56 +02:00
Xaver
46e30a3a56
Merge pull request #10305 from sruon/xi_world_busywait
[core] Revert router ZMQ socket to blocking wait
2026-06-13 12:52:26 +02:00
Xaver
b395c5a4e6
Merge pull request #10304 from sruon/bastok_phantom_npcs
[sql] Remove missing NPCs from Bastok Markets
2026-06-13 12:52:03 +02:00
Xaver
2bc326b66a
Merge pull request #10303 from Frankie-hz/delimiter
[sql] Adds missing Delimiter to triggers.sql
2026-06-13 12:51:42 +02:00
Xaver
6093db66fc
Merge pull request #10300 from Frankie-hz/slotssix
[sql, lua] Add spawn slot and levels for Zitah, Boyahda Tree, Temple of Ugg, Rolanberry, Sauromugue, Misareaux Coast
2026-06-13 12:40:25 +02:00
Xaver
d7c898bb24
Merge pull request #10299 from Skold177/Improve-frame-fetching-code-in-petutils
[C++] Improve Automaton Frame Stats Unwrapping
2026-06-13 12:39:25 +02:00
Hatberg
8e0fb6716a [sql] Phomiuna Aqueducts aggro/link testing 2026-06-13 11:09:56 +02:00
sruon
92dff64a89 Revert router socket to blocking wait 2026-06-13 01:03:26 -06:00
sruon
5425b32e73 Remove missing NPCs from Bastok Markets 2026-06-13 00:29:14 -06:00
Frankie-hz
608f81e86d [sql] Adds missing Delimiter to triggers.sql 2026-06-13 00:23:12 -04:00
Skold
ba51ccd05d Fix Weeping Willow Respawn behavior
Fixes the conditional in Lumber_Jack.lua to respawn Weeping Willow if Lumber Jack despawns.
2026-06-12 23:30:55 -04:00
Frankie-hz
bea9fba938 [sql, lua] Add spawn slot and levels for Misareaux Coast 2026-06-12 22:40:45 -04:00
Frankie-hz
cde2e8b849 [sql, lua] Add spawn slot and levels for Sauromugue Champaign 2026-06-12 22:32:33 -04:00
Xaver
9436c36316
Merge pull request #10297 from Aeshur/fix-retal-bonus
[core] Fix Retaliation bonus integer truncation
2026-06-13 04:12:11 +02:00
Frankie-hz
35af50f34e [sql, lua] Add spawn slot and levels for Rolanberry Fields 2026-06-12 22:05:41 -04:00
Skold
1971a0a2df Improve Automaton Frame Stats Unwrapping
Improves some code to fetch automaton stats in petutils to a better format
2026-06-12 22:02:52 -04:00
Frankie-hz
4bd5aa6673 [sql, lua] Add spawn slot and levels for Temple of Uggalepih 2026-06-12 22:01:37 -04:00
Frankie-hz
28040e7e63 [sql, lua] Add levels and NM info for The Boyahda Tree 2026-06-12 21:58:37 -04:00
Xaver
8bf38e41a7
Merge pull request #10269 from Aeshur/dances-with-luopans-if
[lua] Convert Dances with Luopans to IF
2026-06-13 03:46:15 +02:00
Xaver
6390690371
Merge pull request #10294 from sruon/guild_shops_rework
[core, lua, sql] Move Guild Shops to Lua
2026-06-13 03:38:59 +02:00
Xaver
5b6176c98f
Merge pull request #10295 from Frankie-hz/settingcleanup
[cleanup] Cleans up unused settings
2026-06-13 03:33:17 +02:00
Xaver
cb287dfc62
Merge pull request #10293 from Aeshur/b2b-cs
[lua] Fix Back to the Beginning Cutscene
2026-06-13 03:32:23 +02:00
Aeshur
fbef4edef7 [core] Fix Retaliation bonus integer truncation 2026-06-12 21:30:53 -04:00
Xaver
0f41d4de7b
Merge pull request #10291 from Skold177/Retail-Accurate-Automaton-Stats
[C++] [lua] Implement Retail Accurate Automaton Stats
2026-06-13 03:29:21 +02:00
Frankie-hz
e16a3881e0 [sql, lua] Add spawn slot and levels for The Sanctuary of ZiTah 2026-06-12 21:01:28 -04:00
ThrisStraizo
1bfda565df Check for chest illusion before failure checks
This PR changes key checks to check for and illusion before failure state while respecting any bypasses.
2026-06-12 17:43:00 -07:00
WinterSolstice8
9ac2c3bd0a
Merge pull request #10285 from Aeshur/promy-blackscreen
[lua] Fix CoP 1-3 Promy Entry
2026-06-12 18:18:48 -06:00
Frankie-hz
720150f32f Cleans up unused settings 2026-06-12 20:12:59 -04:00
sruon
2e1ac6e323 Lua-driven Guild Shops 2026-06-12 17:49:39 -06:00
Aeshur
0d8f881e4b [lua] Fix Back to the Beginning Cutscene 2026-06-12 17:35:38 -04:00
Skold177
e8a8d5d704 Implement Retail Accurate Automaton Stats
Implements 100% Retail Accurate Automaton Stats
2026-06-12 15:23:42 -04:00
Aeshur
438449cfac [lua] Convert Dances with Luopans to IF 2026-06-12 11:41:07 -04:00
Aeshur
037e9c27fc [lua] Fix CoP 1-3 Promy Entry Blackscreen 2026-06-12 11:32:31 -04:00
Xaver
2eacaea796
Merge pull request #10281 from Frankie-hz/slotfive
[sql, lua] Add spawn slot and levels for Western Altepa, Sacrarium, P. Marshlands, Quicksand Caves, Attohwa Chasm and Alzadaal
2026-06-12 10:42:57 +02:00
Xaver
0d7b77fd35
Merge pull request #10286 from WinterSolstice8/flowerpot
[core] Actually instansiate CFlowerPot
2026-06-12 10:42:13 +02:00
Xaver
b0b103b829
Merge pull request #10287 from Skold177/Add-isEngaged-to-entity-behavior
[lua] Add isEngaged() to targeted spells in entity_behavior.lua
2026-06-12 10:41:03 +02:00
Xaver
7950fa4105
Merge pull request #10288 from Aeshur/woe-prov-pets
[sql] Enable pets in Walk of Echoes/Provenance
2026-06-12 10:39:43 +02:00
Xaver
a682c835b9
Merge pull request #10289 from Aeshur/wrath-of-the-griffon-scrip
[lua] Add military scrip purchase to Wrath of the Griffon
2026-06-12 10:39:12 +02:00
Xaver
157d9c4dc4
Merge pull request #10290 from Skold177/Fix-Mijin-Gakure
[lua] Fix Mijin Gakure printing 0 damage / Add missing returns to other NIN JAs
2026-06-12 10:38:22 +02:00
Skold
1b2b0d6bc4 Fix Mijin Gakure printing 0 damage
Fixes missing returns in various NIN JAs
2026-06-11 23:54:53 -04:00
Aeshur
84df90adb9 [lua] Add military scrip purchase to Wrath of the Griffon 2026-06-11 22:01:06 -04:00
Aeshur
b3210c1a5d [sql] Enable pets in Walk of Echoes/Provenance 2026-06-11 21:51:03 -04:00
Skold
960c3482fc Add isEngaged() to targeted spells in entity behaviors
Add isEngaged() to targeted spells in entity behavior
2026-06-11 20:33:24 -04:00
Frankie-hz
2eaa99043f [sql, lua] Add spawn slot and levels to Western Altepa Desert 2026-06-11 19:47:40 -04:00
WinterSolstice8
54561bf321 [core] Actually instansiate CFlowerPot 2026-06-11 14:32:51 -06:00
Xaver
e6091d5246
Merge pull request #10283 from WinterSolstice8/spikes
[core][lua][sql] Fix various spikes issues
2026-06-11 21:14:40 +02:00
Xaver
3b902a5e08
Merge pull request #10284 from lefneer311/fix_qm0_vos
[lua] Fix QM0 in Valley of Sorrows
2026-06-11 20:27:30 +02:00
WinterSolstice8
6bf4fba0d4 [lua] Increase "tier 2" shock spikes power to 19 for Geirskogul 2026-06-11 12:24:50 -06:00
WinterSolstice8
a08e8d843b [core] [lua] Geirskogul Shock Spikes edge case, some AM cleanup
Fix Empyrean AM values to represent the real rates
Apparently, Geirskogul Shock spikes overwrite and prevent other spikes effects
2026-06-11 12:24:50 -06:00
WinterSolstice8
9c77e91abf [sql] Set Deluge Spikes type to 34 like the rest of the spikes 2026-06-11 12:24:50 -06:00
WinterSolstice8
56e5fced68 [core] add delStatusEffectsByType 2026-06-11 12:24:47 -06:00
lefneer311
ca80d8a7f8 [lua] Fix QM0 in Valley of Sorrows
- SQL points to qm0, rather than qm1.  Updated ID in IDs.lua from qm1 to qm0.  Updated qm1.lua to qm0.lua.

- Verified qm0 pops when traded item 3343 or 3344
2026-06-11 12:56:42 -05:00
WinterSolstice8
f0633bfd19 [core] Spikes - warn instead of accessing out of bounds element 2026-06-11 11:36:38 -06:00
Xaver
12bcbfcd2d
Merge pull request #10276 from KiplingFFXI/Pirates-Spawning-Behavior
[lua] [sql] Implement Pirates Spawning Behavior
2026-06-11 09:37:05 +02:00
Kipling
85fe7e31ba Pirates Spawning Behavior
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-11 09:07:12 +02:00
Xaver
a0803774c3
Merge pull request #10280 from Skold177/Ark-Angel-EV-Cosmetic-Armor
[sql] Correct model ID of AA EV/AA HM Cosmetics
2026-06-11 08:14:55 +02:00
Frankie-hz
764ce0fe57 [sql, lua] Add spawn slot and levels to Sacrarium 2026-06-10 23:07:32 -04:00
Frankie-hz
6e462bd022 [sql, lua] Add spawn slot and levels to Pashhow Marshlands 2026-06-10 23:05:33 -04:00
Frankie-hz
3c23011f07 [sql, lua] Add spawn slot and levels to Quicksand Caves 2026-06-10 22:56:55 -04:00
Frankie-hz
be3b9f4ac0 [sql, lua] Add spawn slot and levels to Attohwa Chasm 2026-06-10 22:40:35 -04:00
Frankie-hz
ef751e4442 [sql, lua] Add spawn slot and levels to Alzadaal Undersea Ruins 2026-06-10 22:35:58 -04:00
Skold
4c8ae9ea63 Correct model ID of AA EV Cosmetics
Sets AA EV Cosmetic armor to correct model ID.
2026-06-10 21:09:58 -04:00
Xaver
210ec74591
Merge pull request #10275 from Aeshur/wotg-b2thebeginning
[lua]  Fix WoTG Nation quest req for Cait Sith mission
2026-06-11 01:44:59 +02:00
Xaver
56dd3031f9
Merge pull request #10272 from Lance-XI/soa-rov-content-tags
[sql] Additional ability/spell content tags
2026-06-11 01:29:03 +02:00
Xaver
63dee98b3a
Merge pull request #10273 from Skold177/Update-isInnate-Caster
[lua] Add guard to isInnateCaster in jobs.lua
2026-06-11 01:28:11 +02:00
Xaver
11fba195f4
Merge pull request #10279 from WinterSolstice8/dainslaif2
[lua] Add dINT formula to Dainslaif
2026-06-11 00:09:06 +02:00
Skold
300b71791d Add xi.job.NONE to isInnateCaster
Add xi.job.NONE to isInnateCaster
2026-06-10 17:59:31 -04:00
Xaver
0cf6e1fed4
Merge pull request #10271 from WinterSolstice8/yonin_innin_audit
[lua] Yonin/Innin audit
2026-06-10 23:47:29 +02:00
Xaver
9bb3022f0e
Merge pull request #10257 from Skold177/Steam-Jacket
[core] [C++] [lua] Update Automaton Steam Jacket
2026-06-10 23:45:17 +02:00
WinterSolstice8
067259609a [lua] Add dINT formula to Dainslaif 2026-06-10 15:35:52 -06:00
Xaver
7d10d72156
Merge pull request #9827 from CriticalXI/assault_framework
[lua, cpp] Assault Framework Rework
2026-06-10 22:54:45 +02:00
WinterSolstice8
9ab631c5c9
Merge pull request #10277 from sruon/30260604_0
[client] June 2026 Version Update 30260604 0
2026-06-10 11:47:32 -06:00
sruon
a7d6bc9b2d 30260604_0 Apollyon/Temenos mobs 2026-06-10 09:57:09 -06:00
sruon
5319f2f7b6 30260604_0 Apollyon/Temenos NPCs 2026-06-10 08:45:37 -06:00
sruon
4f3bdf8861 Hide seasonal event NPCs 2026-06-10 08:14:58 -06:00
sruon
c131efc69b 30260604_0 Version Update Items 2026-06-10 02:46:20 -06:00
sruon
d767ed5251 Bump client version to 30260604_0 2026-06-10 02:24:35 -06:00
sruon
d6366c03c7 30260604_0 Version Update strings 2026-06-10 02:23:24 -06:00
Aeshur
1cfd40a6ea [lua] Fix WoTG Nation quest req for Cait Sith mission 2026-06-10 01:09:09 -04:00
Lance-XI
e9ab6ac0c7 [sql] Additional ability/spell content tags 2026-06-09 23:04:10 -04:00
WinterSolstice8
4fcba280d0 [lua] Yonin/Innin audit 2026-06-09 20:56:25 -06:00
Skold
5c6a5b3548 Update Automaton Steam Jacket
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-09 12:31:24 +02:00
Xaver
fdc24716f8
Merge pull request #10268 from KiplingFFXI/Big-Bomb-Audits
[lua] [sql] Big Bomb Audits
2026-06-09 11:21:22 +02:00
Xaver
d80276fa92
Merge pull request #10267 from Frankie-hz/slotfour
[sql, lua] Add spawn slot and levels for Caedarva Mire, Mt. Z, Riverne Site A1, Promy Vahzl, Bibiki Bay, Phomiuna Aq.
2026-06-09 11:20:47 +02:00
Kipling
8f033ec963 Big Bomb Audits 2026-06-09 00:26:37 -07:00
Frankie-hz
35ddb46fca [sql, lua] Add spawn slot and levels to Phomiuna Aqueducts 2026-06-08 23:20:00 -04:00
Frankie-hz
a61a2a6541 [sql, lua] Add spawn slot and levels to Bibiki Bay 2026-06-08 22:49:51 -04:00
Frankie-hz
2b8f2b1494 [sql, lua] Add spawn slot and levels to Promyvion - Vahzl 2026-06-08 22:47:27 -04:00
Frankie-hz
82b365ac29 [sql, lua] Add spawn slot and levels to Riverne Site A01 2026-06-08 22:42:53 -04:00
Frankie-hz
fd4fe6dee6 [sql, lua] Add spawn slot and levels to Mt Zhayolm 2026-06-08 22:25:30 -04:00
Frankie-hz
bff422a1f8 [sql, lua] Add spawn slot and levels to Caedarva Mire 2026-06-08 22:18:48 -04:00
Xaver
8cc813cb05
Merge pull request #10263 from Frankie-hz/slotsthree
[sql, lua] Add spawn slots and mob level info to Yhoator, Tahrongi, Meri. Mt., Eastern Altepa, Batallia Downs, RuAvitaru
2026-06-09 02:37:43 +02:00
Xaver
cb903d9d26
Merge pull request #10265 from Skold177/Automaton-DT-Settings,-Ability-Cooldowns,-Maneuvers
[core] [C++] [lua] Move Automaton mods from C++ to LUA / Add Cooldowns to Automaton Attachments When Summoned
2026-06-09 02:34:53 +02:00
Frankie-hz
1dc982bc3e [sql, lua] Add spawn slot and levels to Yhoator Jungle 2026-06-08 20:06:51 -04:00
Skold
09872ddada Move Automaton Mods From C++ to LUA / Add CD to Automaton Abilities
Moves some automaton modifiers from C++ into LUA and adds a cooldown to automaton attachment abilities when summoned.
2026-06-08 19:53:26 -04:00
Xaver
45f7f68e16
Merge pull request #10260 from Skold177/Reactive-Shield
[lua] Refactor Reactive Shield
2026-06-09 01:45:26 +02:00
Skold
9818c056ab Refactor Reactive Shield
Refactors Reactive Shield
2026-06-08 10:55:22 -04:00
Xaver
7d0565dbb3
Merge pull request #10259 from CriticalXI/job_adjustments
[lua, sql][Module] BRD, DRG, and spell era module adjustments
2026-06-08 16:03:59 +02:00
Xaver
1c19b91496
Merge pull request #10262 from almuth150/PsoXjaElevatorDoors
Fix swapped door reference for a Pso'Xja elevator
2026-06-08 16:00:15 +02:00
Xaver
56c66a25ad
Merge pull request #10258 from Lance-XI/abyssea-content-tags
[sql] Abyssea content tags for abilities
2026-06-08 11:01:30 +02:00
almuth150
669ecfa49d Fix swapped door reference for a Pso'Xja elevator 2026-06-08 00:15:33 -04:00
Frankie-hz
1e20cd2c13 [sql, lua] Add spawn slot and levels to Tahrongi Canyon 2026-06-08 00:03:42 -04:00
Frankie-hz
63110868cd [sql, lua] Add spawn slot and levels to Meriphataud Mountains 2026-06-07 23:54:52 -04:00
Frankie-hz
0243323dfb [sql, lua] Add spawn slot and levels to Eastern Altepa 2026-06-07 23:51:35 -04:00
Frankie-hz
6e479b253b [sql, lua] Add spawn slot and levels to Batallia Downs 2026-06-07 23:46:29 -04:00
Frankie-hz
f0a943c19c [sql, lua] Add spawn slot and levels to The Shrine of RuAvitau 2026-06-07 23:38:52 -04:00
Critical
00570d3f3c [lua, sql][Module] BRD, DRG, and spell era module adjustments 2026-06-07 19:56:03 -06:00
Lance-XI
d8109fc0fa [sql] Abyssea ability content tags 2026-06-07 19:46:51 -04:00
Xaver
f3affdf327
Merge pull request #10256 from Vavehl/base
[lua] Fix Plague Chigoe spawn for The Prankster quest
2026-06-07 22:58:08 +02:00
Xaver
8ec1309106
Merge pull request #10255 from ThrisStraizo/moremaat
[lua] [sql] Stage 2 Maat Migration to Individualized Lua
2026-06-07 22:16:54 +02:00
ThrisStraizo
d204326d72 Stage 2 Maat Migration to Individualized Lua
This PR adds additional Maat fights to individualized Luas.
2026-06-07 12:50:09 -07:00
Xaver
7235a10efe
Merge pull request #10254 from CriticalXI/nyzuL_adjust
[lua, sql] Nyzul Isle bug fix/adjustments
2026-06-07 21:09:43 +02:00
Critical
f4a4fe8c2c [lua, sql] Nyzul Isle bug fix/adjustments 2026-06-07 12:43:18 -06:00
Vavehl
9a55c2621e
[lua] Fix Plague Chigoe spawn for The Prankster quest
Rename the ??? (I-8 in Bhaflau Thickets) from qm4 to qm3 to align the lua references with the new DB NPC name.
2026-06-07 14:37:21 -04:00
Xaver
5e72a2fba7
Merge pull request #9983 from Lydya-nick77/lsb-hotupuku-enm
Add Bugard in the Clouds battlefield and Hotupuku implementation
2026-06-07 15:22:46 +02:00
Lydya
3f0bcf75da Add Bugard in the Clouds battlefield and Hotupuku implementation
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-06-07 14:31:43 +02:00
Xaver
e63c2be305
Merge pull request #10253 from sruon/psoxja_lifts
[lua] Wire PsoXja elevators to the right gates
2026-06-07 13:41:22 +02:00
Xaver
f77d711977
Merge pull request #10252 from sruon/npc_fixes2
[sql] Fix QMs in RuAun/FKNS
2026-06-07 13:31:28 +02:00
Xaver
e41edeb828
Merge pull request #10251 from sruon/fishies_sale_price
[sql] Update various items sale price
2026-06-07 13:29:33 +02:00
Xaver
359db9492d
Merge pull request #10250 from Skold177/Refactor-Mana-Converter
[lua] Refactor Mana Converter
2026-06-07 13:27:53 +02:00
Xaver
9f05d64a5f
Merge pull request #10249 from WinterSolstice8/bloody_bolt
[core] [lua] Improve Bloody bolt retail accuracy
2026-06-07 13:27:21 +02:00
Xaver
8013a40add
Merge pull request #10248 from Skold177/Flashbulb
[lua] Refactor Flashbulb
2026-06-07 13:25:30 +02:00
Xaver
382dfb4f23
Merge pull request #10247 from Skold177/Refactor-Economizer
[lua] Refactor Economizer
2026-06-07 13:25:04 +02:00
Xaver
2292c6305b
Merge pull request #10242 from Frankie-hz/slotstwo
[sql, lua] Add spawn slots and mob level info to several more zones (See desc)
2026-06-07 13:23:57 +02:00
sruon
ab8ad01bad Wire PsoXja elevators to the right gates 2026-06-07 04:14:58 -06:00
sruon
7492f3e56e Fix FKNS QMs 2026-06-07 03:36:48 -06:00
sruon
0879e06782 Fix RuAun QMs 2026-06-07 03:29:17 -06:00
sruon
fd1dd38e1b Update items sale price 2026-06-07 03:08:25 -06:00
Skold
3ea7b1d0d5 Refactor Mana Converter
Refactors Mana Converter
2026-06-07 00:42:09 -04:00
Skold
bc7a892970 [lua] Refactor Economizer
Refactors Economizer
2026-06-07 00:31:12 -04:00
WinterSolstice8
400e0d47b3 [lua] [sql] Improve retail accuracy of bloody bolt 2026-06-06 22:21:31 -06:00
WinterSolstice8
9cf3935dc3 [core] Support scripted ranged item add effect procs 2026-06-06 22:21:11 -06:00
WinterSolstice8
e595cb080d [add effects] support "over drain" to drain beyond remaining hp/mp/tp 2026-06-06 22:20:38 -06:00
WinterSolstice8
c59d72e203
Merge pull request #10246 from WinterSolstice8/cert_stuff
[login] Add some missing openssl free memory funcs
2026-06-06 22:03:55 -06:00
Skold
73eb151882 [lua] Refactor Flashbulb
Refactors Flashbulb
2026-06-06 23:58:01 -04:00
WinterSolstice8
6d79e604b8 [login] Add some missing openssl free memory funcs 2026-06-06 21:15:56 -06:00
Frankie-hz
59216238b0 [sql, lua] Add spawn slot and levels t The Shrine of RuAvitau 2026-06-06 19:31:58 -04:00
Xaver
e7dabb21fc
Merge pull request #10245 from Frankie-hz/statusfix
[lua] Fixes addStatusEffect errors and loading errors for misc. modules
2026-06-07 00:14:50 +02:00
Frankie-hz
bcd485a760 [lua] Fixes module errors on startup
For data-only modules they dont need override functions or they hit this: No overrides found in module. They need to just silently return a table name.
2026-06-06 17:20:30 -04:00
Xaver
7abe4128ac
Merge pull request #10243 from Skold177/Refactor-Pattern-Reader
[core] [C++] [lua] Fix Automaton Evasion Calculations / Refactor Pattern Reader
2026-06-06 23:01:05 +02:00
Frankie-hz
99bd28da5d [lua] Fixes addStatusEffect in a couple modules 2026-06-06 16:49:16 -04:00
Skold
ecb264f77a Fix Automaton Evasion Calculations / Refactor Pattern Reader
Fixes Automaton Evasion Calculations / Refactors Pattern Reader / Cleans up a local variable in Hammermill.

Co-Authored-By: Frank <105882754+Frankie-hz@users.noreply.github.com>
2026-06-06 16:20:23 -04:00
Frankie-hz
695a17582c [sql, lua] Add spawn slot and levels to Eldieme Necropolis 2026-06-06 14:38:59 -04:00
Frankie-hz
9d65767f7c [sql, lua] Add spawn slot and levels to Garlaige Citadel 2026-06-06 13:28:58 -04:00
Frankie-hz
1ab58dfa6b [sql, lua] Add spawn slot and levels to Maze of Shakhrami 2026-06-06 13:25:13 -04:00
Frankie-hz
a8c3991e39 [sql, lua] Add spawn slot and levels to Tora Canal 2026-06-06 12:50:30 -04:00
Frankie-hz
526a8b26dc [sql, lua] Add spawn slot and levels to Outer Horutoto Ruins 2026-06-06 12:42:33 -04:00
Frankie-hz
a3fe8409bf [sql, lua] Add spawn slot and levels to East Sarutabaruta 2026-06-06 12:08:33 -04:00
Frankie-hz
32c9c92a42 [sql, lua] Add spawn slot and levels to West Ronnfaure 2026-06-06 11:38:36 -04:00
Xaver
b9ed4ba196
Merge pull request #10240 from Hatberg/luf-mis-aggro-link
[sql] Lufaise + Misareaux aggro/link audit
2026-06-06 11:36:10 +02:00
Hatberg
ff2e9b67d7 Lufaise + Misareaux aggro/link audit 2026-06-06 10:54:12 +02:00
Xaver
f39461f8df
Merge pull request #10236 from Aeshur/tigress-stirs-strikes-if
[lua] Convert The Tigress Stirs + Tigress Strikes to IF
2026-06-06 10:00:37 +02:00
Frank
f89fb99cae
[sql, lua] Add spawn slots and mob level info to Ule Range, Beadeaux, Xarc, Newton (#10239)
* [sql, lua] Ule Range Spawn slots and levels

Adds mob levels and spawn slots for ule range

* [sql, lua] Adds spawn slots and levels for Beadeaux

 Adds spawn slots and levels for Beadeaux

* [sql, lua] Adds spawn slots and levels to Xarcabard

Adds spawn slots and levels to Xarcabard

* [sql, lua] Adds spawn slots and levels to Newton Moval

Adds spawn slots and levels to Newton Moval

* [sql, lua] Adds spawn slots and levels to East Ronfaure

* [sql, lua] Adds spawn slots and levels to Mamook

* [sql, lua] Adds spawn slots and levels to Buburimu Peninsula

* [sql, lua] Adds spawn slots and levels to South Gusta
2026-06-06 09:42:14 +02:00
Xaver
55b5506e5c
Merge pull request #10238 from Skold177/Refactor-Target-Marker
[lua] Refactor Target Marker
2026-06-06 09:41:27 +02:00
Xaver
d3b6d7c17a
Merge pull request #10237 from Skold177/Refactor-Heat-Seeker
[lua] Refactor Heat Seeker
2026-06-06 09:39:58 +02:00
Xaver
67fe8f5b67
Merge pull request #10235 from Skold177/Mana-Channeler-and-Mana-Booster
[core] [C++] [lua] Update Mana Channeler I + II / Update Mana Booster
2026-06-06 09:38:46 +02:00
Xaver
3e6468706e
Merge pull request #10234 from Skold177/Heat-Capacitor
[lua] Refactor Heat Capacitor I and II
2026-06-06 09:37:31 +02:00
Skold
c9173463ea Refactor Target Marker
Refactors Target Marker with new accuracy values.
2026-06-06 00:24:56 -04:00
Skold
4b9d4ed909 Refactor Heat Seeker
Cleans up code and listeners in Heat Seeker.
2026-06-05 22:59:50 -04:00
Aeshur
7abd925621 [lua] Convert The Tigress Stirs + Tigress Strikes to IF 2026-06-05 21:46:47 -04:00
Skold
ad09e8f09a Update Mana Channeler and Mana Booster
Updates Mana Channeler I and II. Updates Mana Booster.
Rename AUTO_MAGIC_DELAY to AUTO_MAGIC_COOLDOWN. Fixes inverted modifier.
2026-06-05 21:22:46 -04:00
Skold177
4ad53b9792 Refactor Heat Capacitor I + II
Refactors the code for Heat Capacitor I and II
2026-06-05 19:44:21 -04:00
Xaver
7613c67b01
Merge pull request #9324 from CriticalXI/rdm_era_audit
[lua, sql][module] RDM and PLD Era Audit
2026-06-06 01:05:31 +02:00
Xaver
ecf5424463
Merge pull request #10233 from Aeshur/western-adoulin-waypoint-swap
[lua] Fix Western Adoulin Auction House/Rent-a-Room waypoints
2026-06-06 01:03:29 +02:00
Xaver
de989a5bfe
Merge pull request #10229 from Skold177/Refactor-Disruptor
[lua] Fix Automaton Attachment Disruptor
2026-06-06 01:02:52 +02:00
Xaver
bd38275f3a
Merge pull request #10228 from Skold177/Shock-Absorber
[lua] Audit Automaton Attachment Shock Absorber I  / II / III
2026-06-06 01:02:13 +02:00
Xaver
a81b117799
Merge pull request #10227 from Hatberg/promyvion-30-link-aggro
[sql] Remove Promyvion 30 Empty mob linking
2026-06-06 01:01:01 +02:00
Aeshur
dba3129f9d [lua] Fix Western Adoulin Auction House/Rent-a-Room waypoints 2026-06-05 17:31:25 -04:00
Skold177
bbff95dc0d Refactor Automaton Attachment Disruptor
Fixes and refactors the attachment code
2026-06-05 14:00:49 -04:00
Skold
2fdcc12bfa Audit Shock Absorber I / II / III
Audits the Automaton Attachments Shock Absorber I / II / III
2026-06-05 12:53:04 -04:00
Hatberg
14f6ac1c3b
Merge branch 'LandSandBoat:base' into promyvion-30-link-aggro 2026-06-05 15:02:38 +02:00
Xaver
7eb3efdcd3 Remove empty linking 2026-06-05 14:52:15 +02:00
Xaver
c34c405514
Merge pull request #10049 from ThrisStraizo/maatpocalypse
[lua] [sql] Stage 1 Maat Migration to Individualized Luas (War, Rng, Blm)
2026-06-05 09:46:35 +02:00
Xaver
463f7df7e5
Merge pull request #10225 from Aeshur/soa-1-3-warpfix
[lua] Fix Onward to Adoulin waypoint warping to Ceizak
2026-06-05 00:02:51 +02:00
Aeshur
1dacacd799 [lua] Fix Onward to Adoulin waypoint warping to Ceizak 2026-06-04 17:23:53 -04:00
Xaver
aeb4826161
Merge pull request #10224 from Aeshur/exp-module-fix
[module] Fix 2007 EXP table error
2026-06-04 21:46:38 +02:00
Xaver
e295f9bab9
Merge pull request #10223 from Hatberg/halvung-zhayolm-aggro-link
[sql] Halvung True Sight trolls
2026-06-04 21:23:02 +02:00
Aeshur
f3fee5f8f5 [module] Fix 2007 EXP table error 2026-06-04 15:19:30 -04:00
Hatberg
c4c1c96fd7 Halvung True Sight 2026-06-04 20:33:44 +02:00
Xaver
059bf2150c
Merge pull request #10220 from Lance-XI/add-ROTZ-tags-1-50
[sql] Audit some synthesis content tags (1-50)
2026-06-03 23:07:27 +02:00
Xaver
4bb40f46b4
Merge pull request #10218 from KiplingFFXI/Zizzy-Zillah-Audits
[lua] [sql] Zizzy Zillah Audits
2026-06-03 23:04:11 +02:00
Xaver
e7a38149bd
Merge pull request #10219 from Skold177/Automaton-Spellcasting-Times
[core] [C++] Audit Automaton Recast Times
2026-06-03 22:48:36 +02:00
Xaver
a7bc260a81
Merge pull request #10222 from Skold177/Audit-Smoke-Screen
[lua] Audit Automaton Smoke Screen
2026-06-03 22:47:07 +02:00
Skold177
49da7035f5 Audit Automaton Smoke Screen
Audits the Values of Smoke Screen and moves it into the attachment framework
2026-06-03 15:06:57 -04:00
Skold
7a6eacd891 Audit Automaton Recast Times
Audits spell recast time with capture from retail.
2026-06-03 00:28:38 -04:00
Lance-XI
75c0ee7a4a [sql] ROTZ Content Tags 1-50 2026-06-02 22:17:14 -04:00
Kipling
c51766f90e Zizzy Zillah Audits 2026-06-02 16:48:26 -07:00
Xaver
1681e7813b
Merge pull request #10216 from WinterSolstice8/aquarius_carnero
[lua] [sql] Fixup Leaping Lizzy/Carnero/Aquarius spawning behavior
2026-06-03 01:34:30 +02:00
Xaver
ae0444ccab
Implement Automaton Damage Gauge II + Audit Values (#10217)
Implements Damage Gauge II for Automatons and Audits the values for both Damage Gauge and Damage Gauge II
2026-06-03 01:02:52 +02:00
Skold
99a1cbf27b Implement Automaton Damage Gauge II + Audit Values
Implements Damage Gauge II for Automatons and Audits the values for both Damage Gauge and Damage Gauge II
2026-06-02 17:48:36 -04:00
WinterSolstice8
0323bd0439 [lua] Fixup Carnero/Aquarius/LL spawn to match retail spawn slots 2026-06-02 15:04:11 -06:00
WinterSolstice8
e765243dff [sql] Fix Aquarius PH spawn slot 2026-06-02 13:02:37 -06:00
Xaver
23faf41179
[lua] Improve Morion Worm retail accuracy (#10214)
* Add a lot more spawn points
* Add 30 min force despawn + message
* 3 min idle despawn
* qm respawns 15 minutes after kill
2026-06-02 16:42:21 +02:00
WinterSolstice8
0cba2bceb8 [lua] Improve Morion Worm retail accuracy
* Add a lot more spawn points
* Add 30 min force despawn + message
* 3 min idle despawn
* qm respawns 15 minutes after kill
2026-06-02 08:09:46 -06:00
Xaver
9f2015a165
Merge pull request #10212 from Skold177/Remove-Reraise-on-Level-Cap
[core] [C++] Remove Reraise on Level Cap
2026-06-02 11:34:01 +02:00
Lance
ef0136b8a4
[lua] [sql] [cpp] Add ROTZ Content Tag (#10213)
* Add ROTZ Content Tag

* Tag ROTZ abilities, NPCs, spells and traits
2026-06-02 11:21:22 +02:00
Xaver
8b5929df1d
Merge pull request #10211 from Nobutadas/mission-event-skipped-audit-two
[lua] Audit Missions and Event Skipped Teleporters #2
2026-06-02 11:19:27 +02:00
Xaver
f8666236ea
Merge pull request #10209 from Hatberg/arrapago-caederva-link-aggro-fixes
[sql] Arrapago Reef / Caedarva Mire linking fixes
2026-06-02 11:17:16 +02:00
Xaver
4a47add715
Merge pull request #10210 from Skold177/Regulator
[sql] [lua] Implement Automaton Regulator
2026-06-02 02:41:16 +02:00
Skold
4ff39576e1 Remove Reraise on Level
Remove Reraise when receiving level cap.
2026-06-01 20:08:49 -04:00
Nobutadas
b2d9e4cd59 [lua] Audit Missions and Event Skipped Teleporters - Two 2026-06-01 19:06:01 -05:00
Skold177
150f294c1f Implement Automaton Regulator
Implements Regular, an attachment that absorbs one beneficial status effect from the enemy.
2026-06-01 18:45:48 -04:00
Hatberg
ff7600bcda Arrapago Reef / Caedarva Mire link/aggro fixes 2026-06-01 21:46:04 +02:00
Xaver
79efbbb312
Merge pull request #10202 from JerokeXI/content-tag-pt4
[sql] content_tag NPCs [Mhaura][Selbina] + Others
2026-06-01 14:02:49 +02:00
Xaver
9951ecbd68
Merge pull request #10205 from Lance-XI/fix-barblizzard-cols
[SQL] Correct columns for Barblizzard
2026-06-01 14:01:05 +02:00
Xaver
0a92705948
Merge pull request #10206 from KiplingFFXI/Caedarva-Mire-NM-Audits
[lua] [sql] Caedarva Mire NM Audits
2026-06-01 14:00:26 +02:00
Kipling
db203e9846 Caedarva Mire NM Audits 2026-05-31 23:26:14 -07:00
Lance-XI
838cd558e0 [SQL] Correct columns for Barblizzard 2026-05-31 21:59:42 -04:00
JerokeXI
78e5a154b3 [sql] content_tag NPCs [Mhaura][Selbina] + Others 2026-05-31 16:07:15 -06:00
Xaver
e848672811
Merge pull request #10188 from sruon/structured_logging
[core] JSON logging with structured context
2026-05-31 14:33:41 +02:00
Xaver
ecd55b69be
Merge pull request #10197 from JerokeXI/content_tag_pt3
[sql] Add content_tag to NPCs [Bastok]
2026-05-31 14:32:07 +02:00
Xaver
37513727ec
Merge pull request #10201 from Hatberg/aggro-link-detection-fixes
[sql] Wajaom Woodlands / Bhaflau Thickets aggro/link/detection fixes
2026-05-31 14:31:28 +02:00
Xaver
942d7e05dc
Merge pull request #10200 from sruon/import_blank_npcs
[sql] Add remaining missing NPCs
2026-05-31 14:30:45 +02:00
Xaver
3c0fb16be8
Merge pull request #10198 from WinterSolstice8/worm_casting_range
[core] Adjust worm AI in regards to spellcasting (standback cooldown gone, worms dont cast in melee range)
2026-05-31 14:30:05 +02:00
Xaver
20292b9374
Merge pull request #10196 from TiberonKalkaz/antlion_was_too_good_at_hiding
[lua] Bugfix: Antlion buried too deep in Sheep in Antlions Clothing
2026-05-31 14:28:37 +02:00
sruon
2a0ebd9505 Add missing NPCs [May 2026 Version Update] 2026-05-31 04:07:05 -06:00
Hatberg
b3f083ede5 Skoffin remove linking 2026-05-31 12:02:54 +02:00
Hatberg
38777fcedb BT Incubus Bats remove aggro 2026-05-31 11:18:58 +02:00
Hatberg
c3655b9df5 Remove Fomor BT Linking 2026-05-31 11:13:05 +02:00
Hatberg
a4edfcb1af Date Eruca remove linking 2026-05-31 11:03:14 +02:00
Hatberg
7a59c07e0b Carmine Eruca remove true detection 2026-05-31 10:51:59 +02:00
WinterSolstice8
e94a5ac5e5
Merge pull request #10199 from sruon/charreq2
[core] Support GP_CLI_COMMAND_CHARREQ2, allow CHARREQ to query SHIP
2026-05-30 22:01:02 -06:00
sruon
01471c831e GP_CLI_COMMAND_CHARREQ2 2026-05-30 21:18:24 -06:00
WinterSolstice8
ab3695d7f4 [core] Worms don't get standback cooldown for spells 2026-05-30 18:38:18 -06:00
WinterSolstice8
8d8077d1e8 [core] roamflag worm = don't cast in melee range 2026-05-30 18:22:26 -06:00
JerokeXI
c77333445a [sql] Add content_tag to NPCs [Bastok] 2026-05-30 16:22:06 -06:00
Tiberon
bee40e1510 [lua] Bugfix: Antlion buried too deep in Sheep in Antlions Clothing 2026-05-30 13:22:09 -07:00
Critical
86031bf18b [lua, sql][module] Pld Era Audits 2026-05-30 10:44:52 -06:00
Xaver
a3124a82f0
Merge pull request #10192 from sruon/zone-population-cap
[core] Deny zoning if target zone at capacity
2026-05-30 13:24:54 +02:00
Xaver
6696a7e8bf
Merge pull request #10182 from Hatberg/manaclipper-aggro
[sql] Set Manaclipper's Cutter and Uragnite spawn and non-aggro
2026-05-30 13:22:51 +02:00
sruon
e86bd2efea Support JSON logging with structured context 2026-05-29 23:44:21 -06:00
sruon
df998a0b43 Forbid login if zone player count exceeds cap 2026-05-29 23:19:39 -06:00
Xaver
6520a2cebb
Merge pull request #10189 from Vavehl/base
Add SubIcon parameter to status effect function calls
2026-05-30 01:34:04 +02:00
Xaver
f8465ea7e1
Merge pull request #10191 from cwalke39/base
[lua] Added Kannagi and Almace Magian Trial Data
2026-05-30 01:29:42 +02:00
Xaver
32d3c1de12
Merge pull request #10190 from Hatberg/promyvion-holla-weeper-nonlink
[sql] Sets Promyvion Holla Weeper to non-linking
2026-05-30 01:24:05 +02:00
Xaver
6a6ebb212f
Merge pull request #10187 from Hatberg/newton-bats-link-aggro
[sql] Sets Newton Movalpolos bats non-aggro
2026-05-30 01:16:12 +02:00
Xaver
cb18c836f7
Merge pull request #10186 from Hatberg/psoxja-camazotz-link
[sql] Sets Psoxja's Camazotz to non-linking
2026-05-30 01:10:47 +02:00
Xaver
e68d7a0b1e
Merge pull request #10185 from Hatberg/attohwa-hunter-antlion-aggro-link
[sql] Sets Attohwa Chasm Hunter Antlion non-aggro
2026-05-30 01:08:28 +02:00
Xaver
ca587812fd
Merge pull request #10184 from Hatberg/attohwa-gallinipper-aggro
[sql] Sets Attohwa Chasm Gallinipper to non-aggro
2026-05-30 00:58:39 +02:00
Xaver
e7d3a0b463
Merge pull request #10183 from Hatberg/purgonorgo-toucan-link
[sql] Sets Purgonorgo Isle's Toucan non-linking
2026-05-30 00:57:18 +02:00
Crazyalextrebek
91f81a8a34 [lua] Added Kannagi and Almace Magian Trial Data 2026-05-29 15:27:00 -06:00
Hatberg
307740e088 Promyvion Holla Weeper non-linking 2026-05-29 22:42:30 +02:00
Vavehl
0cad5801cb
Add SubIcon parameter to status effect function calls
Add the missing SubIcon parameter to status effect function calls across `lua_baseentity.cpp` and `status_effect_container.cpp`. The changes ensure that all calls to status effect constructors/functions include the SubIcon parameter in the correct position within the parameter list.
2026-05-29 16:11:27 -04:00
Hatberg
a1c34214d8 Newton Movalpolos bats non-aggro 2026-05-29 21:48:45 +02:00
Hatberg
c5c7a59f53 Psoxja Camazoztz non-linking 2026-05-29 20:27:09 +02:00
ThrisStraizo
1fdd0c2088 Stage 1 Maat Migration to Individualized Luas (War, Rng, Blm)
This PR starts the process to move away from the Maat mixin to individualized luas in addition to making each Maat fight far more accurate than before.
2026-05-29 09:18:34 -07:00
Hatberg
91d35040d9 Attohwa Chasm Hunter Antlion non-aggro 2026-05-29 12:35:09 +02:00
Hatberg
2ec3c90be5 Attohwa Chasm Gallinipper non-aggro 2026-05-29 12:11:18 +02:00
Hatberg
b64d0aa55c Purgonorgo Toucan Link 2026-05-29 11:41:17 +02:00
Hatberg
7bcd7f1616 Manaclipper aggro 2026-05-29 10:50:39 +02:00
Xaver
0092aa734c
Merge pull request #10166 from JerokeXI/content-tag-pt2
[sql] Add content_tag to NPCs [San d'Oria][Sandy]
2026-05-29 09:06:41 +02:00
Xaver
15b2141298
Merge pull request #10175 from Hatberg/carpenter-poison-fungaur-nonaggro
[sql] Poison Fungaur aggro/link behaviour
2026-05-29 09:06:13 +02:00
Xaver
0e0394c41e
Merge pull request #10179 from Skold177/Barrier-Module
[sql] [lua] Implement Barrier Module I+II / Cleanup Inhibitor + Speedloader.
2026-05-29 09:04:51 +02:00
Xaver
a0842ecd77
Merge pull request #10181 from sruon/subkind4
[core] Do not treat all SubKind 4 NPCs as always relevant
2026-05-29 08:56:19 +02:00
sruon
4226d19b89 Do not treat all SubKind 4 NPCs as always relevant 2026-05-29 00:06:00 -06:00
WinterSolstice8
566692ead8
Merge pull request #10180 from sruon/tvr_mobs
[sql] TVR mobs
2026-05-28 23:45:02 -06:00
sruon
d46cadf085 The Voracious Resurgence mobs 2026-05-28 23:18:10 -06:00
Skold
864a0f7990 Implement Barrier Module I+II / Cleanup Inhibitor + Speedloader.
Implements Barrier Module I+II, Cleans up un-needed code in Automaton.lua related to Inhibitor and Speedloader.
2026-05-29 00:01:27 -04:00
WinterSolstice8
803015684e
Merge pull request #10178 from WinterSolstice8/dockerfile_zstd
[docker] Add libzstd-dev to dockerfile
2026-05-28 21:47:34 -06:00
WinterSolstice8
99eefb822a [docker] Add libzstd-dev/zstd-dev to dockerfile 2026-05-28 21:22:36 -06:00
WinterSolstice8
48e04beb0b
Merge pull request #10177 from WinterSolstice8/runner_add_zstd
[ci] Add libzstd-dev to ubuntu deps
2026-05-28 20:40:30 -06:00
WinterSolstice8
6567200631
Merge pull request #10176 from WinterSolstice8/getfirstid_sanity
[ci] add GetTableOfIDs to lua.sh sanity checks
2026-05-28 20:37:50 -06:00
WinterSolstice8
e8c5fb8b9d [ci] Add libzstd-dev to ubuntu deps 2026-05-28 20:16:48 -06:00
WinterSolstice8
100e5fbc71 [ci] add GetTableOfIDs to lua.sh sanity checks 2026-05-28 20:08:18 -06:00
WinterSolstice8
5f9cc3593d
Merge pull request #10174 from LandSandBoat/speed_up_module_loading
Core: Speed up module loading
2026-05-28 19:23:03 -06:00
Hatberg
df2d04b764 Poison Fungaur aggro/link behaviour 2026-05-28 22:02:58 +02:00
Zach Toogood
7cc28d6838 Core: Speed up module loading 2026-05-28 18:48:47 +01:00
WinterSolstice8
e06ba9f904
Merge pull request #10173 from WinterSolstice8/pso_xja_door
[sql] Set a pso'xja door default animation to closed
2026-05-28 11:44:13 -06:00
Zach Toogood
95d518da3e Core: Add startup time reporting 2026-05-28 14:28:05 +01:00
WinterSolstice8
bace28a0ce [sql] Set a pso'xja door default animation to closed 2026-05-28 06:26:14 -06:00
Zach Toogood
41a5f79eea
Merge pull request #10171 from sruon/ah_index_perf
[core, sql] Optimize Auction House indexes
2026-05-28 09:35:48 +01:00
Zach Toogood
9d5c0ce05e
Core: Disable hot-reloading of spec files (#10172)
* Core: Disable hot-reloading of spec files

* Commands: Use setfenv() in !exec for safety

* Core: Use string_view in CCommandHandler
2026-05-28 09:34:57 +01:00
Xaver
ef6b7ac399
Merge pull request #10170 from WinterSolstice8/implement_voirloup
[lua] [sql] Implement Voirloup
2026-05-28 03:44:18 +02:00
sruon
ee43e7cb70 Optimize auction_house indexes 2026-05-27 19:23:00 -06:00
WinterSolstice8
706c2fe199 [lua] [sql] Implement Voirloup 2026-05-27 19:16:15 -06:00
Xaver
1482bd0226
Merge pull request #10167 from WinterSolstice8/swashtox_fix
[lua] Update Swashstox Beadblinker PH to match spawn slot sheet
2026-05-28 02:08:43 +02:00
WinterSolstice8
9603007a1b [lua] Update Swashstox Beadblinker PH to match spawn slot sheet 2026-05-27 17:39:08 -06:00
Xaver
99a4ceb526
Merge pull request #10165 from WinterSolstice8/attuner_overhaul
[core] [lua] Improve Attuner backend
2026-05-28 00:42:59 +02:00
JerokeXI
5b3ef82780 [sql] Add content_tag to NPCs [San d'Oria][Sandy] 2026-05-27 15:58:17 -06:00
WinterSolstice8
2cc1d8b274 [core] [lua] Improve Attuner backend 2026-05-27 15:54:29 -06:00
WinterSolstice8
2bc9fa7e79
Merge pull request #10164 from WinterSolstice8/no_fast_math
[cmake] Do not use fast math
2026-05-27 12:59:50 -06:00
WinterSolstice8
fa53001594 [cmake] Do not use fast math 2026-05-27 11:44:40 -06:00
Xaver
df128ed536
Merge pull request #10127 from TiberonKalkaz/Brown_Mage
Add Parike-Poranke, Brown Mage Practitioner
2026-05-27 13:25:48 +02:00
Xaver
d180ab1477
Merge pull request #10154 from KiplingFFXI/Energetic-Eruca-Audits-pt.-2
[lua] Energetic Eruca Audits pt. 2
2026-05-27 12:57:26 +02:00
Tiberon
8cf350c90c Add Parike-Poranke, Brown Mage Practitioner 2026-05-27 12:39:31 +02:00
Xaver
8df6da2950
Merge pull request #9836 from JerokeXI/content-tag-pt1
[sql] Add content_tag to NPCs [Windurst]
2026-05-27 12:12:17 +02:00
Xaver
3573aa1fab
[cpp] adds entity:getMasterThreatMob (#9939)
- Adds function for entities, inspired by trusts, to get the notoriety list of their master on mobs within a specified range

- Range defaults to 22.0 (float) but may overrides can be specified

- Specifically performs a check to determine whether master is the top of any nearby mobs' notoriety list and returns that target

Co-authored-by: lefneer311 <lefneer311@gmail.com>
2026-05-27 12:10:47 +02:00
Kipling
d177715048 Energetic Eruca Audits pt. 2
Co-authored-by: Skold177 <113406182+Skold177@users.noreply.github.com>
2026-05-27 12:05:41 +02:00
sruon
ad46243025
Merge pull request #10163 from sruon/layered_npcs_backfill
[sql] Missing instance NPCs
2026-05-27 12:01:27 +02:00
Xaver
bee3780bad
Merge pull request #10162 from sruon/reisenjima_henge_tvr_mobs
[sql] Reisenjima Henge TVR mobs
2026-05-27 12:00:39 +02:00
Xaver
c1da122f73
Merge pull request #10161 from sruon/tame_trust
[lua] Forbid BST Tame when trusts in party
2026-05-27 12:00:03 +02:00
Xaver
5018867e5b
Merge pull request #10160 from sruon/fix_flaky_tests
[test] Tweak flaky crafting tests
2026-05-27 11:59:25 +02:00
Xaver
74dff8459e
Merge pull request #10158 from sruon/fix_tahrongi_npc
[fix] Telepoint in Tahrongi
2026-05-27 11:58:21 +02:00
Xaver
b8bf1d47f0
Merge pull request #10156 from KiplingFFXI/Giant-Orobon-Audits
[lua] [sql] Giant Orobon Audits
2026-05-27 11:57:43 +02:00
Xaver
1d143244ec
Merge pull request #10155 from WinterSolstice8/shield_mastery_stuff
[core] [lua] Cleanup C++ Shield Mastery impl, add it to mobskills
2026-05-27 11:57:03 +02:00
Xaver
4a521bf593
Merge pull request #10153 from TiberonKalkaz/thf_af_quest_nation
Add player nation to Thf Af3 Cutscene
2026-05-27 11:56:09 +02:00
sruon
aa44681160 Reisenjima Henge TVR mobs 2026-05-27 00:33:49 -06:00
sruon
790cd07c8a Tweak flaky crafting tests 2026-05-27 00:15:27 -06:00
sruon
a370e4282b Disable Tame when Trusts in party 2026-05-27 00:10:46 -06:00
sruon
50f8b7a6cf Fix Telepoint in Tahrongi 2026-05-26 22:36:31 -06:00
Kipling
15eb1e0d47 Giant Orobon Audits 2026-05-26 21:20:51 -07:00
WinterSolstice8
ed08ef0aa0 [core] [lua] Cleanup C++ Shield Mastery impl, add it to mobskills 2026-05-26 19:49:48 -06:00
Xaver
6e8e6b2657
ToAU Maat damage enrage mechanics (#10151)
This PR adds damage increased observed from the min enrage mechanic of taking roughly 18% of the mob's hp in damage.
2026-05-27 01:43:30 +02:00
Xaver
34d1a6e0b8
Merge pull request #10152 from WinterSolstice8/tiger_fang_sabertooth
[sql] Sabertooth Tigher - Black Tiger Fang: Common -> Very Common
2026-05-27 01:24:10 +02:00
Dylan
62135df6ae
Format Tracy scoped blocks (#10143)
* Format Tracy scoped blocks

Add a blank line after standalone TracyZoneScoped; instrumentation
blocks when followed immediately by nonblank, non-Tracy code.
Add CI check to tools/ci/sanity_checks/cpp.py to enforce this going forward.

Source/context: GitHub issue #7156

* Fix Tracy brace formatting check

Skip brace-only lines in tracy_missing_blank_line and remove blank
lines before closing braces that clang-format strips.

Source/context: follow-up to GitHub issue #7156 after CI formatting
failure on PR #10143.
2026-05-27 01:22:18 +02:00
WinterSolstice8
0052aebbf5 [sql] Sabertooth Tigher - Black Tiger Fang: Common -> Very Common 2026-05-26 16:39:05 -06:00
ThrisStraizo
df0966a294 ToAU Maat damage enrage mechanics
This PR adds damage increased observed from the min enrage mechanic of taking roughly 18% of the mob's hp in damage.
2026-05-26 15:12:12 -07:00
Xaver
6acd6a3e34
Merge pull request #10150 from KiplingFFXI/Energetic-Eruca-Audits
[lua] [sql] Energetic Eruca Audits
2026-05-26 23:16:34 +02:00
Kipling
feda732a01 Energetic Eruca Audits 2026-05-26 13:47:16 -07:00
Xaver
07a3bd5c06
Merge pull request #10149 from KiplingFFXI/Sabotender-Enamorado-Audits
[lua] [sql] Sabotender Enamorado Audits
2026-05-26 22:34:03 +02:00
Kipling
0b8592a64d Sandy 6-1 NM Audit 2026-05-26 12:24:17 -07:00
Xaver
bee69f3ad8
Merge pull request #10147 from Skold177/mp-cost-reduction-power-cooler
[core] [C++] [lua] Add MP Cost Reduction Mod, Implement Power Cooler
2026-05-26 20:42:40 +02:00
Xaver
1dae0e5ea8
Merge pull request #10148 from WinterSolstice8/gargoyle_boots_fix
[lua] Check & target wyvern on Gargoyle Boots usage
2026-05-26 20:32:38 +02:00
WinterSolstice8
b0344d518b [lua] Check & target wyvern on Gargoyle Boots usage 2026-05-26 12:02:38 -06:00
Skold177
e326fde779 [core] [C++] [lua] Add MP Cost Reduction Mod, Implement Power Cooler
Adds a new MP Cost Reduction modifier and implements the Automaton Attachment Power Cooler.

Co-Authored-By: WinterSolstice8 <60417494+WinterSolstice8@users.noreply.github.com>
2026-05-26 13:47:11 -04:00
Xaver
7074666f75
Merge pull request #10146 from Skold177/Massacre-Elegy
[lua] Add Massacre Elegy to Enfeebling_Song.lua
2026-05-26 19:45:03 +02:00
Skold177
929d9dc4d4 [lua] Add Massacre Elegy to Enfeebling_Song.lua
Adds Massacre Elegy to table in Enfeebling Song
2026-05-26 12:51:14 -04:00
Xaver
038724bdd5
Merge pull request #10145 from Skold177/Amplifier-I-&-II
[lua] Add Automaton Amplifier
2026-05-26 17:42:33 +02:00
Skold177
2d57ef5e0a [lua] Add Automaton Amplifier
Adds the Automaton Attachment Amplifier
2026-05-26 10:48:02 -04:00
Xaver
c4e9a89938
Merge pull request #10144 from WinterSolstice8/gusta_lizards_crystal
[core] [lua] Set Gustaberg lizards to drop Earth Crystals
2026-05-26 16:22:42 +02:00
WinterSolstice8
8c7d692d10 [lua] set Gustaberg Rock Lizards to drop earth crystals 2026-05-26 07:29:00 -06:00
WinterSolstice8
79168a75da [core] add setCrystalElement binding 2026-05-26 07:28:41 -06:00
Xaver
d154149892
Merge pull request #10119 from KiplingFFXI/Aydeewa-NM-Audits
[lua] [sql] Aydeewa Subterrane NM Audits
2026-05-26 12:21:49 +02:00
Xaver
a4ae68191e
Merge pull request #10139 from cwalke39/base
[lua] Revert Message IDs in Abyssea-La_Theine
2026-05-26 11:59:55 +02:00
Xaver
66e0dbc83d
Merge pull request #10142 from sruon/awoken_mobs
[sql] Peculiar Foes mobs
2026-05-26 11:46:21 +02:00
Xaver
fd5f6253f9
Merge pull request #10141 from Huggsboson29/fix/content-tag-gobbie-mystery-box-trust-quests
Fix incorrect content_tag for Gobbie Mystery Box and Trust Quest NPCs
2026-05-26 11:44:49 +02:00
Xaver
33d17bed2c
Merge pull request #10140 from sruon/campaign_mobs
[sql] Campaign allied NPCs / mobs
2026-05-26 11:36:42 +02:00
Xaver
d5dac29045
Merge pull request #10136 from sruon/rararoon
[core, lua] Shop job restrictions; Add Rararoon shop
2026-05-26 11:35:38 +02:00
Xaver
a43cd1b587
Merge pull request #10134 from Skold177/Automaton-Resister
[lua] Implement Automaton Resister
2026-05-26 11:33:19 +02:00
Xaver
fb7db8438d
Merge pull request #10133 from WinterSolstice8/remove_equiplogic
[core] [lua] Remove broken "equiplogic" and unused ITEMCHECK/param from onItemCheck
2026-05-26 11:32:32 +02:00
Xaver
f9b5e71cdc
Merge pull request #10131 from Skold177/Automaton-Analyzer
[lua] Implement Automaton Analyzer / Era Module
2026-05-26 11:31:33 +02:00
sruon
6a7ae2cd37 Awoken mobs 2026-05-26 03:03:52 -06:00
Dylan Knevitt
a67bdc9a10 Fix content_tag for Gobbie Mystery Box and Trust Quest NPCs
The Gobbie Mystery Box and Trust Quest systems are independent of the
expansions their NPCs were tagged with, but content_tag was set to
'SOA' / 'ABYSSEA' / 'TOAU'. IsContentEnabled resolves
content_tag as the suffix of main.ENABLE_<TAG>
(src/map/lua/luautils.cpp:1891), so disabling any of those expansions
hides the NPCs and blocks the feature entirely.

Retag to the matching feature settings that already exist:
  - ENABLE_DAILY_TALLY (settings/default/main.lua:49) for the 11
    Mystery Box NPCs (Wondrix, Mystrix, Habitox, Bountibox, Specilox,
    Arbitrix, Funtrox, Priztrix, Sweepstox, Rewardox, Winrix) and
    their associated Treasure_Coffer NPCs.
  - ENABLE_TRUST_QUESTS (settings/default/main.lua:170) for the 3
    Trust Quest NPCs (Gondebaud, Clarion Star, Wetata).

Mystery Box was added 2011-12-15; Trust Quests were added 2013-12-11
- both pre-date or are orthogonal to SoA (2013-03-27). A.M.A.N.
Liaison NPCs (assist channel) need a new ENABLE_ASSIST_CHANNEL
setting and are intentionally left for a follow-up PR.

Fixes #9613.
Refs #8995, #8963 (Trust NPC visibility, Krylose).

Co-authored-by: eyes-and-brain <eyes-and-brain@users.noreply.github.com>
Co-authored-by: Krylose <Krylose@users.noreply.github.com>
2026-05-26 10:44:47 +02:00
sruon
a475f8b765 Campaign NPCs 2026-05-26 01:25:46 -06:00
sruon
9a416810b2 Campaign mobs 2026-05-26 01:25:46 -06:00
Crazyalextrebek
d8de709acc [lua] Revert Message IDs in Abyssea-La_Theine 2026-05-26 00:40:32 -06:00
Critical
d209b953f0 [lua, cpp] Assault Framework Rework
Co-authored-by: Abdiah <62350957+dallano@users.noreply.github.com>
2026-05-25 23:24:54 -06:00
sruon
fb7d21ab3a Rararoon shop 2026-05-25 23:14:07 -06:00
sruon
569e936e6e Track and enforce job/guild level requirements on shop items 2026-05-25 23:13:53 -06:00
Critical
644f9f5cab [sql] RDM era changes 2026-05-25 23:01:09 -06:00
WinterSolstice8
84149e2fe2
Merge pull request #10135 from sruon/sortie_mobs
[sql] Sortie mobs
2026-05-25 22:20:24 -06:00
sruon
43fce702b9 Sortie mobs 2026-05-25 21:51:16 -06:00
WinterSolstice8
18e62f7088 [core] [lua] remove unused ITEMCHECK/param from onItemCheck 2026-05-25 21:05:21 -06:00
WinterSolstice8
906f61d816
Merge pull request #10132 from sruon/odyssey_mobs
[sql] Odyssey mobs
2026-05-25 20:58:40 -06:00
WinterSolstice8
ca1ebd2017 [core] Remove broken "CheckEquipLogic"
No script used this. It was never necessary.
2026-05-25 20:31:40 -06:00
Skold
89a64fabb3 [lua] Implement Automaton Resister
Implements the Automaton attachment Resister - an attachment that raises the automatons resistance to status ailments.
2026-05-25 22:22:40 -04:00
sruon
d2df74d2e4 Odyssey mobs 2026-05-25 20:02:06 -06:00
WinterSolstice8
cde1e0a1cf
Merge pull request #10130 from sruon/everbloom_hollow_mobs
[sql] Ruhotz Silvermines / Ghoyu's Reverie / Everbloom Hollow mobs
2026-05-25 20:01:35 -06:00
Skold
2723e99c7c [lua] Implement Automaton Analyzer / Era Module
Adds the Automaton Attachment Analyzer and Implements a 2012 era module.
2026-05-25 21:25:17 -04:00
Xaver
bb460c0d9e
Merge pull request #10129 from WinterSolstice8/attackround_c++_audit
[core] attack/attackround/pdif cleanup/audit
2026-05-26 03:13:11 +02:00
sruon
db5669d938 Ruhotz Silvermine / Ghoyu's Reverie mobs 2026-05-25 19:10:29 -06:00
sruon
026a7df197 Everbloom Hollow mobs 2026-05-25 18:57:59 -06:00
WinterSolstice8
a1d8bb0ec1 [core] attack/attackround/pdif cleanup/audit 2026-05-25 18:24:49 -06:00
Xaver
1aeeff8625
Merge pull request #10128 from WinterSolstice8/thf_steal_item_fix
[core] [lua] Remove bad useages of const CItem* templates, prevent steal/despoil of rare items you already have
2026-05-26 02:18:18 +02:00
WinterSolstice8
4cab75bb72 [lua] Fail to steal/despoil rare items you already have 2026-05-25 16:35:43 -06:00
WinterSolstice8
06cee087c6 [core] Fix direct usages of CItem templates
We don't want to be able to return template items directly yet
but there's some code that needs to be fixed

Also fix uses of it in the codebase
2026-05-25 16:35:36 -06:00
Xaver
49d59e0dee
Merge pull request #10125 from sruon/instance-overlay-core
[core,sql] Support alternative entity lists for instances
2026-05-26 00:22:58 +02:00
sruon
76e5df6bdf Support alternative entity lists for instances 2026-05-25 15:41:46 -06:00
Xaver
9b45947eca
Merge pull request #10126 from WinterSolstice8/alwaysrelevant
[core] [lua] Set "important" things like bastok bridge, rainbow, some elevators to always be relevant to client
2026-05-25 21:22:51 +02:00
Xaver
c0d846048c
Merge pull request #10011 from UmeboshiXI/Movalpolis_Support_Moblins
[lua] Moblin Scalpelman/Gurneyman Spell Lists
2026-05-25 21:13:17 +02:00
Xaver
744d8500fc
Merge pull request #10122 from WinterSolstice8/zstd_dep
[cmake] Add zstd to unix build deps
2026-05-25 20:41:02 +02:00
Kipling
f8b22d23b6 Aydeewa NM Audits
Co-authored-by: Critical <48370698+CriticalXI@users.noreply.github.com>
Co-authored-by: Skold <113406182+Skold177@users.noreply.github.com>
2026-05-25 11:40:32 -07:00
Xaver
5903ec93f4
Merge pull request #10124 from WinterSolstice8/cantparry
[lua] Disable parry if neither main nor subjob has parry rank
2026-05-25 20:40:26 +02:00
Xaver
ab9cec29e5
Merge pull request #10123 from Skold177/1000-Needles
[lua] Adds skip FSTR to 1000 Needles
2026-05-25 20:39:32 +02:00
Xaver
ba2e9449aa
Merge pull request #10121 from WinterSolstice8/nosteal_despawn
[core] [lua] Stolen items only reset on kill (or BC/QM pops)
2026-05-25 20:38:53 +02:00
WinterSolstice8
d493517793
[lua] Curtana/Brigandish Blade/Bartholomew Knife retail improvements (#10120)
* [lua] Add Curtana spawn positions, randomize Curtana respawn time

Curtana seems to be either 2 or 3 hours respawn

* [lua] Improve accuracy of Buccaneer -> Bart knife mechanics

* [lua] Only move Curtana if you obtained the item

* [lua] Randomize Curtana spawn pos on server load
2026-05-25 20:38:10 +02:00
WinterSolstice8
3c85665f47 [lua] Set Altepa Gate & pillars/switches always relevant 2026-05-25 12:30:09 -06:00
WinterSolstice8
614eca65ca [lua] set Pso'Xja elevators and "elevator doors" always relevant 2026-05-25 12:30:02 -06:00
WinterSolstice8
e91581a4c2 [lua] Set La Theine Rainbow always relevant 2026-05-25 12:21:59 -06:00
WinterSolstice8
560195b530 [lua] Set Bastok Drawbridge NPCs always relevant 2026-05-25 12:21:59 -06:00
WinterSolstice8
721cfccb7a [core] Support "Always Relevant" npcs, such as doors/drawbridge etc 2026-05-25 12:21:59 -06:00
WinterSolstice8
a6a97b6f2a [lua] Disable parry if neither main nor subjob has parry rank 2026-05-25 10:55:07 -06:00
Skold
f47bceac5b Adds skip FSTR to 1000 Needles
Adds skip FSTR to 1000 Needles so damage works as intended.
2026-05-25 12:41:05 -04:00
WinterSolstice8
bd701aa680 [core] [lua] Stolen items only reset on kill (or BC/QM pops) 2026-05-25 09:29:52 -06:00
WinterSolstice8
817c5d71b2 [cmake] Add zstd to unix build deps 2026-05-25 09:27:48 -06:00
sruon
5863918e51
[sql] ★Oathsworn Blade★ mobs / Quicksand caves missing mobs (#10118)
* Oathsworn Blade mobs

* Quicksand Caves missing spawns
2026-05-25 16:17:35 +02:00
JerokeXI
9e6a5f3f48 [sql] Add content_tag to NPCs [Windurst] 2026-05-24 23:58:22 -06:00
Xaver
eb804f6d18
Merge pull request #10117 from Skold177/Ice-Maker
[lua] Update Automaton Ice Maker
2026-05-25 05:09:29 +02:00
Skold
ce2b17ce39 [lua] Update Automaton Ice Maker
Updates Automaton Ice Maker
Adds 2015 Era Ice Maker Attachment
2026-05-24 22:27:47 -04:00
Xaver
101d857d04
Merge pull request #10116 from sruon/toau_kings_BCNM
[sql] ToAU Kings BCNM mobs
2026-05-25 04:00:19 +02:00
sruon
f8a8e3a814 ToAU Kings BCNM mobs 2026-05-24 19:33:28 -06:00
Xaver
7235fcf7c1
Merge pull request #10115 from sruon/celestial-nexus-mobs
[sql] ★Crystal Paradise★ mobs
2026-05-25 03:31:53 +02:00
sruon
676abe2bea ★Crystal Paradise★ mobs 2026-05-24 18:35:59 -06:00
sruon
b9c9ebdfd2
[sql] The Wyrm God ★ / Peach Power mobs (#10113)
* The Wyrm God ★ mobs

* Peach Power mobs
2026-05-25 00:03:51 +00:00
Xaver
4ae6b979e9
Merge pull request #10114 from sruon/nominate-feature
[core] /nominate support
2026-05-25 01:47:40 +02:00
Xaver
a0987696c9
Merge pull request #10107 from Skold177/Automaton-Double-Attack
[lua] Implement DA for Automaton WS / Update Automaton Shield Bash
2026-05-25 00:29:59 +02:00
sruon
0b7a10129d /nominate support 2026-05-24 16:29:22 -06:00
Crazyalextrebek
48c7a96e6f
[quests] Added Abyssea quests 2, 3, and 9 (#10091)
* [quests] Added Abyssea quests 2, 3, and 9

* Delete scripts/zones/Abyssea-La_Theine/npcs/Curilla.lua

* Delete scripts/zones/Abyssea-La_Theine/npcs/Halver.lua

* Delete scripts/zones/Abyssea-La_Theine/npcs/Secodiand.lua

* Delete scripts/zones/Abyssea-La_Theine/mobs/Lugarhoo.lua

* [quests] Abyssea Quests 2, 3, and 9

* [Quests] Adding Abyssea Quests 2, 3, and 9

* [Quests] Adding Abyssea Quests 2, 3, and 9
2026-05-25 00:12:21 +02:00
Skold
64056cd7c5 Implement DA for Automaton WS / Update Automaton Shield Bash
Implements DA for Automaton WS
Implements Automaton Shield Bash & Hammermill
Updates Cannibal Blade formula
2026-05-24 17:40:09 -04:00
Xaver
3efbb155a4
Merge pull request #10111 from JerokeXI/gatesHalvung
[npc][lua] Halvung Gates Key Item check
2026-05-24 23:23:04 +02:00
Xaver
57f855e64d
Merge pull request #10109 from Skold177/Automaton-Strobe-/-Eraser
[lua] Update Automaton Eraser / Add Era Module + Strobe
2026-05-24 23:05:07 +02:00
Xaver
81892ad336
Merge pull request #10112 from ThrisStraizo/noobdestruction
[mob] No H2H Penalty for Low Level Monks
2026-05-24 23:04:43 +02:00
JerokeXI
52e5ad69f7 [npc][lua] Halvung Gates Key Item check 2026-05-24 11:32:41 -06:00
ThrisStraizo
11e1807eaa No H2H Penalty for Low Level Monks
This adjusts low level monks to have no H2H penalty.  This includes East Ronfaure, West Ronfaure, East Saruta, West Saruta, Ghelsba, and Giddeus.
2026-05-24 09:32:19 -07:00
Xaver
b2b18f6e5b
Merge pull request #10098 from sruon/linkshell_concierge
[core, sql, lua] Linkshell Concierge support
2026-05-24 15:19:52 +02:00
Xaver
ed9dea3188
Merge pull request #10108 from Nobutadas/battlefield-2-3-time-limit
[lua] Update rank 2-3 battlefield to 15 minutes
2026-05-24 14:25:45 +02:00
Xaver
c5e8cdc6c0
Merge pull request #10106 from WinterSolstice8/fstr_audit
[lua] Adjust fSTR/fSTR2 functions to match sheet
2026-05-24 14:21:39 +02:00
Xaver
3a5105611b
Merge pull request #10105 from sruon/apollyon-temenos-mobs
[sql] Apollyon/Temenos mobs
2026-05-24 14:20:27 +02:00
Xaver
b4dcb4ea0b
Merge pull request #10092 from Nobutadas/events-block-teleports
[lua] Block teleports while in events
2026-05-24 14:12:54 +02:00
Xaver
bfdb7784ca
Merge pull request #10083 from WinterSolstice8/geo_trust_untargetable
[core] [lua] Make GEO trusts untargetable
2026-05-24 14:09:14 +02:00
Skold
36bf6b9fea Update Automaton Eraser / Add Era Module + Strobe
Cleans up code for Strobe, Eraser & adds an era Eraser module.
2026-05-24 03:29:42 -04:00
Jesse Sestito
d0ab3b950c [lua] Update rank 2-3 battlefield to 15 minutes 2026-05-23 22:28:15 -05:00
sruon
4779c07f1e Apollyon/Temenos mobs 2026-05-23 20:53:05 -06:00
Xaver
4997ca1c20
Merge pull request #10058 from Skold177/Update-weapon
[lua] Nocuous Weapon Repop Time
2026-05-24 03:02:01 +02:00
WinterSolstice8
1cf81d68dd [lua] Adjust fSTR/fSTR2 functions to match sheet 2026-05-23 17:59:05 -06:00
WinterSolstice8
a81b329d4b [core] [lua] Make GEO trusts untargetable 2026-05-23 17:20:07 -06:00
Xaver
b4bae55725
Merge pull request #10093 from Omnione/trust_passive
[trust, sql, core, lua] Passive trust movement/animation gambits and aura effects
2026-05-24 01:14:51 +02:00
Xaver
8270fd9cd1
Merge pull request #10104 from sruon/mission_skip
[lua] Require San d'Oria 1-2 / 3-1 completion
2026-05-23 23:22:26 +02:00
Xaver
386db09b20
Merge pull request #10103 from Nobutadas/windurst-mission-emnity-audit-rank-1-and-2
[lua] Windurst rank 1 and 2 enmity drop and Battlefield event skip
2026-05-23 22:51:04 +02:00
MrSent
f5ea5a3774 Passive trust movement/animation gambits/auras 2026-05-23 21:31:09 +01:00
sruon
a75b4b2f0c Require Sandy 1-2 completion 2026-05-23 14:29:00 -06:00
Xaver
0d441fd091
Merge pull request #10102 from Skold177/Magic-Mortar
[lua] Correct Magic Mortar Formula
2026-05-23 21:40:45 +02:00
Xaver
ae41e7f33a
Merge pull request #10101 from Hatberg/lamp-marimo-basesell
[sql] Sets Lamp Marimo basesell to 31
2026-05-23 20:44:43 +02:00
Skold
174f4346c0 Correct Magic Mortar Formula
Updates Magic Mortar with testing from retail.
2026-05-23 14:41:48 -04:00
Jesse Sestito
d4a3d24902 [lua] Windurst rank 1 and 2 enmity drop and Battlefield event skip 2026-05-23 13:35:04 -05:00
Hatberg
efce5e6eae Sets Lamp Marimo basesell to 31 2026-05-23 19:45:48 +02:00
Xaver
d576cb0147
Merge pull request #10097 from KiplingFFXI/Jaded-Jody-Audits
[lua] [sql] Jaded Jody Audit + KB Fix
2026-05-23 12:26:41 +02:00
Xaver
5d9288003e
Merge pull request #10096 from sruon/sprinkler_job
[sql] Sprinkler RDM/WAR job
2026-05-23 12:26:09 +02:00
sruon
7c4e99e60f
[lua, sql] Besieged mobs / Al Zahbi NPCs (#10095)
* Besieged mobs in Al Zahbi/Wajaom/Bhaflau

* Locus Colibri / Wivre missing spawns in Bhaflau

* Al Zahbi NPCs
2026-05-23 12:25:50 +02:00
sruon
484030505b Linkshell Concierge support 2026-05-23 03:47:06 -06:00
Kipling
f233e5224b Jaded Jody Audit + KB Fix 2026-05-23 01:39:06 -07:00
sruon
d507f3132c Sprinkler RDM/WAR 2026-05-23 01:18:34 -06:00
Jesse Sestito
e136de4081 [lua] Block teleports while in events 2026-05-22 22:54:58 -05:00
Skold177
d9f19cea64 Nocuous Weapon Spawn Time
Updates the spawn time
2026-05-22 23:07:04 +02:00
Xaver
143b3ebb31
Merge pull request #10090 from ThrisStraizo/moremandyadjust
[mob] Starter zone Mandies no h2h penalty
2026-05-22 23:03:25 +02:00
ThrisStraizo
00ad3121de Stater zone Mandies no h2h penalty
This PR adjusts the starter zone Mandies to have no H2H penalty which brings their damage closer in line with retail.
2026-05-22 12:07:39 -07:00
WinterSolstice8
dc3011ec58
Merge pull request #10069 from Xaver-DaRed/shot
[Fix] Light shot
2026-05-22 06:54:48 -06:00
Xaver
71cbc9e7c5
Merge pull request #10089 from sruon/strange-happenings-nms
[lua, sql] Strange Happenings event (Fafnir, Kirin, Alexander)
2026-05-22 13:21:15 +02:00
Xaver-DaRed
5ff253c134 Fix Light shot 2026-05-22 11:19:20 +02:00
sruon
8978126639 Strange Happenings event 2026-05-22 02:38:53 -06:00
Xaver
585f449cf5
Merge pull request #10085 from WinterSolstice8/trust_messaging_despawn
[core] Fix trust release messaging, improve despawn animation
2026-05-22 10:10:20 +02:00
Xaver
55803898d3
Merge pull request #10087 from sruon/caedarva-locus-imps
[sql, lua] Locus Imp / Locus Fiddler Crab
2026-05-22 10:09:00 +02:00
Xaver
1feb9fa7b5
Merge pull request #10088 from ThrisStraizo/mandyadjust
[mob] Adjust Tiny Mandragoras to not guard
2026-05-22 10:07:51 +02:00
ThrisStraizo
dfd9a29e9f Adjust Tiny Mandragoras to not guard
This PR makes sure Tiny Mandragoras cannot guard, because they don't.
2026-05-21 19:41:22 -07:00
sruon
6fcb0ffbef Locus Fiddler Crabs in Bibiki Bay 2026-05-21 20:13:06 -06:00
sruon
709ff6998f Caedarva Locus Imps mobs 2026-05-21 19:40:12 -06:00
WinterSolstice8
d7ee655cef [core] Prevent multiple trust releases during delayed action 2026-05-21 18:16:30 -06:00
WinterSolstice8
404e2a7d0b
Merge pull request #10084 from Hatberg/blade-bat-inner-horutoto-nonaggro
[sql] Set Blade Bat in Inner Horutoto to non-aggressive
2026-05-21 18:15:14 -06:00
WinterSolstice8
28cd75db19 [core] Fix trust release messaging, improve despawn animation 2026-05-21 17:20:55 -06:00
Hatberg
abeb9776aa Set Blade Bat Inner Horutoto to nonaggro 2026-05-21 21:20:31 +02:00
Xaver
56bbf6d3e1
Merge pull request #10082 from sruon/macro-test-mobs
[lua,sql] Macro Test mobs
2026-05-21 19:32:04 +02:00
sruon
5a080a056c Macro Test mobs 2026-05-21 10:41:57 -06:00
Xaver
77b88f521b
Merge pull request #10070 from Skold177/Replicator
[lua] Automaton Replicator
2026-05-21 11:12:22 +02:00
Xaver
f443595549
Merge pull request #10080 from sruon/term_coffer
[sql] Hide Terminal Coffer in Horlais Peak
2026-05-21 11:01:31 +02:00
Xaver
2ce6e77062
Merge pull request #10079 from sruon/30260429_new_items
[client] May Version Update 30260429_1 Items
2026-05-21 11:01:09 +02:00
sruon
63d8fe0e4d Hide Terminal Coffer in Horlais Peak 2026-05-21 00:06:44 -06:00
sruon
179bd6512c 30260429_1 new items 2026-05-20 23:51:52 -06:00
WinterSolstice8
6b2b1450f2
Merge pull request #10078 from sruon/npc_fixes
[fix] Furniture NPCs
2026-05-20 21:15:23 -06:00
sruon
5494bdd6f7 Fix shifted hidden furniture NPCs 2026-05-20 20:29:16 -06:00
Xaver
4342e2184e
Merge pull request #10077 from Frankie-hz/erahnmspawn
[lua] Adds spawn points to old hnm module
2026-05-21 01:18:31 +02:00
Frankie-hz
5af74497e6 [lua] Adds spawn points to old hnm module 2026-05-20 18:41:26 -04:00
Xaver
b3b8dc704e
Merge pull request #10073 from KiplingFFXI/Zilart-King-Audits
[lua] [sql] Zilart King Audits
2026-05-20 23:37:43 +02:00
Xaver
01f130ef5a
Merge pull request #10074 from Skold177/PromyvionXPFix
[lua] Fix Duplicate CoP XP Reward
2026-05-20 20:12:17 +02:00
Xaver
b1acbcfcab
Merge pull request #10075 from Skold177/Automaton-DT
[Core] [C++] Add missing DT to Automaton Frames on Setup
2026-05-20 20:00:30 +02:00
Kipling
fd8919775b Zilart King Audits 2026-05-20 10:03:31 -07:00
Skold177
c7105a52f1 Add various DT to Frame setup
Adds missing DT for automaton frames
2026-05-20 12:47:22 -04:00
Skold177
03d5c10bcf PromyvionXPFix
Removes duplicate XP gains from Promyvions while preserving helper XP
2026-05-20 12:09:17 -04:00
Xaver
f4aa3730dd
Merge pull request #10066 from Aeshur/wotg-bastok-bondsmythril
[lua] Implement Bonds of Mythril quest
2026-05-20 16:26:01 +02:00
Xaver
fa123c74ee
[cpp] Implement necessary code for Event Skipped (#10068) 2026-05-20 16:23:46 +02:00
sruon
e78eafcdd0
Merge pull request #10067 from sruon/30260429_1_NPCs
[client] May 2026 Version Update 30260429_1 NPCs
2026-05-20 16:22:57 +02:00
Aeshur
cfdc9ca394 [lua] Bonds of Mythril quest 2026-05-20 00:09:52 -04:00
Skold
464f7b4a86 [lua] Automaton Replicator
Update the Automaton Attachment Replicator
2026-05-19 23:48:14 -04:00
Jesse Sestito
bf0ebbf00e [cpp] Implement necessary code for Event Skipped 2026-05-19 18:04:38 -05:00
Xaver
834c53380c
Merge pull request #10027 from TiberonKalkaz/eminem_timer_npcs
[lua] Add ENM Timer NPCs and some additional ENM KIs
2026-05-19 19:18:45 +02:00
Xaver
c7e530e663
Merge pull request #10064 from Nobutadas/cutscene-aoe-bug
[cpp] Stop actions against locked players
2026-05-19 19:06:26 +02:00
Xaver
44279ea8c2
Merge pull request #10065 from Hatberg/movalpolis-stirge-nonaggro
[sql] Set Oldton Movalpolos Stirge to nonaggro
2026-05-19 19:01:36 +02:00
Tiberon
8607dc0410 Add ENM Timer NPCs and some additional ENM KIs 2026-05-19 18:38:30 +02:00
Hatberg
410a1aa2ff Set Oldton Movalpolos Stirge to nonaggro 2026-05-19 18:28:14 +02:00
Xaver
82510d88dc
Merge pull request #10020 from Skold177/Shots-in-the-Dark
[lua] [sql] Shots in the Dark + Orcish Warmachine TP Moves
2026-05-19 14:57:38 +02:00
Xaver
0b93fa7cd9
Merge pull request #10060 from Skold177/ToAU-WS-Module-Update
[lua] ToAU WS Module Update
2026-05-19 14:54:50 +02:00
Xaver
5a6854ce19
Merge pull request #10059 from Nobutadas/zone-in-event-cutscene
[cpp] Enable cutscene immunity on zone-in events
2026-05-19 14:54:38 +02:00
Xaver
79f74b0811
Merge pull request #10061 from Frankie-hz/statrank
[cpp] Add lua binding for setting stat ranks
2026-05-19 14:52:29 +02:00
Xaver
a06602f0d2
Merge pull request #10063 from Frankie-hz/sightsounda
[cpp] Fixes mobs that aggro by sight and sound
2026-05-19 14:48:15 +02:00
Jesse Sestito
a1d598f515 [cpp] Stop actions against locked players
Currently, AoE abilities (friendly and enemy) can still hit players who are locked.
2026-05-19 07:00:29 -05:00
WinterSolstice8
9711e6dbd2
Merge pull request #10015 from sruon/30260429_1
[client] May 2026 Version Update 30260429_1 Strings
2026-05-18 22:08:20 -06:00
Frankie-hz
f3ff385bb5 [cpp] Fixes mobs that aggro by sight and sound 2026-05-18 23:52:37 -04:00
Frankie-hz
0b4090fc19 [cpp] Add lua binding for setting stat ranks 2026-05-18 22:02:12 -04:00
Skold
aaf72b0921 WS Module Update
WS Module Update
2026-05-18 20:50:49 -04:00
Jesse Sestito
faba088cf7 [cpp] Enable cutscene immunity on zone-in events
This enables the cutscene immunity using setLocked. It also adds in invisibility until the cutscene is done.
2026-05-18 15:30:49 -05:00
Skold
e01e08b598 Shots in the Dark
Implement the BCNM Shots in the Dark
Updates Orcish Warmachine TP movesd
2026-05-18 14:06:48 -04:00
bliven-was-taken
6095e0587e
[Lua] Change Bonnacon window to 1 hour (#10057)
* Change Bonnacon Lottery time

The Lottery window opening between 1 to 24 hours just does not make sense. Changing it to 1 hour. https://wiki.ffo.jp/html/12412.html

* Remove Onmobdeath

Removing the onmobdeath part of the file as it is no longer needed.
2026-05-18 04:42:33 +00:00
Xaver
88f2705ecb
Merge pull request #10050 from Skold177/Automaton-WS-Refactor-2
[lua] Automaton Skill Rework
2026-05-18 03:58:33 +02:00
Xaver
6319e1fc84
Merge pull request #10051 from Frankie-hz/superfamily
[cpp, lua, sql] Renames superFamily to Family
2026-05-18 03:50:50 +02:00
Xaver
8a3c944b83
Merge pull request #10026 from Skold177/Under-Observation-Improvements
[lua] Under Observation spell casting logic
2026-05-18 03:09:27 +02:00
Frankie-hz
dbc2618458 [cpp, lua, sql] Renames superFamily to Family 2026-05-17 20:58:21 -04:00
Xaver
f176789788
Merge pull request #10056 from wccbuck/fix-pantin-tobe-p1-acc
[sql] Fix Pantin Tobe +1 pet acc bonus
2026-05-18 02:16:07 +02:00
Xaver
440f7a1cad
Merge pull request #10055 from Nobutadas/optional-cutscene
[lua] Add progressOptionalCutscene event hook and update battlefield
2026-05-18 02:15:27 +02:00
Will Buck
fa08ef80ae Fix Pantin Tobe +1 pet acc bonus 2026-05-17 17:58:36 -05:00
Jesse Sestito
67ad4900b9 [lua] Add progressOptionalCutscene hook and update battlefield
This adds a new hook for dead C++ code to allow for events that start targetable and then turn into untargetable cutscenes.
2026-05-17 17:35:33 -05:00
Xaver
0fca67c755
Merge pull request #10053 from wccbuck/nyzul-fixes
[lua] Nyzul fixes: NM coffers, Friars Lanterns, removePathos
2026-05-17 14:03:59 +02:00
Will Buck
481c948fa5 Nyzul fixes: NM coffers, Friars Lanterns, removePathos 2026-05-17 01:32:45 -05:00
WinterSolstice8
54bd6e24f9
Merge pull request #10041 from Xaver-DaRed/rice
[Fix] Rice balls latent values on gear
2026-05-16 19:44:45 -06:00
Xaver
1af9eaa843
Merge pull request #10048 from Frankie-hz/spellnilerror
[lua] Fixes nil errors in Disaster Idol spell choose
2026-05-17 03:13:14 +02:00
Xaver
6b548606c4
Merge pull request #10046 from WinterSolstice8/ranged_tp_return_thing
[core] Use slot to determine delay for TP return
2026-05-17 02:58:20 +02:00
Xaver
dcaaa65b97
Merge pull request #10052 from Skold177/Mammets-Bugfixes
[lua] [sql] Mammet Bugfixes
2026-05-17 02:57:36 +02:00
Xaver
3605a2fff6
Merge pull request #10034 from Skold177/Khimaira
[lua] [sql] Khimaira Audit
2026-05-17 02:57:00 +02:00
Skold
2700e15c88 Automaton mobSkill Refactor
Retires Automaton weaponskill passthrough
Refactors all automaton skills through mobskills
2026-05-16 16:15:25 -04:00
Skold
a3ae784c13 Khimaira Audit
Audits the HNM Khimaira
2026-05-16 15:20:10 -04:00
Skold
a2b79a53d4 [lua] [sql] Mammet Bugfixes
Mammet Bugfixes
2026-05-16 13:46:15 -04:00
Xaver
0ad4b6eb0a
Merge pull request #10045 from Frankie-hz/familyrename
[cpp, lua, sql] Renames family to species
2026-05-16 13:34:19 +02:00
Xaver
81d042a55b
Merge pull request #10047 from sruon/head_butt_flake
[core] Fix hit distortion wrap on overkills
2026-05-16 13:31:54 +02:00
MrSent
22913d0cbc
[trust, sql, lua, core] Trust Tank audit and cleanup (#10002)
* lua_baseentity getShieldSize amend to account for trust

* trustentity.cpp: spawn, addition to set maxHP/maxMP for HP/MP mods

* trust script audit, set correct values and cleanup

* trustentity addition for getShieldSize() and default shield size

* naming prefix MOBMOD_TRUST amendment and remove unnecessary comments

* Change party wake on sleep gambits to only check for SLEEP_I
2026-05-16 11:47:14 +01:00
Frankie-hz
b0c92c29de [lua] Fixes nil errors in Disaster Idol spell choose 2026-05-15 23:28:20 -04:00
sruon
262c61af66 Fix hit distortion wrap on overkills 2026-05-15 20:45:29 -06:00
WinterSolstice8
b598214cb5 [core] Use slot to determine delay for TP return 2026-05-15 20:24:12 -06:00
Frankie-hz
e27e7da5df [cpp, lua, sql] Renames family to species 2026-05-15 22:05:49 -04:00
Xaver
6a6232aaed
Merge pull request #10044 from WinterSolstice8/npc_look_size_stuff
[core] Don't clobber look string data for entities that dont have it
2026-05-16 04:02:48 +02:00
Xaver
5d1bc20399
Merge pull request #10039 from sruon/state_fix
[core] Decrement equipped ammo / Send item packet update on craft fail
2026-05-16 03:51:00 +02:00
WinterSolstice8
653d23a1fa [core] Don't clobber look string data on entities with no size data
co-authored-by: slashtangent <steve50013@gmail.com>
2026-05-15 18:45:43 -06:00
sruon
3eb7de22a9 Send item unlock packet on craft material saved 2026-05-15 17:46:44 -06:00
sruon
38b4e16eb9 Carry ItemUse transaction on PChar for dtor order 2026-05-15 17:46:34 -06:00
Xaver
08742581e6
Merge pull request #10043 from ThrisStraizo/antsteal
[sql] Add missing steal to Antican Praetor and Legatus
2026-05-16 01:44:50 +02:00
ThrisStraizo
80a015d6cb Add missing steal to Antican Praetor and Legatus
This PR adds the missing stealable item Gold Beastcoin to Antican Praetor and Antican Legatus.
2026-05-15 16:08:56 -07:00
Xaver-DaRed
9c9a9a121d Fix Rice balls latent values on gear 2026-05-15 21:52:49 +02:00
Xaver
443a16fdea
Merge pull request #10037 from Skold177/Automaton-WS-Refactor
[core] [C++] Fix Automaton mobSkill lookup
2026-05-15 21:10:24 +02:00
sruon
15db68d7ef Allow ammo to be consumed while equipped 2026-05-15 09:22:24 -06:00
Frankie-hz
e395d19bf7 Adds Alzadaal Undersea Ruins missing mobs 2026-05-14 23:09:52 -06:00
Frankie-hz
cf7257a76f Crawlers Nest [S] Apex and Locus mobs 2026-05-14 23:09:52 -06:00
sruon
ef171074aa Fix bad polutils name 2026-05-14 23:05:36 -06:00
sruon
6e7468d7b0 Bump CLIENT_VER to 30260429_1 2026-05-14 23:05:36 -06:00
sruon
2253df7449 30260429_1 Strings 2026-05-14 23:05:36 -06:00
Skold
7913999d3e Fix Automaton Skill Lookup
Fixes automaton skill lookup
2026-05-14 20:46:15 -04:00
Xaver
959617c185
Merge pull request #10013 from Aeshur/wotg-bastok-truthlies
[lua] Truth Lies Hid quest
2026-05-15 01:39:21 +02:00
Aeshur
b9668c1f96 [lua] Truth Lies Hid quest 2026-05-14 17:30:30 -04:00
Xaver
c4bded05a6
Merge pull request #10036 from WinterSolstice8/dainslaif
[lua] [sql] Implement Dainslaif's add effect
2026-05-14 21:29:10 +02:00
WinterSolstice8
c6ac4eea1c [lua] [sql] Implement Dainslaif's add effect 2026-05-14 12:33:19 -06:00
Xaver
1db96759de
Merge pull request #10022 from ThrisStraizo/colibrislap
[mob] Mocking Colibri base dmg adjustment
2026-05-14 19:30:43 +02:00
ThrisStraizo
7814f114cd Mocking Colibri base dmg adjustment
This PR increases Mocking Colibri's base damage to observed numbers on retail.
2026-05-14 09:14:56 -07:00
Xaver
46d9dfb49c
Merge pull request #10028 from Skold177/Superlink-Fix
[lua] Various battlefield superlinking setup
2026-05-14 18:05:07 +02:00
Xaver
3f796604ac
Merge pull request #10016 from Frankie-hz/petelement
[cpp] Fixes underflow in avatar perpetuation
2026-05-14 17:40:38 +02:00
Xaver
b4c3437271
Merge pull request #10030 from Skold177/AA-MR-Pet-Fix
[lua] AA MR Pet Fix
2026-05-14 17:21:11 +02:00
Xaver
ca6bde1b71
Merge pull request #10033 from Nobutadas/bst-era-bug-fix
[lua][module] BST Era Bug Fix
2026-05-14 17:20:31 +02:00
Xaver
72a9279fb8
Merge pull request #10035 from Skold177/Convert-Bugfix
[lua] Convert Bugfix
2026-05-14 17:19:21 +02:00
Skold
992b88a019 Convert Bugfix
Fixes a bug with convert at 0 MP
2026-05-14 10:25:24 -04:00
Jesse Sestito
d94be24d66 [lua][module] BST Era Bug Fix
Era BST had Heel, Leave, and Stay set to share the recastId with the 2-hour abilities. This sets each ability to it's own unique recastId.
2026-05-13 18:22:03 -05:00
Skold177
ed4ad5bac7 [lua] AA MR Pet Fix
Fixes AA ME so it is only allowed one pet
2026-05-13 12:32:53 -04:00
Skold
0265e51c80 [lua] Superlinking
Fixes super linking in multiple battlefields
2026-05-12 23:52:37 -04:00
Skold
7bcf565bf6 UO spelllist logic
Only casts Bindga and Breakga outside of melee range
2026-05-12 20:54:08 -04:00
Xaver
b89ca281ca
Merge pull request #10024 from Frankie-hz/superlink
[cpp] Fixes linking issue for battlefield framework with superLinkGroup
2026-05-13 02:22:48 +02:00
Xaver
07de714f36
Merge pull request #10025 from ThrisStraizo/watchwamoura
[mob] Watch Wamoura adjustment
2026-05-13 02:22:15 +02:00
Xaver
a1936a79ca
Merge pull request #10023 from Skold177/Crustacean-Conondrum
[lua] [sql] Crustacean Conundrum
2026-05-13 02:21:19 +02:00
ThrisStraizo
b432c7de9f Watch Wamoura adjustment
This PR adjusts the job of Watch Wamoura to Paladin.

This also adjusts the delay, base damage, form swap delay mechanic and missing immunity.
2026-05-12 16:36:20 -07:00
Skold
b25b252654 Crustacean Conundrum
Implements the BCNM Crustacean Conundrum
2026-05-12 16:17:43 -04:00
Frankie-hz
d51f0f9939 [cpp] Fixes ordering of mods applied in bcnms 2026-05-12 15:05:05 -04:00
Xaver
9cad1e0de2
Merge pull request #10010 from sruon/mmm
[core, lua, sql] MMM unlocks scripts, DB persist and packet
2026-05-12 20:01:27 +02:00
Xaver
539be9f2d0
Merge pull request #10019 from SAY-5/fix/dbtool-windows-encoding
fix(dbtool): open modules/init.txt with utf-8 encoding
2026-05-12 19:06:21 +02:00
sruon
e9ea19f2d3 MMM Rune/Vouchers unlocks 2026-05-12 18:55:47 +02:00
sruon
5c744a8dda Lua bindings to get/set MMM unlocks 2026-05-12 18:55:47 +02:00
sruon
765afd8ae8 Load and send MMM unlocks to player 2026-05-12 18:55:46 +02:00
sruon
d1acdc8fe7 Add MMM unlocks to char_unlocks table 2026-05-12 18:51:55 +02:00
Xaver
c5879fa8a9
Merge pull request #10021 from UmeboshiXI/Elemental_Missing_Spells
[sql] Add Missing Ancient Magic for Elementals
2026-05-12 13:14:01 +02:00
Umeboshi
29f39a77fe [lua][sql] Moblin Scalpelman/Gurneyman Spell Lists 2026-05-11 23:38:29 -07:00
Umeboshi
802b262769 [sql] Add Elementals Ancient Magic 2026-05-11 21:34:31 -07:00
say
e59f347594
fix(dbtool): open modules/init.txt with utf-8 encoding
On Windows, opening modules/init.txt without an explicit encoding
falls back to the system code page (e.g. cp932), which raises
UnicodeDecodeError on any non-ASCII byte. Setting encoding='utf-8'
matches how the file is read everywhere else (CMakeLists.txt,
moduleutils.cpp) and how it is written by the docker workflow.

Fixes #9639

Signed-off-by: say <say.apm35@gmail.com>
2026-05-11 20:25:46 -07:00
Xaver
cf606e87c2
Merge pull request #10017 from Skold177/Poison_Breath_Dragon
[lua] [sql] Dragon Poison Breath
2026-05-12 02:35:21 +02:00
Skold
4ad9ebd12c [lua] [sql] Dragon Poison Breath
Updates the damage formula for Dragon Poison Breath.
2026-05-11 20:02:13 -04:00
Frankie-hz
1ab44d853c [cpp] Fixes underflow in avatar perpetuation 2026-05-11 19:32:47 -04:00
Xaver
b988e14d20
Merge pull request #10014 from Frankie-hz/familyrework
[cpp, lua, sql] New family system migration (ecosystem/family/species)
2026-05-12 00:50:50 +02:00
Frankie-hz
77730f434d [cpp, lua, sql] Implements new family system 2026-05-11 17:35:52 -04:00
Xaver
acc11bfc24
Merge pull request #10000 from ThrisStraizo/momentoftruth
[quest] Moment of Truth implementation
2026-05-11 04:00:42 +02:00
Xaver
c2f43fc5f3
Merge pull request #10007 from Skold177/Holy-Cow
[lua] Holy Cow
2026-05-11 03:35:32 +02:00
Skold
ccd864a802 [lua] Holy Cow
Updates the ENM Holy Cow
2026-05-10 17:52:51 -04:00
Xaver
5539d8c8fb
Merge pull request #10009 from KiplingFFXI/Behemoth-Audits
[lua, sql] Behemoth NQ Audits
2026-05-10 21:00:55 +02:00
Kipling
ae26c6d65f Behemoth NM Audits Resists Fix
Behemoth NQ Audits
2026-05-10 10:43:32 -07:00
Xaver
b176c31932
Merge pull request #10012 from 9001-Solutions/9001/fix-demon-arrow
[sql] Add missing RACC for Demon Arrow
2026-05-10 18:05:49 +02:00
ThrisStraizo
2761d66d60 Moment of Truth implementation
This PR implements the quest Moment of Truth along with the framework for the battlefield fight.
2026-05-10 08:57:45 -07:00
Xaver
34cf44d7ee
Merge pull request #10006 from Skold177/Gigaflare/Megaflare/Teraflare-Cleanup
[lua] Bahamut TP Move Cleanup
2026-05-10 17:50:50 +02:00
Xaver
bfb27ee904
Merge pull request #10001 from Skold177/lua]-sql]-Up-in-Arms-Improvements
[lua] [sql] Up in Arms Improvements
2026-05-10 17:49:55 +02:00
Xaver
37db253061
Merge pull request #9964 from sruon/synth_tx
[core] Introduce SynthTransaction, refactor synth state tracking
2026-05-10 17:40:12 +02:00
9001-Sols
c0ff0448db Add missing RACC for Demon Arrow 2026-05-10 09:17:04 -04:00
Zach Toogood
d9a4f6ddb7
Merge pull request #10003 from Frankie-hz/demfix
[sql] Fixes promy dem mob name
2026-05-10 10:17:41 +01:00
Zach Toogood
b58851e756
Merge pull request #10004 from sruon/trade_test_actions
[test] Lua bindings for PC-to-PC trades tests
2026-05-10 10:08:51 +01:00
Zach Toogood
007b1f4738
Merge pull request #10005 from sruon/itemsearch
[core] /itemsearch support
2026-05-10 10:07:54 +01:00
Skold
de9b3c30c4 [lua] Bahamut TP Move Cleanup
Cleans out unused code in Giga/Mega/Teraflare
2026-05-10 00:30:03 -04:00
sruon
0940d47bfe /itemsearch support 2026-05-09 21:28:49 -06:00
sruon
80cf557f50 Lua bindings for PC-to-PC trades tests 2026-05-09 20:54:06 -06:00
Frankie-hz
82249ebec3 [sql] Fixes promy dem mob name 2026-05-09 21:16:56 -04:00
Skold
1f243b2015 [lua] [sql] Up in Arms Improvements
Adds additional polish to the BCNM "Up in Arms"
2026-05-09 16:56:22 -04:00
sruon
5ef93fa7b3 Route synthesis through SynthTransaction 2026-05-09 12:50:37 -06:00
Xaver
0f19a3b83f
Merge pull request #9996 from sruon/spells_kb
[core, lua, sql] Allow BLU spells to set knockback and hit distortion in packets
2026-05-09 14:39:25 +02:00
Xaver
f85c15d2ad
Merge pull request #9959 from MarkWaldron/fix/einherjar-linking
[core][cpp] Fix mob-linking behavior impacting Einherjar
2026-05-09 14:35:30 +02:00
MrSent
8f765132f3
[trust, sql, lua, core] Valaineral gambits, mods, spells, gambit support (#9947)
* valaineral gambits, mods, spells

* Uriel Blade script adjustments to be more inline with retail

* Gambit addition for more retail accurate Uriel Blade usage

* formatting fixes

* Uriel gambit adjustments and a ws had wrong id
2026-05-09 14:32:46 +02:00
Xaver
6d25cd3960
Merge pull request #9973 from Frankie-hz/ratobentity
[cpp] Refactor ranged attack handling
2026-05-09 14:30:23 +02:00
Xaver
d35bd8b128
Merge pull request #9987 from Frankie-hz/recastcap
[cpp] Adds setting for era recast time
2026-05-09 14:29:07 +02:00
Xaver
6c863bd0e7
Merge pull request #9998 from Skold177/lua]-Pulling-the-Strings-Improvements
[lua] Additional Pulling the Strings Improvements
2026-05-09 13:37:27 +02:00
Xaver
7d61b111ad
Merge pull request #9999 from UmeboshiXI/Moblin_Skill_Lists
[sql] Movalpolis Goblin Skill List Audit
2026-05-09 13:36:11 +02:00
Xaver
9f72826d5d
Merge pull request #9997 from Skold177/BCNM-Fixes
[lua] [sql] Various BCNM Fixes
2026-05-09 13:35:28 +02:00
Umeboshi
d3068fb588 [sql] Movalpolis Goblin Skill List Audit 2026-05-08 23:28:51 -07:00
Skold
bdcbd88a78 [lua] Pulling the Strings Improvements
Improves Pulling the Strings
2026-05-08 23:00:40 -04:00
sruon
e354e274c5 Allow spells to set knockback and distortion in packets 2026-05-08 20:19:45 -06:00
Skold
c1294fff64 [lua] [sql] Various BCNM Fixes
Fixes a few issues with some BCNMs
2026-05-08 20:04:19 -04:00
Frankie-hz
a1a38bf080 [cpp] Adds setting for era recast time
Adds setting for era recast time.
80/90 for retail 50/60 for old era
2026-05-08 18:19:36 -04:00
Tiberon
3052195bae Add player nation to Thf Af3 Cutscene 2026-05-08 14:17:12 -07:00
Xaver
4a90b5f383
Merge pull request #9993 from Xaver-DaRed/region
[Fix] 2 broken `onTriggerAreaEnter` cases
2026-05-08 21:42:52 +02:00
Xaver
7551b84690
Merge pull request #9984 from Skold177/Pulling_The_Strings_Bugfixes
[lua] [sql] Pulling the Strings Bugfixes
2026-05-08 21:38:27 +02:00
Xaver
d9568f5fae
Merge pull request #9992 from Skold177/RoyalJellyRefactor
[lua] [sql] Royal Jelly Refactor
2026-05-08 21:38:16 +02:00
Skold177
f759c3d294 [lua] Royal Jelly Refactor
Cleans up the Royal Jelly code and fixes a bug where the last jelly alive could become permanently immortal
2026-05-08 14:59:20 -04:00
Xaver-DaRed
9b04ff24d3 Fix 2 broken onTriggerAreaEnter cases 2026-05-08 20:55:14 +02:00
Xaver
d9fe5845ec
Merge pull request #9985 from Frankie-hz/duelwield
[cpp] Allows dualWield to be changed on the fly
2026-05-08 16:07:49 +02:00
Xaver
d23cb38617
Merge pull request #9991 from Hatberg/treasure-picklock-level-penalty
[lua] Add level penalty to picklocking Treasure Chests / Treasure Coffers
2026-05-08 15:26:52 +02:00
WinterSolstice8
9401ad4475
Merge pull request #9989 from Xaver-DaRed/aes
[Combat] Add support for drain-like AEs
2026-05-08 06:38:41 -06:00
Xaver
26b3b81b02
Merge pull request #9988 from Skold177/RapidRaptors
[lua][sql] Rapid Raptors
2026-05-08 13:26:01 +02:00
Hatberg
32f14ed19a [lua] Add level penalty to picklocking treasure chests / coffers 2026-05-08 12:25:16 +02:00
Zach Toogood
c5c83c57bd
Merge pull request #9990 from LandSandBoat/ximesh_raycast_2
Core: Improve ximesh raycast around block.hasBarriers
2026-05-08 10:07:30 +01:00
Zach Toogood
7bbaa8626a Core: Improve ximesh raycast around block.hasBarriers 2026-05-08 08:36:58 +01:00
Xaver-DaRed
4ca4bd0a1b Add support for drain-like AEs 2026-05-08 09:15:20 +02:00
Skold
6f4eae08eb [lua][sql] Rapid Raptors
Implements the BCNM Rapid Raptors
2026-05-08 02:28:02 -04:00
Skold
b301eb222d [lua] Pulling the Strings Bugfixes
Fixes some issues with RNG in pulling the strings
2026-05-08 00:24:08 -04:00
Frankie-hz
20cf73bf35 [cpp] Allows dualWield to be changed on the fly 2026-05-08 00:14:23 -04:00
Frankie-hz
424969c092 [cpp] Combined trust and char ranged attack code to battle entity 2026-05-07 22:57:03 -04:00
Xaver
cfe9391e45
Merge pull request #9969 from ThrisStraizo/peaceinvfull
[Quest] Give Peace a Chance Full inv event
2026-05-07 21:50:53 +02:00
Zach Toogood
6c119e9dbc
Merge pull request #9979 from LandSandBoat/use_ximesh_for_raycast
Core: Use ximesh for raycasts, remove LOSmeshes
2026-05-07 20:26:29 +01:00
Zach Toogood
2966c451aa Core: Add safety check to entity:canSee(...) binding 2026-05-07 19:17:30 +01:00
ThrisStraizo
364613c83d Give Peace a Chance Full inv event
This PR updates Give Peace a chance with the missing event to skip the previous event if your inv was full.
2026-05-07 11:04:14 -07:00
Xaver
2b75d8ffe7
Merge pull request #9980 from Hatberg/synthesis-dawn-mulsum-abyssea-content-tag
[sql] Synthesis 'Dawn Mulsum' content_tag ABYSSEA
2026-05-07 19:18:13 +02:00
Xaver
4cba7c50a4
Merge pull request #9978 from ThrisStraizo/serpentupdate
[quest] Ode to the Serpents follow up quest conditional fix
2026-05-07 19:17:50 +02:00
Xaver
72f78f0b96
Merge pull request #9977 from Hatberg/purgonorgo-jagil-nonaggro
[sql] Set Purgonorgo 'Jagil' mob to non-aggressive
2026-05-07 19:17:01 +02:00
Hatberg
fbe47927ed Synthesis 'Dawn Mulsum' content_tag ABYSSEA 2026-05-07 18:37:51 +02:00
Zach Toogood
0beb1b0644 Remove mentions of losmeshes 2026-05-07 17:35:15 +01:00
Zach Toogood
2ded4c9f3e Core: Clean up Vector3 2026-05-07 17:33:13 +01:00
WinterSolstice8
22a7be4be3
Merge pull request #9976 from UmeboshiXI/Physical_Mobskill_Enmity_Fix
[lua] Fix physical mobskill missing enmity update
2026-05-07 10:16:23 -06:00
Zach Toogood
dd80a48a2b Removed losmeshes submodule 2026-05-07 17:01:44 +01:00
Zach Toogood
f78196c245 Core: Use ximesh for raycasts, remove LOSmeshes
Co-authored-by: InoUno <inoiown@gmail.com>
2026-05-07 17:01:31 +01:00
ThrisStraizo
9730950e35 Ode to the Serpents follow up quest conditional fix
This PR corrects the follow up quests to Ode to the Serpents to be started with Ode to the Serpents being accepted rather than completed.

Ode to the Serpents can't be completed without its follow up quests being completed first.
2026-05-07 08:51:27 -07:00
Umeboshi
fd5da905cd [lua] Fix physical mobskill missing enmity update 2026-05-07 08:46:58 -07:00
Hatberg
5e0bc8a733 Set Purgonorgo 'Jagil' mob to non-agressive 2026-05-07 17:43:33 +02:00
WinterSolstice8
bd7d4dc564
Merge pull request #9975 from WinterSolstice8/update_deps
[cmake] Update MariaDBCPP commit
2026-05-07 08:00:33 -06:00
WinterSolstice8
c37a7c8123 [cmake] Update MariaDBCPP commit
This will improve support for newer compilers when they hit
2026-05-07 06:49:36 -06:00
Xaver
d50d0f5785
Merge pull request #9970 from sruon/new_deps
[core] Link earcut.hpp and rapidyaml
2026-05-07 12:00:28 +02:00
Xaver
d9086c3632
Merge pull request #9971 from UmeboshiXI/Flock_Bat_Skill_List_Audit
[sql] Expansion Flock Bat SkillList Audit
2026-05-07 11:59:43 +02:00
Xaver
36394f1692
Merge pull request #9972 from sruon/lazy_instances
[core] Lazy load instances
2026-05-07 11:58:22 +02:00
Xaver
078dd468bb
Merge pull request #9974 from sruon/status_cleanup
[sql] Status effects audit
2026-05-07 11:54:12 +02:00
sruon
cf8ddf8adb Add missing status effects 2026-05-07 01:15:35 -06:00
sruon
9889607e81 Add missing HIDE_TIMER to effects 2026-05-07 00:40:06 -06:00
sruon
0c4426dddd Add missing NO_CANCEL to effects 2026-05-07 00:38:24 -06:00
Mark Waldron
2ee4c8fee9 Fix cross-family mob linking in Einherjar
Use SUPERLINK for BCNM party matching. Force-link mobs now
require a family or sublink match instead of linking with
all other force-link mobs indiscriminately.
2026-05-07 01:40:17 -04:00
sruon
a57e9c9e8c Lazy load instances 2026-05-06 22:42:56 -06:00
Umeboshi
950206ef69 [sql] Expansion Flock Bat SkillList Audit 2026-05-06 21:37:00 -07:00
sruon
6ee8fcc214 Link rapidyaml; YAML parsing lib 2026-05-06 20:31:53 -06:00
WinterSolstice8
1569b98020
Merge pull request #9935 from sruon/synth_crit_fail_on_atk
[core] Crit fail synthesis/cancel fishing on attack; streamline ATTACK/ON_ATTACK buffs removal
2026-05-06 20:20:04 -06:00
sruon
5ebe9a2165 Link earcut.hpp; polygon triangulation lib 2026-05-06 20:18:39 -06:00
Xaver
32933e9249
Merge pull request #9968 from JerokeXI/LamFangKeyEra
[lua] [module] DEL duplicate module Lamia Fang Key timer
2026-05-07 03:58:25 +02:00
Xaver
4bbedac641
Merge pull request #9967 from lefneer311/curio_moogle_update
[lua] curio moogle adjustments
2026-05-07 03:57:53 +02:00
Xaver
f94da6dd8b
Merge pull request #9958 from ThrisStraizo/returntothedepthsmobs
[Battlefield] Return to the Depths Fight
2026-05-07 03:55:39 +02:00
WinterSolstice8
d40f201b0c
Merge pull request #9941 from lefneer311/ranged_job_abilities
[cpp] fixes ranged job abilities
2026-05-06 16:41:34 -06:00
JerokeXI
24beaf4ebf
[lua] [module] DEL duplicate module Lamia Fang Key timer 2026-05-06 15:53:47 -06:00
lefneer311
fb484cd306 [lua] curio moogle 2025-26 Q1
- Updates inventory to reflect most recent adjustments

sources:

https://forum.square-enix.com/ffxi/threads/63745?p=672200&viewfull=1#post672200
http://www.playonline.com/ff11us/polnews/news27573.shtml
https://www.bg-wiki.com/index.php?title=Curio_Vendor_Moogle&diff=prev&oldid=756234
https://www.bg-wiki.com/ffxi/Curio_Vendor_Moogle
2026-05-06 12:23:35 -05:00
ThrisStraizo
87ea21db25 Return to the Depths Fight
This PR implements the fight mechanics for Return to the Depths.
2026-05-06 08:31:13 -07:00
Xaver
8dc45504a3
Merge pull request #9965 from sruon/mapsession_scheduler_init
[core] Stamp Scheduler on MapSession at creation
2026-05-06 13:47:45 +02:00
Xaver
209b3b58d3
Merge pull request #9960 from Frankie-hz/delay
[cpp, lua] Change delay to have the in-game input instead of milliseonds
2026-05-06 13:35:54 +02:00
Xaver
9f70a6b91b
Merge pull request #9963 from LandSandBoat/heap-buffer-overflow-
Core: Fix packBits heap-buffer-overflow
2026-05-06 13:28:20 +02:00
Xaver
93130c56df
Merge pull request #9923 from Skold177/Pulling-the-strings-p2
[lua] [sql] Pulling the Strings
2026-05-06 13:25:21 +02:00
Xaver
3e7b1dbe99
Merge pull request #9942 from ThrisStraizo/isnmflan
[Mob] ISNM 3k Happy Caster adjustment
2026-05-06 13:20:41 +02:00
sruon
5566b0d912 Stamp Scheduler on MapSession at creation 2026-05-06 04:58:39 -06:00
sruon
362730de64 Cancel fishing on hostile action received 2026-05-06 04:49:43 -06:00
sruon
339b47616e Streamline ATTACK/ON_ATTACK effects removal handling 2026-05-06 04:49:43 -06:00
sruon
1945d7567a Crit fail synthesis when taking damage 2026-05-06 04:48:47 -06:00
Zach Toogood
2471cf5582 Core: Fix packBits heap-buffer-overflow. 2026-05-06 09:53:56 +01:00
Frankie-hz
73f06a800f [cpp, lua] Change delay to have the in-game input instead of milliseonds
For whatever reason we were converting to the in-game delay in every single delay call instead of just changing the base function
2026-05-06 03:19:32 -04:00
Skold
13f848373b [lua] [sql] Pulling the Strings
Implements Pulling the Strings
2026-05-06 02:20:45 -04:00
ThrisStraizo
2d7ee273f9 ISNM 3k Happy Caster adjustment
This PR adjusts the behavior of Two-faced Flan for more accuracy, including the potency of nukes, DMG, and resistances.
2026-05-05 19:48:37 -07:00
Xaver
4205a3db46
Merge pull request #9957 from WinterSolstice8/hapool_ja_fixes
[lua] [sql] Improve Hundredfaced Hapool Ja
2026-05-06 03:07:36 +02:00
WinterSolstice8
5317653553 [lua] [sql] Improve Hundredfaced Hapool Ja 2026-05-05 18:38:42 -06:00
Xaver
9897e21929
Merge pull request #9952 from UmeboshiXI/Movalpolis_Moblin_Adjustments
[core][lua][sql] Movalpolis Patrols and Guards
2026-05-06 01:46:07 +02:00
WinterSolstice8
2907e20cc8
Merge pull request #9954 from UmeboshiXI/TP_Return_Adjustments
[lua] Charmed Pet/MNK Mob TP Returns
2026-05-05 17:10:13 -06:00
Umeboshi
0c9fbf0af0 [core][lua][sql] Movalpolis Patrols and Guards 2026-05-05 14:09:20 -07:00
lefneer311
7a189911ad [cpp] fixes ranged job abilities
- Removes shadow bug for double and triple shot (+40% activation rate over what's shown on mod::double_shot_rate and mod::triple_shot_rate

- Existing bug is due to base power applied both in src/map/entities/charentity.cpp:2104 ("40 +") and scripts/globals/job_utils/ranger.lua:294 (power = 40) for double shot and scripts/actions/abilities/triple_shot.lua:16 for triple shot (power = 40); both cases result in mod power of 40, but activation rate of 80 due to charentity calculation.

- Adds barrage logic for trusts, which scales with player level, and prevents overlap of barrage/double shot/triple shot
2026-05-05 13:34:27 -05:00
Xaver
db550c5366
Merge pull request #9955 from Aeshur/wotg-bastok-priceloyalty
[lua] What Price Loyalty quest
2026-05-05 19:54:11 +02:00
Aeshur
1ad85a152c [lua] What Price Loyalty quest 2026-05-05 12:55:17 -04:00
Xaver
4770f97b6a
Merge pull request #9949 from Skold177/lamia/mamool
[lua] [sql] Implement Lamiabane
2026-05-05 18:27:48 +02:00
Skold
2fc4414681 [lua] [sql] Implement Lamiabane
Implements Lamiabane
2026-05-05 11:59:52 -04:00
Xaver
ade180f37a
Merge pull request #9953 from sruon/craft_test_infra
[test] crafting test infra + HQ rate test
2026-05-05 13:29:19 +02:00
Xaver
49ec2a0a04
Merge pull request #9951 from WinterSolstice8/magic_ranged_wiggleroom
[core] Simplify magic/ranged state hasMoved()
2026-05-05 13:26:13 +02:00
Xaver
73c00658e3
Merge pull request #9950 from Millhouse1337/fix-kumhau-naakual-position
[lua] Fix Kumhau the Flashfrost Naakual cutscene exit position
2026-05-05 13:22:47 +02:00
Xaver
10a2abc2e0
Merge pull request #9948 from Millhouse1337/fix-water-way-to-go-trade-item
[lua] Fix Water Way to Go trade item not consumed on completion
2026-05-05 13:13:58 +02:00
Xaver
119d11baef
Merge pull request #9946 from Skold177/core]-Dual-Wield-Default
[core] Dual Wield Setup
2026-05-05 13:13:14 +02:00
Xaver
898540d02c
Merge pull request #9945 from Skold177/Balmung
[lua] [sql] Balmung AE Dispel
2026-05-05 13:12:59 +02:00
Umeboshi
dc58a21a08 [lua] Charmed Pet/MNK Mob TP Returns 2026-05-04 23:34:55 -07:00
sruon
27c2e46850 synth HQ rate xi_test 2026-05-04 23:17:47 -06:00
WinterSolstice8
dcda80382e [core] Simplify magic/ranged state hasMoved() 2026-05-04 22:14:10 -06:00
Mill House
a77d99767c [lua] Fix Kumhau the Flashfrost Naakual cutscene exit position
The X coordinate of the post-cutscene setPos call in mission 3-6-1
was missing its negative sign, teleporting the player into a wall in
Kamihr Drifts after finishing the cutscene. Add the missing minus
sign so the player lands at the intended location.

Fixes #7234
2026-05-04 23:42:41 -04:00
Mill House
55fedfe03f [lua] Fix Water Way to Go trade item not consumed on completion
When the player trades the Canteen of Giddeus Water to Ohbiru-Dohbiru
to complete the quest, the gil reward is granted but the canteen is
not removed from inventory. The bug is in the handler for event 355
(the quest-completion cutscene): it called tradeComplete() instead of
confirmTrade(), so the trade items were never consumed.

This change replaces that single call. confirmTrade() matches the
canonical pattern used by every other Windurst trade-completion quest
(A_Smudge_on_Ones_Record, Blast_from_the_Past, All_At_Sea, etc.) and
the working event 55 handler in this same file (the earlier trade
where the Giddeus Spring fills the empty canteen).

Tested in-game: traded the canteen to Ohbiru-Dohbiru, confirmed the
item is now consumed, gil is awarded, and the quest completes.

Fixes #7926
2026-05-04 22:57:17 -04:00
Skold
9b7b0c2962 [core] Dual Wield Setup
Fixes a very minor edge case
2026-05-04 20:34:17 -04:00
WinterSolstice8
5ef0f5ee59
Merge pull request #9943 from WinterSolstice8/ranger_stuff
[sql] [core] Add BARRAGE_COUNT mods to ranger items, refactor getBarrageShotCount
2026-05-04 17:17:40 -06:00
Skold
f0de2d8599 [lua] [sql] Balmung AE Dispel
Adds Balmung AE Dispel
2026-05-04 18:30:49 -04:00
WinterSolstice8
76c8b1b582
Merge pull request #9944 from chrisalleng/fix-conquest-signet-staff-rank-bypass
[lua] Add rank requirement to signet staves
2026-05-04 15:52:49 -06:00
WinterSolstice8
4a0bcae26f [core] Refactor getBarrageShotCount to allow trusts to use it 2026-05-04 14:09:58 -06:00
Zach Toogood
e828833ff7
Merge pull request #9940 from LandSandBoat/flatten_pet_DoRoamTick
Core: Flatten CPetController::DoRoamTick logic
2026-05-04 20:58:10 +01:00
Chris Allen
a8783e99b8 [lua] Add rank requirement to signet staves 2026-05-04 14:53:30 -04:00
WinterSolstice8
d493983159 [sql] Add BARRAGE_COUNT item mods where applicable 2026-05-04 12:43:24 -06:00
lefneer311
741fe6c22f [cpp] adds entity:getMasterThreatMob
- Adds function for entities, inspired by trusts, to get the notoriety list of their master on mobs within a specified range

- Range defaults to 22.0 (float) but may overrides can be specified

- Specifically performs a check to determine whether master is the top of any nearby mobs' notoriety list and returns that target
2026-05-04 13:11:50 -05:00
Zach Toogood
1ff35028fb Core: Flatten CPetController::DoRoamTick logic, general tidy 2026-05-04 18:59:12 +01:00
Zach Toogood
3a9a151da1
Merge pull request #9938 from WinterSolstice8/i_hate_bst
[core] Fix heap corruption surrounding BST pets
2026-05-04 18:17:21 +01:00
WinterSolstice8
7f9214a64f [core] Adjust some logic for BST pets causing heap corruption 2026-05-04 10:41:56 -06:00
Xaver
1a90b78a09
Merge pull request #9937 from lefneer311/augments_update
Fixes augment 1152: DEF +10
2026-05-04 17:25:54 +02:00
Xaver
6a4d7e19ea
Merge pull request #9936 from Aeshur/wotg-bastok-beneaththemask
[lua] Beneath the Mask quest
2026-05-04 16:52:25 +02:00
lefneer311
cb1ea02dc9
Fixes augment 1152 - DEF +10
Fixes augment 1152 to match the in-client dat (+10 per step).

Modifies multiplier from 0 to 10, and reduces value from 10 to 1.  Results in +10 steps tested and verified.
2026-05-04 09:12:55 -05:00
Aeshur
717e747fd7 [lua] Beneath the Mask quest 2026-05-04 09:53:53 -04:00
Xaver
a52e77ff4a
Merge pull request #9924 from Omnione/trust_stuff
[trust, lua, sql] Rughadjeen and Trion & gambit TP trigger logic
2026-05-04 13:45:54 +02:00
Xaver
d77a7348e5
Merge pull request #9929 from sruon/item_use_tx
[core] Introduce Transaction base, ItemUseTransaction.
2026-05-04 13:15:23 +02:00
Xaver
05adb9198a
Merge pull request #9918 from Aeshur/cor-af3-if
[lua] Convert COR AF3 to Interaction Framework
2026-05-04 13:14:55 +02:00
Xaver
b635830d4c
Merge pull request #9922 from Aeshur/wotg-bastok-honorfire
[lua] Honor Under Fire quest
2026-05-04 13:11:11 +02:00
Xaver
18a40a0ace
Merge pull request #9931 from JerokeXI/LamFangKeyEra
[lua] [module] Lamian Fang Key Conquest Timer
2026-05-04 13:04:06 +02:00
Xaver
623762cb0d
Merge pull request #9930 from Frankie-hz/rangedatt
[cpp] Adds missing ranged attack animations for Fomor, Quadav and Kindred
2026-05-04 13:03:35 +02:00
Xaver
492a4c6473
Merge pull request #9925 from TiberonKalkaz/blu_spell_messaging
Fix Blu physical spell miss message
2026-05-04 12:52:46 +02:00
Xaver
45be0fa689
Merge pull request #9921 from ThrisStraizo/2hourtpsave
[SQL] Mob 2hr TP Flag Fix
2026-05-04 12:51:53 +02:00
Xaver
e5683d06aa
Merge pull request #9920 from sruon/ximesh_bump
[deps] Bump ximeshes version
2026-05-04 12:51:16 +02:00
Xaver
7c6be7dd0e
Merge pull request #9917 from WinterSolstice8/fake_stuff
[core] Remove some NM only mods (no proof exists)
2026-05-04 12:50:27 +02:00
Xaver
9f125decb8
Merge pull request #9916 from ThrisStraizo/angleroro
ISNM3k Compliments to the Chef adjustment
2026-05-04 12:49:47 +02:00
Xaver
5157c21105
Merge pull request #9907 from Skold177/barrage
[lua] [sql] Add Barrage support to mobskill Ranged Attacks
2026-05-04 12:49:14 +02:00
Xaver
64928b2c1e
Merge pull request #9933 from Skold177/Snakeeye/Snakeeye-+1
[sql] Snakeeye / Snakeeye+1
2026-05-04 12:48:09 +02:00
Xaver
95af53ca0a
Merge pull request #9934 from Skold177/ToreadorsCape
[sql] Adds Critical Hit Rate to Toreadors Cape
2026-05-04 12:47:32 +02:00
WinterSolstice8
51e340bc76
Merge pull request #9932 from WinterSolstice8/magic_no_effect
[core] Use message to determine if spell had no effect
2026-05-03 23:27:10 -06:00
WinterSolstice8
e9623c4e94
Merge pull request #9926 from WinterSolstice8/add_lua_item_puppet
[core] add CLuaItemPuppet
2026-05-03 23:21:31 -06:00
Skold
8225b3cc7b [sql] Toreadors Cape Crit Rate
Adds Crit Rate to Toreadors Cape
2026-05-04 01:08:09 -04:00
sruon
7f67b5b510 Route item usage through transactions 2026-05-03 22:57:43 -06:00
Skold
6ed1f18e42 [sql] Snakeeye / Snakeeye+1
Adds support for Snakeeye / Snakeeye +1 Latent Effects
Don't get poisoned
2026-05-04 00:43:18 -04:00
Frankie-hz
e483a2ad50 [cpp] Adds missing ranged attack animations
Adds player ranged attacked for mobs for all the hume/fomor models.
Adds quadav ranged attacks
Adds Kindred ranged attacks
Adds mobmod for ranged attack range for mobs to be default 14 and moveable
2026-05-04 00:32:08 -04:00
WinterSolstice8
8e191b7e40
Merge pull request #9927 from Skold177/Chicken-Knife
[lua] Chicken Knife Speed Correction
2026-05-03 22:28:34 -06:00
WinterSolstice8
b3c4bee0b8 [core] Use message to determine if spell had no effect 2026-05-03 22:28:01 -06:00
JerokeXI
b1bfb898ee [lua] [module] Lamian Fang Key Conquest Timer 2026-05-03 22:16:38 -06:00
WinterSolstice8
e2681a937d
Merge pull request #9928 from WinterSolstice8/pepperoni
[sql] Update pepperoni price
2026-05-03 22:05:05 -06:00
WinterSolstice8
b99511e59b [core] add CLuaItemPuppet 2026-05-03 20:57:02 -06:00
WinterSolstice8
da9587ebfe [sql] Update pepperoni price
Co-Authored-By: siknoz <78240569+siknoz@users.noreply.github.com>
2026-05-03 20:48:44 -06:00
Skold
fcd81c9f7d [lua] Chicken Knife
Fixes the speed boost of Chicken Knife
2026-05-03 22:37:41 -04:00
Tiberon
fa0be330bb Fix Blu physical spell miss message 2026-05-03 18:07:02 -07:00
MrSent
c92e8b70b8 style check for royal_savior.lua 2026-05-04 01:55:39 +01:00
MrSent
05bcd7c7d7 gambits_container RANDOM TP amount trigger 2026-05-04 01:36:59 +01:00
MrSent
ef51755e6d rughadjeen and trion gambits and skills 2026-05-04 01:35:42 +01:00
ThrisStraizo
cd81c85a4a Mob 2hr TP Flag Fix
This PR fixes the flag on all mob 2hours to not consume TP upon use, because they don't.
2026-05-03 10:14:27 -07:00
sruon
f71b7c26a4 Bump ximeshes version 2026-05-03 10:13:13 -06:00
WinterSolstice8
081768a45e [core] Remove some NM only mods (no proof exists) 2026-05-03 10:01:17 -06:00
Zach Toogood
f6f5ea79ae
Merge pull request #9919 from LandSandBoat/navmesh_building
Engine: Add runtime navmesh generation
2026-05-03 16:30:41 +01:00
Zach Toogood
6d6250afb8 Engine: Add runtime navmesh generation
Co-authored-by: InoUno <inoiown@gmail.com>
Co-authored-by: sruon <sruon@users.noreply.github.com>
2026-05-03 13:53:24 +01:00
Aeshur
102696895b [lua] Convert COR AF3 to Interaction Framework 2026-05-03 01:15:06 -04:00
Aeshur
d9336ca974 [lua] Honor Under Fire quest 2026-05-03 00:15:21 -04:00
Skold
ce918a1ac6 [lua] [sql] Barrage support to ranged attacks
Adds Barrage support to mob ranged attacks
2026-05-02 22:36:35 -04:00
Zach Toogood
d95f4b2cf6
Merge pull request #9915 from LandSandBoat/upserts
Core: Turn REPLACE INTO into upserts
2026-05-02 18:59:57 +01:00
ThrisStraizo
f16d96f3da ISNM3k Compliments to the Chef adjustment
This PR does a balance pass on Compliments to the Chef's mob Angler Orobon.

This adjusts immunities/HP/ST and ability delay and animation delay.
2026-05-02 10:56:00 -07:00
Zach Toogood
7a67757295 Core: Turn REPLACE INTO into upserts 2026-05-02 17:57:34 +01:00
Zach Toogood
a7f0e29d37 Core: make chocoboRaisingInfo upserts 2026-05-02 17:57:27 +01:00
WinterSolstice8
09df19e5ba
Merge pull request #9914 from WinterSolstice8/skillflag
[sql] Fix Fluorescence target flag to self
2026-05-02 10:01:11 -06:00
WinterSolstice8
6f370bd1ce [sql] Fix Fluorescence target flag to self 2026-05-02 09:38:12 -06:00
Xaver
7eb3ec9793
Merge pull request #9861 from Aeshur/wotg-bastok-quelling-storm
[lua] Quelling the Storm quest
2026-05-02 12:41:22 +02:00
Xaver
fae188f4e5
Merge pull request #9872 from Aeshur/cor-af2-if
[lua] Convert COR AF2 to Interaction Framework
2026-05-02 12:38:56 +02:00
Xaver
1b89700d56
Merge pull request #9894 from Omnione/trust_stuff
[trust, lua, sql] Mnejing: gambits, scripts, sql and mob_skill.lua additions
2026-05-02 12:37:05 +02:00
Xaver
ea9a8b01ac
Merge pull request #9910 from ThrisStraizo/tunnokfix
[Mob] Adjust Tyrannic Tunnok to a 7 hit
2026-05-02 12:30:02 +02:00
Xaver
e4aa4ffbe2
Merge pull request #9911 from ThrisStraizo/forseer
[Mob] Adjust Foreseer's delay back to 240
2026-05-02 12:29:37 +02:00
Xaver
8c173696a6
Merge pull request #9912 from SlashingTangents/One-way
[lua] Add default action in Grand Palace of Hu'Xzoi
2026-05-02 12:29:17 +02:00
Xaver
0d6049b99e
Merge pull request #9913 from Frankie-hz/varlls
Adds getLocalVars table for LLS
2026-05-02 12:28:47 +02:00
Frankie-hz
3de0444bb6 Adds getLocalVars table for LLS 2026-05-01 22:11:42 -04:00
slashtangent
aa792dc268 Adds event 171 default action to qm_cancel_escort in Grand Palace 2026-05-01 16:44:48 -05:00
ThrisStraizo
d66a0068ce Adjust Foreseer's delay back to 240
This NM pre-hasted himself in my original cap and I simply didn't notice.

My bad.
2026-05-01 09:44:21 -07:00
ThrisStraizo
dfdc2eb3b9 Adjust Tyrannic Tunnok to a 7 hit
This PR adjusts Tyrannic Tunnok's STP to be a 7 hit as reflected in my caps.

This will match his cousin, Amikiri.
2026-05-01 09:39:17 -07:00
MrSent
90bc6d3543 Conflict fix for automaton skills in mob_skill.lua 2026-05-01 14:25:15 +01:00
MrSent
9848ba067a Mnejing, gambits, scripts, sql and mob_skill.lua additions 2026-05-01 14:20:30 +01:00
Xaver
6453e046a8
Merge pull request #9906 from WinterSolstice8/tomtittat_2
[lua] Enable second Tom Tit Tat PH, disallow phList with multiple NMs from having two up at once
2026-05-01 13:56:43 +02:00
Xaver
e5b5a42d07
Merge pull request #9905 from Skold177/Fix-bad-arguments
[lua] Fixes bad arguments in 3 mobskills, converts Jailer of Hope AE
2026-05-01 13:55:29 +02:00
WinterSolstice8
70c7c43530 [lua] Check if any NM in the PH list is spawned or going to spawn
This will prevent double+ spawns of NMs like Goliath, Leaping Lizzy, Tom Tit Tat, etc
2026-04-30 21:08:41 -06:00
WinterSolstice8
e90b78a9f0 [lua] Enable spawning of both Tom Tit Tat copies 2026-04-30 21:08:41 -06:00
Skold
3c725763a6 [lua] Fixes 3 mobskills
Removes invalid arguments
Updates Jailer of Hope add effect
2026-04-30 22:02:57 -04:00
Xaver
db826d794c
Merge pull request #9903 from WinterSolstice8/hyakume
[lua] [sql] Implement Hyakume
2026-05-01 03:17:32 +02:00
WinterSolstice8
29b912916c
Merge pull request #9904 from Xaver-DaRed/player-check
[Fix] Add player and trial table check to magian onMobDeath function
2026-04-30 19:16:39 -06:00
Xaver
99fbcdee51
Merge pull request #9902 from Lance-XI/Four-of-Batons-Treasure
[sql] Correct Four of Batons dropid
2026-05-01 03:10:07 +02:00
WinterSolstice8
34168826a5 [lua] [sql] Implement Hyakume 2026-04-30 18:53:27 -06:00
Xaver-DaRed
68207f8f75 Add player and trial table check to magian onMobDeath function 2026-05-01 02:39:58 +02:00
Lance-XI
dec3f9bf70 [SQL] Correct Four of Batons dropid 2026-04-30 20:26:47 -04:00
Xaver
2e7756e2dc
Merge pull request #9888 from ThrisStraizo/puplb
[Mob] [Battlefield] Puppetmaster LB Fight
2026-05-01 02:12:10 +02:00
Xaver
e80c85d984
Merge pull request #9881 from UmeboshiXI/Core_EXP_Adjustments
[core] Adjust EXP Rate settings & conquest mechanics
2026-05-01 00:44:55 +02:00
Xaver
79bc527939
Merge pull request #9878 from Frankie-hz/mobnames
[chore][sql, lua, cpp] Starts mob ecosystem cleanup
2026-05-01 00:43:38 +02:00
Xaver
99b4bb9070
Merge pull request #9896 from WinterSolstice8/remove_stale_ref
[core] equip sync: remove stale references from items being deleted
2026-05-01 00:22:35 +02:00
Xaver
ac20005566
Merge pull request #9895 from WinterSolstice8/equip_look_update_only_on_equip
[core] Only queue equip update if item was equipped
2026-05-01 00:19:52 +02:00
WinterSolstice8
82e911e67f [core] equip sync: remove stale references from items being deleted 2026-04-30 11:32:41 -06:00
WinterSolstice8
26b589630e [core] Only queue equip update if item was equipped 2026-04-30 08:48:48 -06:00
Xaver
25fb7c7761
Merge pull request #9886 from Skold177/idol-thoughts
[lua] [sql] BCNM 50 Idol Thoughts
2026-04-29 13:59:04 +02:00
Zach Toogood
e0a7a62cd4
Merge pull request #9892 from LandSandBoat/zach2good/pr/chocobo_breeding_plumbing
Raising: Add breeding.lua (not hooked up yet)
2026-04-29 12:52:53 +01:00
Xaver
009a96256a
Merge pull request #9885 from WinterSolstice8/peg_powler
[lua] Give Peg Powler a PH, upgrade spawn rate
2026-04-29 13:52:31 +02:00
Xaver
77e44c32a9
Merge pull request #9884 from WinterSolstice8/enforce_bad_drop_pools
[CI] Enforce bad drop pools
2026-04-29 13:50:12 +02:00
Xaver
9b1e5748e7
Merge pull request #9876 from Skold177/Staff-Mobskills
[lua] [sql] Staff Mobskills
2026-04-29 13:48:47 +02:00
Xaver
85f6918123
Merge pull request #9887 from WinterSolstice8/h2h_lockstyle
[core] Skip sub slot if main is h2h with /lockstyleset #
2026-04-29 13:47:10 +02:00
Xaver
addd1a71be
Merge pull request #9889 from CriticalXI/riding_game_fix
[lua] Chocobo riding game reward fix
2026-04-29 13:46:23 +02:00
Xaver
6fb5ffb4ba
Merge pull request #9890 from ThrisStraizo/mnknmdelays
[Mob] Adjust several MNK NMs to observed delays
2026-04-29 13:45:20 +02:00
Xaver
85f587a1b2
Merge pull request #9891 from sruon/item_equip_cache
[core] Introduce ItemState; encapsulate PC equipment
2026-04-29 13:44:27 +02:00
Zach Toogood
6db292dde7 Raising: Add breeding.lua (not hooked up yet) 2026-04-29 11:21:53 +01:00
sruon
513c916fe8 Encapsulate PC equipment and set ItemState 2026-04-29 02:04:12 -06:00
sruon
9b6fc82a8b ItemState and badge-gated mark() role transitions 2026-04-29 00:01:57 -06:00
ThrisStraizo
6186f7998f Adjust several MNK NMs to observed delays
This PR adjusts several MNK NMs to their observed delays in previous captures due to LSB's martial arts adjustment.
2026-04-28 19:26:51 -07:00
Critical
91ecfa2721 [lua] Chocobo riding game reward fix 2026-04-28 19:17:38 -06:00
ThrisStraizo
ab2cec16fb Puppetmaster LB Fight
This PR Implements the Puppetmaster LB fight mechanics to the best of my understanding.
2026-04-28 18:17:04 -07:00
WinterSolstice8
476f01dd8c [core] Skip sub slot if main is h2h with /lockstyleset # 2026-04-28 18:52:23 -06:00
Skold177
219907d7c0 [lua] [sql] BCNM 50 Idol Thoughts
Implements the BCNM 50 Idol Thoughts
2026-04-28 20:43:32 -04:00
WinterSolstice8
b6cdfbd6e1
Merge pull request #9870 from sruon/item_rewrite
[core] Refactor item pointer ownership
2026-04-28 16:41:43 -06:00
WinterSolstice8
f3a4be9921 [lua] Give Peg Powler a PH, upgrade spawn rate 2026-04-28 16:36:18 -06:00
WinterSolstice8
b217bbe79d [sql] Enable some drop pools, disable drop pool for another 2026-04-28 15:15:55 -06:00
WinterSolstice8
2c910c95ab [core] print an error if a mob droplist is empty 2026-04-28 15:15:34 -06:00
Umeboshi
9098bafbd2 [core] Adjust EXP Rate settings & mechanics 2026-04-28 12:49:30 -07:00
Skold
50b9e43b63 [lua] [sql] Staff Mobskills
Implements Staff Mobskills
2026-04-28 13:20:11 -04:00
Frankie-hz
44cfeef944 [chore] Starts mob ecosystem cleanup 2026-04-28 12:29:37 -04:00
Xaver
8d096855c5
Merge pull request #9877 from Skold177/Archery-Mobskills
[lua] [sql] Archery Mobskills
2026-04-28 17:30:09 +02:00
Xaver
1f68696f6f
Merge pull request #9880 from Skold177/Ouryu-bugfix
[lua] Ouryu Bugfix
2026-04-28 17:05:46 +02:00
Xaver
e68450afdd
Merge pull request #9879 from SlashingTangents/Competition
[lua] Update Dialogue to reference correct brother in The Competition
2026-04-28 17:01:53 +02:00
Xaver
7f9739e07b
Merge pull request #9875 from Skold177/Club-Mobskills
[lua] [sql] Club Mobskills
2026-04-28 16:55:21 +02:00
Xaver
aa619e6230
Merge pull request #9874 from CriticalXI/era_door_keys
[lua][module] Adds blocks for certain door related KIs
2026-04-28 16:52:44 +02:00
Skold177
a665389800 [lua] Ouryu Bugfix
Restores NO_TURN on spawn in case of death during air phase.
2026-04-28 10:39:19 -04:00
slashtangent
eaa872628f Update Dialogue to reference correct brother in The Competition 2026-04-28 09:34:43 -05:00
Zach Toogood
4f830d77dd
Merge pull request #9873 from LandSandBoat/chocobo_mood
Raising: Map out chocobo visible mood opcode
2026-04-28 09:41:06 +01:00
WinterSolstice8
b86ea17a5a
Merge pull request #9859 from UmeboshiXI/Fix_TPReturn_Precision
[core] Unify more Core/Lua TP Gain Functions
2026-04-27 21:57:05 -06:00
Skold
85e587657b [lua] [sql] Archery Mobskills
Implements Archery Mobskills
2026-04-27 10:18:52 -04:00
Aeshur
51ed28c235 [lua] Quelling the Storm quest 2026-04-27 10:07:27 -04:00
sruon
24c73e75b9 Items, containers tests 2026-04-27 00:19:36 -06:00
Aeshur
9f0cec30fe [lua] Convert COR AF2 to Interaction Framework 2026-04-27 01:21:38 -04:00
WinterSolstice8
fa28457117
Merge pull request #9871 from Xaver-DaRed/synth
[Synth] Limit HQ2 and HQ3 results depending on HQ tier
2026-04-26 21:37:44 -06:00
Skold
513e98eca4 [lua] [sql] Club Mobskills
Implements Club Mobskills
2026-04-26 22:36:07 -04:00
Zach Toogood
c0b97f514d Raising: Map out ability learning flow 2026-04-27 00:03:11 +01:00
Critical
c6151f097c [lua][module] Adds blocks for certain door related KIs 2026-04-26 16:56:11 -06:00
Zach Toogood
1b38530215 Raising: Map out chocobo visible mood opcode 2026-04-26 22:29:45 +01:00
Zach Toogood
faf562cf7e Raising: Map out the rest of xi.chocoboRaising.cutscenes 2026-04-26 22:27:05 +01:00
sruon
14215930ed Route all item creation/lookups through xi::items 2026-04-26 12:14:47 -06:00
Xaver-DaRed
5809128782 Limit HQ2 and HQ3 results depending on HQ tier 2026-04-26 16:44:48 +02:00
Xaver
c39004cef4
Merge pull request #9797 from UmeboshiXI/COP_Bomb_Skilllists
[lua][sql] COP Bomb Skill Lists
2026-04-26 12:47:31 +02:00
Xaver
ae9221addb
Merge pull request #9869 from Skold177/Great-Katana-Mobskills
[lua] [sql] Great Katana Mobskills
2026-04-26 12:27:55 +02:00
Xaver
b4fad91d16
Merge pull request #9867 from Skold177/Katana-Mobskills
[lua] [sql] Katana mobskills
2026-04-26 11:56:53 +02:00
Skold
44986d4730 Great Katana Mobskills
Implements Great Katana Mobskills
2026-04-26 11:56:08 +02:00
Xaver
ff88ccb11b
Merge pull request #9868 from Frankie-hz/grouptypos
[sql] Fixes several droplist typos in mob groups
2026-04-26 11:56:07 +02:00
Umeboshi
0c5660bd26 [lua][sql] COP Bomb/Snoll Skill Lists + Audit 2026-04-25 17:56:52 -07:00
Frankie-hz
4e945602bf [sql] Fixes several droplist typos in mob groups 2026-04-25 20:32:54 -04:00
Skold
0ee3ef8c89 Implement katana mobskills
Implement Katana mobskills
2026-04-25 19:47:48 -04:00
Xaver
57bef41d5b
Merge pull request #9866 from Skold177/Polearm-Mobskills
[lua] [sql] Implement polearm mobskills
2026-04-26 01:44:55 +02:00
Skold
64efc5afb0 Implement polearm mobskills
Implements Polearm mobskills
2026-04-25 18:17:02 -04:00
Xaver
1012f26c26
Merge pull request #9862 from Skold177/Axe-Mobskills
[lua] [sql] Axe Mobskills
2026-04-25 20:12:00 +02:00
Xaver
aeccffca04
Merge pull request #9860 from Skold177/Quest-Fix
[lua] Toramorai Turmoil & Waking Dreams Reward Bugfix
2026-04-25 20:10:59 +02:00
Xaver
bda5cdec2d
Merge pull request #9864 from Skold177/scythe-mobskills
[lua] [sql] Scythe Mobskills
2026-04-25 20:09:39 +02:00
Xaver
ca4acbb240
Merge pull request #9865 from Skold177/Fafnir-Audit
[lua] [sql] Fafnir Audit
2026-04-25 20:08:46 +02:00
Skold
f02032d278 [lua] Fafnir Audit
Adds some missing attack, weapon damage and regain to Fafnir.
2026-04-25 13:24:48 -04:00
Skold
18f3937799 [lua] [sql] Scythe Mobskills 2026-04-25 12:33:00 -04:00
Skold
6f266955fe [lua] [sql] Axe Mobskills
Adds Axe Mobskills
2026-04-25 12:00:59 -04:00
Xaver
ef279fe546
Merge pull request #9854 from JerokeXI/HpTeleRemove
[Module][Quest] Home Point Era Menu
2026-04-25 15:05:24 +02:00
Xaver
99a7693b30
Merge pull request #9850 from TiberonKalkaz/brygid_cancellation
Prevent client lockup during Brygid The Stylist Returns
2026-04-25 15:04:01 +02:00
Xaver
5f98580efb
Merge pull request #9863 from Skold177/greataxe-mobskills
[lua] [sql] Greataxe mobskills
2026-04-25 15:02:12 +02:00
Skold
9df0249ef1 [lua] [sql] Greataxe mobskills
Implements Greataxe mobskills
2026-04-25 00:02:27 -04:00
JerokeXI
9a7b71dbf1 [Module][Quest] Home Point Era Menu 2026-04-24 18:42:25 -06:00
Umeboshi
9a2000d7c6 [core] Unify more Core/Lua TP Functions 2026-04-24 17:28:13 -07:00
Skold
8bd2e5ce35 [lua] Repeatable Quest Fixes
Fixes duplicate gil reward

Co-Authored-By: slashtangent <78345197+slashtangent@users.noreply.github.com>
2026-04-24 17:41:52 +02:00
Xaver
28fcf020f0
Merge pull request #9841 from Skold177/hand2hand
[lua] [sql] H2H Mobskills
2026-04-23 23:20:45 +02:00
Xaver
4472d02b8a
Merge pull request #9857 from Xaver-DaRed/bind
[magic] Fix Bind allowed resist state value and duration calculation
2026-04-23 23:04:06 +02:00
Xaver
99092bf9dd
Merge pull request #9856 from Skold177/Gale-Axe
[lua] Add Choke Effect to Gale Axe
2026-04-23 23:03:44 +02:00
Skold177
c60b2c6cb2 [lua] Add Choke Effect to Gale Axe
Adds missing Choke Effect to Gale Axe
2026-04-23 16:39:44 -04:00
Xaver
e1dc1d236e
Merge pull request #9855 from Xaver-DaRed/fix
[Fix] Impetus `setMod()` usage
2026-04-23 22:15:41 +02:00
Xaver-DaRed
b2e1d6152c Fixes Bind allowed resist state value and duration calculation
Co-authored-by: WinterSolstice8 <WinterSolstice8@users.noreply.github.com>
2026-04-23 22:10:12 +02:00
Skold
61711a6736 [lua] [sql] H2H Mobskills
Implements H2H Mobskills
2026-04-23 11:45:25 -04:00
Xaver-DaRed
a51859a5f7 Fix impetus setMod() usage 2026-04-23 16:50:40 +02:00
Xaver
58a5df5f77
Merge pull request #9853 from Skold177/greatsword
[lua] [sql] Great Sword Mobskills
2026-04-23 13:38:18 +02:00
Xaver
73d3aaf1ff
Merge pull request #9835 from Xaver-DaRed/mobskill-status
[Combat] Improve mobskill status effect handling and application
2026-04-23 13:37:02 +02:00
Skold
8512dd8d0e [lua] [sql] Great Sword Mobskills
Implements Great Sword mobskills
2026-04-23 00:29:05 -04:00
Xaver
0e2c1fcf65
Merge pull request #9852 from WinterSolstice8/soa_tp_gain
[lua] [module] Implement old TP gain as module
2026-04-22 16:20:30 +02:00
WinterSolstice8
6ecb3c48d0 [lua] [module] Implement old TP gain as module 2026-04-22 07:55:37 -06:00
Zach Toogood
df7a8f8383
Merge pull request #9851 from LandSandBoat/zach2good/raising_cleanup
Raising: Fix post-retirement menu
2026-04-22 13:00:55 +01:00
Xaver
a68e895fd1
Merge pull request #9846 from Aeshur/wotg-bastok-fireinhole
[lua] Fire in the Hole quest
2026-04-22 13:53:13 +02:00
Xaver
6bd9ea5be2
Merge pull request #9849 from CriticalXI/helm_era_audit
[lua, sql][module] Remove OOE HELM items
2026-04-22 13:48:33 +02:00
Xaver
338c52e5d3
Merge pull request #9845 from Skold177/evisceration
[lua] Evisceration bugfix
2026-04-22 13:45:51 +02:00
Xaver
fe9c021aac
Merge pull request #9847 from Skold177/Dagger-Mobskills
[lua] [sql] Dagger mobskills
2026-04-22 13:45:26 +02:00
Xaver
2c0323d3e9
Merge pull request #9848 from Skold177/Bahamut-message
[lua] Bahamut BV2 Message
2026-04-22 13:44:35 +02:00
Zach Toogood
802a3ef02e Raising: Tidy walks 2026-04-22 12:32:57 +01:00
Zach Toogood
40d50c4ecc Raising: Fix forced retirement 2026-04-22 11:58:54 +01:00
Zach Toogood
03a3bccfac Raising: General VM cleanup 2026-04-22 10:42:42 +01:00
Tiberon
bb8c05a42b Prevent client lockup during Brygid The Stylist Returns 2026-04-21 23:35:09 -07:00
Critical
e5670ec0d8 [lua, sql][module] Remove OOE HELM items 2026-04-21 22:08:57 -06:00
Skold
b050bff13a [lua] Bahamut BV2 Message
Adds an additional message to Bahamut V2
2026-04-21 23:58:35 -04:00
Skold
e69a5a7334 [lua] [sql] Dagger mobskills
Adds dagger mobskills
2026-04-21 23:43:53 -04:00
Aeshur
3fd22d2ce3 [lua] Fire in the Hole quest 2026-04-21 21:51:53 -04:00
Zach Toogood
181ce3b165
Merge pull request #9843 from LandSandBoat/zach2good/chocobo_raising_whistle_1
Raising: First pass of Chocobo Whistle questing, registration, and usage
2026-04-21 23:40:07 +01:00
Skold
c5d84ff272 [lua] Evisceration bugfix 2026-04-21 18:25:24 -04:00
Zach Toogood
6f6d2d0850 Raising: Confirm force-naming at ADULT_3 2026-04-21 23:16:15 +01:00
Zach Toogood
21de603203 Raising: Even more White Handkerchief quest latching 2026-04-21 22:56:40 +01:00
Zach Toogood
8c40c8ba35 Raising: Clean up White Handkerchief quest latching 2026-04-21 22:51:15 +01:00
Zach Toogood
bc1017fd0a Raising: Fix GM stat printing 2026-04-21 22:24:41 +01:00
Zach Toogood
7eac0756e7 Raising: Hide more information from PRESENT_CHOCOBO_APPEARANCE 2026-04-21 22:15:07 +01:00
Zach Toogood
5d91a64974 Raising: Clean up stat packing and condition reporting 2026-04-21 22:01:25 +01:00
Zach Toogood
e129416c26 Raising: Don't leak appearance data before it's time 2026-04-21 21:20:34 +01:00
Zach Toogood
c3a0118ac0 Raising: Clean up REGISTER_CHOCOBO_WHISTLE 2026-04-21 21:00:59 +01:00
Zach Toogood
f80252b243 Raising: Clean up INTRO_MENU_PT_3 2026-04-21 20:44:57 +01:00
Zach Toogood
d9e47a0e23 Raising: First pass of Chocobo Whistle questing, registration, and usage 2026-04-21 20:29:15 +01:00
Zach Toogood
be308080e8
Merge pull request #9842 from LandSandBoat/zach2good/chocobo_raising_updates_04
Raising: Care Plans
2026-04-21 20:13:47 +01:00
Zach Toogood
ddbae9eb03 Raising: Handle White Handkerchief quest 2026-04-21 18:01:38 +01:00
Zach Toogood
b4af979fb3 Raising: Trying to correct care plan overrun 2026-04-21 17:09:21 +01:00
Zach Toogood
9b4c921ab9 Raising: Map out care plan menu 2026-04-21 15:59:07 +01:00
Zach Toogood
828c198cfd Raising: Don't accumulate energy usage through full report 2026-04-21 15:36:14 +01:00
Zach Toogood
8c58e5d6e4 Raising: Handle initial care plan shifting and reporting 2026-04-21 14:30:28 +01:00
Zach Toogood
470ed46487 Raising: Remove synthetic events, general cleanup 2026-04-21 13:33:58 +01:00
Xaver
504c1f3763
Merge pull request #9823 from sruon/fix/aoe_take_listeners
[core, lua] Execute *_TAKE listeners on all targets. Lower cleave stagger chance in Dynamis
2026-04-20 14:11:08 +02:00
Xaver
4187f699cb
Merge pull request #9838 from Skold177/Sword-mobskills
[lua] [sql] Sword mobskills
2026-04-20 14:10:41 +02:00
Xaver
4121a9a455
Merge pull request #9840 from Skold177/Premium_Mogti
[lua] Premium Mogti WS Message
2026-04-20 14:09:07 +02:00
Skold
d8cf19cf0e [lua] Premium Mogti WS Message
Adds the Premium Mogti WS Message
2026-04-19 23:58:29 -04:00
Skold
89efa17575 [lua] [sql] Sword mobskills
Implements Sword mobskills
2026-04-19 20:43:02 -04:00
Xaver-DaRed
edef4911f6 Improve mobskill status effect handling and application 2026-04-19 23:45:36 +02:00
Xaver
93c1a0dee8
Merge pull request #9833 from UmeboshiXI/calculateRangedStatFactor_WeaponRank
[lua] Have core use lua functions for fSTR
2026-04-19 22:12:07 +02:00
Umeboshi
cfe29a77c2 [lua] Have core use lua functions for fSTR 2026-04-19 09:22:40 -07:00
Xaver
f98918874d
Merge pull request #9812 from KiplingFFXI/Riverne-#B01-NM-Audits-
[lua, sql] Riverne #B01 NM Audits
2026-04-19 14:03:43 +02:00
Xaver
711d6aa280
Merge pull request #9813 from Skold177/The-Wyrmking-Descends
[lua] [sql] The Wyrmking Descends
2026-04-19 14:02:58 +02:00
Xaver
82d4888253
Merge pull request #9825 from Skold177/Marksmanship_Mobskills
[lua] [sql] Markmanship Mobskills
2026-04-19 13:57:25 +02:00
MrSent
3ee570ea73
[trust, sql, lua, core] Gessho adjustments and Issekigan Job Point crash fix for trust (#9826)
* [lua,sql]Gessho, lua cleanup, gambits, mods and adjustments

* [core]Crash Fix: HandleIssekiganEnmityBonus return 0 for non pc

* Missed xi.mobSkill for SHIBARAKU_TRUST in gessho.lua

* Adjust Gessho's parry rank to A
2026-04-19 13:56:26 +02:00
Xaver
464a4f3aac
Merge pull request #9831 from sruon/chuchuroon
[lua] Chuchuroon Nashmau patrol
2026-04-19 13:54:46 +02:00
Xaver
af565a8bc0
Merge pull request #9828 from CriticalXI/gravity_era
[lua][module] Set gravity to apply evasion penalty
2026-04-19 13:54:08 +02:00
Xaver
2184fa3697
Merge pull request #9830 from sruon/aoe_vertical_limit
[core] Limit targetfinding vertical to 8/8.5y
2026-04-19 13:53:30 +02:00
sruon
e9f5f08d66 Cap targetfinding vertical search to 8/8.5y 2026-04-19 00:45:42 -06:00
sruon
7d8c3ccc61 Chuchuroon patrol nodes 2026-04-19 00:42:05 -06:00
Critical
8d3e13f56f [lua][module] Set gravity to apply evasion penalty 2026-04-18 22:59:10 -06:00
Skold
084693c510 [lua] [sql] Markmanship Mobskills
Adds all of the marksmanship mobskills.
2026-04-18 23:59:16 -04:00
Skold
ae66f530fc [lua] [sql] The Wyrmking Descends
Implements The Wyrmking Descends
2026-04-18 19:23:44 -04:00
Xaver
6c81838fd3
Merge pull request #9824 from UmeboshiXI/fix_hybrid_mobskill_function
[lua] Fix hybridDamage mobskill function
2026-04-18 23:52:14 +02:00
Umeboshi
6b60896e0c [lua] Fix hybridDamage mobskill function 2026-04-18 14:19:01 -07:00
Kipling
f32ef90c70 Riverne B NM Audits
Riverne B01 Audits pt2
2026-04-18 13:32:44 -07:00
Xaver
ab212ee769
Merge pull request #9822 from UmeboshiXI/JobSkillRankToBaseEvaRank_Fix
[core] Set EVA Rank fallback for mobs with no subjob.
2026-04-18 21:44:48 +02:00
sruon
6298ad87cf Lower chance for Dynamis staggers if not main target 2026-04-18 13:03:07 -06:00
Umeboshi
123a4de7f0 [core] Set EVA Rank fallback for jobs with no subjob. 2026-04-18 11:08:48 -07:00
Xaver
86198db59d
Merge pull request #9821 from UmeboshiXI/Ancient_Bomb_Levels
[sql] Correct Ancient Bomb Levels
2026-04-18 17:59:25 +02:00
Xaver
0d34ce65b5
Merge pull request #9818 from sruon/resonance_subtarget
[core] Mobskills only trigger resonance on main target
2026-04-18 15:45:11 +02:00
Xaver
f8da10c385
Merge pull request #9817 from sruon/additem_cmd
[lua] Uplift !additem and !giveitem to new exdata format
2026-04-18 15:44:03 +02:00
Xaver
2f0ea30f77
Merge pull request #9814 from Frankie-hz/fixnmhp
[cpp] Fix NM hp in mob groups not working
2026-04-18 15:43:01 +02:00
Umeboshi
5d4a6ffd93 [sql] Correct Ancient Bomb Levels 2026-04-18 06:23:27 -07:00
Zach Toogood
4b913a0287
Merge pull request #9819 from LandSandBoat/chocobo_raising_cleanup
Chocobo Raising: Cleanup and minor fixes
2026-04-18 13:32:45 +01:00
WinterSolstice8
22a80e6a73
Merge pull request #9804 from Xaver-DaRed/impetus
[Fix] Corrects Tantra Cyclas +1 functionality and cleanup Impetus
2026-04-18 06:20:03 -06:00
Zach Toogood
933bf38a25
Merge pull request #9816 from sruon/pkt_size_round
[core] Round packet size to nearest 4 for validation
2026-04-18 12:34:47 +01:00
Zach Toogood
87e92a29f5 Raising: Split out logic into different files 2026-04-18 11:30:47 +01:00
Zach Toogood
995fed46e6 Raising: Split out Event Condenser, fix condenser logic 2026-04-18 10:43:11 +01:00
Zach Toogood
972cd40278 Raising: Remove invalid LIMIT from setChocoboRaisingInfo query 2026-04-18 09:56:43 +01:00
sruon
51bb1d040e Fire _TAKE listeners on all AoE targets 2026-04-18 02:01:14 -06:00
sruon
a8fc29e87a Mobskills only trigger resonance on main target 2026-04-18 00:47:49 -06:00
sruon
8c6829fd90 Uplift !additem to new exdata format 2026-04-18 00:35:27 -06:00
sruon
5d27c7291b Round packet size to nearest 4 2026-04-17 23:42:10 -06:00
Frankie-hz
880a1b23d6 [cpp] Fix NM hp in mob groups not working 2026-04-17 21:01:38 -04:00
Xaver
34c2647140
Merge pull request #9779 from CriticalXI/toau_mission_audit
[lua, sql] Rework ToAU 15 Black Coffin battlefield
2026-04-17 16:30:22 +02:00
Xaver
6301948b21
Merge pull request #9811 from UmeboshiXI/shadow_absorb_cleanup
[lua] utils.shadowAbsorb cleanup + mobskill numHits
2026-04-17 16:16:46 +02:00
Critical
bf2857a1f1 [lua, sql] Rework ToAU 15 Black Coffin battlefield 2026-04-17 15:58:41 +02:00
Umeboshi
1fd0331521 [lua] utils.shadowAbsorb cleanup 2026-04-17 06:38:57 -07:00
Xaver
ea84f33b96
Merge pull request #9771 from JerokeXI/ChocoboEraWait
[Module] Quest "Chocobo's Wounds" - Era-Wait-Time
2026-04-17 14:43:11 +02:00
Xaver
c5dd871bb1
Merge pull request #9810 from Frankie-hz/crystaldrops
[cpp] Changes crystal drop rate for TOAU and COP
2026-04-17 14:39:36 +02:00
Frankie-hz
70bc4de761 [cpp] Changes crystal drop rate per party member and rates 2026-04-17 01:53:32 -04:00
WinterSolstice8
0971a5d578
Merge pull request #9738 from UmeboshiXI/Mobskills_Physical
[core][lua] Physical Mobskill Refactor
2026-04-16 22:26:20 -06:00
JerokeXI
4bac3d196f [Module] Quest "Chocobo's Wounds" - Era-Wait-Time 2026-04-16 20:46:28 -06:00
Xaver
8b8534bf85
Merge pull request #9809 from Frankie-hz/dynalua
[cpp, lua] Moves dynamis cpp function to lua
2026-04-17 03:50:50 +02:00
Xaver
dd1c8f1473
Merge pull request #9808 from wccbuck/fix-mobability-spam
[lua] Fix mobskill spam: Angler Orobon, Tinnin
2026-04-17 03:50:21 +02:00
Frankie-hz
ebd76f3ff3 [cpp, lua] Moves dynamis cpp function to lua 2026-04-16 20:58:06 -04:00
Will Buck
5c2811106e Fix mobskill spam: Angler Orobon, Tinnin 2026-04-16 19:36:36 -05:00
Xaver
c8e163bf96
Merge pull request #9780 from ThrisStraizo/corlb
[battlefield] [mob] The Bonds of Fate (Qultada)
2026-04-17 00:25:57 +02:00
Xaver
a3f2e28d2c
Merge pull request #9796 from sruon/packet-guard-deprecation
[core] Deprecate PacketGuard, refactor C2S
2026-04-16 23:04:33 +02:00
ThrisStraizo
25eb02485b The Bonds of Fate (Qultada)
This PR actually creates the COR LB fight with Qultada to use correct abilities, weaponskill, HP, DMG values etc.
2026-04-16 23:00:32 +02:00
Xaver
4a15c7dab8
Merge pull request #9789 from Aeshur/wotg-bastok-if
[lua] Convert Better Part of Valor + Fires of Discontent  to IF
2026-04-16 18:14:57 +02:00
Xaver
c56fe90848
Merge pull request #9807 from Xaver-DaRed/cw
[Fix] Chocobo's Wounds not returning events
2026-04-16 18:12:11 +02:00
Xaver
5b46ca113c
Merge pull request #9805 from ThrisStraizo/raubahntesting
[Mob] BLU LB Raubahn out of combat self buff adjustment
2026-04-16 14:24:15 +02:00
Xaver-DaRed
0d5d533026 Fix Chocobo's Wounds
By not being cute and fancy
2026-04-16 05:07:26 +02:00
sruon
8267b4f324 Fold PacketGuard into the general C2S system
- Size checks are enforced for all packets in the handlers and automatically determined from structures
- Adds missing padding to a handful of packets
- Introduce a flag-driven BlockedState mechanism for packet validation
- Rate limit values loaded from settings and handled by PacketSystem
- PacketHandlers global array is no longer accessible
2026-04-15 20:51:02 -06:00
ThrisStraizo
414034479b BLU LB Raubahn out of combat self buff adjustment
This PR enables the roam flag for Raubahn so he correctly self buffs before being engaged.
2026-04-15 18:31:30 -07:00
Xaver
67690e95df
Merge pull request #9806 from Skold177/Remove-Scripted-RoamFlag
[core] [C++] Remove scripted roamflag from battlefield enemies
2026-04-16 02:52:22 +02:00
Xaver
ff4e4a4a42
Merge pull request #9795 from Frankie-hz/mobutilsclean
[cpp] Cleanup my old HP formula
2026-04-16 02:18:32 +02:00
Skold
77a45077e4 Remove Battlefield Scripted Roamflag
Removes the scripted roamflag from battlefield enemies.
2026-04-15 19:24:47 -04:00
Frankie-hz
18bda03219 [cpp] Cleanup my old HP formula
Cleanup the hp formula and make it readable
Remove unused code
2026-04-15 18:31:04 -04:00
Xaver
337ffd31e9
Merge pull request #9800 from Xaver-DaRed/spelldefault
[magic] Change default spell list entry to a buff
2026-04-15 21:24:25 +02:00
Xaver-DaRed
bbcc6daecc Corrects Tantra Cyclas +1 functionality and cleanup Impetus 2026-04-15 21:13:29 +02:00
Xaver
b8de171329
Merge pull request #9798 from ThrisStraizo/roambros
[Mob] SMN AF2 Class Reunion Dryad roaming
2026-04-15 19:54:49 +02:00
Xaver
3ebfaa4636
Merge pull request #9799 from WinterSolstice8/iep_check_fix
[core] Adjust IEP code to /check IEP at 56 exactly
2026-04-15 19:47:31 +02:00
Xaver-DaRed
9c6a96c167 Change default spell list entry to a buff
To allow roam spell choosing through lua
2026-04-15 19:47:21 +02:00
WinterSolstice8
8a0b14a9d1 [core] Adjust IEP code to /check IEP at 56 exactly
also adjust stuff for consistency
2026-04-15 11:43:05 -06:00
ThrisStraizo
480fc90af8 SMN AF2 Dryad roaming
This PR correctly allows dryads in the SMN AF2 fight Class Reunion to roam in a small area.
2026-04-15 10:26:00 -07:00
Aeshur
890547924b [lua] Convert Better Part of Valor + Fires of Discontent to IF 2026-04-15 12:25:30 -04:00
Xaver
595b61ad9a
Merge pull request #9792 from UmeboshiXI/Ranged_PDIF_Edgecase
[lua] Fix ranged PDIF edgecase
2026-04-15 17:35:07 +02:00
Xaver
3c452627ec
Merge pull request #9794 from KiplingFFXI/Riverne-A01-NM-Audits
[lua, sql] Riverne #A01 NM Audits
2026-04-15 17:33:27 +02:00
Kipling
466b390b83 Riverne A NM Audits 2026-04-15 17:00:58 +02:00
Xaver
6fb2628caa
Merge pull request #9791 from JerokeXI/ChocobosWounds
[Quest] Chocobos Wounds Trade Function Correction
2026-04-15 16:21:18 +02:00
Xaver-DaRed
74168dee71 Fix quest events, their priority and overall cleanup
Based on Siknoz's capture
2026-04-15 15:04:59 +02:00
JerokeXI
e1276d41c6 [Quest] Chocobos Wounds Trade Function Correction
Co-authored-by: CriticalXI <CriticalXI@users.noreply.github.com>
2026-04-15 13:49:05 +02:00
Xaver
9edd1686ac
Merge pull request #9793 from ThrisStraizo/skullofsin
[Mob] Skull of Sins Audit
2026-04-15 13:48:14 +02:00
ThrisStraizo
760bf5a3c2 Skull of Sins Audit
This PR audits the 7 Skulls of Sin for HP/Immunities/STP and general behavior.

This also adds the missing gravity spell to the undead spell list, because it do be that way.
2026-04-14 20:46:52 -07:00
Xaver
18ea903f15
Merge pull request #9776 from ThrisStraizo/returntothedepths
[Quest][Battlefield] Return to the Depths implementation
2026-04-15 05:07:49 +02:00
Umeboshi
7eee10269d [core][lua] Physical Mobskll Refactor 2026-04-14 19:43:10 -07:00
Xaver
3930a1765d
Merge pull request #9787 from ThrisStraizo/rngafbugfix
[quest] Unbridled Passion bugfix
2026-04-15 04:38:08 +02:00
ThrisStraizo
2deb0371df Return to the Depths implementation
This PR implements the quest Return to the Depths and the framework for the battlefield fight.
2026-04-15 04:37:35 +02:00
Xaver
d50a9b8a4b
Merge pull request #9788 from WinterSolstice8/pdif__lower_clamp
[lua] Implement high/low pdif rolls for melee
2026-04-15 04:37:17 +02:00
Xaver
b30dee2960
Merge pull request #9790 from Skold177/DivineMight
[lua] [sql] Divine Might Tuning
2026-04-15 04:36:21 +02:00
Xaver
a8fd8ac41a
Merge pull request #9778 from Frankie-hz/apexmobs
[lua, sql] Implement Promy base Apex Mobs
2026-04-15 04:35:09 +02:00
Umeboshi
253e0241cd [lua] Fix ranged PDIF edgecase 2026-04-14 19:04:34 -07:00
Skold
da3761ecdb [lua] [sql] Divine Might Tuning
Adds base damage to the Ark Angels and gives the Mandragora a spell list
2026-04-14 22:04:09 -04:00
WinterSolstice8
cad7d51cb6 [lua] Implement high/low pdif rolls for melee 2026-04-14 13:05:33 -06:00
WinterSolstice8
c8fbdc13f7 [lua] Move melee spike ratio out to a function 2026-04-14 13:04:38 -06:00
WinterSolstice8
47e5f4c1c4
Merge pull request #9786 from WinterSolstice8/hysteria
[core] Don't fire mobskill if mob has Hysteria status
2026-04-14 11:57:22 -06:00
ThrisStraizo
755a441748 Unbridled Passion bugfix
This PR adds in the secondary CS on zoning into Xarcabard to also trigger the var progression for the quest Unbridled Passion.
2026-04-14 10:53:13 -07:00
WinterSolstice8
c4d0b85bfa [core] Don't fire mobskill if mob has Hysteria status 2026-04-14 07:43:10 -06:00
Xaver
efa9daccac
Merge pull request #9785 from sruon/npc_cleanup
[lua] Cleanup teleport NPC scripts, reduce Kinetic Units costs
2026-04-14 13:22:48 +02:00
sruon
7f3d94b50e Cleanup teleport NPC scripts 2026-04-14 01:33:36 -06:00
Frankie-hz
1a2a4edc26 Implement Promy Vahzl Apex Mobs 2026-04-13 20:26:03 -04:00
Frankie-hz
b768adde6d Implement Promy Mea Apex Mobs 2026-04-13 19:25:46 -04:00
Xaver
84ffbc3b44
Merge pull request #9777 from Skold177/StormsOfFate
[lua] [sql] Storms of Fate & Bahamut Mobskills
2026-04-13 12:46:42 +02:00
Xaver
e8ea0e3db6
Merge pull request #9768 from Xaver-DaRed/alsha
[Fix] Stop Alsha from immediately changing phase after 3rd cure is casted
2026-04-13 12:43:53 +02:00
Xaver
530bb12d47
Merge pull request #9781 from sruon/translate
[core,sql] /translate support, JP item names
2026-04-13 12:43:33 +02:00
sruon
07892ae888 /translate support, JP item names
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-13 03:05:35 -06:00
Frankie-hz
637bd9281b Implement Promy Holla Apex Mobs 2026-04-13 00:37:01 -04:00
Frankie-hz
4d6f3c1419 [lua, sql] Implement Promy Dem Apex Mobs 2026-04-12 22:27:45 -04:00
Skold
8f06279c4f [lua] [sql] Storms of Fate & Bahamut Mobskills
Refactors Storms of Fate and updates Bahamut mob skills
2026-04-12 21:59:23 -04:00
Xaver
3fd88815b8
Merge pull request #9775 from Skold177/Minuet/Titanis-Earring
[sql] Minuet / Titanis Earring Latents
2026-04-12 22:17:56 +02:00
Skold
334f609f8c [sql] Minuet / Titanis Earring Latents
Adds support for Minuet & Titanis Earring Latent Effects
2026-04-12 14:56:57 -04:00
Xaver
00105ea998
Merge pull request #9774 from Omnione/trust_stuff
[trust, lua, sql] Curilla gambits, skills and mods
2026-04-12 20:30:25 +02:00
MrSent
c696d2a797 Curilla gambits, skills and mods 2026-04-12 15:54:57 +01:00
Xaver
e4266f323c
Merge pull request #9770 from Frankie-hz/familyduplicate
[sql] Delete unused and duplicate mob family values
2026-04-12 13:07:31 +02:00
Xaver
2613c68dc4
Merge pull request #9773 from sruon/fix/recycle-bin-onitemdrop
[core,lua] Call onItemDrop when passing through the recycle bin
2026-04-12 12:59:09 +02:00
Xaver
d0cf1b26d0
Merge pull request #9772 from sruon/furnishing_expand
[core, sql] Tighten packet checks for furnitures
2026-04-12 12:57:53 +02:00
sruon
64eff5815a Call onItemDrop when passing through the recycle bin
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-12 02:57:17 -06:00
sruon
3858da89af Validate furniture placement
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-12 01:48:06 -06:00
Frankie-hz
706b1dae70 [sql] Delete unused and duplicate mob family values 2026-04-12 01:42:52 -04:00
Xaver-DaRed
3717ea254e Fix Alsha immediately changing phase after last cure is casted 2026-04-12 05:52:23 +02:00
Xaver
3488a59664
Merge pull request #9767 from UmeboshiXI/ROE_Enums
[lua][chore] ROE Objective enums
2026-04-12 05:46:55 +02:00
Umeboshi
6b5f71d4a2 [lua][chore] ROE Objective enums 2026-04-11 20:00:37 -07:00
MrSent
8fc22d13d3
[Trust, core, sql, lua] August gambits and supporting gambit_container changes (#9718)
* [trust] August weaponskill/auto attack/daybreak scripts

* [trust] gambit changes for August

* [trust] sql changes for August + fix: Emela-ntouka wrong skillList

* [trust] August's gambit/mods

* [trust] New mod growth function in trust.lua (proposal)

* [trust] Adjusted accmod for auto attacks and alabaster burst

* [trust] cleaned august.lua and trust.lua

* [trust] Added some safe guards in gambits_container.cpp for better flow

* style checks, change os.time() for GetSystemTime()

* Changed daybreak var to localVar, added skills to mob_skill.lua

* Added _TRUST identifier to August's skills in mob_skill.lua
2026-04-11 15:11:59 +00:00
Xaver
3cfa445e15
Merge pull request #9757 from ThrisStraizo/knockingnms
[Quest][Mob] Knocking on Forbidden Doors fight mechanics and adjustments
2026-04-11 16:44:47 +02:00
Xaver
7d9d69e3b0
Merge pull request #9754 from Skold177/KS99-Loot-Pools
[lua] [sql] KS99 Adjustments
2026-04-11 16:27:20 +02:00
ThrisStraizo
04434dc6a6 Knocking on Forbidden Doors fight mechanics and adjustments
This PR adjusts Alsha for more accurate fight behavior.
2026-04-11 16:13:37 +02:00
Xaver
79bf2c6484
Merge pull request #9761 from sruon/audit_items_2
[sql] Items audit [usable / equipment / weapons]
2026-04-11 15:08:16 +02:00
Xaver
79f6c20dd4
Merge pull request #9758 from UmeboshiXI/tp_return_fix
[core][lua] Correct base TP returns for auto attacks.
2026-04-11 14:12:33 +02:00
Xaver
8ec7b432df
Merge pull request #9759 from Frankie-hz/floatingqm
[lua] Fixes curtana floating qm
2026-04-11 14:10:04 +02:00
Xaver
8e4fe5692d
Merge pull request #9760 from UmeboshiXI/Martial_Arts_Mobs
[core] Exclude mobs from Martial Arts calculations
2026-04-11 14:09:26 +02:00
Xaver
1804d9b5d4
Merge pull request #9763 from sruon/treasure_no_rare_check
[core, sql] Flag certain items to skip treasure pool rare check and recycle bin
2026-04-11 14:07:14 +02:00
Xaver
9d684f9c01
Merge pull request #9762 from UmeboshiXI/Aydeewa_Diremite_Unused_Mixin
[lua] Aydeewa Diremite: Remove unused mixin
2026-04-11 14:05:53 +02:00
sruon
16b23947fd Flag certain items to skip rare check and recycle bin 2026-04-11 01:09:12 -06:00
Umeboshi
addc03c7d3 [lua] Aydeewa Diremite Remove unused mixin 2026-04-10 22:32:35 -07:00
sruon
ea0859a360 Audit weapon damage type 2026-04-10 22:38:51 -06:00
Umeboshi
86bd915c59 [core] Exclude mobs from Martial Arts calculations 2026-04-10 20:52:05 -07:00
Frankie-hz
92bde839a8 [lua] Fixes curtana floating qm 2026-04-10 23:33:56 -04:00
sruon
370ef5efca Audit weapons skill, damage, delay 2026-04-10 20:47:35 -06:00
sruon
144bc22d80 Audit equipment levels, jobs, slot, size 2026-04-10 20:46:54 -06:00
Umeboshi
a611a44059 [core][lua] Correct base TP returns for mobs. 2026-04-10 19:37:48 -07:00
sruon
7e75c5e7a3 Audit usable items usage time and targets 2026-04-10 20:32:29 -06:00
WinterSolstice8
829d46eb3c
Merge pull request #9756 from LandSandBoat/nodiscard
[lua] Drop nodiscard flag from setters
2026-04-10 19:08:35 -06:00
Skold177
8878944eeb [lua] [sql] KS99 Adjustments
Converts loot pools to weights out of 10,000
Adds missing immunities, damage multipliers, corrects delay, adds lua spell and skill lists.
2026-04-10 20:32:39 -04:00
sruon
23b2918f54
Drop nodiscard flag from setters 2026-04-10 18:23:17 -06:00
Xaver
04c4e63c52
Merge pull request #9750 from Skold177/ouryu-cometh
[lua] [sql] Ouryu Cometh
2026-04-11 01:34:30 +02:00
Xaver
e8d264aa09
Merge pull request #9755 from Skold177/sword_module_fixes
[lua] WoTG Sword Module Bugfix
2026-04-11 01:15:19 +02:00
Xaver
6382ffeba6
Merge pull request #9743 from KiplingFFXI/Boat-NM-Audits
[lua, sql] Boat NM Audits Pt. 1
2026-04-11 01:08:28 +02:00
Skold
256d6fd5f2 [lua] [sql] Ouryu Cometh
Implements the battlefield Ouryu Cometh
2026-04-11 01:05:59 +02:00
Skold
8e55a34834 [lua] WoTG Sword Module Bugfix
Updates Spirits Within and Atonement
2026-04-10 11:10:38 -04:00
Xaver
4296a4bd95
Merge pull request #9753 from sruon/audit_items_1
[sql] Items audit part 1 [Flags, Stack Size, Furnishing storage/element]
2026-04-10 11:50:46 +02:00
sruon
5ecee5d3f0 Audit furnishing storage, element 2026-04-10 01:07:54 -06:00
sruon
520420b62a Audit items stack size 2026-04-10 01:06:12 -06:00
sruon
9017a8e1c6 Audit item flags 2026-04-10 01:04:34 -06:00
Xaver
ce181851af
Merge pull request #9752 from sruon/missing_items_2
[sql] Add missing weapons, equipment, general and usable items
2026-04-10 08:56:51 +02:00
sruon
f2b185ef6d Sort usable item entries 2026-04-10 00:12:54 -06:00
sruon
03afc2a27e Add missing general items 2026-04-09 22:01:37 -06:00
sruon
427cfc249a Add missing equipment and weapon items 2026-04-09 22:01:36 -06:00
sruon
b9cb752efc Add missing usable items 2026-04-09 21:56:58 -06:00
Xaver
27f6836ceb
Merge pull request #9751 from sruon/missing_items_1
[lua, sql] Add missing furnitures / storage slips / master trial orbs
2026-04-10 05:16:27 +02:00
Xaver
624ac8107c
Merge pull request #9749 from sruon/activation_float
[core] Support floating activation time on usable items
2026-04-10 05:15:47 +02:00
sruon
e1dccd163f Add missing BCNM orbs and storage slips 2026-04-09 20:18:07 -06:00
sruon
fc8e12820b Add missing furnishing items 2026-04-09 20:01:18 -06:00
Xaver
efceebc5c0
Merge pull request #9748 from sruon/item_rename
[lua, sql] Fix item names and sortnames to match retail data
2026-04-10 03:39:40 +02:00
sruon
f6c6c0386a Support floating activation time on usable items 2026-04-09 19:38:16 -06:00
sruon
3735add32f Fix item names and sortnames to match retail data 2026-04-09 18:36:50 -06:00
WinterSolstice8
76a5ba33ed
Merge pull request #9746 from WinterSolstice8/char_info_management
[login] Adjust char info management during the lifetime of data_session
2026-04-09 12:58:46 -06:00
Kipling
cb6178d986 Boat Audit Pt. 1 revisions
Boat NM Audits Pt. 1

Boat NM Audits Pt. 1

Boat NMs 2
2026-04-09 11:46:24 -07:00
Xaver
2ccfb1987a
Merge pull request #9741 from ThrisStraizo/behind_the_smile
[quest] [mob] Behind the Smile quest implementation
2026-04-09 18:39:24 +02:00
Xaver
534adb05d9
Merge pull request #9745 from sruon/item_flags_rework
[core, sql] Expand item flags
2026-04-09 17:55:10 +02:00
WinterSolstice8
ce528ee35b [login] Adjust char info management during the lifetime of data_session
This fixes a bug with multi-deletion or deletion->char creation

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-09 09:37:42 -06:00
Zach Toogood
9657ec48ba
Merge pull request #9744 from LandSandBoat/ai_guidance
Docs: Add guidance for humans and AI agents
2026-04-09 16:26:06 +01:00
ThrisStraizo
0cd9023c07 Behind the Smile quest implementation
This PR implements the quest Behind the Smile and the mechanics for the mob fight with Bullheaded Grosvez.
2026-04-09 17:23:17 +02:00
sruon
7ffd5e4d37 Convert item_basic flags to readable SQL variables 2026-04-09 08:08:32 -06:00
sruon
1e4ef32fb0 Move item flags to ItemFlag enum class 2026-04-09 06:43:14 -06:00
Zach Toogood
03264f9ee2 Missions: Add empty stubs for TVR mission line
There is a lot of work still to do here:
- We need to figure out the relationship between the end ROV missions and when TVR appears in your log
- We need to figure out what the mission menu ID is for TVR and hook it up to our tables/gm commands
- We need to map out which IDs correspond to which missions
- And of course, we need to implement everything based on retail captures :)
2026-04-09 13:20:07 +01:00
sruon
65b483eb2f Bump item flags from uint16 to uint32 2026-04-09 06:12:08 -06:00
Zach Toogood
100d7ddfee Missions: Add empty stubs for remaining ASA missions 2026-04-09 12:21:55 +01:00
Zach Toogood
5fa07c8354 Missions: Format AMK missions a little 2026-04-09 12:21:43 +01:00
Zach Toogood
c0c6f2e831 Missions: Add empty stubs for remaining ACP missions 2026-04-09 12:21:13 +01:00
Zach Toogood
aa8970bdd8 Docs: Add advanced guidance for IF usage and event packets 2026-04-09 09:35:57 +01:00
Zach Toogood
c567ad1e11 Docs: Add information on capture formats 2026-04-09 09:07:39 +01:00
Zach Toogood
ed71830055 Docs: Add guidance for humans and AI agents 2026-04-09 08:42:01 +01:00
Xaver
9aee9df10d
Merge pull request #9742 from ThrisStraizo/brdafbugfix
[Quest] BRD AF3 Bugfix
2026-04-09 05:30:52 +02:00
ThrisStraizo
3e61639fb7 BRD AF3 Bugfix
This PR adds a safety check to Bugaboo's death so multiple players attempting the quest can't hard lock themselves from progress if they checked the altar before helping a friend defeat the ghost again.
2026-04-08 19:51:45 -07:00
WinterSolstice8
19c74473d2
Merge pull request #9740 from WinterSolstice8/login_Delete_increment_key
[login] Increment key after char deletion
2026-04-08 11:14:25 -06:00
WinterSolstice8
cd584cc3ef [login] Increment key after char deletion
This prevents blackscreens when trying to login
2026-04-08 10:31:22 -06:00
Xaver
f22af7d9f9
Merge pull request #9723 from Skold177/Pulling-the-Strings-String-IDs
[lua] [sql] Moblin Fantocciniman & Marionette Dice
2026-04-08 14:56:40 +02:00
Xaver
94c679d26f
Merge pull request #9732 from sruon/exdata_6
[core, lua] Exdata definitions part 6 [Augments / Timers / Serialized items / Linkshell] 💣
2026-04-08 14:55:54 +02:00
Xaver
4993f9c06d
Merge pull request #9734 from Frankie-hz/oldlimbusmove
[documentation] Moves all of the old limbus to documentation folder
2026-04-08 14:51:04 +02:00
Xaver
b4188b2ecc
Merge pull request #9736 from Frankie-hz/chainsandbonds
[lua, sql] Fixes COP 7-1 full inventory message and NPC
2026-04-08 14:50:03 +02:00
Xaver
06208596dc
Merge pull request #9737 from sruon/dbox_128_limit
[core] Limit delivery box to 128 items in flight
2026-04-08 14:48:38 +02:00
sruon
e0f887abc9 Limit delivery box to 128 items in flight 2026-04-08 00:47:11 -06:00
Frankie-hz
aba8a3899e [lua, sql] Fixes COP 7-1 full inventory message and NPC 2026-04-08 02:16:22 -04:00
Frankie-hz
fd909cba89 [documentation] Moves all of the old limbus to documentation folder
Moves all old limbus to documentation folder
Adds readme for reasons for this
2026-04-08 01:04:57 -04:00
sruon
ea1281f3be Exdata definitions
Augments
Timers
Serialized items
Linkshell

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-07 22:57:35 -06:00
Skold
5fe5925e87 [lua] [sql] Moblin Fantocciniman + Marionette Dice
Adds the remaining Marionette Dice and codes Moblin Fanocciniman for the ENM Pulling the Strings
2026-04-07 22:31:41 -04:00
Xaver
ea96647be6
Merge pull request #9721 from SlashingTangents/TOAU-Mission-5
[lua] TOAU Mission 5 Quest IF Adjustments
2026-04-06 19:38:11 +02:00
Xaver
790cda1a23
Merge pull request #9730 from ThrisStraizo
[Quest] Remove unneeded THF AF1 stew code
2026-04-06 19:36:47 +02:00
ThrisStraizo
471e77bfd1 Yeet unneeded THF AF1 stew code
This PR deletes the unneeded stew steal code from the THF AF1 quest as the stew is stealable if the quest is active or not.
2026-04-06 09:23:00 -07:00
Zach Toogood
e39f1ae970
Merge pull request #9729 from Aeshur/wotgsoa-mh
[c++] Fix Moghouse entry in WoTG + SoA
2026-04-06 15:35:31 +01:00
slashtangent
be0f07fe05 TOAU Mission 5 Quest IF Adjustments 2026-04-06 09:18:13 -05:00
Xaver
a72e568a76
Merge pull request #9726 from Skold177/marionette-dice-player
[lua] [sql] Marionette Dice Pt. 1
2026-04-06 15:51:15 +02:00
Xaver
63615f6e4c
Merge pull request #9719 from sruon/exdata_5
[core, lua] Exdata definitions part 5 [Furniture/Flowerpot/Mannequins]
2026-04-06 15:31:24 +02:00
Skold
c277d76ef4 [lua] [sql] Marionette Dice Pt. 1
Implements Marionette Dice that buff the player.
2026-04-06 09:26:45 -04:00
Aeshur
e2d128deb0 [c++] Fix Moghouse entry in WoTG + SoA 2026-04-06 09:02:37 -04:00
Xaver
4cf8dd3d47
Merge pull request #9720 from Skold177/Moblin_Emotes
[lua] [sql] Moblin Emotes
2026-04-06 14:57:32 +02:00
Xaver
52ffdcd2f5
Merge pull request #9725 from ThrisStraizo/stewmedaddy
[Mob] Remove Silver beastcoin from THF quest quadavs
2026-04-06 14:55:36 +02:00
Xaver
5d308ce5c0
Merge pull request #9728 from sruon/fix/bp-aoe-messages
[core, lua] Fix message ID for Leviathan Slowga
2026-04-06 14:50:16 +02:00
sruon
d8eb64ef39 Fix message ID for Leviathan Slowga 2026-04-06 00:34:39 -06:00
ThrisStraizo
f1cd54d8f5 Remove Silver beastcoin from THF quest quadavs
This PR removes the Silver Beastcoin from the steal list of the Quadav Stew mobs.
2026-04-05 21:28:23 -07:00
Skold
92f308c5e4 [lua] [sql] Moblin Emotes
Adds emote mobskills for moblins
2026-04-05 21:45:43 -04:00
sruon
16c325eecb Exdata definitions
Mannequin
Furniture
Flowerpots

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-05 18:57:14 -06:00
Xaver
d77afb5977
Merge pull request #9717 from CriticalXI/toau_mission_audit
[lua, sql] ToAU 13 Lost Kingdom fight adjustments
2026-04-05 21:12:00 +02:00
Critical
68231186eb [lua, sq;] ToAU 13 Lost Kingdom fight adjustments 2026-04-05 12:44:49 -06:00
Xaver
9564d9c64c
Merge pull request #9716 from SlashingTangents/Rock-Bug-Fix
[lua] Bug fix quest "Rock Racketeer" wrong prog value check
2026-04-05 18:08:01 +02:00
slashtangent
e8377fd0e1 Bug Fix Quest Rock Racketeer wrong Prog Value 2026-04-05 10:38:57 -05:00
Xaver
b4ae575197
Merge pull request #9687 from commandobill/implement-burden-of-suspicion
Quest: Add WOTG: Burden of Suspicion
2026-04-05 14:22:18 +02:00
Xaver
f7674fce2d
Merge pull request #9688 from commandobill/Implement-Storm-on-the-Horizon
Quest: Add WOTG: Storm on the Horizon
2026-04-05 14:19:56 +02:00
Xaver
eca3474ca6
Merge pull request #9714 from KiplingFFXI/Ancient-Goobbue-Audit
[lua, sql] Ancient Goobbue Audits
2026-04-05 13:47:07 +02:00
Kipling
80d778ae8b Ancient Goobbue Audits 2026-04-04 20:54:36 -07:00
Xaver
a77c758765
Merge pull request #9713 from Skold177/Pulling_The_Strings
[lua] ENM Pulling the Strings framework
2026-04-05 02:00:11 +02:00
Skold
6ecd7d73e3 [lua] ENM Pulling the Strings framework
Implements the framework/loot pools for the ENM Pulling the Strings
2026-04-04 15:47:04 -04:00
WinterSolstice8
1fef1bb9c3
Merge pull request #9712 from sruon/exdata_4
[core, lua] Exdata definitions part 4 [Escutcheons/Unlockable weapons/Soul Plate/Soul Reflector/Fish]
2026-04-04 08:00:13 -06:00
sruon
9b0853e13b Exdata definitions
Escutcheons
Weapon unlock
Soul plate
Soul reflectors
Fish

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-04 13:59:18 +02:00
Xaver
0548a7de46
Merge pull request #9705 from Hatberg/magic-numbers-nashmau-shadowreign
[lua] Replace Magic Numbers in Tavnazia, Nashmau, Shadowreign shops
2026-04-04 13:58:04 +02:00
Xaver
d3eaed4935
Merge pull request #9711 from WinterSolstice8/lls_fix
[lua] [lls] Adjust some LLS hinting for new LLS version
2026-04-04 13:06:38 +02:00
Xaver
2f43f5e05c
Merge pull request #9703 from WinterSolstice8/sj_restriction_bug
[core] Always fetch subjob when saving char to db
2026-04-04 13:05:39 +02:00
Hatberg
2a5c95b2c6 Replace Magic Numbers in Tavnazia, Nashmau, Shadowreign shops 2026-04-04 13:04:08 +02:00
WinterSolstice8
fe8fa98123 [lua] [lls] Adjust some LLS hinting for new LLS version 2026-04-03 20:59:15 -06:00
WinterSolstice8
7f0c0ab3f4
Merge pull request #9697 from WinterSolstice8/mustzone
[core] [lua] Actually enforce "must zone" and not just /logout
2026-04-02 22:50:38 -06:00
WinterSolstice8
d8ba91fda8
Merge pull request #9704 from sruon/exdata_3
[core, lua] Exdata definitions part 3 [Chocobo Card/Egg, Crafting Set, Evolith, Glowing Lamp, Bonanza, MMM]
2026-04-02 22:50:17 -06:00
WinterSolstice8
484870adcb [core] Always fetch subjob when saving char to db 2026-04-02 20:06:11 -06:00
sruon
1b3e4abe82 Exdata definitions
Chocobo card
Chocobo egg
Crafting Set
Evolith
Glowing Lamp
Bonanza Marbles
MMM Tabulas

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-02 20:02:19 -06:00
Xaver
472ee4c558
Merge pull request #9700 from SlashingTangents/Promo-SP
[lua] Quest Cleanup Promotion Superior Private
2026-04-03 03:58:49 +02:00
Xaver
c2fe742680
Merge pull request #9699 from Hatberg/magic-numbers-ahturgan-alzahbi
[lua] Replace magic numbers in TOAU shops
2026-04-03 03:56:43 +02:00
Xaver
25e0fad52e
Merge pull request #9698 from WinterSolstice8/equip_stuff
[core] Filter additional bad equip packets
2026-04-03 03:54:53 +02:00
WinterSolstice8
f8703d079a
[lua] Add 'hitsLanded' = 1 to calcparams of magic ws (#9701)
* [lua] Add 'hitsLanded' = 1 to calcparams of magic ws

* [lua] Adjust Atonement & Spirits Within to have hitsLanded = 1
2026-04-03 03:53:46 +02:00
Xaver
ca4c414178
Merge pull request #9702 from WinterSolstice8/res_rank_stuff
[core] thunder element should look up thunder res rank
2026-04-03 03:53:18 +02:00
WinterSolstice8
bed832143e
Merge pull request #9695 from sruon/exdata_2
[core, lua] Exdata definitions part 2 [Assault Log/Meeble/Chocobet/Race Certificate/Honeymoon Plans/Brenner]
2026-04-02 19:42:44 -06:00
WinterSolstice8
ca89c38ab3 [core] thunder element should look up thunder res rank 2026-04-02 15:23:30 -06:00
slashtangent
ec482c38ff Quest Cleanup Promotion Superior Private 2026-04-02 16:05:35 -05:00
WinterSolstice8
4543311d5d [core] Filter additional bad equip packets
Also emit the "you cant dual wield that" message when appropriate
2026-04-02 11:19:01 -06:00
Hatberg
27d9d96ac9 Replace magic numbers in TOAU shops 2026-04-02 19:14:47 +02:00
WinterSolstice8
fb0cb46c05
Merge pull request #9686 from sruon/navmesh_ground
[core] ximesh files support [terrain type / limit widescan]
2026-04-02 09:17:36 -06:00
WinterSolstice8
7ac7f64457 [core] [lua] Actually enforce "must zone" and not just /logout 2026-04-02 08:52:00 -06:00
WinterSolstice8
bca165bc4b
Merge pull request #9631 from commandobill/Enhances-Drain-and-Aspir
Fix Enhances Drain and Aspir mod
2026-04-01 17:31:31 -06:00
sruon
d62518a18a Exdata definitions
Assault Log
Meeble Grimoires
Honeymoon Tickets
Race Completion certificates
Chocobet
Brenner Book

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-04-01 00:23:28 -06:00
sruon
495ccff91c Enable ximesh files support
Co-Authored-By: InoUno <774909+InoUno@users.noreply.github.com>
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
Co-Authored-By: Mike Murphy <6765305+xenonsmurf@users.noreply.github.com>
2026-03-31 20:16:57 -06:00
WinterSolstice8
fd93f9a70d
Merge pull request #9694 from WinterSolstice8/weaponskill_edgecase
[lua] Fix edge cases that report incorrect misses for mob/weaponskill
2026-03-31 10:54:31 -06:00
WinterSolstice8
3bd97fcd30 [lua] Fix edge cases that report incorrect misses for mob/weaponskill 2026-03-31 07:57:03 -06:00
InnovationGuru
5e1af23ab5 Implemented burden of suspicion 2026-03-31 09:50:15 -04:00
InnovationGuru
91cb5663d0 Implemented Storm on the Horizon 2026-03-31 07:47:27 -04:00
Xaver
b9d7df6ab4
Merge pull request #9690 from KiplingFFXI/Uleguerand-Range-NM-Audits
[lua, sql] Uleguerand Range NM Audits
2026-03-31 13:43:54 +02:00
Xaver
6ee6942828
Merge pull request #9680 from sruon/exdata_1
[core, lua] Revamp exdata handling
2026-03-31 13:17:59 +02:00
Xaver
694db8dce5
Merge pull request #9675 from WinterSolstice8/pdif_adjustments
[lua] Refactor PDIF clamping and simplify code
2026-03-31 13:17:35 +02:00
Xaver
ab087e887e
Merge pull request #9689 from Frankie-hz/moreslots
[sql, lua] Implement Cape Terigan, yuhtynga, KRT, VeLugannon, West saru, inner horo ruins spawn slots & nm ph info
2026-03-31 13:14:18 +02:00
Kipling
14813751f2 Audit Uleguerand Range NMs
Co-Authored-By: Critical <48370698+CriticalXI@users.noreply.github.com>
2026-03-31 13:07:36 +02:00
Xaver
f7433079ef
Merge pull request #9691 from sruon/queue_reentrant_fix
[core] Fix stack overflow from reentrant action queue
2026-03-31 12:25:03 +02:00
sruon
b97af9bec6 Fix stackoverflow from reentrant action queue 2026-03-31 02:00:15 -06:00
sruon
b2372f8afd Revamp exdata handling
- Save modified exdata at tick end
- Expose actual exdata structs
- Interface with lua through tables with named keys

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-31 01:35:57 -06:00
WinterSolstice8
cc3e1f41fb [lua] Refactor PDIF clamping and simplify code 2026-03-30 23:06:51 -06:00
Frankie-hz
11041643a4 Implement Inner Horutoto Ruins spawn slots and phs
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Removes dummy spawn slot data for magicked bones

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-30 20:57:13 -04:00
Frankie-hz
95be31d2bd Implement West Sarutabaruta spawn slots and ph ids
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-30 19:22:37 -04:00
Frankie-hz
cd6085f8f7 Implement Ve'Lugannon Palace spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-30 19:04:04 -04:00
Frankie-hz
6c8c49b84d Implement King Ranperre's Tomb spawn slots & ph info
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-30 18:50:55 -04:00
Frankie-hz
72b1a305e3 Implements yuhtunga jungle spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-30 18:24:05 -04:00
Frankie-hz
c1f0f0c919 Implement cape Teriggan spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-30 18:17:48 -04:00
Xaver
b44dfebf8e
Merge pull request #9682 from Skold177/KS99-Behemoth-Refactor
[lua] KS99 Horns of War Updates
2026-03-30 21:39:06 +02:00
Skold
2a089fb611 [lua] KS99 Horns of War
Updates Final Meteor with extra guards and resolves long standing bugs with the fight by moving its death into the mobs skill finalize. Also updates it's skill table into lua and converts its additional effect.
2026-03-30 10:44:30 -04:00
Xaver
c5ac091c61
Merge pull request #9685 from Frankie-hz/spawnslot
[sql][lua] Implement Middle/Upper Delkfutts Tower, PsoXja, Kuftal, Promy Dem, SSG Spawn slots and updated NM PH Info
2026-03-30 16:43:16 +02:00
Xaver
4bf596c696
Merge pull request #9684 from sruon/mob_abilities
[core] Allow mob entities to use job abilities
2026-03-30 16:41:30 +02:00
Xaver
64d52eb923
Merge pull request #9683 from Skold177/KS30-Operation-Desert-Swarm-Fix
[lua] KS30 ODS Fix
2026-03-30 16:38:08 +02:00
Xaver
a6d220e679
Merge pull request #9678 from 9001-Solutions/9001/fix-ranged-weapon-rank
[cpp, combat] Fix Ranged Weapon Rank Calculations
2026-03-30 16:35:34 +02:00
Xaver
fb35911e25
Merge pull request #9677 from Flibe-XI/brigand-rewards
[cpp, Lua, sql] Enables Brigand's Chart quest: rewards + mob
2026-03-30 16:32:54 +02:00
Frankie-hz
df7fa93e39 Implement Upper Delkfutt's Tower spawn slots and update NM PHs
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-29 19:59:29 -04:00
Frankie-hz
dea239f7b6 Implement Sea Serpent Grotto spawn slots and NM phs
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-29 19:42:03 -04:00
Frankie-hz
bd6f94195c Implement Promy Dem spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-29 18:36:15 -04:00
Frankie-hz
705b757e7b Implement Kuftal Tunnel spawn lots and NM PHs
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-29 16:00:07 -04:00
Frankie-hz
deb1718220 Implement PsoXja spawn slots and NM info
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-29 12:20:13 -04:00
Zach Toogood
470b4d68fe
Merge pull request #9681 from LandSandBoat/networking_improvements
Core: General Networking cleanup and improvements
2026-03-29 10:07:34 +01:00
sruon
d4009182af Allow mob entities to use job abilities 2026-03-28 23:25:33 -06:00
Frankie-hz
3f512b54d3 Implement Middle Delkfutts Tower spawn slots
Implements spawn slots for above zone
Adjust NM PHs to retail found data

Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-28 19:37:59 -04:00
Zach Toogood
f7620e3e27 Core: Streamline MapStatistics usage in MapNetworking 2026-03-28 17:04:02 +00:00
Skold
5d8eed9c54 [lua] KS30 ODS Fix
Wraps the logic for onMobWeaponSkill inside of a primary target check to prevent it from running multiple times.
2026-03-28 11:52:51 -04:00
Zach Toogood
8dab201cad Core: Use IPP as const& 2026-03-28 12:27:37 +00:00
Zach Toogood
2e362739c9 Core: Refactor packet building in MapNetworking 2026-03-28 12:02:44 +00:00
Zach Toogood
300d431dee Core: Move network cpp locals into class members 2026-03-28 00:12:03 +00:00
Zach Toogood
6d5a39e3da Core: Tidy up MapSocket 2026-03-28 00:06:29 +00:00
9001-Sols
a1a539fc07 Fix Ranged Weapon Rank 2026-03-27 13:40:59 -04:00
Zach Toogood
c28468d5ae Core: Remove PacketMod system
They were seemingly unused by anyone but me, and everything they did can be done more easily with Ashita/Windower addons, etc.
2026-03-27 17:34:23 +00:00
Zach Toogood
03d2a3e1be Core: Move NetworkBuffer definition 2026-03-27 17:32:50 +00:00
Zach Toogood
2c0b453c68 Core: add operator== and hash to IPP 2026-03-27 17:31:23 +00:00
Flibe-XI
87679ec73c Add rewards to brigands chart 2026-03-27 11:29:03 -04:00
Flibe-XI
b50dc1ba1a Mob fishable for brigands chart 2026-03-27 11:27:12 -04:00
Xaver
35b8005ded
Merge pull request #9674 from CriticalXI/toau_mission_audit
[lua][module] ToAU mission era wait times
2026-03-27 10:28:04 +01:00
Xaver
9f6beda945
Merge pull request #9676 from Frankie-hz/valkemp
[lua] Changes Valkurm Emperor to true lotto
2026-03-27 10:07:14 +01:00
Frankie-hz
79160eda1f [lua] Changed Valkurm Emperor to true lotto 2026-03-26 23:11:34 -04:00
Critical
731a56beb2 [lua][module] ToAU mission era wait times 2026-03-26 18:43:22 -06:00
WinterSolstice8
bef4f258a5
Merge pull request #9662 from WinterSolstice8/exp_stuff_lua
[core] [lua] Load /check exp curve from lua
2026-03-24 17:14:13 -06:00
WinterSolstice8
77a6ca084b [core] [lua] Load /check exp curve from lua 2026-03-24 16:25:19 -06:00
Xaver-DaRed
6b62321602
Merge pull request #9670 from WinterSolstice8/test_tweaks
[tests] Adjust Sonic Boom Finish & mobs parrying/guarding tests
2026-03-24 23:24:14 +01:00
WinterSolstice8
eba9f55da9 [tests] Adjust Sonic Boom Finish & mobs parrying/guarding tests
This should make them more reliable in testing
2026-03-24 09:24:41 -06:00
WinterSolstice8
2eb1b9d78b
Merge pull request #9663 from Xaver-DaRed/skillup
[Synthesis] Update skill up amount calculations
2026-03-24 08:34:21 -06:00
Xaver-DaRed
2b00a77278
Merge pull request #9507 from Flibe-XI/fishchest
[core, lua, sql] Enable fishing of chests for Brigand's Chart mini-quest
2026-03-24 09:29:56 +01:00
Flibe-XI
bfa76eb1ea Brigand chart: Make chests fishable 2026-03-24 07:51:47 +01:00
Xaver-DaRed
84ff68669f
Merge pull request #9532 from Flibe-XI/pchart-items
[core, sql, lua] Enable fishing up snares for Pirate's Chart mini-quest
2026-03-24 07:41:22 +01:00
Xaver-DaRed
907822a8f1
Merge pull request #9664 from Omnione/trust_work
[core] nullptr check for Rune Enhancement
2026-03-24 07:40:23 +01:00
Xaver-DaRed
8a73282de2
Merge pull request #9668 from sruon/sneak_invis_nerf
[sql] Spells cost, recast, levels partial audit
2026-03-24 07:40:03 +01:00
Xaver-DaRed
fe67284743
Merge pull request #9667 from sruon/equip_change_packets
[core] Update client spells and abilities after changing equip
2026-03-24 07:38:31 +01:00
sruon
e89cd15371 Spells cost,recast,levels audit
PLD Cure IV 51 -> 55
Reprisal 52s -> 180s recast
Invisible/Sneak 3s cast tine, 10s recast
GEO Indi-Int 34 -> 36
GEO Geo-Haste 93 -> 97 and 200 MP
Atomos 1->5s cast time
Tier 2 storms 60mp cost
2026-03-23 19:51:02 -06:00
sruon
90e0803fe6 Update client spells and abilities after changing equip 2026-03-23 19:24:12 -06:00
MrSent
e936ed1a5c [core] nullptr check for Rune Enhancement 2026-03-23 18:10:58 +00:00
Xaver-DaRed
d30bacf678 Update synthesis skill up amount calculations 2026-03-23 14:22:21 +01:00
Xaver-DaRed
f0fe727c5f
Merge pull request #9657 from Xaver-DaRed/WS_USE
[Chore] `WEAPONSKILL_USE` minor cleanup leftovers
2026-03-23 12:07:07 +01:00
Xaver-DaRed
97d45f22b2
Merge pull request #9661 from ThrisStraizo/yazquhlwsfix
[mob] Yazquhl ws message placement fix
2026-03-23 01:53:11 +01:00
ThrisStraizo
21dd80fcfa Yazquhl ws message placement fix
This PR fixes my mistake of placing the weaponskill messaging and relocates it from onmobskillchoose to onMobWeaponSkill so the message won't play multiple times if the mob is at range.
2026-03-22 17:29:43 -07:00
Xaver-DaRed
b0d833a236
Merge pull request #9660 from Skold177/Follow-the-White-Rabbit
[lua] [sql] ENM Follow the White Rabbit
2026-03-23 01:12:18 +01:00
Skold177
10ab9302a5 [lua] [sql] Follow the White Rabbit
Adds the ENM Follow the White Rabbit with captures from retail.
2026-03-22 19:00:31 -04:00
Xaver-DaRed
29f064c250 Remove unused xi.ws weaponskill alias 2026-03-22 12:51:29 +01:00
Xaver-DaRed
20411b07d7
Merge pull request #9658 from sruon/mezzotint
[lua] Enums for Mezzotinting augments exdata
2026-03-22 11:15:34 +01:00
sruon
63287096f5 Enums for Mezzotinting exdata
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-22 03:46:29 -06:00
Xaver-DaRed
621a625dd2 WEAPONSKILL_USE minor cleanup leftovers 2026-03-22 10:37:17 +01:00
Xaver-DaRed
c0af4c41ec
Merge pull request #9655 from sruon/augs_oboro_data
[lua] Bundled augments exdata enum and data
2026-03-22 09:32:23 +01:00
Xaver-DaRed
ef5e5a07f7
Merge pull request #9654 from Omnione/trust_stuff
[trust, lua] tuned AAEV/AAHM/Amchuchu and cleaned up scripts
2026-03-22 09:15:43 +01:00
sruon
1b8c0fc087 Bundled augments enum and data
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-22 09:02:51 +01:00
MrSent
9a54a437a7 [trust] tuned AAEV/AAHM/Amchuchu and cleaned up scripts 2026-03-22 00:55:29 +00:00
Xaver-DaRed
d728a8e730
Merge pull request #9653 from sruon/evolith_data
[lua] Evolith augments data tables
2026-03-22 00:37:07 +01:00
sruon
8c282b9d84 Evolith data tables
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-22 00:09:11 +01:00
Xaver-DaRed
3baecf7d72
Merge pull request #9652 from sruon/exdata_enums_4
[lua] Exdata enums for Evolith/Meeble
2026-03-21 21:16:34 +01:00
sruon
d68fd1eab8 Exdata enums for Evolith/Meeble
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-21 20:46:51 +01:00
Zach Toogood
a0daf5c621
Merge pull request #9567 from LandSandBoat/remove_task_manager
Core: New ASIO-based Task Scheduler (Remove CTaskManager & Async namespace) 💣💣💣
2026-03-21 17:32:11 +00:00
Zach Toogood
38eecefdb0 Core: Remove g_PTrigger legacy global 2026-03-21 16:27:54 +00:00
Zach Toogood
10476d4cd5 Core: Remove Scheduler::isTest helpers 2026-03-21 15:56:34 +00:00
Zach Toogood
a68d47b389 Core: Add forced yields in ZoneServer cleanup steps 2026-03-21 13:20:48 +00:00
Zach Toogood
9928a9d7bf Core: Simplify ZMQ wrapper lifetimes 2026-03-21 12:36:30 +00:00
Zach Toogood
a548d3795c Modules: Fix issue with GM Horro 2026-03-21 12:35:59 +00:00
Xaver-DaRed
e725df55cf
Merge pull request #9649 from sruon/exdata_enums_3
[lua] Exdata enums and Feral Skills data for Pankration
2026-03-21 10:08:59 +01:00
sruon
6222643642 Enums and data for Pankration
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-21 02:43:09 -06:00
Xaver-DaRed
a6ac6d4945
Merge pull request #9648 from sruon/exdata_enums_2
[lua] Exdata enums for Chocobo Racing/Raising, Mannequins
2026-03-21 08:34:26 +01:00
sruon
f97426167a Enums for Chocobo Racing/Raising, Mannequins
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
Co-Authored-By: Ivaar <sblms2j@yahoo.com>
2026-03-21 08:05:40 +01:00
Xaver-DaRed
695f72dfc4
Merge pull request #9647 from Xaver-DaRed/spawn
[Chore] Add safety to spawn lists
2026-03-21 06:50:08 +01:00
Xaver-DaRed
92208d53d9
Merge pull request #9646 from sruon/exdata_maze
[lua] Exdata enums and data for Moblin Maze Mongers
2026-03-21 06:27:22 +01:00
Xaver-DaRed
61fba4f9d3 Add safety to spawn lists 2026-03-21 06:06:16 +01:00
sruon
9a0b9eff18 Enum and data for Moblin Maze Mongers
Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-03-20 23:04:33 -06:00
Xaver-DaRed
7b7b8025e2
Merge pull request #9644 from sruon/exdata_enums_1
[lua] Exdata supporting enums for Bonanza/Brenner/Escutcheons/Legion
2026-03-21 05:36:25 +01:00
Xaver-DaRed
dee0e81440
Merge pull request #9645 from Omnione/trust_stuff
[trust, lua, sql] AAHM: Added gambits/mods/tp usage
2026-03-21 05:30:00 +01:00
sruon
3f18a7b93c Exdata supporting enums for Bonanza/Brenner/Escutcheons/Legion 2026-03-21 05:08:23 +01:00
MrSent
0e101409bd [trust] AAHM: Added gambits/mods/tp usage 2026-03-21 03:51:18 +00:00
Xaver-DaRed
8e6f983386
Merge pull request #9638 from Xaver-DaRed/enum
[Chore] Retire `xi.jsa` enum
2026-03-20 15:52:06 +01:00
Xaver-DaRed
6cd73b0751
Merge pull request #9636 from Xaver-DaRed/Despot
[Fix] Add safety to Despot behavior
2026-03-20 15:28:29 +01:00
Xaver-DaRed
f3cf563b03 Convert jsa.SKILL to mobSkill.SKILL 2026-03-20 15:21:30 +01:00
Xaver-DaRed
bab27d07a6
Merge pull request #9620 from Omnione/trust_stuff
[trust,sql,core,lua] AAEV gambits and ws added, small Amchuchu gambit fix, gambits_container changes
2026-03-20 14:39:34 +01:00
Zach Toogood
a5af516c32 Core: Unify scheduler naming 2026-03-19 19:44:25 +00:00
MrSent
ea57bf8dfc [sql,lua] AAEV shield mastery power lvl range, reprisal spell 2026-03-19 16:47:30 +00:00
MrSent
3430df2dad [trust] AAEV fixed palisade using MA not JA 2026-03-19 13:16:04 +00:00
MrSent
ad3008f909 [sql,lua,core] Make gambit RANDOM skillchain-aware; add AAEV mobskills 2026-03-19 11:08:05 +00:00
MrSent
8964c53d66 [trust] AAEV gambits, Amchuchu gambit ONE_FOR_ALL ai.r.MA->ai.r.JA fix 2026-03-19 11:05:03 +00:00
Xaver-DaRed
c96ac870ca
Merge pull request #9637 from ThrisStraizo/coraf3scdistance
[mob] Adjust SC Trigger distance for Against All Odds
2026-03-19 06:38:46 +01:00
ThrisStraizo
1593bb8d31 Adjust SC Trigger distance for Against All Odds
This PR adjusts the distance Gowam or Yazquhl will attempt to skillchain their buddy's target.
2026-03-18 22:13:24 -07:00
Xaver-DaRed
b4089cc1f0 Reorder jsa enum and remove associated alias 2026-03-19 05:10:00 +01:00
Xaver-DaRed
e38b5cc3e4
Merge pull request #9625 from ThrisStraizo/cor_af3
[battlefield][quest] COR AF3 Fight (Against All Odds)
2026-03-19 04:45:30 +01:00
Xaver-DaRed
749f9b7ef7
Merge pull request #9634 from Frankie-hz/spawnslots
[sql, lua] Implement Davoi, FeiYin, Crawlers Nest, Castle Zvahl Keep, Bosta Oubliette spawn slots
2026-03-19 04:43:50 +01:00
Xaver-DaRed
63a1e00f34 Fix Despot behavior 2026-03-18 22:22:01 +01:00
ThrisStraizo
d7ce0f4d56 COR AF3 Fight (Against All Odds)
This PR adjusts the COR AF3 fight Against All Odds to be retail accurate, as well as a minor adjustment to the quest flow for reobtaining the KI.
2026-03-18 09:18:08 -07:00
Zach Toogood
c28c82715d Core: Pipe Scheduler into CLuaTestEntity 2026-03-18 10:26:18 +00:00
Zach Toogood
2c90dc26ac Core: add Scheduler::blockOnMain 2026-03-18 10:26:18 +00:00
Zach Toogood
3377c380a2 Core: Propagate coros into AI::Tick() 2026-03-18 10:26:17 +00:00
Zach Toogood
4a54ebee18 Core: Introduce Scheduler::TaskGroup 2026-03-18 10:25:42 +00:00
Zach Toogood
5b99aeaf04 Core: Make time_server a coro 2026-03-18 10:25:42 +00:00
Zach Toogood
e0eecb794c Core: Simplify charutils::LoadChar 2026-03-18 10:25:42 +00:00
Zach Toogood
7733be9e90 Tools: Update cppcheck to C++20 2026-03-18 10:25:42 +00:00
Zach Toogood
6824a24af0 Core: Make ZoneServer a coroutine 2026-03-18 10:25:42 +00:00
Zach Toogood
b26fb5b5f4 Core: Remove Async helpers 2026-03-18 10:25:42 +00:00
Zach Toogood
0baf054223 Core: Run all MapEngine tasks in Scheduler 2026-03-18 10:25:42 +00:00
Zach Toogood
6c627c6b01 Core: Use Maybe alias for std::optional 2026-03-18 10:25:42 +00:00
Zach Toogood
be954ee36d Core: Remove CTaskManager 2026-03-18 10:25:41 +00:00
Xaver-DaRed
b005549b85
Merge pull request #9630 from commandobill/xp_on_raise
Fix EXP recovery from Raise
2026-03-18 10:04:20 +01:00
Frankie-hz
0daa2bb99b Implement Bostaunieux Oubliette spawn slots 2026-03-17 22:48:38 -04:00
Frankie-hz
f8a968cb95 Implement Castle Zvahl Keep spawn slots 2026-03-17 22:35:10 -04:00
Frankie-hz
0652d176d9 Implement Crawler's Nest spawn slots 2026-03-17 22:15:18 -04:00
Frankie-hz
805c8ccf83 Implement Fei'Yin spawn slots 2026-03-17 21:52:48 -04:00
Frankie-hz
bf644bfd78 Implement Davoi spawn slots 2026-03-17 19:18:27 -04:00
InnovationGuru
ff7440a337 Fixes #9100 2026-03-17 12:10:00 -04:00
InnovationGuru
fb51be818c Fixes #9398 2026-03-17 11:01:20 -04:00
Xaver-DaRed
4bf2cb418b
Merge pull request #9628 from Frankie-hz/spawnslots
[sql, lua] Implement spawn slots for Ro'Maeve, Monastic, La Theine, Konschtat, Ifrits
2026-03-17 08:14:08 +01:00
Xaver-DaRed
78c70831db
Merge pull request #9629 from Xaver-DaRed/WS_STATE
[Chore] Normalize usage of `WEAPONSKILL_STATE_EXIT` listener
2026-03-17 07:42:29 +01:00
Xaver-DaRed
33422d5d1c Move WEAPONSKILL_USE and WEAPONSKILL_TAKE listeners 2026-03-17 06:52:32 +01:00
Xaver-DaRed
7e1e254702 Normalize the usage of WEAPONSKILL_STATE_EXIT listener 2026-03-17 06:14:48 +01:00
Frankie-hz
9a84daeafa Implement Ifrit's Cauldron spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-16 22:41:28 -04:00
Frankie-hz
c26774e30d Implement Konschtat Highlands spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-16 22:22:17 -04:00
Frankie-hz
ef8628363e Implement La Theine Plateau spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-16 22:10:18 -04:00
Xaver-DaRed
cf4774282e
Merge pull request #9594 from lefneer311/base
Update augments.sql dmg delay
2026-03-17 03:03:46 +01:00
Frankie-hz
323e855bb9 Implement Monastic Cavern spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-16 21:54:07 -04:00
Frankie-hz
642370e4b5 Implement Ro'Maeve spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-16 21:46:02 -04:00
Xaver-DaRed
2db3d9f144
Merge pull request #9626 from commandobill/Fix-givemagianitem-command
[Fix] `givemagianitem` GM command
2026-03-17 01:26:57 +01:00
InnovationGuru
d6af23d3a5 Fix givemagianitem GM command
Co-authored-by: Xaver-DaRed <Xaver-DaRed@users.noreply.github.com>
2026-03-17 00:51:52 +01:00
Xaver-DaRed
e47a4dc4d7
Merge pull request #9624 from Skold177/Seasons-Greetings-Delay-Fix
[sql] Seasons Greetings Delay Fixes
2026-03-17 00:16:57 +01:00
Skold177
8b97a84e11 [sql] Seasons Greetings Delay Fixes
Updates the delay for the enemies in Seasons Greetings with a new capture.
2026-03-16 11:09:26 -04:00
Xaver-DaRed
ccc4bd7f5f
Merge pull request #9621 from WinterSolstice8/level_sync_stuff
[core] Remove status effects by flag before adding level sync
2026-03-16 04:20:33 +01:00
WinterSolstice8
cbcb68f77c
Merge pull request #9619 from WinterSolstice8/add_clua_weaponskill
[core] Add CLuaWeaponskill for lua userdata type
2026-03-15 19:13:43 -06:00
WinterSolstice8
bcb38d4777 [core] Remove status effects by flag before adding level sync 2026-03-15 18:08:48 -06:00
WinterSolstice8
a389cc6f58
Merge pull request #9566 from lumokai/bugfix/pet-respect-claim-rules
[pets, trusts] Fix pets and trusts respecting mob claim rules
2026-03-15 17:50:59 -06:00
WinterSolstice8
c4d1146910 [core] Add CLuaWeaponskill for lua userdata type 2026-03-15 17:50:25 -06:00
WinterSolstice8
e5622af81e
Merge pull request #9615 from WinterSolstice8/std_stack_usage
[core] adjust usage of std::stack pop calls
2026-03-15 17:17:59 -06:00
Xaver-DaRed
d370cf2b61
Merge pull request #9586 from Omnione/trust_work
[trusts, core, lua, sql] Trust: target change, en dmg, Amchuchu Gambits
2026-03-15 09:44:12 +01:00
Xaver-DaRed
48c0e5c6ce
Merge pull request #9611 from SlashingTangents/Out-of-the-Depths-Fix
[lua] Bug Fix "Out of the Depths" Title Reward fix
2026-03-15 09:43:33 +01:00
WinterSolstice8
f86f25d137 [core] adjust usage of std::stack pop calls
This may fix use-after-frees as pop() can call destructors.
2026-03-14 23:05:24 -06:00
MrSent
713ff5aeb7 Changed lunge check to only be light/dark SC's 2026-03-13 10:46:32 +00:00
MrSent
de69317642 Add Amchuchu's Gambits and supporting code 2026-03-13 10:45:58 +00:00
slashtangent
c170743d70 Bug Fix Out of the Depths Title Reward fix 2026-03-13 02:19:06 -05:00
Xaver-DaRed
7366cd2059
Merge pull request #9609 from Aeshur/abyssea-cleanup
[lua] Abyssea default action and lua clean up
2026-03-13 01:10:05 +01:00
Aeshur
d59e51a64f [lua] Abyssea Minor Clean up 2026-03-12 19:18:04 -04:00
Xaver-DaRed
2895d10d1c
Merge pull request #9608 from Xaver-DaRed/resist
[Magic] Change resist tier calculation to stop on resist failure
2026-03-12 07:21:11 +01:00
Xaver-DaRed
037acd26d7 Change resist tier calculation to stop on resist failure 2026-03-12 06:27:37 +01:00
Xaver-DaRed
3386e9b8da
Merge pull request #9607 from Frankie-hz/getallvars
[cpp] Adds getLocalVars lua binding for zone object
2026-03-12 02:53:37 +01:00
Xaver-DaRed
9f1e08ae81
Merge pull request #9606 from sruon/servmes_chunk
[core] Fix /servmes login multi-chunking
2026-03-12 02:29:37 +01:00
Xaver-DaRed
7179b393e8
Merge pull request #9597 from Frankie-hz/mobgroupcleanup
[sql] Remove duplicates from mob groups
2026-03-12 02:29:24 +01:00
Xaver-DaRed
b25793469f
Merge pull request #9602 from CriticalXI/requiem_of_sin_fight
[lua, sql] Implement Requiem of Sin battlefield
2026-03-12 01:56:35 +01:00
Frankie-hz
809cdd0418 [cpp] Adds getLocalVars lua binding 2026-03-11 20:53:31 -04:00
sruon
c7f03e5ecc Track FRAGMENTS offset for retries purposes 2026-03-11 18:21:09 -06:00
Critical
8ea8c0cdf6 [lua, sql] Implement Requiem of Sin battlefield 2026-03-11 09:23:51 -06:00
Xaver-DaRed
58344d1d04
Merge pull request #9603 from CriticalXI/requiem_of_sin
[lua] Implement Requiem of Sin Quest
2026-03-11 09:58:39 +01:00
Critical
0e714b66e1 [lua] Implement Requiem of Sin Quest 2026-03-10 22:55:43 -06:00
Frankie-hz
afa113481f [sql] Remove duplicates from mob groups
Removes all duplicate entries from mob groups when levels were moved out of this sql file
2026-03-11 00:05:20 -04:00
Xaver-DaRed
2b354108f3
Merge pull request #9600 from sruon/trust_augs
[core, sql] Alter Ego upgrades packets and currency
2026-03-11 04:48:52 +01:00
Xaver-DaRed
e69bd5bba3
Merge pull request #9601 from ThrisStraizo/variousbugfix
[lua] Fix Fast Blade mobskill message and add safety to COR AF3
2026-03-11 04:40:37 +01:00
ThrisStraizo
a561523612 Fix Fast Blade mobskill message and add safety to COR AF3
This PR fixes the mobskill fastblade to show the correct ready message.

This PR also runs the COR AF3 armor pickup completion through the item util and updates the door default interaction.
2026-03-10 18:07:35 -07:00
sruon
49fe639048 Alter Ego upgrades packets and currency
C2S 0x0C1
S2C 0x08E
alter_ego_points "currency"
2026-03-10 18:08:57 -06:00
Xaver-DaRed
0ee98e1fd5
Merge pull request #9592 from ThrisStraizo/pup_af3sidequest
[NPC] PUP AF3 Sidequest
2026-03-10 23:28:37 +01:00
Xaver-DaRed
59556854ae
Merge pull request #9599 from Aeshur/skillchain-resist
[c++]  Fix skillchain resistance formula
2026-03-10 21:12:07 +01:00
Xaver-DaRed
d3e46c1fce PUP AF crafting system
Co-authored-by: ThrisStraizo <ThrisStraizo@users.noreply.github.com>
Co-authored-by: sruon <sruon@users.noreply.github.com>
2026-03-10 20:34:12 +01:00
Aeshur
3b3f6ac6f0 [c++] Fix skillchain resistance formula 2026-03-10 14:51:46 -04:00
Xaver-DaRed
e777ddc4e3
Merge pull request #9596 from Frankie-hz/miscsqlfixes
[sql] Fixes typos in mob groups and spawn point sqls
2026-03-10 07:36:48 +01:00
Frankie-hz
ff95d08590 [sql] Fixes typos in mob groups and spawn point sqls
Fixes typos in mob groups and spawn point sqls
2026-03-09 21:33:24 -04:00
Xaver-DaRed
43474b5675
Merge pull request #9595 from Frankie-hz/elerespawns
[sql] Fixes elementals instantly respawning in some zones
2026-03-10 01:31:05 +01:00
Frankie-hz
e59d8ee23a [sql] Fixes elementals instantly respawning in some zone 2026-03-09 20:12:31 -04:00
lefneer311
03929f83e4
Update augments.sql dmg & delay
Wires in values for the augments which deal with melee and ranged damage and delay modifications.
2026-03-09 17:15:31 -05:00
Xaver-DaRed
3ae4f32083
Merge pull request #9590 from CriticalXI/waking_dreams
[lua] Convert Waking Dreams to IF
2026-03-09 22:09:10 +01:00
Xaver-DaRed
eab6eed53f
Merge pull request #9591 from CriticalXI/waking_dream_fight
[lua, sql] Waking Dreams battlefield audit
2026-03-09 21:40:54 +01:00
Critical
dd1441de28 [lua] Convert Waking Dreams to IF 2026-03-09 21:33:20 +01:00
Xaver-DaRed
3692d5258c
Merge pull request #9576 from ThrisStraizo/pup_af1
[mob] PUP AF1 fight Caedarva Toad
2026-03-09 20:59:19 +01:00
Critical
bba7c68fce [lua, sql] Waking Dream battlefield audit 2026-03-09 13:36:04 -06:00
Xaver-DaRed
9dae995841
Merge pull request #9581 from CriticalXI/tango_with_a_tracker
[lua, sql] Tango With A Tracker adjustments
2026-03-09 12:58:00 +01:00
Xaver-DaRed
7d13d181b0
Merge pull request #9589 from WinterSolstice8/dont_check_link_if_dead
[core] Don't try to make dead mobs link
2026-03-09 12:54:50 +01:00
WinterSolstice8
6c0ae0fdae [core] Don't try to make dead mobs link 2026-03-08 20:10:38 -06:00
WinterSolstice8
d723c632d2
Merge pull request #9588 from WinterSolstice8/dont_tap_aggro_if_dead
[core] Don't tap aggro if mob is dead
2026-03-08 20:10:01 -06:00
WinterSolstice8
ad215e34a2
Merge pull request #9587 from WinterSolstice8/underflow_fix
[core] Fix underflow with lvl -1 mob exp gain
2026-03-08 18:56:37 -06:00
WinterSolstice8
010f3b28f4 [core] Don't tap aggro if mob is dead 2026-03-08 18:56:12 -06:00
WinterSolstice8
2233cd6fc8 [core] Fix underflow with lvl -1 mob exp gain 2026-03-08 18:17:54 -06:00
Critical
1e5040d39a [lua, sql] Tango With A Tracker adjustments 2026-03-08 15:20:23 -06:00
ThrisStraizo
0a3958e825 PUP AF1 fight Caedarva Toad 2026-03-08 10:27:18 -07:00
Xaver-DaRed
6186fe6d92
Merge pull request #9580 from WinterSolstice8/lvl_-1_support
[core] [lua] Add "level -1" support
2026-03-08 13:53:06 +01:00
Xaver-DaRed
9bb5c1e3e7
Merge pull request #9578 from migiggles/patch-1
Adjusted guard rate formula to be more consistent
2026-03-08 13:52:33 +01:00
Xaver-DaRed
5d235a2f2e
Merge pull request #9584 from ThrisStraizo/puplb_autofix
PUP LB Event Puppet model
2026-03-08 09:30:50 +01:00
Xaver-DaRed
3cd9ba6a43
Merge pull request #9583 from sruon/cor_af3_instance
[sql] COR AF3 mobs hitboxes, flags
2026-03-08 09:30:21 +01:00
ThrisStraizo
ea768911e8 PUP LB Event Puppet model
This PR uses the new framework to fetch a puppet's model so that PUP LB quest start CS appropriately shows your current puppet.
2026-03-07 23:11:09 -08:00
Xaver-DaRed
d9009db850
Merge pull request #9577 from WinterSolstice8/base
[ci] Skip merge commits for length checks
2026-03-08 07:39:53 +01:00
Xaver-DaRed
329d1eab1b
Merge pull request #9574 from CriticalXI/pulling_the_plug
[lua, sql] Implement Pulling the Plug ENM
2026-03-08 07:38:43 +01:00
sruon
a12a21c858 COR AF3 mobs hitboxes, flags 2026-03-07 23:31:34 -07:00
Xaver-DaRed
8320c808ae
Merge pull request #9582 from sruon/automaton_cleanup
[core, lua] Automaton head/frame enums cleanup
2026-03-08 07:31:10 +01:00
sruon
fc60e7dc9d Automaton cleanup
- Enum classes for Head/Frame/Attachments
- Trailing returns/const wherever possible
- Refactored how automaton model is calculated
- Helper to get model lua side
2026-03-07 22:26:41 -07:00
Critical
ffd222113a [lua, sql] Implement Pulling the Plug ENM 2026-03-07 21:59:45 -07:00
WinterSolstice8
7021de121a [core] [lua] Add level -1 support, add mods to mobs 2026-03-07 20:40:12 -07:00
WinterSolstice8
5743d71666 [ci] Skip merge commits for length checks 2026-03-07 20:29:33 -07:00
migiggles
2b9b9be2e8 Update "Guard rate" skillDelta 2026-03-08 01:08:29 +01:00
Xaver-DaRed
d88b0bbb36
Merge pull request #9579 from Skold177/Treasures-and-Tribulations
Treasures & Tribulations bugfix
2026-03-07 21:35:22 +01:00
Skold177
357566299b Treasures & Tribulations bugfix
Adds a guard to prevent engage code from running more than once
2026-03-07 14:53:37 -05:00
Flibe-XI
b81a7f6e3e fishing snares for pirate chart 2026-03-07 10:52:37 -05:00
Xaver-DaRed
88cb1abdd6
Merge pull request #9570 from ThrisStraizo/pup_lb
[quest][battlefield] PUP LB (Achieving True Power)
2026-03-06 19:25:44 +01:00
Xaver-DaRed
9a5b9f99c3
Merge pull request #9573 from Aeshur/fumbling-friar
[lua] Convert quest The Fumbling Friar to IF
2026-03-06 19:24:21 +01:00
ThrisStraizo
81805e041e PUP LB (Achieving True Power)
This PR adds the quest to allow puppetmasters to break the level 70 limit.
2026-03-06 08:54:42 -08:00
Aeshur
5f3b01dd75 [lua] Convert quest The Fumbling Friar to IF 2026-03-06 08:50:36 -05:00
Xaver-DaRed
d49559463d
Merge pull request #9572 from Aeshur/shadow_model
[sql] Update Buarainech to correct model ID
2026-03-06 08:51:04 +01:00
Xaver-DaRed
5dd37fd3d6
Merge pull request #9513 from CriticalXI/module_status_effects
[lua][module] Update modules to new status effect method
2026-03-06 08:45:52 +01:00
Critical
e09af446a2 [lua][module] Update modules to new status effect method 2026-03-05 23:29:49 -07:00
Aeshur
e16249e73b [sql] Update Buarainech to correct model ID 2026-03-06 00:58:14 -05:00
WinterSolstice8
3715765335
Merge pull request #9571 from WinterSolstice8/automaton_fetch_frames_from_player_data
[core] Fetch automaton head or frame from PChar or Automaton pet
2026-03-05 22:46:15 -07:00
WinterSolstice8
92f024bb1e [core] Fetch automaton head or frame from PChar or Automaton pet 2026-03-05 21:11:11 -07:00
Xaver-DaRed
3dd4ee4cb0
Merge pull request #9568 from ThrisStraizo/pup_af3
[quest][battlefield] PUP AF3 (Puppetmaster Blues)
2026-03-06 01:25:31 +01:00
ThrisStraizo
c6c7f9aa9c PUP AF3 Puppetmaster Blues
This PR adds the quest Puppetmaster Blues and the framework for the battlefield.
2026-03-06 00:19:47 +01:00
Xaver-DaRed
82d02047c4
Merge pull request #9569 from Xaver-DaRed/onMobWeaponskill
[combat] onMobWeaponskill audit
2026-03-06 00:01:54 +01:00
Xaver-DaRed
f09456bca0 Make WEAPONSKILL_USE/TAKE listeners use skill object, not just id 2026-03-05 23:10:26 +01:00
Xaver-DaRed
785931177a Reorder onMobWeaponskill params and make usage consistent all across
This fixes a few cases of incorrect order and many cases of `action` being undefined
2026-03-05 21:48:02 +01:00
lumokai
3a6624ffb4 Add checks for master in isMobOwner 2026-03-04 00:30:45 -08:00
Xaver-DaRed
591baf1d38
Merge pull request #9565 from Skold177/Remove-Earth-Pounder-KV
[sql] Remove Earth Pounder from King Vinegarroon
2026-03-04 06:52:38 +01:00
Skold177
222b23f4f3 Remove Earth Pounder KV
Removes Earth Pounder for KV
2026-03-04 00:07:50 -05:00
Xaver-DaRed
d2a10afa5c
Merge pull request #9564 from Xaver-DaRed/hq2n3
[Synthesis] Fix HQ 2 and 3 distribution
2026-03-04 05:19:57 +01:00
Xaver-DaRed
a0670efd9b
Merge pull request #9563 from Frankie-hz/morespawnslots
[sql] Implement Castle Z Baileys, Arrapago Reef, Lower Delk Tower, Boyahda Tree spawn slots
2026-03-04 04:24:31 +01:00
Xaver-DaRed
f01aa29f13 Fix HQ 2 and 3 distribution 2026-03-04 04:18:13 +01:00
Frankie-hz
c3e5d7893a Implement The Boyahda Tree spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-03 15:20:40 -05:00
Frankie-hz
7c3618bca3 Implement Lower Delkfutt's Tower spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-03 15:20:18 -05:00
Frankie-hz
e0392b7ad6 Implement Arrapago Reef spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-03 15:19:10 -05:00
Frankie-hz
a0973b040a implement Castle Zvahl Baileys spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-03-03 15:19:00 -05:00
Xaver-DaRed
be81f9c26a
Merge pull request #9562 from Omnione/bst_jug_items
[sql] Audit and addition of all jug pet jug item pet ID's
2026-03-03 20:31:38 +01:00
Zach Toogood
4281a7f493
Merge pull request #9556 from LandSandBoat/scheduler_improvements
Core: Misc Scheduler improvements
2026-03-03 18:48:25 +00:00
Xaver-DaRed
d2873bfd4a
Merge pull request #9561 from Omnione/bst_mobpools
[sql] Add missing jug pets to mob pools
2026-03-03 19:46:45 +01:00
MrSent
c70813af68 Audit and addition of all jug pet jug items 2026-03-03 18:40:56 +00:00
Xaver-DaRed
9ca730d102
Merge pull request #9560 from Omnione/bst_petskills_and_list
[sql] Audit and update of pet list and pet skills
2026-03-03 19:39:16 +01:00
Xaver-DaRed
80760998e4
Merge pull request #9559 from Omnione/bst_mobskills
[sql] Audit and addition of mob skills to support jug skills
2026-03-03 19:39:00 +01:00
Xaver-DaRed
7d96ec860d
Merge pull request #9553 from ThrisStraizo/cor_lb
[quest][battlefield] Corsair LB (Breaking the Bonds of Fate)
2026-03-03 19:31:13 +01:00
Xaver-DaRed
137cb6ba19
Merge pull request #9558 from Omnione/bst_abilities
[sql] BST Ready Abilities abilities.sql audit
2026-03-03 19:29:17 +01:00
MrSent
70c462875d Add missing jug pets to mob pools 2026-03-03 18:21:50 +00:00
MrSent
ce80dbd2dc Audit and update of pet list and pet skills 2026-03-03 18:16:02 +00:00
MrSent
8e313be14d Audit and addition of mob skills to support jug skills 2026-03-03 18:05:54 +00:00
Zach Toogood
50343df579
Merge pull request #9557 from LandSandBoat/clean_up_CAIEventHandler
Core: Clean up CAIEventHandler
2026-03-03 18:03:44 +00:00
MrSent
5c20f3d437 bst jug abilities added 2026-03-03 17:49:21 +00:00
ThrisStraizo
8e8398c862 Corsair LB (Breaking the Bonds of Fate)
This PR adds the missing quest Breaking the Bonds of Fate so that it is now completable.
2026-03-03 09:42:16 -08:00
Zach Toogood
6e0da5e6f5 Core: Add preparedStmt(Scheduler&, ...) 2026-03-03 17:37:24 +00:00
Zach Toogood
70555ea2cc Core: Clean up CAIEventHandler 2026-03-03 16:56:36 +00:00
Zach Toogood
36faa2e85e Scheduler: Rename ioContext to mainContext, add All (vector) 2026-03-03 14:25:18 +00:00
Xaver-DaRed
d8e48155a3
Merge pull request #9554 from sruon/sj_rest_messages
[lua, sql] Subjob restriction effect messages
2026-03-03 04:08:16 +01:00
sruon
8dfc82cca4 Message on subjob restriction. No message on loss. 2026-03-02 19:43:25 -07:00
Zach Toogood
2e55875898
Merge pull request #9552 from LandSandBoat/fix_announce
Core, Modules: Fix player announce tools
2026-03-02 13:51:35 +00:00
Zach Toogood
b42bdd8061 Modules: Fix announce_player_login.lua 2026-03-02 09:39:59 +00:00
Zach Toogood
d8fe673756 Tools: Fix announce.py encoding 2026-03-02 09:23:24 +00:00
Xaver-DaRed
4139ac7049
Merge pull request #9536 from ThrisStraizo/blulimitbreak
[quest][battlefield] BLU LB (The Beast Within)
2026-03-02 05:35:31 +01:00
Xaver-DaRed
cfa8911de5
Merge pull request #9551 from Xaver-DaRed/ost
Old Sabertooth: Rework poison and file cleanup
2026-03-02 05:31:02 +01:00
Xaver-DaRed
d8ed6acbde
Merge pull request #9544 from ThrisStraizo/cor_af1_mob
[mob] Cor AF1 NM Lost Soul
2026-03-02 05:22:18 +01:00
ThrisStraizo
d293d4e0d2 BLU LB (The Beast Within)
This PR fully implements the quest The Beast Within, including the battlefield fight with Raubahn.
2026-03-01 20:13:09 -08:00
Xaver-DaRed
76e89d8123 Old Sabertooth: Rework poison and file cleanup 2026-03-02 04:59:27 +01:00
Xaver-DaRed
13598e55b6
Merge pull request #9548 from wccbuck/fix-alliance-leader-crash
[core] PacketValidator: Don't get leader of null party
2026-03-02 01:44:03 +01:00
Xaver-DaRed
c6d18866ef
Merge pull request #9546 from Frankie-hz/spawnslots
[sql] Implement North Gusta and Beaucedine Glacier spawn slots
2026-03-01 23:12:22 +01:00
Xaver-DaRed
e07fad5025
Merge pull request #9547 from SlashingTangents/smn-af-1
[lua] Bug Fix SMN AF 1 Quest - Flow
2026-03-01 23:11:45 +01:00
Will Buck
05f4e2bec5 Don't get leader of null party 2026-03-01 15:55:04 -06:00
Xaver-DaRed
2209ad782f
Merge pull request #9549 from UmeboshiXI/latenteffect_living_rod
[sql] Add Living Rod's Hidden Effect
2026-03-01 22:44:52 +01:00
Xaver-DaRed
ac783048b7
Merge pull request #9540 from sruon/msgbasic_enums
[core, lua] Enforce enum usage on BATTLE_MESSAGE2
2026-03-01 22:20:38 +01:00
Xaver-DaRed
12478653f6
Merge pull request #9550 from sruon/synth_rare_cancel
[core] Cancel synth if result is rare and already owned
2026-03-01 22:19:42 +01:00
sruon
e87d7d742d Cancel synth if result is rare and already owned 2026-02-28 22:35:23 -07:00
Umeboshi
35ab2d31f4 [sql] Add Living Rod's Hidden Effect 2026-02-28 21:16:30 -08:00
sruon
846502ea5a MsgBasic converted to PascalCase 2026-02-28 22:04:44 -07:00
WinterSolstice8
1099324777
Merge pull request #9503 from lefneer311/base
Adding Enspell Damage Percent Multiplier Effect
2026-02-28 20:23:29 -07:00
slashtangent
683f6dff56 Bug Fix SMN AF 1 Quest - Flow 2026-02-28 14:24:46 -06:00
Frank
8cb5738408 Implement North Gusta spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-02-28 10:32:45 -05:00
Frank
6a1c3c6a43 Implement Beaucedine Glacier spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-02-28 10:06:42 -05:00
WinterSolstice8
ee3762ac25
Merge pull request #9469 from Frankie-hz/spawnslots
[sql] Implement Onzozo and Qufim Island spawn slots
2026-02-28 07:44:35 -07:00
ThrisStraizo
a75c207ae9 [mob]Cor AF1 NM Lost Soul
This PR adjusts the COR AF1 NM Lost Soul for HP/LVL/STP/Immunities and more.
2026-02-27 17:49:45 -08:00
Frank
240459a2d5 Changes jug test to target a non-slotted mob 2026-02-26 17:14:14 -05:00
Frank
c842f798a0 Qufim Island spawn slots
Co-Authored-By: Valentine-PHX <231148762+Valentine-PHX@users.noreply.github.com>
2026-02-26 13:55:16 -05:00
Frank
1c11060340 Labyrinth of Onzozo spawn slots 2026-02-26 13:55:16 -05:00
Xaver-DaRed
a195a135bc
Merge pull request #9541 from Xaver-DaRed/toau7
[Fix] ToAU mission 7 getting stuck on CS option
2026-02-26 18:14:41 +01:00
WinterSolstice8
549114554e
Merge pull request #9534 from LandSandBoat/login_coro
Core: Add ASIO-based Scheduler
2026-02-26 10:08:36 -07:00
Xaver-DaRed
ca6f0ea645 Fix ToAU mission 7 getting stuck on CS option 2026-02-26 17:42:41 +01:00
Zach Toogood
2bc710507d Ext: Bump to Tracy 0.13.1
Also improves reporting for flamegraph
2026-02-26 15:52:25 +00:00
Zach Toogood
74868b81fb Ext: Bump ASIO version to 1.36.0 2026-02-26 15:16:07 +00:00
Zach Toogood
f44129419d Core: Enforce Scheduler fire-and-forget 2026-02-26 14:44:47 +00:00
Xaver-DaRed
107a161abe
[lua] Ultima Skill Audit (#9538)
Makes some adjustments to Ultima skills
2026-02-26 15:39:23 +01:00
Zach Toogood
90a067cd93 Login: Handle sessions on worker thread 2026-02-26 13:28:43 +00:00
Zach Toogood
e1bde4e09e Core: Propagate new Scheduler out to xi_map and xi_test 2026-02-26 13:28:42 +00:00
Zach Toogood
a27be118bc Core: Propagate new Scheduler out to xi_search 2026-02-26 13:28:13 +00:00
sruon
490a5d31f2 Reorder xi.msg.basic 2026-02-26 05:24:16 -07:00
sruon
6d6fb7935c BATTLE2 enforce MsgBasic usage
Deprecate xi.msg.combat

Missing item enums
2026-02-26 05:23:37 -07:00
Zach Toogood
3c2e2912c6 Core: Propagate new Scheduler out to xi_world 2026-02-26 11:37:32 +00:00
Zach Toogood
e3bc0cc44f Core: Make ConsoleService use new Scheduler 2026-02-26 10:00:19 +00:00
Jsx
a453b7a3c7
[lua] Fix addallmounts Add addallwarps [Commands] (#9509)
* [lua] Fix addallmounts Add addallwarps [Commands]

Fixes addallmounts for loop to get all mounts
Adds command for adding all warps

* correct while loop
2026-02-26 06:35:33 +01:00
Xaver-DaRed
0016332652
Merge pull request #9537 from Aeshur/cait-in-the-woods
[sql] WoTG 49 - Cait in the Woods CS NPC fix
2026-02-26 06:34:09 +01:00
Skold177
fc9f330650 [lua] Ultima Skill Audit
Makes some adjustments to Ultima skills
2026-02-26 00:31:55 -05:00
Aeshur
02a2ae762d [sql] WoTG 49 - Cait in the Woods CS NPC fix 2026-02-25 23:16:09 -05:00
Xaver-DaRed
8598938446
Merge pull request #9518 from Skold177/hell-freezes-over
[lua] ENM - When Hell Freezes Over Armoury Crate Fix
2026-02-26 05:05:37 +01:00
Xaver-DaRed
a027341728
Merge pull request #9535 from Xaver-DaRed/en
[AEs] Add en-spell check to additional effect functions. Clean mob AE sections
2026-02-26 05:02:25 +01:00
Xaver-DaRed
afda2d4359 Add en-spell check to additional effect functions. Clean mob AE sections 2026-02-26 03:54:48 +01:00
Zach Toogood
94434779ee Core: Make ConnectEngine::periodicCleanup() a coroutine 2026-02-25 23:52:34 +00:00
Zach Toogood
d4276f75a1 Core: Add ASIO-based Scheduler 2026-02-25 23:52:34 +00:00
Xaver-DaRed
191455074f
[Core] Add lua binding for non-player entities for starting an spell cast (#9533)
* Add lua binding for non-player entities for starting an spell cast

* Add `target` parameter to new function and old listener
2026-02-25 22:29:37 +01:00
Xaver-DaRed
ea97d06834 Add target parameter to new function and old listener 2026-02-25 21:21:58 +01:00
Xaver-DaRed
e34ed9f435 Add lua binding for non-player entities for starting an spell cast 2026-02-25 19:25:00 +01:00
Xaver-DaRed
a749c1d4d1
Merge pull request #9530 from Aeshur/fourth_spitewarden_cs
[lua, c++]  WoTG 37 + 46 - Spitewarden Mimicry
2026-02-25 09:26:30 +01:00
sruon
5e343e7970
Merge pull request #9529 from sruon/respawn_times_5
[lua, sql] Respawn timers pt 5
2026-02-25 09:11:39 +01:00
Aeshur
46a597d04c [lua, c++] WoTG 37/46 - Spitewarden Mimicry 2026-02-25 03:03:01 -05:00
Xaver-DaRed
e929d1fc22
Merge pull request #9526 from Aeshur/forget-me-not
[lua] WoTG 42 - Forget me Not - Lua Cleanup
2026-02-25 08:42:32 +01:00
Xaver-DaRed
a1d3a5097d
Merge pull request #9525 from Aeshur/her-memories
[lua] WoTG 41 - Her Memories - Lua Cleanup
2026-02-25 08:41:06 +01:00
Xaver-DaRed
bcf70517e0
Merge pull request #9531 from sruon/item_inter
[core] Null check before attempting to interrupt item
2026-02-25 08:30:54 +01:00
sruon
117b932c9f Null check before attempting to interrupt item
Narrow window where the item can be consumed but PC is still in ItemState due to animation
2026-02-25 00:26:59 -07:00
Aeshur
a8ea1bcd0e [lua] WoTG 42 - Forget me Not - Lua Cleanup 2026-02-25 00:22:25 -05:00
Aeshur
05fad3f936 [lua] WoTG 41 - Her Memories - Lua Cleanup 2026-02-25 00:06:34 -05:00
Xaver-DaRed
6534542e0b
Merge pull request #9524 from wccbuck/fix-abj-ein
[lua] Fix Einherjar abjuration drops
2026-02-25 03:56:42 +01:00
Will Buck
5a89192711 Fix Einherjar abjuration drops 2026-02-24 20:31:29 -06:00
Xaver-DaRed
f5b71b37a3
Merge pull request #9504 from CriticalXI/drg_era_audit
[lua, sql, c++][module] DRG Era Audit
2026-02-24 09:31:05 +01:00
Critical
bed3acfa48 [lua, sql, c++][module] DRG Era Audit 2026-02-24 09:02:57 +01:00
Xaver-DaRed
685a5dc9f4
Merge pull request #9465 from Omnione/smn
[core, lua, sql] PET AI Claim and Enmity changes
2026-02-24 09:00:06 +01:00
Xaver-DaRed
5f76ec9100
Merge pull request #9508 from Skold177/King-Vinegarroon
[lua] [sql] King Vinegarroon
2026-02-24 08:59:27 +01:00
Xaver-DaRed
f948fd3177
Merge pull request #9514 from wccbuck/item-mod-corrections
[sql] Item mod corrections: SC DMG, Crit Evasion
2026-02-24 08:57:22 +01:00
Xaver-DaRed
fec8876264
Merge pull request #9516 from CriticalXI/aoe_skill_msg
[lua,sql,c++] Correct AOE ability buff messaging
2026-02-24 08:49:45 +01:00
Xaver-DaRed
e2abdc174a
Merge pull request #9522 from Aeshur/metal-gate
[lua] Bastok [S] + Grauberg [S] locked doors
2026-02-24 08:47:03 +01:00
Xaver-DaRed
219afe66cd
Merge pull request #9523 from Aeshur/walk-of-darkness
[sql] Correct weather/sky in Walk of Echoes
2026-02-24 08:46:38 +01:00
Aeshur
3fa2d83c30 [sql] Correct weather/sky in Walk of Echoes 2026-02-24 02:08:28 -05:00
Aeshur
47cbe24ffe [lua] Bastok [S] + Grauberg [S] locked doors 2026-02-24 01:49:44 -05:00
Skold177
d991c3d6d7 [lua] [sql] King Vinegarroon
Updates KV with a capture from retail
2026-02-23 23:14:01 -05:00
WinterSolstice8
caa3e887d3
Merge pull request #9517 from sruon/status_effect_msgids
[core, sql] Status effect wear off messages, ON_ZONE flags
2026-02-23 20:39:25 -07:00
sruon
83ce4f0380
Retail accurate inventory container tracking (#9409) 2026-02-23 20:37:16 -07:00
MrSent
04dc6c25ba convert chronoshift to use copyStatusEffect 2026-02-23 20:28:47 +00:00
MrSent
af29063bce blocked player charmed mobs and mobs claiming with magic 2026-02-23 16:24:04 +00:00
MrSent
6242807e0b Review Amendments 2026-02-23 16:24:04 +00:00
MrSent
0a2870b165 Fixed pup and cleaned up a bit 2026-02-23 16:24:04 +00:00
MrSent
4dc5020dad Update Summoner and Pet functionality
- Update pets.lua and mob_pool_mods.sql: Add Atomos spawn logic

- Update Pet claiming and failed BP re-engage
2026-02-23 16:24:04 +00:00
Skold177
e450ef88d5 [lua] Hell Freezes Over Armoury Crate
Manually defines all mobIds and armoury crates
2026-02-22 21:24:05 -05:00
sruon
e7d8e23c12 Status effect ON_ZONE flags
Co-Authored-By: siknoz <78240569+siknoz@users.noreply.github.com>
2026-02-22 19:09:30 -07:00
sruon
45007b6057 Allow setting custom wear off message per status effect 2026-02-22 18:55:05 -07:00
Critical
962a811110 [lua,sql,c++] Correct AOE ability buff messaging 2026-02-22 16:06:53 -07:00
Will Buck
f65bda686c Item mod corrections: SC DMG, Crit Evasion 2026-02-22 14:58:12 -06:00
claywar
894ac8f4b1
Merge pull request #9473 from sruon/status_effect_wear_off
[core] Dont broadcast effect wears off messages
2026-02-21 19:45:37 -05:00
claywar
25cbbb705c
Merge pull request #9510 from sruon/flaky_tests
[test] Wait a little longer before asserting KA respawn
2026-02-21 19:44:06 -05:00
sruon
af9b4d5697 Dont broadcast effect wears off messages 2026-02-21 16:36:11 -07:00
sruon
8cc514f6f0 Wait a little longer before asserting KA respawn 2026-02-21 15:28:38 -07:00
Xaver-DaRed
127cda7fc5
Merge pull request #9506 from sruon/addStatusEffect
[core,lua] Refactor addStatusEffect 💣
2026-02-21 07:40:39 +01:00
sruon
0f5516a0e3 Migrate remaining addStatusEffectEx call 2026-02-20 19:21:08 -07:00
sruon
b51a58c147 Migrate addStatusEffect 2026-02-20 18:42:33 -07:00
sruon
169832b332 addStatusEffect binding 2026-02-20 18:41:57 -07:00
lefneer311
a291c39bf2
Removing space on ln814
Line 814 had a double space after the comma before the comment.
2026-02-20 11:14:33 -06:00
lefneer311
ecbf509615
Update battleutils.cpp for enspell_dmg_pct
Adds the math for enspell damage percent multipliers and adds Composure calculation
2026-02-20 10:55:41 -06:00
lefneer311
b409ca3548
Update augments.sql to enable enspell_dmg_pct 2026-02-20 10:55:09 -06:00
lefneer311
d0165058db
Update mod.lua to include enspell_dmg_pct 2026-02-20 10:54:44 -06:00
lefneer311
951b1861cc
Update modifier.h to include enspell_dmg_pct 2026-02-20 10:54:33 -06:00
Xaver-DaRed
ad50a87365
Merge pull request #9491 from ThrisStraizo/rdmaf3
[mob][quest] RDM AF3 part 2 Audit (Peace for the Spirit)
2026-02-20 17:29:45 +01:00
Xaver-DaRed
674805a5d1
Merge pull request #9467 from ThrisStraizo/rngaf3
[mob][quest] Ranger AF3 Audit (Unbridled Passion)
2026-02-20 16:59:05 +01:00
Xaver-DaRed
1eb6f4ef3d
Merge pull request #9498 from ThrisStraizo/isnmshadows
[mob] ISNM3k Shadows of the Mind
2026-02-20 16:49:14 +01:00
Xaver-DaRed
d23d2160dd
Merge pull request #9492 from KiplingFFXI/Mis-Coast-NM-Audits
[lua, sql] Mis Coast NM Audits
2026-02-20 16:47:15 +01:00
Xaver-DaRed
717c225aa1
Merge pull request #9489 from wccbuck/fix-dawn-phase-2
[lua] Fix Dawn Phase 2
2026-02-20 16:45:31 +01:00
Xaver-DaRed
74a27aa6ea
Merge pull request #9485 from Aeshur/Abyssea-Part4
[lua]  Abyssea - Main story quests Part 4
2026-02-20 16:45:06 +01:00
Xaver-DaRed
8f210d3fe2
Merge pull request #9497 from Omnione/battlefield_interaction
[core, lua] Add support to remove battlefield effect from trust
2026-02-20 16:43:32 +01:00
MrSent
a5ba09b31b trust remove battlefield effect battlefield.cpp 2026-02-20 13:16:08 +00:00
ThrisStraizo
374882bde2 ISNM3k Shadows of the Mind
This PR makes some balance adjustments to the ISNM3K fight Shadows of the Mind.
2026-02-19 18:58:02 -08:00
WinterSolstice8
4891ac3f56
Merge pull request #9493 from sruon/maprect
[core,sql] Zoneline origination points; spawn slotting
2026-02-19 10:07:14 -07:00
Zach Toogood
ccbad998c2
Merge pull request #9494 from LandSandBoat/general_xirand_updates
Engine: General updates to xirand
2026-02-19 15:27:04 +00:00
Zach Toogood
77ba9d957a Engine: General updates to xirand
- Clears up definitions and selections of different random engines
- All engines go through the same get and auto-seed routine, using a 4k initial seed sequence.
- All engines are guaranteed to be properly seeded when accessed from any thread
- Tidied up the API for xirand, and added a new weighted selection API
- Added Squirrel5 Random Engine (thanks for the recommendation JMC!)
- Added many comments and explanations
- Verified that other game server implementations also use MT/MT64/SIMD variants of MT, etc.

Co-Authored-By: Jasson McMorris <jmcmorris@users.noreply.github.com>
2026-02-19 14:33:27 +00:00
sruon
012d381bec Zoneline origination points; spawn slotting
Add the origin points for each zoneline as extracted from the DATs using xiregiondump
Adds target zonelines spawnbox scale and rotation to calculate spawn slots as retail does.

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-02-19 00:34:44 -07:00
Kipling
8023d32878 Mis Coast NM Audits 2026-02-18 11:31:49 -08:00
ThrisStraizo
8ae8829bcf Ranger AF3 Audit
This PR audits the RNG AF3 quest mob for HP/DMG/STP/Immunities and other behavior.
2026-02-18 10:53:55 -08:00
ThrisStraizo
eab1ea383e RDM AF3 part 2 Audit
This PR Audits the mob Guardian Statues for the 2nd part of the RDM AF3 quest.
2026-02-18 10:17:23 -08:00
Will Buck
765be7cd43 Fix Dawn Phase 2 2026-02-18 10:15:55 -06:00
Aeshur
6b9735b280 [lua] Abyssea - Main story quests Part 4 2026-02-18 10:25:34 -05:00
Xaver-DaRed
f57d754577
Merge pull request #9486 from ThrisStraizo/bunedrawin
[mob] Bune Draw in
2026-02-18 14:13:26 +01:00
Xaver-DaRed
306eb1d4f1
Merge pull request #9475 from UmeboshiXI/Bat_Mobskill_Lists
[lua][sql] Bat Mob Skill Lists COP+
2026-02-18 14:00:19 +01:00
Xaver-DaRed
f480284698
Merge pull request #9479 from Lance-XI/pseudo-guild-qty-audit
[sql] Update pseudo guilds and clean-up
2026-02-18 14:00:00 +01:00
Xaver-DaRed
d324dcce68
Merge pull request #9487 from ThrisStraizo/Ogmios
[mob] SMN AF3 part 2 (Carbuncle Debacle) Ogmios
2026-02-18 13:58:25 +01:00
Xaver-DaRed
12c96fa73c
Merge pull request #9481 from ThrisStraizo/bluaf2
[mob] Blue Mage AF2 Fight Audit (Omens)
2026-02-18 13:45:12 +01:00
Xaver-DaRed
68f4e23793
Merge pull request #9477 from ThrisStraizo/ninaf3
[mob] NIN AF3 Audit (True Will)
2026-02-18 13:44:46 +01:00
Xaver-DaRed
e7e890a530
Merge pull request #9474 from ThrisStraizo/ninaf2
[mob]NIN AF2 Audit (I'll take the big box)
2026-02-18 13:44:10 +01:00
Xaver-DaRed
98ee2caeaa
Merge pull request #9470 from ThrisStraizo/ninaf1
[mob][quest]NIN AF1 Audit (20 in Pirate Years)
2026-02-18 13:43:37 +01:00
Xaver-DaRed
28cd33be53
Merge pull request #9466 from CriticalXI/nin_era_audit
[lua, sql, c++][module] NIN Era Audit
2026-02-18 13:41:13 +01:00
Xaver-DaRed
f1f05271f7
Merge pull request #9483 from wccbuck/fix-apkallu-runaway
Fix Apkallu mixin run away behavior
2026-02-18 13:38:11 +01:00
ThrisStraizo
c343e8f934 SMN AF3 Ogmios
This PR adjusts the mob Ogmios for the 2nd part of the SMN AF3 questline.
2026-02-17 21:52:28 -08:00
ThrisStraizo
c2bedcec9a Bune Draw in
This PR adds the missing Draw In that Bune posses on retail.
2026-02-17 20:08:10 -08:00
Will Buck
04e36b517b Fix Apkallu mixin run away behavior 2026-02-17 13:40:41 -06:00
WinterSolstice8
0d94113a8f
Merge pull request #9480 from WinterSolstice8/remove_bigmobmod
[core] Remove "big" mobmod
2026-02-17 08:02:59 -07:00
ThrisStraizo
cb218d88e7 Blue Mage AF2 Fight Audit
This PR audits the blue mage AF2 fight for DMG/Regain and general behavior.
2026-02-16 21:08:35 -08:00
WinterSolstice8
34a5fe2f8e [core] Boost roam randomness to uint32 2026-02-16 22:02:22 -07:00
WinterSolstice8
206c245d8b [core] Remove "big" mobmod 2026-02-16 21:55:08 -07:00
Lance-XI
2c2ca20d03 [sql] Update pseudo guilds and clean-up 2026-02-16 22:45:53 -05:00
ThrisStraizo
d0baeec999 NIN AF3 Audit
This PR audits the LVL/HP and general behavior of the mobs of the NIN AF3 fight.
2026-02-16 14:28:02 -08:00
Xaver-DaRed
258ce1c84a
Merge pull request #9476 from UmeboshiXI/defaultIfNil_print
[lua] Comment out print in utils.defaultIfNil()
2026-02-16 17:31:31 +01:00
Umeboshi
8f9dc1b4dc [lua] Comment out print in utils.defaultIfNil() 2026-02-16 08:04:04 -08:00
Umeboshi
ad9cd30295 [lua][sql] Bat Mob Skill Lists COP+ 2026-02-16 07:28:04 -08:00
ThrisStraizo
296d535a66 NIN AF2 Audit
This PR audits the NIN AF2 quest mob for HP/DMG/Immunities and general behavior.
2026-02-15 23:53:25 -08:00
Xaver-DaRed
7ffbe31329
Merge pull request #9471 from Skold177/Fenrir
[lua] [sql] The Moonlit Path
2026-02-16 08:09:24 +01:00
Xaver-DaRed
505c2b3477
Merge pull request #9472 from WinterSolstice8/helm_emote
[core] [lua] Send HELM emote to other players
2026-02-16 07:52:38 +01:00
Xaver-DaRed
41bfade44e
Merge pull request #9468 from wccbuck/fix-moongates
[lua] Fix Ro'Maeve Moongates
2026-02-16 07:49:57 +01:00
WinterSolstice8
d1ec970cd0
Merge pull request #9449 from sruon/help_desk
[core] Help Desk support
2026-02-15 22:30:47 -07:00
WinterSolstice8
c3e062b6b3 [core] [lua] Send HELM emote to other players 2026-02-15 22:24:05 -07:00
Skold177
69417d31a0 [lua] [sql] Fenrir Prime
Updates The Moonlit Path with captures from Retail
2026-02-15 23:27:41 -05:00
ThrisStraizo
f5c04a600a NIN AF1 Audit
This PR audits the NIN AF1 mobs for their HP/DMG/Immunities and other behavior.
2026-02-15 19:48:15 -08:00
Will Buck
d67285afd4 Fix Ro'Maeve Moongates 2026-02-15 17:34:28 -06:00
WinterSolstice8
b072594f9e
Merge pull request #8360 from UmeboshiXI/Mobskills_Magical_Oct25
[lua, sql] Mobskill Rework: Magical Skills
2026-02-15 16:19:04 -07:00
Critical
b28ac45157 [lua, sql, c++] Ninja Era Audit 2026-02-15 12:01:28 -07:00
Xaver-DaRed
7788ae79ab
Merge pull request #9464 from KiplingFFXI/Newton-Movalpolos-NM-Audits
[lua, sql] Newton Movalpolos NM Audits
2026-02-15 16:33:34 +01:00
Xaver-DaRed
ca7aed01b8
Merge pull request #9463 from CriticalXI/rng_era_audit
[lua, sql][module] RNG Era Audit
2026-02-15 16:30:00 +01:00
Xaver-DaRed
763892c45c
Merge pull request #9462 from Aeshur/Abyssea-Part3
[lua] Abyssea - Main story quests Part 3
2026-02-15 16:28:14 +01:00
sruon
e04060b827 Help Desk support
GP_CLI_COMMAND_RESCUE optional self-service unstuck
FAQ_GMCALL/FAQ_GMPARAM/ACK_GMMSG C2S packets to handle creating requests.
FAQ_GMPARAM/SET_GMMSG S2C packets to handle forwarding responses to clients.

Co-Authored-By: atom0s <atom0s@users.noreply.github.com>
2026-02-14 23:33:03 -07:00
Kipling
5d291a669a Newton Movalpolos NM Audits
Co-authored-by: Critical <48370698+CriticalXI@users.noreply.github.com>
2026-02-14 22:13:43 -08:00
Critical
45b3f244bc [lua, sql][module] RNG Era Audit 2026-02-14 22:31:41 -07:00
Umeboshi
d221090151 [lua] Magical Mobskill Rework Refactor 2026-02-14 21:26:33 -08:00
Xaver-DaRed
9117f16687
Merge pull request #9461 from Skold177/Garuda_Prime_TBW
[lua] [sql] Lv60 Avatar Fight Audit (Trial by...)
2026-02-15 05:41:59 +01:00
Aeshur
6ff9e191c9 [lua] Abyssea - Main story quests Part 3 2026-02-14 23:38:45 -05:00
Skold177
c43405c70f [lua] [sql] Lv60 Avatar Audits (Trial By...)
Adds Elegy Immunity, 1.5x Base Damage & Warrior main job to all Avatar fights
2026-02-14 22:59:28 -05:00
Umeboshi
8a82772fc7 [lua] Define more monskill ENUMs 2026-02-14 18:39:28 -08:00
Umeboshi
4d6a102533 [lua] Magic Mobskill Rework 3/3 2026-02-14 18:39:28 -08:00
Umeboshi
aca65af5d3 [lua] Magic Mobskill Rework 2/3 2026-02-14 18:39:28 -08:00
Umeboshi
4e3d25c0aa [lua][sql] Correcting Amphiptere Knockback Skill ID 2026-02-14 18:39:28 -08:00
Umeboshi
bfd92af853 [lua] Mobskill Rework: Magical 2026-02-14 18:39:28 -08:00
Xaver-DaRed
b0f00e2757
Merge pull request #9459 from Skold177/Fire-in-the-Sky2
[lua] [sql] ENM Fire in the Sky
2026-02-15 02:52:44 +01:00
Xaver-DaRed
8766443df5
Merge pull request #9458 from Xaver-DaRed/AF
[AF] Track which AF pieces from coffers have been obtained
2026-02-15 02:51:42 +01:00
Skold177
2e25cf2ea4 [lua] [sql] ENM Fire in the Sky
Implements the ENM Fire in the Sky
2026-02-14 19:10:49 -05:00
Xaver-DaRed
478c041c07
Merge pull request #9460 from ThrisStraizo/bstaf3
[mob] BST AF3 Mob Audit
2026-02-15 00:43:53 +01:00
Xaver-DaRed
40f5d19231
Merge pull request #9455 from sruon/fix_scripted_respawn
[core, lua, test] Scripted respawns fixes
2026-02-15 00:42:51 +01:00
Xaver-DaRed
e8753bcfc9
Merge pull request #9457 from ThrisStraizo/altedourqmpos
[npc] WHM AF3 QM Position
2026-02-15 00:42:40 +01:00
Xaver-DaRed
73544c6b64
Merge pull request #9452 from CriticalXI/rng_era_audit
[lua, sql, c++] Ranger job adjustments
2026-02-15 00:41:01 +01:00
Xaver-DaRed
fd21a91119
Merge pull request #9448 from ThrisStraizo/sonicboom
[mobskill] Sonic Boom Audit
2026-02-15 00:38:54 +01:00
Xaver-DaRed
eca4981180
Merge pull request #9447 from Aeshur/Abyssea-Part2
[lua] Abyssea - Main story quests Part 2
2026-02-15 00:37:57 +01:00
Xaver-DaRed
c1b3191ed5 Track which AF pieces from coffers have been obtained 2026-02-15 00:32:45 +01:00
ThrisStraizo
f70b36bdb0 Sonic Boom Audit
This PR audits the duration of sonic boom.
2026-02-14 14:20:45 -08:00
ThrisStraizo
5ced57ee62 BST AF3 Mob Audit
This PR audits the mobs of the BST AF3 quest.
2026-02-14 14:15:38 -08:00
ThrisStraizo
affb7ade2c [npc] WHM AF3 QM Position
This PR fixes the position of the QM for WHM AF3 mob Altedour I Tavnazia
2026-02-14 12:49:40 -08:00
Critical
1f8c0d05d8 [lua, sql, c++] Ranger job adjustments 2026-02-14 11:34:11 -07:00
sruon
d1db4d7ef2 setRespawnTime(0) disables respawn 2026-02-14 10:55:24 -07:00
Aeshur
2d9b845774 [lua] Abyssea - Main story quests Part 2 2026-02-14 11:52:38 -05:00
Xaver-DaRed
a612ea13a5
Merge pull request #9453 from ThrisStraizo/bstaf2
[mob] BST AF2 mob audit Dabotz's Ghost
2026-02-14 17:24:43 +01:00
Xaver-DaRed
2816d4aa20
Merge pull request #9446 from Hatberg/synthesis-key-item-june-2012
[sql] Synthesis Key Item recipes for June 2012 (ABYSSEA)
2026-02-14 17:18:58 +01:00
Xaver-DaRed
bd2eb68ba2
Merge pull request #9439 from Lance-XI/tenshodo-qty-guild-audit
[sql] Update quantity of items sold by Tenshodo guild
2026-02-14 17:18:17 +01:00
Xaver-DaRed
8f31b0fd5b
Merge pull request #9443 from UmeboshiXI/defaultIfNil_Adjustment
[lua] Allow defaultIfNil() to accept tables/boolean.
2026-02-14 17:03:10 +01:00
Xaver-DaRed
f407af67ee
Merge pull request #9442 from sruon/fellow
[lua] Jeuno Quest: Unlisted Qualities
2026-02-14 17:02:32 +01:00
bliven-was-taken
bd6be74d6d
Add missing comment to mob_droplist.sql
Marids in Thickets had no drop pool.
2026-02-14 17:01:11 +01:00
Xaver-DaRed
27063dad82
Merge pull request #9406 from CriticalXI/sam_era_audit
[lua, sql, cpp][module] Samurai Era Audit
2026-02-14 16:47:31 +01:00
Xaver-DaRed
f05ba598c6
Merge pull request #9450 from Skold177/Apocalyptic-Ray
[sql] Apocalyptic Ray Range
2026-02-14 16:43:49 +01:00
Xaver-DaRed
5d2c1c645f
Merge pull request #9454 from sruon/trust_action
[core] ACTION entity lookup order change for trusts
2026-02-14 16:43:20 +01:00
sruon
d3865d613b Set allow respawn for scripted mobs setting timer in initialize 2026-02-14 08:08:08 -07:00
sruon
e490bf8f34 ACTION entity lookup order change for trusts 2026-02-14 04:29:11 -07:00
ThrisStraizo
ce1789b28a BST AF2 mob audit
This PR audits Dabotz's Ghost from the BST AF2 quest.
2026-02-13 23:41:52 -08:00
Skold177
c5eaada01b [sql] Apocalyptic Ray Range
Updates the range of Apocalyptic Ray
2026-02-14 00:34:41 -05:00
Critical
d4f73598a5 [lua, sql, cpp][module] Samurai Era Audit 2026-02-13 21:26:54 -07:00
sruon
1fcccb52fe Adventuring Fellows names 2026-02-13 20:32:45 -07:00
sruon
a3b72d46e6 Jeuno Quest: Unlisted Qualities
Adventuring Fellows unlock quest 1/3
2026-02-13 18:23:53 -07:00
Hatberg
2ee8e1b48e Synthesis key item recipes June 2012 2026-02-14 01:45:35 +01:00
Umeboshi
4b9bd4c540 [lua] Allow defaultIfNil() to accept tables/boolean. 2026-02-13 05:18:30 -08:00
Xaver-DaRed
2ceb16cb2d
Merge pull request #9436 from ThrisStraizo/pldaf3
[mob] PLD AF3 Fight Audit (Under Oath)
2026-02-13 05:44:13 +01:00
Xaver-DaRed
ac8339b9bd
Merge pull request #9437 from SlashingTangents/Marquis-Andrealphus
[lua] Quest NM Marquis Andrealphus Bug Fix
2026-02-13 05:42:40 +01:00
Xaver-DaRed
1a9bcbb954
Merge pull request #9440 from Skold177/Brothers
[lua] [sql] ENM Brothers
2026-02-13 05:32:53 +01:00
Xaver-DaRed
a5e7976913
Merge pull request #9441 from Skold177/sql]-Promyvion-ENM-Sizes/Hitboxes
[sql] Envier size/hitbox
2026-02-13 05:32:06 +01:00
Skold177
855f1d1926 [sql] Envier size/hitbox
Adds the size/hitbox for Envier inside of the ENM
2026-02-12 23:29:14 -05:00
Skold177
fcf1b3d11c [lua] [sql] ENM Brothers
Updates the ENM Brothers with captures from retail.
2026-02-12 23:07:23 -05:00
Lance-XI
fc758a3050 [sql] Update quantity of items sold by Tenshodo guild 2026-02-12 20:44:22 -05:00
claywar
9e192a1f36
Merge pull request #9438 from LandSandBoat/history/February-2026-ID-updates
[client] February 2026 Version Update
2026-02-12 07:48:02 -05:00
claywar
0656a8cb90
[client] NPC ID shifts 2026-02-12 07:07:43 -05:00
claywar
9d4674b9a3
[client] Text ID shifts, Version update
Fixed comments for the following zone Text IDs:
- Buburimu Peninsula
- Davoi
- Misareaux Coast
- Castle Oztroja
- Gusgen Mines
- Valkurm Dunes
- Waughroon Shrine

Corrects duplicate references for "You find nothing." in Davoi
2026-02-12 06:29:35 -05:00
slashtangent
3500a6d4d3 Quest NM Marquis Andrealphus Bug Fix 2026-02-12 04:31:37 -06:00
WinterSolstice8
5a3a26feaf
Merge pull request #9435 from WinterSolstice8/bump_min_verion_xiloader
[login] Enforce xiloader 2.1.x
2026-02-11 21:24:10 -07:00
ThrisStraizo
21d9124cc1 PLD AF3 Fight Audit
This PR audits the PLD AF3 fight with the mobs Three-eyed Prozpuz and One-eyed Gwajboj
2026-02-11 20:21:12 -08:00
Xaver-DaRed
89d01aece8
Merge pull request #9428 from Xaver-DaRed/listeners
[Cleanup] `ABILITY` listeners
2026-02-12 05:02:47 +01:00
WinterSolstice8
1d1c2320cc [login] Enforce xiloader 2.1.x 2026-02-11 20:36:21 -07:00
Xaver-DaRed
692689ff12
Merge pull request #9433 from ThrisStraizo/pldaf2
[mob] PLD AF2 Mob Audit (A Boy's Dream)
2026-02-12 04:36:19 +01:00
Xaver-DaRed
cce0270875 Cleanup ABILITY listeners 2026-02-12 04:35:41 +01:00
Xaver-DaRed
b4eec3ef45
Merge pull request #9429 from ThrisStraizo/pldaf1
[mob] PLD AF1 (Sharpening the Sword) Audit Polevik
2026-02-12 04:35:16 +01:00
Xaver-DaRed
be6d7f0d56
Merge pull request #9421 from Aeshur/Abyssea-Part1
[lua] Abyssea - Dawn of Death, Maws Clean up
2026-02-12 04:34:38 +01:00
Xaver-DaRed
4895146c0f
Merge pull request #9423 from KiplingFFXI/Oldton-Movalpolos-NM-Audits
[lua, sql] Oldton Movalpolos NM Audits
2026-02-12 04:31:00 +01:00
Xaver-DaRed
15ffc4b311
Merge pull request #9430 from Skold177/Spring-Water
[sql] Ro'meave Spring Water Drop Rate
2026-02-12 04:30:04 +01:00
Xaver-DaRed
a3fcb4c7d9
Merge pull request #9431 from ThrisStraizo/gusgenchestpos
Gusgen Treasure Cheast POS
2026-02-12 04:28:05 +01:00
Xaver-DaRed
25b7bb996f
Merge pull request #9432 from WinterSolstice8/loc.zone_nullptr_checks
[core] Add nullptr checks to direct usages of loc.zone in lua baseentity
2026-02-12 01:44:27 +01:00
ThrisStraizo
c142368c38 PLD AF2 Mob Audit
This PR audits the mobs of the PLD AF2 fights.
2026-02-11 15:07:00 -08:00
WinterSolstice8
0e2e240883 [core] Add nullptr checks to direct usages of loc.zone in lua baseentity 2026-02-11 15:54:46 -07:00
ThrisStraizo
92dd48463c Gusgen Treasure Cheast POS
This PR updates the positions of the treasure chests in Gusgen Mines to be retail accurate.
2026-02-11 11:46:12 -08:00
WinterSolstice8
cf1e08bd8e
Merge pull request #9418 from 9001-Solutions/9001/trust-tokens
[core, sql, auth] Trust Tokens - Remember this computer for X days 2FA
2026-02-11 09:57:46 -07:00
Skold177
2b72af4d38 [sql] Ro'meave Spring Water Drop Rate
Changes the drop rate from Very Rare to Rare
2026-02-11 10:50:32 -05:00
Kipling
2c7635a1ae Oldton Movalpolos NM Audits
Oldton Movalpolos NM Audits

Co-Authored-By: Skold177 <113406182+Skold177@users.noreply.github.com>
2026-02-10 21:55:19 -08:00
ThrisStraizo
4b8069e264 PLD AF1 Audit
This PR audits the PLD AF1 mob Polevik for HP/Delay/DMG/Resistances and general behavior.
2026-02-10 20:11:41 -08:00
Xaver-DaRed
58ac7e979f
Merge pull request #9427 from ThrisStraizo/birddrawin
Roc/Simurgh draw in adjustment
2026-02-11 01:27:15 +01:00
ThrisStraizo
887c6aa2bc Roc/Simurgh draw in adjustment
This PR adjusts the draw in parameters to more closely resemble retail while removing problematic spawn locations for Roc.
2026-02-10 16:05:48 -08:00
Xaver-DaRed
3cf4da886c
Merge pull request #9415 from Xaver-DaRed/clam
[Hobbies] Clamming rewrite
2026-02-11 00:28:47 +01:00
WinterSolstice8
804406e269
Merge pull request #9426 from Xaver-DaRed/xolotl
[Digging] Relax position distance check and make it more precise
2026-02-10 15:28:41 -07:00
WinterSolstice8
c9a0bac513
Merge pull request #9417 from Xaver-DaRed/panacea-fu
[Fix] Make `Flask of Panacea` remove Slow instead of paralysis
2026-02-10 15:27:59 -07:00
Xaver-DaRed
9f7e673e56
Merge pull request #9425 from Xaver-DaRed/consistent
[Cleanup] `WEAPONSKILL_TAKE` listener usage and reorder parameters
2026-02-10 21:36:21 +01:00
Aeshur
d1816cf0c0 [lua] Abyssea - Dawn of Death, Maws Clean up 2026-02-10 14:31:04 -05:00
Xaver-DaRed
05cc75a78a Digging: Relax position distance check and make it more precise 2026-02-10 19:14:59 +01:00
Xaver-DaRed
a7d817f202 Cleanup WEAPONSKILL_TAKE listener usage and reorder parameters 2026-02-10 18:16:05 +01:00
9001-Sols
b382f9fabb Trust Tokens 2026-02-10 10:58:26 -05:00
Xaver-DaRed
02cb04dbb5
Merge pull request #9424 from ThrisStraizo/bunbun
[mob] Black Coney Audit
2026-02-10 16:47:33 +01:00
Xaver-DaRed
cbf6ff56f2
Merge pull request #9420 from ThrisStraizo/brdaf1and2
[mob] BRD AF1 (Painful Memory) and AF2 (The Requiem) Audit
2026-02-10 16:44:01 +01:00
Xaver-DaRed
6b82b19b46
Merge pull request #9419 from Skold177/KS99-Wyrm-Draw-in-
[lua] KS99 Early Bird Catches the Wyrm Draw-in fix
2026-02-10 16:33:44 +01:00
Xaver-DaRed
2bc825d1f9
Merge pull request #9422 from ThrisStraizo/chestitems
[chests] Battle Gloves and Electrum Ring rates
2026-02-10 16:31:27 +01:00
ThrisStraizo
445fd325c0 Black Coney Audit
This PR audits Black Coney for HP/STP/Immunities and general behavior.
2026-02-09 23:10:07 -08:00
ThrisStraizo
d555335184 [chests] Battle Gloves and Electrum Ring rates
This PR adjusts the drop rate of Battle Gloves and Electrum Ring.
2026-02-09 20:10:40 -08:00
ThrisStraizo
e9ecd85107 BRD AF1 and AF2 Audit
This PR audits the HP/MP/DMG/Immunities/STP and general behavior of mobs from the BRD AF1 and AF2 fights.
2026-02-09 19:24:49 -08:00
Skold177
952c7f953b KS99 Draw-In
Changes KS99 Wyrm Draw-in logic
2026-02-09 19:34:57 -05:00
Xaver-DaRed
022e9a635f Make Flask of Panacea remove slow instead of paralysis 2026-02-09 18:14:56 +01:00
Xaver-DaRed
350714de89
Merge pull request #9416 from SlashingTangents/MNK-AF2
[lua] MNK AF2 Bug Fix no KI check
2026-02-09 16:52:03 +01:00
Xaver-DaRed
3c5f329cf1
Merge pull request #9412 from ThrisStraizo/brdaf3
[mob] BRD AF3 Bugaboo (The Circle of Time)
2026-02-09 16:49:27 +01:00
Xaver-DaRed
3029779edb
Merge pull request #9408 from ThrisStraizo/smnaf2and3
[mob] SMN AF 2 (Class Reunion) and SMN AF 3 (Carbuncle Debacle) audit
2026-02-09 16:48:37 +01:00
Xaver-DaRed
4eace37717 Clamming rewrite: Complete loot lists and add logic for variable rates
This also allows implementing future requirement logic if needed
2026-02-09 16:16:04 +01:00
Xaver-DaRed
2103afd715 Clamming rewrite: Toh Zonikki logic conversion 2026-02-09 16:16:04 +01:00
Xaver-DaRed
7715effc23 Clamming rewrite: Clamming point NPC logic and separation 2026-02-09 16:16:04 +01:00
slashtangent
56d0e093f5 MNK AF2 Bug Fix no KI check 2026-02-09 01:19:33 -06:00
Xaver-DaRed
6d691c9885
Merge pull request #9414 from WinterSolstice8/sacrarium_init_doors
[lua] Init Sacrarium labyrinth doors on startup
2026-02-09 07:39:58 +01:00
Xaver-DaRed
2035494c79
Merge pull request #9410 from SlashingTangents/Oggbi
[lua] Move Oggbi's Default Action back to Default Actions lua
2026-02-09 07:39:43 +01:00
WinterSolstice8
8376d49b07 [lua] Init Sacrarium labyrinth doors on startup 2026-02-08 22:35:06 -07:00
Xaver-DaRed
eb9a3f2c34
Merge pull request #9413 from WinterSolstice8/no_half_guantee_enfeebs
[lua] Remove resist rank check for mobs in calculateResistanceFactor
2026-02-09 06:02:27 +01:00
WinterSolstice8
0e94b7f163
Merge pull request #9280 from sruon/packetcap
[module] PacketCap: save clients packets
2026-02-08 21:47:11 -07:00
WinterSolstice8
8f6b9a982c
Merge pull request #9402 from Xaver-DaRed/ddd
[Fix] Treasure weakness time
2026-02-08 21:46:55 -07:00
WinterSolstice8
b38874182d [lua] Remove resist rank check for mobs in calculateResistanceFactor 2026-02-08 21:39:51 -07:00
Xaver-DaRed
adf557e0e8
Merge pull request #9411 from WinterSolstice8/jol_stuff
[lua] Minor JoL and AV adjustments, set mob MACC to A+ rank from skill with no skill rank from main jobs
2026-02-09 05:22:28 +01:00
WinterSolstice8
751eda8733
Merge pull request #9385 from Xaver-DaRed/player-check
[Chore] Add player check to all mobs that grant a title in onMobDeath
2026-02-08 21:04:45 -07:00
Xaver-DaRed
98553f0749
[lua][sql] Consolidate Hippogryph Families (#9405) 2026-02-09 04:59:46 +01:00
WinterSolstice8
1b6201db12 [lua] JoL adjustments for edge cases, some retail accuracy for AV spawn 2026-02-08 20:57:29 -07:00
ThrisStraizo
ddb0443ba7 BRD AF3 mob audit
This PR audits the mob Bugaboo from the BRD AF3 quest The Circle of Time
2026-02-08 19:50:37 -08:00
WinterSolstice8
b138ad5f2e [lua] If a mob has zero skill from skill rank, set it to A+
Note: if a mob casts magic not from its jobs it's "Exceptional",
and thus should have A+ rank despite the jobs having none.
2026-02-08 20:11:02 -07:00
WinterSolstice8
565ea41a3d [lua] Uncomment 180s idle despawn time in Absolute Virtue 2026-02-08 20:10:30 -07:00
ThrisStraizo
43e73d7b5d SMN AF2 and AF3 Audit
This PR audits the mobs of the SMN AF2 and AF3 fights for LVL/HP/immunities and behavior.
2026-02-08 17:37:17 -08:00
slashtangent
634005f9bf Move Oggbi's DA back to the DA lua 2026-02-08 19:35:59 -06:00
Xaver-DaRed
348dbd1ecb Minor treasure cleanup
Removes 2 local functions. They only make the logic more complex than needed
2026-02-09 02:31:02 +01:00
sruon
7360d4b931
[core] Misc static analysis fixes [nil checks, truncation, casts] (#9407)
* Iterate over correct range for Campaign Ops missions

* Return if failed to insert pet in zone

* No blind cast of furnishing items into flower pots

* Fix bazaar buy error logging when target is self

* Proper bi-directional trade check

* Check NPC is valid when talking as MON

* Protect fclose for login.key

* Erase entered player by ID in battlefields

* Fix Tranquil Heart healing skill truncation

* Add missing nil checks

Reorders nil checks to protect against unsafe dereference.

* Fix Aura Size mod truncation

* Check correct variable for nil when adding member to party

* Store battlefields as unique_ptr

Code used to leak if registration failed for any reason.

* Reorder nil check when loading elevators

* static_cast GEO master

* Ensure Skillchain effect was applied before dereferencing

* Fix fishing unsafe dereference when the mob might not exist

* Log if parent entity is nil while updating AI states
2026-02-09 00:52:37 +01:00
Umeboshi
765c824a1c [lua][sql] Consolidate Hippogryph Families 2026-02-08 13:58:37 -08:00
Xaver-DaRed
111cecac0b
Merge pull request #9404 from CriticalXI/sam_era_audit
[lua] Implement Samurai job util
2026-02-08 21:59:43 +01:00
Critical
b889931b5a [lua] Implement Samurai job util 2026-02-08 13:37:42 -07:00
Xaver-DaRed
87ab2234e2
Merge pull request #9403 from Lance-XI/fishing-qty-guild-audit
[sql] Update quantity of items sold by Fishing guild
2026-02-08 21:19:01 +01:00
Xaver-DaRed
4a5a1d804d
Merge pull request #9396 from ThrisStraizo/smnaf1
[mob] SMN AF1 (The Puppet Master) BCNM Audit
2026-02-08 20:15:05 +01:00
Lance-XI
d676d817f6 [sql] Update quantity of items sold by Fishing guild 2026-02-08 13:54:23 -05:00
ThrisStraizo
8fd8ce133c SMN AF1 Fight Audit
This PR Audits the SMN AF1 fight for LVL/Delay/STP/Spells and general behavior for more retail accuracy.
2026-02-08 10:50:57 -08:00
Xaver-DaRed
276ca02ab2
Merge pull request #9386 from ThrisStraizo/SAM_AF3
[interaction][mob] SAM AF3 (A thief in Norg) Audit
2026-02-08 19:46:08 +01:00
Xaver-DaRed
055c11e2e5 Fix treasure weakness time 2026-02-08 19:34:53 +01:00
ThrisStraizo
13fcc0aa8f SAM AF3 Audit
This PR audits the SAM AF3 fight for levels/hp/dmg/immunities and general behavior.

This PR also adds the missing flavor message after completing the battlefield.
2026-02-08 10:22:27 -08:00
Xaver-DaRed
b23ced793c
Merge pull request #9399 from SlashingTangents/Carpenter's-Landing-QM-Mystery
[SQL] Turns off a QM in Carpenters Landing - Unknown POS or Purpose
2026-02-08 17:37:19 +01:00
Xaver-DaRed
0e32d69409
Merge pull request #9401 from ayechonk/rng-af3-ice-arrows-fix
RNG AF3 - passing correct amount of ice arrows
2026-02-08 17:35:04 +01:00
Xaver-DaRed
02f0c6f8f4
Merge pull request #9383 from UmeboshiXI/Breath_Mobskill_Adjustments
[lua] Breath Mobskill Adjustments
2026-02-08 17:30:57 +01:00
Xaver-DaRed
6f3b7df14e Add player check to all mobs that grant a title in onMobDeath
And some cleanup
2026-02-08 17:30:20 +01:00
Xaver-DaRed
ba5da15442
Merge pull request #9400 from UmeboshiXI/Mob_Family_Consolidation_Automatons
[sql] Consolidate Automaton Mob Family
2026-02-08 17:27:12 +01:00
Xaver-DaRed
ba111d052f
Merge pull request #9394 from sruon/drawin_minotaur
[lua] Minotaur/KV party draw-in get pet master alliance
2026-02-08 17:19:50 +01:00
sruon
704cbf8951
[core] ASan/UBSan fixes [UAF/overflows/NaN/bad casts] (#9388)
* Jugpet timer overflow UB fix

* Dynamic TargId capacity can be 0 during testing

* Remove clearPath/pathThrough unnecessary cast

* Remove GetEntityWeapon cast to CMobEntity

This can be called on many type of entities which are not necessarily mobs

* SELL_SET use-after-free when logging sale

* Guard against vector reallocation mid-swing

* Track last attacker by ID rather than pointer

Certain codepaths are referencing possibly dangling pointers when executing in timers. Sidesteps the issue by refetching the entity at consumption time.

* updateEnmityFromDamage bad downcast fix

Base entity is not necessarily a mob

* CheckForDamageMultiplier check for entity type

Attacker is not necessarily a player.

* Resolve target by ID before attempting to face it

In some scenarios PC can disappear as the mob is preparing a mobskill leading to crashes or worse

* Check type before emitting ROE heal/buff event

* Check for NaN before handing off to Detour

* Enforce alignment on party member buffs struct

* getPartyJob use PMaster if called on trusts

* BST pets declaim logic check for null and type

* atan2f in worldAngle to avoid division by zero

* Prevent packet object slicing

Certain packets have extra members beyond the buffer but are being passed as CBasicPacket during copy. Mostly relevant for BATTLE2 and LOGOUT

* Explicit uint32 for buff timers overflow

* ItemState check if item was destroyed before manipulating

* float to uint8 cast UB in worldAngle
2026-02-08 17:18:59 +01:00
Xaver-DaRed
e739f3014c
Merge pull request #9389 from ThrisStraizo/chestpos
Horu/CastleKeep Chest Spawn pos
2026-02-08 17:17:19 +01:00
Xaver-DaRed
a2ec8e8169
Merge pull request #9387 from ThrisStraizo/lizardtpmoves
[sql] Lizard TP move ready times audit
2026-02-08 17:16:47 +01:00
Xaver-DaRed
aa225c0285
Merge pull request #9393 from sruon/avatar_bp_ignore_shadows
[lua] Avatar "spells" mobskills ignore shadows
2026-02-08 17:15:47 +01:00
Xaver-DaRed
e6ee461c3b
Merge pull request #9392 from sruon/bst_hitboxes
[sql] BST jugpets hitboxes, revert model for Beetle
2026-02-08 17:14:30 +01:00
Xaver-DaRed
85d319bafe
Merge pull request #9391 from ThrisStraizo/gemnerf
Treasure/Coffer gem drop rate adjustment
2026-02-08 17:14:00 +01:00
Xaver-DaRed
ec2b28aa98
Merge pull request #9390 from Lance-XI/woodworking-qty-guild-audit
[sql] Update quantity of items sold by Woodworking guild
2026-02-08 17:12:56 +01:00
Chris Honkonen
b55bee1685 passing correct amount of ice arrows 2026-02-08 10:41:50 -05:00
WinterSolstice8
28902698d2
Merge pull request #9380 from Xaver-DaRed/macc
[Magic] Overhaul magic_hit_rate functions to use a parameter table
2026-02-08 06:30:46 -07:00
Umeboshi
733d52a302 [sql] Consolidate Automaton Mob Family 2026-02-08 00:11:54 -08:00
slashtangent
8c73659809 Turns off a QM in Carpenters Landing 2026-02-08 01:34:40 -06:00
sruon
bcf67e7290 Minotaur/KV party draw-in consider pet master 2026-02-07 00:29:25 -07:00
sruon
6d51727950 Avatar "spells" mobskills ignore shadows 2026-02-06 23:43:02 -07:00
sruon
9b3e1b35f8 BST jugpets hitboxes
Change Beetle model back to the non-yellow variant
2026-02-06 23:11:58 -07:00
Lance-XI
11fae471ea [sql] Update quantity of items sold by Woodworking guild 2026-02-06 23:56:47 -05:00
ThrisStraizo
f047a43c67 Treasure/Coffer gem drop rate adjustment
This PR nerfs the drop rate of gems from Chests and Coffers.
2026-02-06 20:52:00 -08:00
ThrisStraizo
733df81c2a Horu/CastleKeep Chest Spawn pos
This PR adds the missing chest spawn positions for Inner/Outer Horu and Castle Zvhal Keep.
2026-02-06 19:59:50 -08:00
ThrisStraizo
056cd9e5a2 Lizard TP move ready times audit
This PR audits the ready time of Lizard TP moves using captain.

They should feel much closer to their retail counterparts.
2026-02-06 12:10:20 -08:00
Umeboshi
53cd826623 [lua] Breath Mobskill Adjustments 2026-02-06 02:50:51 -08:00
Xaver-DaRed
86322838d0 Make Violent Flourish Stun effect use "Resist State" function 2026-02-06 05:58:09 +01:00
Xaver-DaRed
ff894b5d02 Overhaul magic_hit_rate functions to use a parameter table 2026-02-06 05:55:00 +01:00
sruon
43e97389af PacketCap module to save clients packets 2026-01-28 13:28:20 -07:00
11101 changed files with 394818 additions and 255022 deletions

View file

@ -1,7 +1,7 @@
---
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
# We base things of WebKit + Allman braces
# Compatible with clang-format-20
# Compatible with clang-format-22 (enforced by tools/run_clang_format.py)
Language: Cpp
# Access modifiers
@ -28,8 +28,7 @@ AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: None
AllowShortLoopsOnASingleLine: false
# Note: LambdaBodyIndentation not available in clang-format-20
LambdaBodyIndentation: Signature
# Template declarations
AlwaysBreakTemplateDeclarations: Yes
@ -71,6 +70,8 @@ BinPackParameters: false
# Namespaces
CompactNamespaces: false
NamespaceIndentation: None
WrapNamespaceBodyWithEmptyLines: Always
SeparateDefinitionBlocks: Always
# Braced lists and initializers
Cpp11BracedListStyle: false
@ -89,8 +90,7 @@ MaxEmptyLinesToKeep: 1
# Pointer and reference alignment
PointerAlignment: Left
ReferenceAlignment: Pointer
# Note: QualifierAlignment not available in clang-format-20, use manual const placement
QualifierAlignment: Left # West Const
# Comments
ReflowComments: Always

View file

@ -11,7 +11,9 @@
"remoteUser": "xiadmin",
"remoteEnv": { "LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}" },
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
"moby": false
}
},
"customizations": {
"vscode": {

View file

@ -80,6 +80,18 @@ indent_brace_style = allman # This is unfortunately ignored in Visual Studio
[Makefile]
indent_style = tab
[*.yml]
[*.{yml,yaml}]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.json]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

2
.gitattributes vendored
View file

@ -12,6 +12,8 @@
*.h text eol=lf
*.sql text eol=lf
*.sh text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
# Retaining CRLF line ends in the documentation dir (for now..)
*.txt text eol=crlf

View file

@ -15,9 +15,9 @@ jobs:
name: Clang Tidy
uses: ./.github/workflows/runner_build.yml
with:
runner: ubuntu-24.04
runner: ubuntu-26.04
compiler: clang
compiler_version: 20
compiler_version: 22
build_type: Debug
tracy: false
build_modules: false
@ -64,9 +64,9 @@ jobs:
upload_artifact: false
clang_tidy: false
- build_type: Debug
runner: ubuntu-24.04
runner: ubuntu-26.04
compiler: gcc
compiler_version: 14
compiler_version: 15
tracy: false
build_modules: false
save_cache: true
@ -93,8 +93,8 @@ jobs:
- build_type: Release
os: ubuntu
compiler: gcc
compiler_version: 14
clang_format_version: 20
compiler_version: 15
clang_format_version: 22
tracy: false
build_modules: false
save_cache: false
@ -110,8 +110,8 @@ jobs:
- build_type: Release
os: alpine
compiler: clang
compiler_version: 20
clang_format_version: 20
compiler_version: 22
clang_format_version: 22
tracy: false
build_modules: false
save_cache: false

View file

@ -9,14 +9,15 @@ on:
jobs:
Publish_Changelog:
name: Generate and Publish Changelog
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: fregante/setup-git-user@v1
- uses: actions/checkout@v6
- run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- run: git config --global user.name "github-actions[bot]"
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y python3.7
sudo apt-get install -y python3
pip3 install requests
- name: Generate changelog
run: |

View file

@ -13,7 +13,7 @@ jobs:
permissions: write-all
steps:
- name: Comment on unchecked boxes in template
uses: actions/github-script@v7
uses: actions/github-script@v9
with:
script: |
function count_instances(string, word)

View file

@ -36,16 +36,16 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v6
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common cmake libmariadb-dev-compat libluajit-5.1-dev libzmq3-dev zlib1g-dev libssl-dev binutils-dev
sudo apt-get install -y software-properties-common cmake libmariadb-dev-compat libluajit-5.1-dev libzmq3-dev zlib1g-dev libssl-dev binutils-dev libzstd-dev libdwarf-dev
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v4
with:
trap-caching: false
languages: ${{ matrix.language }}
@ -57,7 +57,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
# - name: Autobuild
# uses: github/codeql-action/autobuild@v2
# uses: github/codeql-action/autobuild@v4
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@ -73,7 +73,7 @@ jobs:
cmake --build build -j4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v4
with:
# https://josh-ops.com/posts/github-codeql-ignore-files/
upload: false # disable the upload here - we will upload in a different action
@ -89,6 +89,6 @@ jobs:
output: sarif-results/${{ matrix.language }}.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: sarif-results/${{ matrix.language }}.sarif

View file

@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Comment on keywords in Discussion
uses: actions/github-script@v6
uses: actions/github-script@v9
with:
script: |
// Define the keywords to check (all lower-case for case-insensitive matching)

View file

@ -67,13 +67,13 @@ jobs:
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
echo "REPO=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV}
- uses: docker/login-action@v3
- uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 1
@ -88,12 +88,12 @@ jobs:
f.write("renamer\n")
EOF
- uses: docker/setup-buildx-action@v3
- uses: docker/setup-buildx-action@v4
id: setup_buildx
- name: Restore build cache
if: ${{ !inputs.save_cache }}
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
env:
cmake_hash: ${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}
source_hash: ${{ hashFiles('src/**/*', 'ext/**/*') }}
@ -108,7 +108,7 @@ jobs:
- name: Cache build
id: cache_build
if: ${{ inputs.save_cache }}
uses: actions/cache@v4
uses: actions/cache@v5
env:
cmake_hash: ${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}
source_hash: ${{ hashFiles('src/**/*', 'ext/**/*') }}
@ -121,7 +121,7 @@ jobs:
${{ format('buildcache-docker-{0}-{1}{2}-{3}-{4}-', inputs.os, inputs.compiler, inputs.compiler_version, inputs.build_type, env.cmake_hash) }}
- name: Inject cache into container
uses: reproducible-containers/buildkit-cache-dance@v3.2.0
uses: reproducible-containers/buildkit-cache-dance@v3.4.0
with:
builder: ${{ steps.setup_buildx.outputs.name }}
cache-map: |
@ -145,7 +145,7 @@ jobs:
- name: Docker meta
id: docker-meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ env.REPO }}
tags: |
@ -161,7 +161,7 @@ jobs:
- name: Build devtools image
if: ${{ inputs.publish && vars.PUBLISH_DOCKER != '' }}
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ${{ format('./docker/{0}.Dockerfile', inputs.os) }}
@ -173,7 +173,7 @@ jobs:
tags: ${{ format('ghcr.io/{0}/devtools:{1}', env.REPO_OWNER, inputs.os) }}
- name: Docker build and push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ${{ format('./docker/{0}.Dockerfile', inputs.os) }}
@ -194,7 +194,7 @@ jobs:
- name: Archive image
if: ${{ inputs.upload_artifact || (inputs.publish && vars.PUBLISH_DOCKER == '') }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: ${{ format('LSB_{0}_image_{1}', inputs.os, github.sha) }}
path: ${{ format('{0}/LSB_{1}_image_{2}.tar', runner.temp, inputs.os, github.sha) }}

View file

@ -57,21 +57,21 @@ jobs:
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
echo "REPO=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV}
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 1
submodules: recursive # For navmeshes
- name: Download artifact
if: ${{ github.event_name == 'pull_request' }}
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: ${{ env.artifact_name }}
path: ${{ runner.temp }}
- name: Download previous artifact
if: ${{ (github.event_name == 'workflow_run' || github.event_name == 'workflow_dispatch') && vars.PUBLISH_DOCKER == ''}}
uses: dawidd6/action-download-artifact@v3
uses: dawidd6/action-download-artifact@v21
with:
run_id: ${{ github.event.workflow_run.id }}
name: ${{ env.artifact_name }}
@ -91,7 +91,7 @@ jobs:
--user root \
--network ${{ job.services.database.network }} \
--mount type=bind,src=./navmeshes,dst=/server/navmeshes \
--mount type=bind,src=./losmeshes,dst=/server/losmeshes \
--mount type=bind,src=./ximeshes,dst=/server/ximeshes \
--mount type=bind,src=./modules,dst=/server/modules \
--mount type=bind,src=.,dst=/server/log \
--env XI_NETWORK_SQL_HOST=database \
@ -119,7 +119,7 @@ jobs:
- name: Run xi_test
id: xi_test
continue-on-error: true
run: docker exec test-server /bin/bash -c './xi_test --keep-going --output log/tests.ctrf.json'
run: docker exec test-server /bin/bash -c './xi_test --keep-going --retry 5 --output log/tests.ctrf.json'
- name: Publish Test Report
if: ${{ !cancelled() }}

View file

@ -29,7 +29,7 @@ jobs:
# $GITHUB_WORKSPACE is the workspace in the container (/__w/server/server)
- run: git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
@ -46,7 +46,7 @@ jobs:
run: tr -d '\r' < sanity_checks_summary.md >> $GITHUB_STEP_SUMMARY
- name: Upload changed files as artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: changed-files
path: changed-files.txt
@ -63,7 +63,7 @@ jobs:
shell: bash
steps:
- name: Download Changed Files
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: changed-files
@ -82,7 +82,7 @@ jobs:
- run: git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: actions/checkout@v4
- uses: actions/checkout@v6
if: ${{ steps.check-changes.outputs.lua_changes == 'true' }}
with:
fetch-depth: 0
@ -93,6 +93,10 @@ jobs:
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade -r ./tools/requirements.txt
- name: Generate codegen Lua enums
if: ${{ steps.check-changes.outputs.lua_changes == 'true' }}
run: python -m tools.codegen "$RUNNER_TEMP/codegen-out"
- name: Run Lua Language Server
id: run_lls
if: ${{ steps.check-changes.outputs.lua_changes == 'true' }}
@ -129,14 +133,137 @@ jobs:
echo "Lua Language Server failed. See summary for details."
exit 1
Schema_Validation:
needs: Sanity_Checks
name: Data validation
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Download Changed Files
uses: actions/download-artifact@v8
with:
name: changed-files
- name: Check for data/ or codegen changes
id: changed
run: |
mapfile -t changed_files < changed-files.txt
touched=false
for f in "${changed_files[@]}"; do
if [[ $f == data/* || $f == tools/codegen/* ]]; then
touched=true
break
fi
done
echo "touched=$touched" >> "$GITHUB_OUTPUT"
echo "Touched: $touched"
- uses: actions/checkout@v6
if: steps.changed.outputs.touched == 'true'
- name: Setup Python
if: steps.changed.outputs.touched == 'true'
uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Install Python dependencies
if: steps.changed.outputs.touched == 'true'
run: python -m pip install jinja2 jsonschema pyyaml
- name: Run codegen --validate
if: steps.changed.outputs.touched == 'true'
run: |
mkdir -p "$RUNNER_TEMP/codegen-out"
python -m tools.codegen "$RUNNER_TEMP/codegen-out" --validate
Formatting:
needs: Sanity_Checks
name: Data formatting
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Download Changed Files
uses: actions/download-artifact@v8
with:
name: changed-files
- name: Filter data/ changed files
id: changed
run: |
mapfile -t changed_files < changed-files.txt
yaml_files=()
other_files=()
for f in "${changed_files[@]}"; do
if [[ $f == data/*.yaml || $f == data/*.yml ]]; then
yaml_files+=("$f")
elif [[ $f == data/* ]]; then
other_files+=("$f")
fi
done
echo "yaml=${yaml_files[*]}" >> "$GITHUB_OUTPUT"
echo "other=${other_files[*]}" >> "$GITHUB_OUTPUT"
echo "Changed YAML: ${yaml_files[*]}"
echo "Changed other: ${other_files[*]}"
- uses: actions/checkout@v6
if: steps.changed.outputs.yaml != '' || steps.changed.outputs.other != ''
- name: Setup Python
if: steps.changed.outputs.yaml != ''
uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Install Python dependencies
if: steps.changed.outputs.yaml != ''
run: python -m pip install pyyaml ruamel.yaml
- name: Check YAML formatting
if: steps.changed.outputs.yaml != ''
run: python tools/yaml/format.py ${{ steps.changed.outputs.yaml }} --check
- name: Cache prettier results
if: steps.changed.outputs.other != ''
uses: actions/cache@v5
with:
path: /tmp/prettier-cache
key: prettier-cache-${{ hashFiles('data/**/*.json') }}
restore-keys: prettier-cache-
- name: Run prettier
if: steps.changed.outputs.other != ''
run: |
set +e
FAILED=$(npx --yes prettier@3 --cache --cache-strategy content --cache-location /tmp/prettier-cache --list-different ${{ steps.changed.outputs.other }})
set -e
if [ -z "$FAILED" ]; then
echo "All files use Prettier code style!"
exit 0
fi
echo "::group::Files needing reformat"
echo "$FAILED"
echo "::endgroup::"
echo "::group::Diff"
for f in $FAILED; do
diff -u "$f" <(npx --yes prettier@3 "$f") || true
done
echo "::endgroup::"
echo "Run \`npx prettier --write data\` locally to fix."
exit 1
Clang_Tidy:
needs: Sanity_Checks
name: Clang Tidy
uses: ./.github/workflows/runner_build.yml
with:
runner: ubuntu-24.04
runner: ubuntu-26.04
compiler: clang
compiler_version: 20
compiler_version: 22
build_type: Debug
build_modules: false
tracy: false
@ -160,9 +287,9 @@ jobs:
compiler: appleClang
build_modules: false
- build_type: Debug
runner: ubuntu-24.04
runner: ubuntu-26.04
compiler: gcc
compiler_version: 14
compiler_version: 15
build_modules: false
uses: ./.github/workflows/runner_build.yml
with:
@ -189,9 +316,9 @@ jobs:
- runner: macos-26
test_modules: false
multi_process: false
xi_test: false
xi_test: true
startup_checks: true
- runner: ubuntu-24.04
- runner: ubuntu-26.04
test_modules: false
multi_process: false
xi_test: true

View file

@ -16,7 +16,7 @@ jobs:
permissions: write-all
steps:
- name: Check for blocking labels
uses: actions/github-script@v7
uses: actions/github-script@v9
with:
script: |
const response = await github.rest.issues.listLabelsOnIssue({

View file

@ -5,8 +5,8 @@ on:
branches:
- base
paths:
- './losmeshes/**'
- './navmeshes/**'
- './ximeshes/**'
- '.gitmodules'
workflow_dispatch:
@ -23,23 +23,23 @@ jobs:
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: true
- name: Login to GHCR
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ env.REPO_OWNER }}/ximeshes
tags: |
@ -50,7 +50,7 @@ jobs:
org.opencontainers.image.description=Line-of-sight and navigation meshes for use with LandSandBoat server.
- name: Build and push
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
env:
BUILDX_NO_DEFAULT_ATTESTATIONS: 1
with:

View file

@ -64,7 +64,7 @@ jobs:
steps:
- name: Download changed files artifact
if: ${{ inputs.optional_build }}
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: changed-files
@ -92,14 +92,14 @@ jobs:
- name: Checkout
if: ${{ env.SKIP_BUILD != 'true' }}
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Install dependencies (macOS)
if: ${{ runner.os == 'macOS' && env.SKIP_BUILD != 'true' }}
run: |
brew update && brew install --quiet \
brew install --quiet \
mariadb \
zeromq \
luajit \
@ -108,7 +108,7 @@ jobs:
- name: Setup LLVM Clang (macOS)
if: ${{ runner.os == 'macOS' && startsWith(inputs.compiler, 'clang') && env.SKIP_BUILD != 'true' }}
run: |
brew update && brew install --quiet \
brew install --quiet \
llvm@${{ inputs.compiler_version }} \
lld@${{ inputs.compiler_version }}
@ -128,7 +128,7 @@ jobs:
- name: Setup GCC (macOS)
if: ${{ runner.os == 'macOS' && startsWith(inputs.compiler, 'gcc') && env.SKIP_BUILD != 'true' }}
run: |
brew update && brew install --quiet gcc@${{ inputs.compiler_version }}
brew install --quiet gcc@${{ inputs.compiler_version }}
GCC_PREFIX=$(brew --prefix gcc@${{ inputs.compiler_version }})
echo "PATH=$GCC_PREFIX/bin:$PATH" >> $GITHUB_ENV
echo "CC=$GCC_PREFIX/bin/gcc-${{ inputs.compiler_version }}" >> $GITHUB_ENV
@ -139,6 +139,7 @@ jobs:
run: |
sudo apt-get update && sudo apt-get install --assume-yes --no-install-recommends --quiet \
binutils-dev \
libdwarf-dev \
libluajit-5.1-dev \
libmariadb-dev-compat \
libssl-dev \
@ -146,7 +147,8 @@ jobs:
luajit \
mariadb-client \
tzdata \
zlib1g-dev
zlib1g-dev \
libzstd-dev
- name: Setup GCC (Linux)
if: ${{ runner.os == 'Linux' && startsWith(inputs.compiler, 'gcc') && env.SKIP_BUILD != 'true' }}
@ -173,21 +175,25 @@ jobs:
- name: Setup MSVC
if: ${{ runner.os == 'Windows' && env.SKIP_BUILD != 'true' }}
uses: TheMrMilchmann/setup-msvc-dev@v3
uses: TheMrMilchmann/setup-msvc-dev@v4
with:
arch: x64
- name: Setup sccache
if: ${{ env.SKIP_BUILD != 'true' }}
uses: mozilla-actions/sccache-action@v0.0.9
uses: mozilla-actions/sccache-action@v0.0.10
with:
disable_annotations: ${{ !inputs.save_cache }}
- name: Setup Python
if: ${{ env.SKIP_BUILD != 'true' }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.12'
python-version: '3.14'
- name: Install Python codegen deps
if: ${{ env.SKIP_BUILD != 'true' }}
run: python -m pip install jinja2 jsonschema pyyaml
- name: Enable modules
if: ${{ inputs.build_modules && env.SKIP_BUILD != 'true' }}
@ -203,7 +209,7 @@ jobs:
- name: Restore build cache
if: ${{ env.SKIP_BUILD != 'true' }}
id: restore_build
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
env:
cmake_hash: ${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}
source_hash: ${{ hashFiles('src/**/*', 'ext/**/*') }}
@ -230,16 +236,25 @@ jobs:
- name: Upload artifact
if: ${{ inputs.upload_artifact && env.SKIP_BUILD != 'true' }}
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: ${{ format('LSB_{0}_{1}_{2}', runner.os, inputs.build_type, github.sha) }}
path: |
xi_*
tracy.tar.gz
- name: Remove exes from build cache
if: ${{ inputs.save_cache && env.SKIP_BUILD != 'true' && steps.restore_build.outputs.cache-hit != 'true' }}
run: |
rm -f build/src/login/xi_connect*
rm -f build/src/map/xi_map*
rm -f build/src/search/xi_search*
rm -f build/src/test/xi_test*
rm -f build/src/world/xi_world*
- name: Cache build
if: ${{ inputs.save_cache && env.SKIP_BUILD != 'true' && steps.restore_build.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v4
uses: actions/cache/save@v5
with:
path: build
key: ${{ steps.restore_build.outputs.cache-primary-key }}

View file

@ -53,7 +53,7 @@ jobs:
XI_NETWORK_SQL_LOGIN: xiadmin
XI_NETWORK_SQL_PASSWORD: 'password'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 1
submodules: recursive # For navmeshes
@ -80,6 +80,7 @@ jobs:
sudo apt-get update && sudo apt-get install --assume-yes --no-install-recommends --quiet \
binutils \
git \
libdwarf1 \
libmariadb-dev-compat \
libzmq5 \
lua5.1 \
@ -109,10 +110,10 @@ jobs:
${{ env.MYSQL_CMD }} -e "GRANT ALL PRIVILEGES ON ${{ env.XI_NETWORK_SQL_DATABASE }}.* TO '${{ env.XI_NETWORK_SQL_LOGIN }}'@'%';"
${{ env.MYSQL_CMD }} -e "FLUSH PRIVILEGES;"
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
id: setup_python
with:
python-version: '3.12'
python-version: '3.14'
- name: Install Python dependencies
run: |
@ -126,16 +127,19 @@ jobs:
echo "${{ runner.os == 'Windows' && '.venv/Scripts' || '.venv/bin' }}" >> $GITHUB_PATH
echo "VIRTUAL_ENV=$(pwd)/.venv" >> $GITHUB_ENV
- name: Generate codegen Lua enums
run: python -m tools.codegen "$RUNNER_TEMP/codegen-out"
- name: Download artifact
if: ${{ github.event_name == 'pull_request' }}
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: ${{ format('LSB_{0}_{1}_{2}', runner.os, inputs.build_type, github.sha) }}
path: .
- name: Download previous artifact
if: ${{ github.event_name == 'workflow_run' || github.event_name == 'workflow_dispatch' }}
uses: dawidd6/action-download-artifact@v3
uses: dawidd6/action-download-artifact@v21
with:
run_id: ${{ github.event.workflow_run.id }}
name: ${{ format('LSB_{0}_{1}_{2}', runner.os, inputs.build_type, github.sha) }}
@ -164,7 +168,7 @@ jobs:
if: ${{ inputs.xi_test }}
id: xi_test
continue-on-error: true
run: ./xi_test --keep-going --output tests.ctrf.json
run: ./xi_test --keep-going --retry 5 --output tests.ctrf.json
- name: Publish Test Report
if: ${{ !cancelled() && inputs.xi_test }}
@ -185,7 +189,7 @@ jobs:
- name: Startup checks
if: ${{ inputs.startup_checks }}
id: startup_checks
uses: nick-fields/retry@v3
uses: nick-fields/retry@v4
with:
timeout_minutes: 10
max_attempts: 3

View file

@ -25,7 +25,7 @@ jobs:
shell: bash
steps:
- run: git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
@ -47,10 +47,13 @@ jobs:
shell: bash
steps:
- run: git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Generate codegen Lua enums
run: python -m tools.codegen "$RUNNER_TEMP/codegen-out"
- name: Run Lua Language Server
id: run_lls
run: python ./tools/ci/lua_lang_server.py
@ -98,7 +101,7 @@ jobs:
build_type: Release
test_modules: false
multi_process: true
xi_test: ${{ !startsWith(matrix.runner, 'macos') }}
xi_test: true
startup_checks: true
Docker_Test:

8
.gitignore vendored
View file

@ -14,6 +14,7 @@
# Build results
build/
build*/
.cpm-cache/
lbuild/
build_mariadb_32/
build_mariadb_64/
@ -162,6 +163,7 @@ src/common/stamp-h1
*.sw?
navmeshes/*.nav
ximeshes/*.ximesh
tags
log/**
!log/.gitkeep
@ -217,6 +219,8 @@ ip.txt
# Tracy download
ext/tracy/
tracy.tar.gz
tracy*
**/*.tracy
# Valgrind
*.memcheck.log
@ -265,3 +269,7 @@ __pycache__
sanity_checks_summary.md
changed-files.txt
clang_tidy_summary.md
# YAML codegen
*.codegen.json
*.codegen.lua

10
.gitmodules vendored
View file

@ -1,6 +1,6 @@
[submodule "navmeshes"]
path = navmeshes
url = https://github.com/LandSandBoat/xiNavmeshes.git
[submodule "losmeshes"]
path = losmeshes
url = https://github.com/LandSandBoat/losmeshes.git
path = navmeshes
url = https://github.com/LandSandBoat/xiNavmeshes.git
[submodule "ximeshes"]
path = ximeshes
url = https://github.com/InoUno/ximeshes.git

11
.prettierignore Normal file
View file

@ -0,0 +1,11 @@
*.codegen.json
*.codegen.lua
# YAML is formatted by tools/yaml/format.py
*.yaml
*.yml
build/
build*/
cmake-*/
out/

6
.prettierrc Normal file
View file

@ -0,0 +1,6 @@
{
"tabWidth": 2,
"useTabs": false,
"printWidth": 120,
"endOfLine": "lf"
}

View file

@ -11,6 +11,9 @@
"ms-vscode.cpptools-extension-pack",
"ms-vscode.cpptools",
"jeff-hykin.better-cpp-syntax",
"bierner.github-markdown-preview"
"bierner.github-markdown-preview",
"esbenp.prettier-vscode",
"redhat.vscode-yaml",
"jkillian.custom-local-formatters"
]
}

15
.vscode/settings.json vendored
View file

@ -335,6 +335,7 @@
"GetSynergyRecipeByID",
"GetSynergyRecipeByTrade",
"ReloadSynthRecipes",
"LoadExpDifficultyCurves",
],
"Lua.diagnostics.disable": [
"lowercase-global"
@ -354,6 +355,20 @@
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
},
"[yaml]": {
"editor.defaultFormatter": "jkillian.custom-local-formatters",
"editor.formatOnSave": true
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"yaml.format.enable": false,
"customLocalFormatters.formatters": [
{
"command": "python tools/yaml/format.py --stdin",
"languages": ["yaml"]
}
],
"files.associations": {
"algorithm": "cpp",
"any": "cpp",

View file

@ -4,15 +4,35 @@ cmake_minimum_required(VERSION 3.25)
cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
# On macOS, pin the deployment target to the host OS version (must happen before
# project()). Without this, some compilers infer it from the Darwin kernel version
# using the pre-macOS-26 numbering scheme (e.g. Homebrew LLVM 20 maps Darwin 25 to
# "macOS 16.0" instead of 26), and every link against a Homebrew dylib stamped with
# the real version warns:
# ld: warning: building for macOS-16.0, but linking with dylib built for newer version 26.0
# Overridable as usual via -DCMAKE_OSX_DEPLOYMENT_TARGET or MACOSX_DEPLOYMENT_TARGET.
if(CMAKE_HOST_APPLE AND "${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "" AND "$ENV{MACOSX_DEPLOYMENT_TARGET}" STREQUAL "")
execute_process(
COMMAND sw_vers -productVersion
OUTPUT_VARIABLE host_macos_version
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REGEX MATCH "^[0-9]+" host_macos_major "${host_macos_version}")
if(host_macos_major)
set(CMAKE_OSX_DEPLOYMENT_TARGET "${host_macos_major}.0")
endif()
endif()
project(server C CXX)
# https://cmake.org/cmake/help/latest/policy/CMP0069.html
cmake_policy(SET CMP0069 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
set(LINKER_LANGUAGE CXX)
set(USE_FOLDERS ON)
@ -49,6 +69,16 @@ elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "RELEASE")
message(STATUS "CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}")
elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "RELWITHDEBINFO")
message(STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "ASAN")
message(STATUS "CMAKE_CXX_FLAGS_ASAN: ${CMAKE_CXX_FLAGS_ASAN}")
elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "UBSAN")
message(STATUS "CMAKE_CXX_FLAGS_UBSAN: ${CMAKE_CXX_FLAGS_UBSAN}")
elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "TSAN")
message(STATUS "CMAKE_CXX_FLAGS_TSAN: ${CMAKE_CXX_FLAGS_TSAN}")
elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "MSAN")
message(STATUS "CMAKE_CXX_FLAGS_MSAN: ${CMAKE_CXX_FLAGS_MSAN}")
elseif ("${CMAKE_BUILD_TYPE_UPPER}" STREQUAL "LSAN")
message(STATUS "CMAKE_CXX_FLAGS_LSAN: ${CMAKE_CXX_FLAGS_LSAN}")
else()
message(FATAL_ERROR "Did not recognise CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} to print out compiler flags.")
endif()
@ -62,6 +92,22 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
link_libraries(${CMAKE_THREAD_LIBS_INIT})
CPMAddPackage(
NAME ZLIB
GITHUB_REPOSITORY madler/zlib
GIT_TAG v1.3.1
OPTIONS "ZLIB_BUILD_EXAMPLES OFF"
)
if(ZLIB_ADDED)
add_library(ZLIB::ZLIB ALIAS zlibstatic)
endif()
CPMAddPackage(
NAME utfcpp
GITHUB_REPOSITORY nemtrif/utfcpp
GIT_TAG v4.0.8
)
# Find Python (defines ${Python_EXECUTABLE})
find_package(Python REQUIRED)
message(STATUS "Python_EXECUTABLE: ${Python_EXECUTABLE}")
@ -72,7 +118,6 @@ endif()
# Find MariaDB
find_package(MariaDB REQUIRED)
find_package(MariaDBCPP REQUIRED)
# Find ZMQ
find_package(ZeroMQ REQUIRED)
@ -87,29 +132,39 @@ find_package(OpenSSLlibcrypto REQUIRED)
find_package(OpenSSLlibssl REQUIRED)
if(UNIX AND NOT APPLE)
# zstd is sometimes a prereq for binutils
find_package(Zstd REQUIRED)
find_package(Binutils REQUIRED)
endif()
# Link this 'library' to set the c++ standard / compile-time options requested
add_library(project_options INTERFACE)
target_compile_features(project_options INTERFACE cxx_std_17)
target_compile_features(project_options INTERFACE cxx_std_23)
# Windows-only preprocessor defines for our first-party code ONLY.
if(WIN32)
target_compile_definitions(project_options INTERFACE
NOMINMAX
WIN32_LEAN_AND_MEAN
_CRT_SECURE_NO_WARNINGS
)
endif()
# Link this 'library' to use the warnings specified in CompilerWarnings.cmake
add_library(project_warnings INTERFACE)
set_project_warnings(project_warnings)
# Globally define SOL_ALL_SAFETIES_ON so sol can be included anywhere
# If SOL_NO_CHECK_NUMBER_PRECISION is defined, turns off number precision and integer
# precision fitting when pushing numbers into sol
# RC_FAST_MATH informs recastnavigation to not try to use infinity because we use -ffast-math
# add_compile_definitions() comes with CMake 3.12
add_definitions(
-DSOL_ALL_SAFETIES_ON=1
-DSOL_NO_CHECK_NUMBER_PRECISION=1
-DSOL_DEFAULT_PASS_ON_ERROR=1
-DSOL_PRINT_ERRORS=0
-DRC_FAST_MATH=1
-DSPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_DEBUG
add_compile_definitions(
# Globally define SOL_ALL_SAFETIES_ON so sol can be included anywhere.
SOL_ALL_SAFETIES_ON=1
# If SOL_NO_CHECK_NUMBER_PRECISION is defined, turns off number precision and integer
# precision fitting when pushing numbers into sol.
SOL_NO_CHECK_NUMBER_PRECISION=1
SOL_DEFAULT_PASS_ON_ERROR=1
SOL_PRINT_ERRORS=0
SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_DEBUG
XI_CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
XI_BUILD_TYPE="$<CONFIG>"
)
# For external libs
@ -151,6 +206,45 @@ if (NOT IPC_EXIT_CODE EQUAL 0)
message(FATAL_ERROR "Failed to generate IPC stubs")
endif()
execute_process(
COMMAND ${Python_EXECUTABLE} -c "import jinja2, jsonschema, yaml"
RESULT_VARIABLE CODEGEN_DEPS_EXIT_CODE
OUTPUT_QUIET
ERROR_QUIET
)
if(NOT CODEGEN_DEPS_EXIT_CODE EQUAL 0)
message(FATAL_ERROR
"Codegen requires the Python packages jinja2, jsonschema, and pyyaml, "
"but they are not installed for the interpreter CMake selected:\n"
" ${Python_EXECUTABLE}\n"
"Install them by running this command exactly as shown (the interpreter path "
"matters, so the packages land in the environment this build uses):\n"
" ${Python_EXECUTABLE} -m pip install -r ${CMAKE_SOURCE_DIR}/tools/requirements.txt"
)
endif()
add_custom_target(data_codegen
COMMAND ${Python_EXECUTABLE} -m tools.codegen ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS
${CMAKE_BINARY_DIR}/generated/.codegen.stamp
${CMAKE_BINARY_DIR}/generated/data/all.h
USES_TERMINAL
VERBATIM
)
if(NOT EXISTS ${CMAKE_BINARY_DIR}/generated/.codegen.stamp)
message(STATUS "Bootstrapping data codegen")
execute_process(
COMMAND ${Python_EXECUTABLE} -m tools.codegen ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE CODEGEN_EXIT_CODE
)
if(NOT CODEGEN_EXIT_CODE EQUAL 0)
message(FATAL_ERROR "Bootstrap codegen failed")
endif()
endif()
include_directories(${CMAKE_BINARY_DIR}/generated) # Globally include the build/generated directory
add_subdirectory(src)

42
CMakePresets.json Normal file
View file

@ -0,0 +1,42 @@
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "default",
"displayName": "Default (RelWithDebInfo)",
"description": "Optimized build with debug info. The standard configuration.",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "debug",
"displayName": "Debug",
"description": "Unoptimized build with full debug info.",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
}
],
"buildPresets": [
{
"name": "default",
"displayName": "Default (RelWithDebInfo)",
"configurePreset": "default",
"configuration": "RelWithDebInfo"
},
{
"name": "debug",
"displayName": "Debug",
"configurePreset": "debug",
"configuration": "Debug"
}
]
}

View file

@ -30,6 +30,10 @@ Discussions are similar to forum posts. Please open a new discussion post in the
*If you are encountering an issue, please open an issue and not a discussion!* It's much easier for us to track and you're more likely to get resolution through an issue.
### AI Agents and their use
If you're a human using AI agents or an AI agent you should go read `./documentation/ai_agents/README.md`.
## LICENSE
LandSandBoat is licensed under [GNU GPL v3](https://github.com/LandSandBoat/server/blob/base/LICENSE)

View file

@ -81,6 +81,7 @@ function(set_project_warnings project_name)
CLANG_WARNINGS
-Wno-nan-infinity-disabled # TODO: fmt triggers this, a combination of the fast-math flag and `isfinite`
-Wunused-private-field # warn on unused private fields
-Wno-nontrivial-memcall # recastnavigation memsets non-trivially-copyable types (e.g. dtMeshTile)
)
endif()

View file

@ -1,275 +0,0 @@
if(NOT WIN32)
message(STATUS "Building MariaDB Connector/C++ from source")
CPMAddPackage(
NAME mariadb-connector-cpp
GITHUB_REPOSITORY zach2good/mariadb-connector-cpp
GIT_TAG fa70cf8927d259374ed711b0d2f1770c70e5b437
DOWNLOAD_ONLY YES
)
if(mariadb-connector-cpp_ADDED)
set(PROJECT_VERSION_MAJOR 0)
set(PROJECT_VERSION_MINOR 0)
set(PROJECT_VERSION_PATCH 0)
configure_file(
${mariadb-connector-cpp_SOURCE_DIR}/src/Version.h.in
${mariadb-connector-cpp_SOURCE_DIR}/src/Version.h
)
configure_file(
${mariadb-connector-cpp_SOURCE_DIR}/src/maconncpp.def.in
${mariadb-connector-cpp_SOURCE_DIR}/src/maconncpp.def
)
set(MACPP_SOURCES
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbDriver.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/DriverManager.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/UrlParser.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbDatabaseMetaData.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/HostAddress.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/Consts.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/SQLString.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbConnection.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbStatement.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDBException.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDBWarning.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/Identifier.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbSavepoint.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/SqlStates.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/Results.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/ColumnType.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/ColumnDefinition.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/MasterProtocol.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/QueryProtocol.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/ConnectProtocol.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/capi/ColumnDefinitionCapi.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/cache/CallableStatementCache.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/cache/CallableStatementCacheKey.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/Value.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/Utils.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/String.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/NoLogger.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/LoggerFactory.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/ProtocolLoggingProxy.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ParameterHolder.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/options/Options.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/options/DefaultOptions.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/pool/GlobalStateInfo.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/pool/Pools.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/failover/FailoverProxy.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/credential/CredentialPluginLoader.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/SelectResultSet.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/capi/SelectResultSetCapi.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/ColumnNameMap.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/io/StandardPacketInputStream.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/Charset.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/ClientSidePreparedStatement.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/BasePrepareStatement.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbFunctionStatement.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbProcedureStatement.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/ServerSidePreparedStatement.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/BigDecimalParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/BooleanParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ByteArrayParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ByteParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/DateParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/DefaultParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/DoubleParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/FloatParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/IntParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/LongParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ULongParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/NullParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ParameterHolder.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ReaderParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ShortParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/StreamParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/TimeParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/TimestampParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/StringParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbPooledConnection.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbParameterMetaData.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbResultSetMetaData.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/CallParameter.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/CallableParameterMetaData.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/Packet.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/credential/Credential.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/LogQueryTool.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ClientPrepareResult.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ServerPrepareResult.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ServerPrepareStatementCache.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformationSingle.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformationBatch.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformationMultiple.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/com/RowProtocol.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/BinRowProtocolCapi.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/TextRowProtocolCapi.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/ExceptionFactory.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/StringImp.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/CArray.cpp
${mariadb-connector-cpp_SOURCE_DIR}/src/SimpleParameterMetaData.cpp
)
# NOTE: Keep this around if we ever want to rebuild the mariadb-connector-cpp library
if(WIN32)
set(MACPP_SOURCES
${MACPP_SOURCES}
${mariadb-connector-cpp_SOURCE_DIR}/src/Dll.c
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDBConnCpp.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbDriver.h
${mariadb-connector-cpp_SOURCE_DIR}/src/UrlParser.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbDatabaseMetaData.h
${mariadb-connector-cpp_SOURCE_DIR}/src/HostAddress.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Version.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Consts.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbConnection.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbStatement.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDBWarning.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Protocol.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Identifier.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbSavepoint.h
${mariadb-connector-cpp_SOURCE_DIR}/src/SqlStates.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Results.h
${mariadb-connector-cpp_SOURCE_DIR}/src/ColumnDefinition.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbServerCapabilities.h
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/MasterProtocol.h
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/QueryProtocol.h
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/ConnectProtocol.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/capi/ColumnDefinitionCapi.h
${mariadb-connector-cpp_SOURCE_DIR}/src/cache/CallableStatementCache.h
${mariadb-connector-cpp_SOURCE_DIR}/src/cache/CallableStatementCacheKey.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/Value.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ClassField.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/Utils.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/StateChange.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/String.h
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/NoLogger.h
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/LoggerFactory.h
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/Logger.h
${mariadb-connector-cpp_SOURCE_DIR}/src/logger/ProtocolLoggingProxy.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ParameterHolder.h
${mariadb-connector-cpp_SOURCE_DIR}/src/options/Options.h
${mariadb-connector-cpp_SOURCE_DIR}/src/options/DefaultOptions.h
${mariadb-connector-cpp_SOURCE_DIR}/src/options/DriverPropertyInfo.h
${mariadb-connector-cpp_SOURCE_DIR}/src/io/PacketOutputStream.h
${mariadb-connector-cpp_SOURCE_DIR}/src/io/PacketInputStream.h
${mariadb-connector-cpp_SOURCE_DIR}/src/io/StandardPacketInputStream.h
${mariadb-connector-cpp_SOURCE_DIR}/src/credential/CredentialPlugin.h
${mariadb-connector-cpp_SOURCE_DIR}/src/credential/CredentialPluginLoader.h
${mariadb-connector-cpp_SOURCE_DIR}/src/pool/GlobalStateInfo.h
${mariadb-connector-cpp_SOURCE_DIR}/src/pool/Pools.h
${mariadb-connector-cpp_SOURCE_DIR}/src/pool/Pool.h
${mariadb-connector-cpp_SOURCE_DIR}/src/failover/FailoverProxy.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Listener.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformation.h
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/Connection.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/Statement.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/ResultSet.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/PreparedStatement.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/ParameterMetaData.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/ResultSetMetaData.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/DatabaseMetaData.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/CallableStatement.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/SQLString.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/Warning.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/Exception.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/jdbccompat.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/Driver.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/DriverManager.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/Types.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/buildconf.hpp
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp/CArray.hpp
${mariadb-connector-cpp_SOURCE_DIR}/src/SelectResultSet.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/capi/SelectResultSetCapi.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/SelectResultSetPacket.h
${mariadb-connector-cpp_SOURCE_DIR}/src/ColumnType.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/ColumnDefinitionPacket.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/ColumnNameMap.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Charset.h
${mariadb-connector-cpp_SOURCE_DIR}/src/ClientSidePreparedStatement.h
${mariadb-connector-cpp_SOURCE_DIR}/src/BasePrepareStatement.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbFunctionStatement.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbProcedureStatement.h
${mariadb-connector-cpp_SOURCE_DIR}/src/ServerSidePreparedStatement.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/BigDecimalParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/BooleanParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ByteArrayParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ByteParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/DateParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/DefaultParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/DoubleParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/FloatParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/IntParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/LongParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ULongParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/NullParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ReaderParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/ShortParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/StreamParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/TimeParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/TimestampParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/parameters/StringParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/Parameters.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbPooledConnection.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbParameterMetaData.h
${mariadb-connector-cpp_SOURCE_DIR}/src/CallParameter.h
${mariadb-connector-cpp_SOURCE_DIR}/src/CallableParameterMetaData.h
${mariadb-connector-cpp_SOURCE_DIR}/src/MariaDbResultSetMetaData.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/Packet.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ServerStatus.h
${mariadb-connector-cpp_SOURCE_DIR}/src/credential/Credential.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/LogQueryTool.h
${mariadb-connector-cpp_SOURCE_DIR}/src/PrepareResult.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ClientPrepareResult.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ServerPrepareResult.h
${mariadb-connector-cpp_SOURCE_DIR}/src/util/ServerPrepareStatementCache.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformationSingle.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformationBatch.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/CmdInformationMultiple.h
${mariadb-connector-cpp_SOURCE_DIR}/src/com/RowProtocol.h
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/BinRowProtocolCapi.h
${mariadb-connector-cpp_SOURCE_DIR}/src/protocol/capi/TextRowProtocolCapi.h
${mariadb-connector-cpp_SOURCE_DIR}/src/ExceptionFactory.h
${mariadb-connector-cpp_SOURCE_DIR}/src/StringImp.h
${mariadb-connector-cpp_SOURCE_DIR}/src/CArrayImp.h
${mariadb-connector-cpp_SOURCE_DIR}/src/SimpleParameterMetaData.h
${mariadb-connector-cpp_SOURCE_DIR}/src/maconncpp.def
)
endif()
add_library(mariadbclientcpp STATIC ${MACPP_SOURCES})
target_include_directories(mariadbclientcpp
PUBLIC
${mariadb-connector-cpp_SOURCE_DIR}/include
PRIVATE
${mariadb-connector-cpp_SOURCE_DIR}/include/conncpp
${mariadb-connector-cpp_SOURCE_DIR}/src/
)
target_link_libraries(mariadbclientcpp PRIVATE mariadbclient)
set(MARIADBCPP_FOUND TRUE)
set(MARIADBCPP_LIBRARY mariadbclientcpp)
set(MARIADBCPP_INCLUDE_DIR ${mariadb-connector-cpp_SOURCE_DIR}/include)
endif()
else() # WIN32
message(STATUS "Looking for prebuilt MariaDB Connector/C++")
find_library(MARIADBCPP_LIBRARY
NAMES
mariadbcpp
PATHS
${PROJECT_SOURCE_DIR}/ext/mariadbcpp/${lib_dir}/
)
set(MARIADBCPP_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/ext/mariadbcpp/include/) # Only look internally
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MariaDBCPP DEFAULT_MSG MARIADBCPP_LIBRARY MARIADBCPP_INCLUDE_DIR)
endif()
message(STATUS "MARIADBCPP_FOUND: ${MARIADBCPP_FOUND}")
message(STATUS "MARIADBCPP_LIBRARY: ${MARIADBCPP_LIBRARY}")
message(STATUS "MARIADBCPP_INCLUDE_DIR: ${MARIADBCPP_INCLUDE_DIR}")
add_library(mariadbcpp INTERFACE)
target_link_libraries(mariadbcpp INTERFACE ${MARIADBCPP_LIBRARY})
target_include_directories(mariadbcpp SYSTEM INTERFACE ${MARIADBCPP_INCLUDE_DIR})

18
cmake/FindZstd.cmake Normal file
View file

@ -0,0 +1,18 @@
find_library(ZSTD_LIBRARY
NAMES
libzstd zstd
PATHS
/usr/
/usr/bin/
/usr/include/
/usr/lib/
/usr/local/
/usr/local/bin/
/opt/)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Zstd DEFAULT_MSG ZSTD_LIBRARY)
#link_libraries(zstd)
message(STATUS "Zstd_FOUND: ${ZSTD_FOUND}")
message(STATUS "Zstd_LIBRARY: ${ZSTD_LIBRARY}")

View file

@ -1,12 +1,12 @@
message(STATUS "CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")
if(${CMAKE_SOURCE_DIR} MATCHES " +")
set(STRIPPED_PATH "")
STRING(REGEX REPLACE " +" "_" STRIPPED_PATH "${CMAKE_SOURCE_DIR}")
set(STRIPPED_PATH "")
STRING(REGEX REPLACE " +" "_" STRIPPED_PATH "${CMAKE_SOURCE_DIR}")
message(STATUS
"Current path: ${CMAKE_SOURCE_DIR}\n"
"Suggested path: ${STRIPPED_PATH}\n"
"Your path contains spaces, this is not recommended.")
message(STATUS
"Current path: ${CMAKE_SOURCE_DIR}\n"
"Suggested path: ${STRIPPED_PATH}\n"
"Your path contains spaces, this is not recommended.")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
@ -33,3 +33,15 @@ set(libpath "lib${platform_suffix}")
if(WIN32)
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
endif()
if(APPLE)
# The modern Apple linker (ld_prime, Xcode 15+) warns when the same library
# appears more than once on the link line. CMake's dependency propagation
# legitimately repeats static libs (historically required by classic ld64),
# so the warning is pure noise: silence it where the linker supports the flag.
include(CheckLinkerFlag)
check_linker_flag(CXX "-Wl,-no_warn_duplicate_libraries" LINKER_SUPPORTS_NO_WARN_DUPLICATE_LIBRARIES)
if(LINKER_SUPPORTS_NO_WARN_DUPLICATE_LIBRARIES)
add_link_options("-Wl,-no_warn_duplicate_libraries")
endif()
endif()

View file

@ -49,13 +49,13 @@ set(CMAKE_CXX_FLAGS_MSAN
CACHE STRING "Flags used by the C++ compiler during MemorySanitizer builds."
FORCE)
# Undefinedbehavior
# LeakSanitizer is a run-time undefined behavior detector.
# UndefinedBehaviorSanitizer
# UndefinedBehaviorSanitizer is a run-time undefined behavior detector.
set(CMAKE_C_FLAGS_UBSAN
"-fsanitize=undefined"
"-fsanitize=undefined -fno-omit-frame-pointer -g -O2 -DNDEBUG"
CACHE STRING "Flags used by the C compiler during UndefinedBehaviorSanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_UBSAN
"-fsanitize=undefined"
"-fsanitize=undefined -fno-omit-frame-pointer -g -O2 -DNDEBUG"
CACHE STRING "Flags used by the C++ compiler during UndefinedBehaviorSanitizer builds."
FORCE)

View file

@ -1,5 +1,14 @@
# Set a default build type if none was specified
if(NOT CMAKE_BUILD_TYPE)
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(isMultiConfig)
set(CMAKE_CONFIGURATION_TYPES
"RelWithDebInfo;Debug;Release;MinSizeRel"
CACHE STRING "Available build configurations" FORCE)
if(CMAKE_GENERATOR STREQUAL "Ninja Multi-Config")
set(CMAKE_DEFAULT_BUILD_TYPE "RelWithDebInfo")
endif()
elseif(NOT CMAKE_BUILD_TYPE)
message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
set(CMAKE_BUILD_TYPE
"RelWithDebInfo"
@ -8,15 +17,16 @@ if(NOT CMAKE_BUILD_TYPE)
set_property(
CACHE CMAKE_BUILD_TYPE
PROPERTY STRINGS
"Debug"
"Release"
"MinSizeRel"
"RelWithDebInfo")
"RelWithDebInfo"
"Debug"
"Release"
"MinSizeRel"
)
endif()
option(ENABLE_IPO "Enable Interprocedural Optimization, aka Link Time Optimization (LTO)" ON)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF)
if(ENABLE_IPO AND NOT CMAKE_BUILD_TYPE STREQUAL Debug)
if(ENABLE_IPO AND NOT CMAKE_BUILD_TYPE STREQUAL Debug AND NOT CMAKE_BUILD_TYPE STREQUAL ASAN AND NOT CMAKE_BUILD_TYPE STREQUAL UBSAN AND NOT CMAKE_BUILD_TYPE STREQUAL TSAN AND NOT CMAKE_BUILD_TYPE STREQUAL MSAN AND NOT CMAKE_BUILD_TYPE STREQUAL LSAN)
include(CheckIPOSupported)
check_ipo_supported(
RESULT
@ -31,30 +41,16 @@ if(ENABLE_IPO AND NOT CMAKE_BUILD_TYPE STREQUAL Debug)
endif()
message(STATUS "CMAKE_INTERPROCEDURAL_OPTIMIZATION: ${CMAKE_INTERPROCEDURAL_OPTIMIZATION} (this implies /GL or -flto)")
# Snippet from GLM: https://github.com/g-truc/glm (MIT)
# NOTE: fast-math was on by default before the CMake build refactoring!
option(ENABLE_FAST_MATH "Enable fast math optimizations" ON)
if(ENABLE_FAST_MATH)
message(STATUS "ENABLE_FAST_MATH: ON")
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU"))
add_compile_options(-ffast-math)
add_compile_options(-fno-finite-math-only) # only GCC needs this, /fp:fast on VC++ doesnt force finite math only
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/fp:fast)
endif()
else()
message(STATUS "ENABLE_FAST_MATH: OFF")
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/fp:precise)
endif()
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU"))
add_compile_options(-fno-fast-math)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
add_compile_options(/fp:precise)
endif()
if(MSVC)
list(APPEND FLAGS_AND_DEFINES
-D_CONSOLE
-D_MBCS
-DNOMINMAX
-D_CRT_SECURE_NO_WARNINGS
-D_CRT_NONSTDC_NO_DEPRECATE
# TODO: This is being overwritten by /Ob0
# /Ob2 # Inline Function Expansion
@ -80,7 +76,7 @@ if(MSVC)
)
endif()
link_libraries(WS2_32 dbghelp Shlwapi)
link_libraries(ws2_32 dbghelp shlwapi winmm shell32 user32)
endif()
if(UNIX)
@ -99,28 +95,48 @@ string(REPLACE ";" " " FLAGS_AND_DEFINES_STR "${FLAGS_AND_DEFINES}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS_AND_DEFINES_STR}")
function(set_target_output_directory target)
message(STATUS "Setting output directory for ${target} to ${CMAKE_SOURCE_DIR}")
# Run from the repo root: data, scripts, settings and the runtime DLLs all live there.
# DEBUGGER_WORKING_DIRECTORY (CMake 4.0+): Ninja and other non-VS generators.
# VS_DEBUGGER_WORKING_DIRECTORY: Visual Studio generator (takes precedence there).
set_target_properties(${target} PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}"
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}"
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}"
)
DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
message(STATUS "${target}: staging build artifact to ${CMAKE_SOURCE_DIR} after build")
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"$<TARGET_FILE:${target}>"
"${CMAKE_SOURCE_DIR}/$<TARGET_FILE_NAME:${target}>"
VERBATIM)
if(MSVC)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND "$<$<CONFIG:Debug,RelWithDebInfo>:${CMAKE_COMMAND};-E;copy_if_different;$<TARGET_PDB_FILE:${target}>;${CMAKE_SOURCE_DIR}/$<TARGET_PDB_FILE_NAME:${target}>>"
COMMAND_EXPAND_LISTS
VERBATIM)
endif()
if(APPLE)
# Under LTO the linker merges codegen objects into temp files and deletes after linking.
# We need to preserve those for the next step!
# -object_path_lto persists those codegen objects to a real, per-target directory so
# dsymutil can gather their DWARF into the .dSYM.
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
set(lto_object_dir "${CMAKE_BINARY_DIR}/lto-objects/${target}")
file(MAKE_DIRECTORY "${lto_object_dir}")
target_link_options(${target} PRIVATE "-Wl,-object_path_lto,${lto_object_dir}")
endif()
# dsymutil consolidates the DWARF into a self-contained .dSYM that travels with the
# binary, and atos picks it up automatically.
add_custom_command(TARGET ${target} POST_BUILD
COMMAND "$<$<CONFIG:Debug,RelWithDebInfo>:dsymutil;$<TARGET_FILE:${target}>;-o;${CMAKE_SOURCE_DIR}/$<TARGET_FILE_NAME:${target}>.dSYM>"
COMMAND_EXPAND_LISTS
VERBATIM)
endif()
endfunction()
function(disable_lto target)
target_compile_options(${target} PRIVATE -fno-lto)
target_link_options(${target} PRIVATE -fno-lto)
endfunction()
# If we're on Unix and the system is 32-bit (void* is 4-bytes wide),
# then there's a good chance we're compiling for Raspberry Pi.
# Currently, CMake doesn't detect this properly and needs some help
# to link libatomic.
# Source: https://gitlab.kitware.com/cmake/cmake/-/issues/21174
#
# TODO: Use include(CheckCXXSourceCompiles) to make this check better.
if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 4)
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")
endif()

View file

@ -0,0 +1,16 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.allegiance
values:
mob: 0
player: 1
san_doria: 2
bastok: 3
windurst: 4
wyverns: 5
griffons: 6

53
data/enums/animation.yaml Normal file
View file

@ -0,0 +1,53 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.animation
values:
none: 0
attack: 1
despawn: 2
death: 3
event: 4
chocobo: 5
fishing: 6
open_door: 8
close_door: 9
elevator_up: 10
elevator_down: 11
fishing_npc: 32
healing: 33
fishing_fish: 38
fishing_caught: 39
fishing_rod_break: 40
fishing_line_break: 41
fishing_monster: 42
fishing_stop: 43
synth: 44
sit: 47
ranged: 48
fishing_start: 50
new_fishing_start: 56
new_fishing_fish: 57
new_fishing_caught: 58
new_fishing_rod_break: 59
new_fishing_line_break: 60
new_fishing_monster: 61
new_fishing_stop: 62
# 63 through 73 are used with /sitchair
sitchair_0: 63
sitchair_1: 64
sitchair_2: 65
sitchair_3: 66
sitchair_4: 67
sitchair_5: 68
sitchair_6: 69
sitchair_7: 70
sitchair_8: 71
sitchair_9: 72
sitchair_10: 73
mount: 85
trust: 90 # trust NPC spawn-in animation

View file

@ -0,0 +1,15 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.attackType
values:
none: 0
physical: 1
magical: 2
ranged: 3
breath: 4
special: 5

17
data/enums/behavior.yaml Normal file
View file

@ -0,0 +1,17 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint16_t
lua:
table: xi.behavior
values:
none: 0x000
no_despawn: 0x001 # mob does not despawn on death
standback: 0x002 # mob will standback forever
raisable: 0x004 # mob can be raised via Raise spells
no_assist: 0x008 # mob can not be targeted by helpful magic from players (cure, protect, etc)
aggro_ambush: 0x200 # mob aggroes by ambush
no_turn: 0x400 # mob does not turn to face target

View file

@ -0,0 +1,12 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.claimType
values:
exclusive: 0 # Regular exclusive claim behavior. Only one entity and related group can attack.
non_exclusive: 1 # Regular claim behavior but multiple unrelated entities can attack and compete for claim. Rewards distributed to last claiming entity.
unclaimable: 2 # Mob cannot be claimed. Multiple unrelated entities can attack. Rewards will not be distributed.

View file

@ -0,0 +1,23 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint16_t
lua:
table: xi.damageType
values:
none: 0
piercing: 1
slashing: 2
blunt: 3
hand_to_hand: 4
elemental: 5
fire: 6
ice: 7
wind: 8
earth: 9
thunder: 10
water: 11
light: 12
dark: 13

21
data/enums/detects.yaml Normal file
View file

@ -0,0 +1,21 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint16_t
lua:
table: xi.detects
values:
none: 0x000
sight: 0x001
hearing: 0x002
sight_and_hearing: 0x003
lowhp: 0x004
none1: 0x008
none2: 0x010
magic: 0x020
weaponskill: 0x040
jobability: 0x080
scent: 0x100

32
data/enums/ecosystem.yaml Normal file
View file

@ -0,0 +1,32 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.ecosystem
values:
unclassified: 0
amorph: 1
aquan: 2
arcana: 3
archaic_machine: 4
beast: 5
beastmen: 6
bird: 7
demon: 8
dragon: 9
elemental: 10
empty: 11
humanoid: 12
lizard: 13
luminian: 14
luminion: 15
plantoid: 16
supreme_beings: 17
undead: 18
vermin: 19
voragean: 20
structures: 21
weapons: 22

View file

@ -0,0 +1,15 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.effectOverwrite
values:
equal_higher: 0 # only overwrite if equal or higher (tier, power)
higher: 1 # only overwrite if higher (tier, power)
never: 2 # never overwrite
always: 3 # always overwrite no matter
ignore_duplicate: 4 # ignore dupes
tier_higher: 5 # only overwrite if tier is higher (regardless of power)

18
data/enums/element.yaml Normal file
View file

@ -0,0 +1,18 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.element
values:
none: 0
fire: 1
ice: 2
wind: 3
earth: 4
thunder: 5
water: 6
light: 7
dark: 8

View file

@ -0,0 +1,21 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint32_t
lua:
table: xi.entityFlags
values:
none: 0x000
info_icon: 0x001 # (I) Icon next to name
# TODO: Flags 0x002, 0x004 and 0x008 do different things for different entities.
# : It isn't one-size-fits-all, and different combinations may do different things.
# : It'll need to be researched more.
# alt_appearance: 0x002
hide_name: 0x008
call_for_help: 0x020
hide_model: 0x080
hide_hp: 0x100
untargetable: 0x800

29
data/enums/immunity.yaml Normal file
View file

@ -0,0 +1,29 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint32_t
lua:
table: xi.immunity
values:
none: 0x00000000
addle: 0x00000001
gravity: 0x00000002
bind: 0x00000004
stun: 0x00000008
silence: 0x00000010
paralyze: 0x00000020
blind: 0x00000040
slow: 0x00000080
poison: 0x00000100
elegy: 0x00000200
requiem: 0x00000400
light_sleep: 0x00000800
dark_sleep: 0x00001000
aspir: 0x00002000
terror: 0x00004000
dispel: 0x00008000
petrify: 0x00010000
plague: 0x00020000

34
data/enums/job.yaml Normal file
View file

@ -0,0 +1,34 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
case: screaming
lua:
table: xi.job
values:
none: 0
war: 1
mnk: 2
whm: 3
blm: 4
rdm: 5
thf: 6
pld: 7
drk: 8
bst: 9
brd: 10
rng: 11
sam: 12
nin: 13
drg: 14
smn: 15
blu: 16
cor: 17
pup: 18
dnc: 19
sch: 20
geo: 21
run: 22
mon: 23 # NOTE: MON is not a full job

75
data/enums/latent.yaml Normal file
View file

@ -0,0 +1,75 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint16_t
lua:
table: xi.latent
values:
hp_under_percent: 0 # hp less than or equal to % - PARAM: HP PERCENT
hp_over_percent: 1 # hp more than % - PARAM: HP PERCENT
hp_under_tp_under_100: 2 # hp less than or equal to %, tp under 100 - PARAM: HP PERCENT
hp_over_tp_under_100: 3 # hp more than %, tp over 100 - PARAM: HP PERCENT
mp_under_percent: 4 # mp less than or equal to % - PARAM: MP PERCENT
mp_under: 5 # mp less than # - PARAM: MP #
tp_under: 6 # tp under # and during WS - PARAM: TP VALUE
tp_over: 7 # tp over # - PARAM: TP VALUE
subjob: 8 # subjob - PARAM: JOBTYPE
pet_id: 9 # pettype - PARAM: PETID
weapon_drawn: 10 # weapon drawn
weapon_sheathed: 11 # weapon sheathed
signet_bonus: 12 # While in conquest region and engaged to an even match or less target
status_effect_active: 13 # status effect on player - PARAM: EFFECTID
no_food_active: 14 # no food effects active on player
party_members: 15 # party size # - PARAM: # OF MEMBERS
party_members_in_zone: 16 # party size # and members in zone - PARAM: # OF MEMBERS
sanction_regen_bonus: 17 # While in besieged region and HP is less than PARAM%
sanction_refresh_bonus: 18 # While in besieged region and MP is less than PARAM%
sigil_regen_bonus: 19 # While in campaign region and HP is less than PARAM%
sigil_refresh_bonus: 20 # While in campaign region and MP is less than PARAM%
avatar_in_party: 21 # party has a specific avatar - PARAM: same as globals/pets.lua (21 for any avatar)
job_in_party: 22 # party has job - PARAM: JOBTYPE
zone: 23 # in zone - PARAM: zoneid
synth_trainee: 24 # synth skill under 40 + no support: PARAM: 48: FISH, 49: WOOD, 50: SMITH, 51: GOLDSMITH, 52: CLOTH, 53: LEATHER, 54: BONE, 55: ALCHEMY, 56: COOKING
song_roll_active: 25 # any song or roll active
time_of_day: 26 # PARAM: 0: DAYTIME 1: NIGHTTIME 2: DUSK-DAWN
hour_of_day: 27 # PARAM: 1: NEW DAY, 2: DAWN, 3: DAY, 4: DUSK, 5: EVENING, 6: DEAD OF NIGHT
firesday: 28
earthsday: 29
watersday: 30
windsday: 31
darksday: 32
iceday: 34
lightningsday: 35
lightsday: 36
moon_phase: 37 # PARAM: 0: New Moon, 1: Waxing Crescent, 2: First Quarter, 3: Waxing Gibbous, 4: Full Moon, 5: Waning Gibbous, 6: Last Quarter, 7: Waning Crescent
job_multiple: 38 # PARAM: 0: ODD, 2: EVEN, 3-X: DIVISOR
job_multiple_at_night: 39 # PARAM: 0: ODD, 2: EVEN, 3-X: DIVISOR
equipped_in_slot: 40 # When item is equipped in the specified slot (e.g. Dweomer Knife, Erlking's Sword, etc.) PARAM: slotID
during_ws: 41 # During WS
weather_condition: 42 # See Weather.h for WEATHER enum
weapon_drawn_hp_under: 43 # PARAM: HP PERCENT
nation_citizen: 44 # Triggered by player being citizen of nation matching param: 0 San d'Oria, 1 Bastok, 2 Windurst
mp_under_visible_gear: 45 # mp less than or equal to %, calculated using MP bonuses from visible gear only
hp_over_visible_gear: 46 # hp more than or equal to %, calculated using HP bonuses from visible gear only
weapon_broken: 47
in_dynamis: 48
food_active: 49 # food effect (foodId) active - PARAM: FOOD ITEMID
job_level_below: 50 # PARAM: level
job_level_above: 51 # PARAM: level
weather_element: 52 # PARAM: 0: NONE, 1: FIRE, 2: ICE, 3: WIND 4: EARTH, 5: THUNDER, 6: WATER, 7: LIGHT, 8: DARK
nation_control: 53 # checks if player region is under nation's control - PARAM: 0: Under own nation's control, 1: Outside own nation's control
zone_home_nation: 54 # in zone and citizen of nation (aketons)
mp_over: 55 # mp greater than # - PARAM: MP #
weapon_drawn_mp_over: 56 # while weapon is drawn and mp greater than # - PARAM: MP #
eleven_roll_active: 57 # corsair roll of 11 active
in_assault: 58 # is in an Instance battle in a TOAU zone
vs_ecosystem: 59 # Vs. Specific Ecosystem ID (e.g. Vs. Plantoid: Accuracy+3)
vs_species: 60 # Vs. Specific Species ID (e.g. Vs. Korrigan: Accuracy+3)
vs_family: 61 # Vs. Specific Family ID (e.g. Vs. Mandragora: Accuracy+3)
mainjob: 62 # mainjob - PARAM: JOBTYPE
in_adoulin: 63
in_garrison: 64 # while in an active Garrison
sanction_food_bonus: 65 # While in besieged region
sigil_food_bonus: 66 # While in campaign region

107
data/enums/mob_mod.yaml Normal file
View file

@ -0,0 +1,107 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint16_t
lua:
table: xi.mobMod
values:
none: 0
gil_min: 1 # minimum gil drop -- spawn mod only
gil_max: 2 # maximum gil drop -- spawn mod only
mp_base: 3 # Give mob mp. Used for mobs that are not mages, wyverns, avatars
sight_range: 4 # sight range
sound_range: 5 # sound range
buff_chance: 6 # % chance to buff (combat only)
ga_chance: 7 # % chance to use -ga spell
heal_chance: 8 # % chance to use heal
hp_heal_chance: 9 # can cast cures below this HP %
sublink: 10 # Sub link group. Enables mobs from different families to link if they share a SUBLINK value.
link_radius: 11 # link radius
sees_through_illusion: 12 # Mob can see through the Illusion effect that grants effects similar to Sneak & Invisible without this mod and allows aggro (see Viscious Liquid in mamook)
severe_spell_chance: 13 # % chance to use a severe spell like death or impact
skill_list: 14 # uses given mob skill list
mug_gil: 15 # amount gil carried for mugging
detection: 16 # Overrides mob family's detection method. In order to set to override to none an unused bit must be set such as xi::Detects::None1.
no_despawn: 17 # do not despawn when too far from spawn. Gob Diggers have this.
var: 18 # temp var for whatever. Gets cleared on spawn
can_shield_block: 19 # toggle shield use for mobs without physical shields (trusts)
no_h2h_penalty: 20 # Disables H2H penalty in base damage calculation when set to non-zero
pet_spell_list: 21 # set pet spell list
na_chance: 22 # % chance to cast -na
immunity: 23 # immune to set status effects. This only works from the db, not scripts
gradual_rage: 24 # (!) TODO: NOT YET IMPLEMENTED -- gradually rages
build_resist: 25 # (!) TODO: NOT YET IMPLEMENTED -- builds resistance to given effects
superlink: 26 # super link group. Only use this in scripts! Must be defined in onMobInitialize if relevant mobs are different families
spell_list: 27 # set spell list
exp_bonus: 28 # bonus exp (bonus / 100) negative values reduce exp.
assist: 29 # mobs will assist me
special_skill: 30 # give special skill
roam_distance: 31 # distance allowed to roam from spawn
dont_roam_home: 32 # Allow mobs to roam any distance from spawn. Useful for mobs with scripted roaming behavior.
special_cool: 33 # cool down for special
magic_cool: 34 # cool down for magic
standback_cool: 35 # cool down time for standing back (casting spell while not in attack range)
roam_cool: 36 # cool down time in seconds after roaming
always_aggro: 37 # aggro regardless of level. Spheroids
no_drops: 38 # If set monster cannot drop any items, not even seals.
share_pos: 39 # share a pos with another mob (eald'narche exoplates)
teleport_cd: 40 # cooldown for teleport abilities (tarutaru AA, angra mainyu, eald'narche)
teleport_start: 41 # mobskill ID to begin teleport
teleport_end: 42 # mobskill ID to end teleport
teleport_type: 43 # teleport type - 1: on cooldown, 2 - to close distance
dual_wield: 44 # enables a mob to use their offhand in attacks
add_effect: 45 # enables additional effect script to process on mobs attacks
auto_spikes: 46 # enables additional effect script to process when mob is attacked
spawn_leash: 47 # forces a mob to not move farther from its spawn than its leash distance
share_target: 48 # mob always targets same target as ID in this var
check_as_nm: 49 # If set , mob will check as a NM
roam_reset_facing: 50 # Resume facing the default spawn rotation after roaming home.
roam_turns: 51 # Maximum amount of turns during a roam
roam_rate: 52 # Roaming frequency. roam_cool - rand(roam_cool / (roam_rate / 10))
behavior: 53 # Add behaviors to mob
gil_bonus: 54 # Allow mob to drop gil. Multiplier to gil dropped by mob (bonus / 100) * total
idle_despawn: 55 # Time (in seconds) to despawn after being idle
hp_standback: 56 # mob will always standback with hp % higher to value
magic_delay: 57 # Amount of seconds mob waits before casting first spell
special_delay: 58 # Amount of seconds mob waits before using first special
base_damage_modifier: 59 # Add a flat modifer mob a mob's base damage. This is subject to multiplication by MOBMOD_BASE_DAMAGE_MULTIPLIER.
spawn_animationsub: 60 # reset animationsub to this on spawn
hp_scale: 61 # Scale the mobs max HP. ( hp_scale / 100 ) * maxhp
no_standback: 62 # Mob will never standback
attack_skill_list: 63 # skill list to use in place of regular attacks
charmable: 64 # mob is charmable
no_move: 65 # Mob will not be able to move
multi_hit: 66 # Mob will have as many swings as defined.
no_aggro: 67 # If set, mob cannot aggro until unset.
alli_hate: 68 # Range around target to add alliance member to enmity list.
no_link: 69 # If set, mob cannot link until unset.
no_rest: 70 # Mob cannot regain hp (e.g. re-burrowing antlions during ENM).
leader: 71 # Used for mob following. Positive number is how many followers a leader has. A negative number is the distance from this mob ID to the leader ID.
magic_range: 72 # magic aggro range
target_distance_offset: 73 # Adjusts how close a mob will move to it's target. 12 = 1.2 yalm. Positive values to go closer, negative farther.
one_way_linking: 74 # Will link with other mobs in its party (typically the same mob family) while roaming, but will not let others link with it once engaged
can_parry: 75 # Check if a mob is allowed to have parry rank (Rank Value 1-5)
no_widescan: 76 # Disables widescan for a specific mob
trust_distance: 77 # TRUSTS ONLY: Set movement type/distance. See trust.lua for details.
standback_range: 78 # Applies a specific standback range for the mob
cannot_guard: 79 # Check if the mob does not guard(despite being a MNK or PUP mob)
skip_allegiance_check: 80 # Skip the allegiance check for valid target (allows for example a mob to cast a TARGET_ENEMY spell on itself)
ability_response: 81 # Mob can respond to player ability use with onPlayerAbilityUse()
run_speed_mult: 82 # Multiplier for the speed of a mob while running (generally when the target is out of range) 100 = 1.00x
claim_type: 83 # Changes the claim behavior of the mob. See xi::ClaimType enum.
no_spell_cost: 84 # Mob does not use MP when casting spells
astral_pet_offset: 85 # If non-zero, defines the offset from main mob's ID for astral flow (if zero, will assume offset of 2)
base_damage_multiplier: 86 # Multiplies the mob's base damage. Example: 150 = x1.5. MOBMOD_DAMAGE_OFFSET/MOBMOD_RANGED_DAMAGE_OFFSET are not subject to multiplication.
damage_offset: 87 # Adds or subtracts the mob's base damage offset.
ranged_damage_offset: 88 # Adds or subtracts the mob's ranged base damage offset.
avatar_petid: 89 # A value from xi.petId to select model/ability from when owner uses astral flow
avatar_astral_delay: 90 # Number of milliseconds to delay AF after avatar spawn
h2h_single_swing: 91 # Mob will have only one swing per attack even as MNK with H2H skill
aoe_hit_all: 92 # Mob AoE can hit any player regardless of enmity
ranged_attack_range: 93 # Max range for ranged auto attacks. Mob will move closer if target is beyond this range.
follow_leash_range: 94 # Distance the leader can walk before their followers start moving. Applied to followers.
follow_stop_range: 95 # Distance the followers attempt to stop at once their leader stops moving. Applied to followers.
trust_shield_size: 96 # TRUSTS ONLY: Set the size of the mob's shield. 3 = Default size, only used for trusts that use shields.
bodyguard: 97 # Charmed mob defends its master similar to an avatar. (Maiden's Virelai)

17
data/enums/mob_type.yaml Normal file
View file

@ -0,0 +1,17 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint8_t
lua:
table: xi.mobType
values:
normal: 0x00
unused: 0x01 # available for use
notorious: 0x02
fished: 0x04
called: 0x08
battlefield: 0x10
event: 0x20

1275
data/enums/mod.yaml Normal file

File diff suppressed because it is too large Load diff

14
data/enums/name_vis.yaml Normal file
View file

@ -0,0 +1,14 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint8_t
lua:
table: xi.nameVis
values:
none: 0x00
icon: 0x01 # (I) Icon next to name
hide_name: 0x08
ghost_phase: 0x80

23
data/enums/roam_flag.yaml Normal file
View file

@ -0,0 +1,23 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint16_t
lua:
table: xi.roamFlag
values:
none: 0x000
none0: 0x001
none1: 0x002
none2: 0x004
none3: 0x008
none4: 0x010
none5: 0x020
worm: 0x040 # pop up and down when moving
ambush: 0x080 # stays hidden until someone comes close (antlion)
scripted: 0x100 # calls lua method for roaming logic
ignore: 0x200 # ignore all hate, except linking hate
stealth: 0x400 # stays name hidden and untargetable until someone comes close (chigoe)
follow: 0x800 # follows a player when sighted for a little while

View file

@ -0,0 +1,65 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.skill
values:
# Combat Skills
none: 0
hand_to_hand: 1
dagger: 2
sword: 3
great_sword: 4
axe: 5
great_axe: 6
scythe: 7
polearm: 8
katana: 9
great_katana: 10
club: 11
staff: 12
# 13-21 unused
automaton_melee: 22
automaton_ranged: 23
automaton_magic: 24
archery: 25
marksmanship: 26
throwing: 27
# Defensive Skills
guard: 28
evasion: 29
shield: 30
parry: 31
# Magic Skills
divine_magic: 32
healing_magic: 33
enhancing_magic: 34
enfeebling_magic: 35
elemental_magic: 36
dark_magic: 37
summoning_magic: 38
ninjutsu: 39
singing: 40
string_instrument: 41
wind_instrument: 42
blue_magic: 43
geomancy: 44
handbell: 45
# 46-47 unused
# Crafting Skills
fishing: 48
woodworking: 49
smithing: 50
goldsmithing: 51
clothcraft: 52
leathercraft: 53
bonecraft: 54
alchemy: 55
cooking: 56
synergy: 57
# Other Skills
rid: 58
dig: 59

View file

@ -0,0 +1,11 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.spawnAnimation
values:
normal: 0
special: 1

View file

@ -0,0 +1,19 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint8_t
lua:
table: xi.spawnType
values:
normal: 0x00 # 00:00-24:00
at_night: 0x01 # 20:00-04:00
at_evening: 0x02 # 18:00-06:00
weather: 0x04
fog: 0x08 # 02:00-07:00
moonphase: 0x10
lottery: 0x20
windowed: 0x40
scripted: 0x80 # scripted spawn

17
data/enums/status.yaml Normal file
View file

@ -0,0 +1,17 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint8_t
lua:
table: xi.status
values:
normal: 0
update: 1
disappear: 2
invisible: 3
status_4: 4
cutscene_only: 6
status_18: 18
shutdown: 20

View file

@ -0,0 +1,42 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint32_t
lua:
table: xi.effectFlag
values:
none: 0x00000000
dispelable: 0x00000001
erasable: 0x00000002
attack: 0x00000004
empathy: 0x00000008
damage: 0x00000010
death: 0x00000020
magic_begin: 0x00000040
magic_end: 0x00000080
on_zone: 0x00000100
no_loss_message: 0x00000200
invisible: 0x00000400
detectable: 0x00000800
no_rest: 0x00001000
prevent_action: 0x00002000
waltzable: 0x00004000
food: 0x00008000
song: 0x00010000
roll: 0x00020000
synth_support: 0x00040000
confrontation: 0x00080000
logout: 0x00100000
bloodpact: 0x00200000
on_jobchange: 0x00400000
no_cancel: 0x00800000
influence: 0x01000000
offline_tick: 0x02000000
aura: 0x04000000
hide_timer: 0x08000000
on_zone_pathos: 0x10000000
always_expiring: 0x20000000
on_attack: 0x40000000

29
data/enums/weather.yaml Normal file
View file

@ -0,0 +1,29 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
cpp:
underlying: uint16_t
lua:
table: xi.weather
values:
none: 0
sunshine: 1
clouds: 2
fog: 3
hot_spell: 4
heat_wave: 5
rain: 6
squall: 7
dust_storm: 8
sand_storm: 9
wind: 10
gales: 11
snow: 12
blizzards: 13
thunder: 14
thunderstorms: 15
auroras: 16
stellar_glare: 17
gloom: 18
darkness: 19

26
data/enums/zone_misc.yaml Normal file
View file

@ -0,0 +1,26 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint16_t
lua:
table: xi.zoneMisc
values:
none: 0x0000 # Able to be used in any area
escape: 0x0001 # Ability to use Escape Spell
fellow: 0x0002 # Ability to summon Fellow NPC
mount: 0x0004 # Ability to use Chocobos and mounts
mazurka: 0x0008 # Ability to use Mazurka Spell
tractor: 0x0010 # Ability to use Tractor Spell
mogmenu: 0x0020 # Ability to communicate with Nomad Moogle (menu access mog house)
costume: 0x0040 # Ability to use a Costumes
pet: 0x0080 # Ability to summon Pets
treasure: 0x0100 # Presence in the global zone TreasurePool
auction_house: 0x0200 # Ability to use the auction house
yell: 0x0400 # Send and receive /yell commands
trust: 0x0800 # Ability to summon Trust NPC
los_player_block: 0x1000 # Players can't use magic/JAs through walls if this is set
los_off: 0x2000 # Zone should not have LoS checks
assist: 0x4000 # Send and receive /assiste, /assistj commands

20
data/enums/zone_type.yaml Normal file
View file

@ -0,0 +1,20 @@
# yaml-language-server: $schema=../schemas/enums/_enum.schema.json
meta:
flags: true
cpp:
underlying: uint16_t
lua:
table: xi.zoneType
values:
unknown: 0x0000
city: 0x0001
outdoors: 0x0002
dungeon: 0x0004
signet: 0x0008
sanction: 0x0010
sigil: 0x0020
ionis: 0x0040
dynamis: 0x0080
instanced: 0x0100

View file

@ -0,0 +1,43 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "_meta.schema.json",
"title": "Data-file codegen metadata",
"description": "Optional top-level `meta:` block in data yamls. Carries directives that drive codegen.",
"type": "object",
"unevaluatedProperties": false,
"properties": {
"enum": {
"type": "object",
"unevaluatedProperties": false,
"required": ["cpp"],
"description": "Emit a typed enum derived from a top-level section of the data file.",
"properties": {
"cpp": {
"type": "object",
"unevaluatedProperties": false,
"required": ["underlying", "class"],
"properties": {
"underlying": { "type": "string" },
"class": { "type": "string", "pattern": "^[A-Z][A-Za-z0-9]*$" },
"case": { "type": "string", "enum": ["pascal", "screaming"], "default": "pascal" }
}
},
"lua": {
"type": "object",
"unevaluatedProperties": false,
"properties": {
"table": { "type": "string", "pattern": "^xi\\.[A-Za-z][A-Za-z0-9_]*$" }
}
},
"section": {
"type": "string",
"description": "Which top-level YAML section to walk. Defaults to the filename."
},
"name_from": {
"type": "string",
"description": "Dot-path inside each entry to a string that gets slugged into the enum value name (e.g., `name.en`). When set, the YAML key is treated as the integer id."
}
}
}
}
}

View file

@ -0,0 +1,65 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "_enum.schema.json",
"title": "Enum source",
"description": "Meta-schema for data/enums/*.yaml. Each file declares a typed enum: a `meta` block describing the C++/Lua surface, and a `values` map of name -> integer.",
"type": "object",
"unevaluatedProperties": false,
"required": ["meta", "values"],
"properties": {
"meta": {
"type": "object",
"unevaluatedProperties": false,
"required": ["cpp"],
"properties": {
"flags": {
"description": "True if values are bitmask flags.",
"type": "boolean",
"default": false
},
"cpp": {
"type": "object",
"unevaluatedProperties": false,
"required": ["underlying"],
"properties": {
"underlying": {
"description": "C++ underlying integer type for the enum class.",
"type": "string",
"enum": ["int8_t", "uint8_t", "int16_t", "uint16_t", "int32_t", "uint32_t", "int64_t", "uint64_t"]
},
"class": {
"description": "Generated C++ enum class name (PascalCase).",
"type": "string",
"pattern": "^[A-Z][A-Za-z0-9]*$"
},
"case": {
"description": "Case style for generated enum value names. `pascal` (default): `War`, `MysteryBox`. `screaming`: `WAR`, `MYSTERY_BOX`.",
"type": "string",
"enum": ["pascal", "screaming"],
"default": "pascal"
}
}
},
"lua": {
"type": "object",
"unevaluatedProperties": false,
"properties": {
"table": {
"description": "Lua table path the values are exported under. Example: `xi.itemFlag`.",
"type": "string",
"pattern": "^xi\\.[A-Za-z][A-Za-z0-9_]*$"
}
}
}
}
},
"values": {
"description": "Map of value name -> integer. Names must be snake_case and unique. Integers may be decimal or hex (0xNN).",
"type": "object",
"minProperties": 1,
"propertyNames": { "pattern": "^[a-z][a-z0-9_]*$" },
"additionalProperties": { "type": "integer" }
}
}
}

View file

@ -0,0 +1,52 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "status_effects.schema.json",
"title": "StatusEffects",
"description": "Schema for data/status_effects.yaml.",
"type": "object",
"unevaluatedProperties": false,
"required": ["status_effects"],
"properties": {
"meta": { "$ref": "_meta.schema.json" },
"status_effects": {
"type": "object",
"description": "Status effects.",
"propertyNames": { "pattern": "^[a-z][a-z0-9_]*$" },
"additionalProperties": { "$ref": "#/$defs/status_effect" }
}
},
"$defs": {
"status_effect": {
"type": "object",
"unevaluatedProperties": false,
"required": ["id"],
"properties": {
"id": { "type": "integer", "minimum": 0, "maximum": 65535 },
"name": {
"type": "string",
"description": "Override for the Lua script lookup name. Defaults to the YAML key."
},
"flags": {
"type": "array",
"items": { "$ref": "enums/status_effect_flag.codegen.json" },
"uniqueItems": true,
"default": []
},
"exclusion_group": {
"$ref": "enums/status_effect.codegen.json",
"description": "Applying this effect removes all other effects sharing the same group (the group's representative effect). e.g. all spikes share blaze_spikes."
},
"negative": { "$ref": "enums/status_effect.codegen.json" },
"overwrite": { "$ref": "enums/effect_overwrite.codegen.json" },
"block": { "$ref": "enums/status_effect.codegen.json" },
"remove": { "$ref": "enums/status_effect.codegen.json" },
"element": { "$ref": "enums/element.codegen.json" },
"min_duration": { "type": "integer", "minimum": 0, "maximum": 65535 },
"sort_key": { "type": "integer", "minimum": 0, "maximum": 65535 },
"wear_off_message_id": { "type": "integer", "minimum": 0, "maximum": 65535 }
}
}
}
}

5719
data/status_effects.yaml Normal file

File diff suppressed because it is too large Load diff

View file

@ -102,7 +102,6 @@ services:
XI_NETWORK_SQL_HOST: database
XI_NETWORK_SQL_PORT: 3306
volumes:
- losmeshes:/server/losmeshes
- navmeshes:/server/navmeshes
- ${LOCAL_WORKSPACE_FOLDER:-./}/log:/server/log
depends_on:
@ -117,7 +116,6 @@ services:
XI_NETWORK_SQL_HOST: database
XI_NETWORK_SQL_PORT: 3306
volumes:
- losmeshes:/server/losmeshes
- navmeshes:/server/navmeshes
- ${LOCAL_WORKSPACE_FOLDER:-./}/log:/server/log
depends_on:
@ -192,7 +190,6 @@ services:
ports:
- "54230:54230/udp"
volumes:
- losmeshes:/server/losmeshes
- navmeshes:/server/navmeshes
- ${LOCAL_WORKSPACE_FOLDER:-./}/log:/server/log
depends_on:
@ -207,7 +204,5 @@ services:
condition: service_started
volumes:
losmeshes:
external: true
navmeshes:
external: true

View file

@ -2,10 +2,10 @@
## Meshes
`losmeshes` and `navmeshes` are included in a separate image. You can load these into a volume with the following command:
`navmeshes` are included in a separate image. You can load these into a volume with the following command:
```sh
docker run --rm -v losmeshes:/losmeshes -v navmeshes:/navmeshes ghcr.io/landsandboat/ximeshes:latest
docker run --rm -v navmeshes:/navmeshes ghcr.io/landsandboat/ximeshes:latest
```
Once the volumes are created, you can delete the image.
@ -47,7 +47,6 @@ docker run --name some-lsb-server \
-p 54002:54002 \
-p 54230:54230 \
-p 54231:54231 \
-v losmeshes:/server/losmeshes \
-v navmeshes:/server/navmeshes \
-it ghcr.io/landsandboat/server:latest
```
@ -114,7 +113,6 @@ x-common: &common
XI_NETWORK_SQL_HOST: database
# XI_{file}_{setting}: value
volumes:
- losmeshes:/server/losmeshes
- navmeshes:/server/navmeshes
# - ./config.yaml:/server/tools/config.yaml
# - ./map.lua:/server/settings/map.lua
@ -201,8 +199,6 @@ services:
volumes:
database:
losmeshes:
external: true
navmeshes:
external: true
```

View file

@ -3,7 +3,7 @@
########
# Base #
########
ARG BASE_TAG=3.22
ARG BASE_TAG=3.24
FROM --platform=$BUILDPLATFORM alpine:$BASE_TAG AS base
# Install runtime dependencies.
@ -12,6 +12,7 @@ apk --update-cache add \
bash \
binutils \
git \
libdwarf \
lua5.1-dev \
luajit \
mariadb-client \
@ -56,7 +57,7 @@ SHELL ["/bin/bash", "-c"]
###########
FROM base AS staging
ARG LLVM_VERSION=20
ARG LLVM_VERSION=22
# Install build dependencies.
RUN --mount=type=cache,target=/var/cache/apk,id=cache-apk,sharing=locked <<EOF
@ -65,15 +66,18 @@ apk --update-cache add \
ccache \
cmake \
g++ \
libdwarf-dev \
linux-headers \
luajit-dev \
make \
mariadb-dev \
ninja-build \
ninja-is-really-ninja \
openssl-dev \
python3-dev \
samurai \
zeromq-dev \
zlib-dev
zlib-dev \
zstd-dev
EOF
# Install secondary dependencies as user.
@ -136,9 +140,8 @@ USER $UNAME
# https://docs.docker.com/reference/dockerfile/#copy---exclude (docker/dockerfile:1.7-labs)
COPY --chown=$UNAME:$UGROUP \
--exclude=.git \
--exclude=losmeshes/** \
--exclude=navmeshes/** \
--exclude=scripts \
--exclude=ximeshes/** \
--exclude=sql \
. /server
@ -151,7 +154,6 @@ ENV CCACHE_DIR=/xiadmin/.ccache
RUN --mount=type=cache,target=/xiadmin/build,uid=$UID,gid=$GID,id=build-alpine-$COMPILER-$CMAKE_BUILD_TYPE-tracy$TRACY_ENABLE-pch$PCH_ENABLE \
--mount=type=cache,target=/xiadmin/.ccache,uid=$UID,gid=$GID,id=ccache-alpine-$COMPILER-$CMAKE_BUILD_TYPE-tracy$TRACY_ENABLE-pch$PCH_ENABLE \
--mount=type=bind,source=.git,target=/server/.git \
--mount=type=bind,source=scripts,target=/server/scripts \
--mount=type=bind,source=sql,target=/server/sql <<EOF
set -eo pipefail
cp -p /xiadmin/build/version.cpp /server/src/common/ 2> /dev/null || true
@ -187,13 +189,14 @@ USER $UNAME
COPY --chown=$UNAME:$UGROUP LICENSE /server/LICENSE
COPY --chown=$UNAME:$UGROUP res/compress.dat res/decompress.dat /server/res/
COPY --chown=$UNAME:$UGROUP scripts /server/scripts
COPY --chown=$UNAME:$UGROUP sql /server/sql
COPY --chown=$UNAME:$UGROUP tools /server/tools
COPY --chown=$UNAME:$UGROUP modules /server/modules
COPY --chown=$UNAME:$UGROUP settings /server/settings
COPY --chown=$UNAME:$UGROUP --from=staging $VIRTUAL_ENV $VIRTUAL_ENV
COPY --chown=$UNAME:$UGROUP --from=build /server/data /server/data
COPY --chown=$UNAME:$UGROUP --from=build /server/scripts /server/scripts
COPY --chown=$UNAME:$UGROUP --from=build /server/xi_* /server/
COPY --chown=$UNAME:$UGROUP --from=build /server/build.log /server/build.log

View file

@ -1,6 +1,6 @@
FROM --platform=$BUILDPLATFORM busybox:latest
COPY ./losmeshes/*.obj /losmeshes/
COPY ./navmeshes/*.nav /navmeshes/
COPY ./ximeshes/*.ximesh /ximeshes/
VOLUME /navmeshes /losmeshes
VOLUME /navmeshes /ximeshes

View file

@ -3,7 +3,7 @@
########
# Base #
########
ARG BASE_TAG=24.04
ARG BASE_TAG=26.04
FROM --platform=$BUILDPLATFORM ubuntu:$BASE_TAG AS base
ARG DEBIAN_FRONTEND=noninteractive
@ -19,6 +19,7 @@ apt-get update && apt-get install --assume-yes --no-install-recommends --quiet \
binutils \
ca-certificates \
git \
libdwarf1 \
libzmq5 \
lua5.1 \
luajit \
@ -63,8 +64,8 @@ SHELL ["/bin/bash", "-c"]
###########
FROM base AS staging
ARG GCC_VERSION=14
ARG LLVM_VERSION=20
ARG GCC_VERSION=15
ARG LLVM_VERSION=22
# Install build dependencies.
RUN --mount=type=cache,target=/var/cache/apt,id=cache-apt,sharing=locked \
@ -74,15 +75,18 @@ apt-get update && apt-get install --assume-yes --no-install-recommends --quiet \
ccache \
cmake \
g++-$GCC_VERSION \
libdwarf-dev \
libluajit-5.1-dev \
libmariadb-dev-compat \
libssl-dev \
libzmq3-dev \
make \
ninja-build \
pkg-config \
python3-dev \
python3-venv \
zlib1g-dev
zlib1g-dev \
libzstd-dev
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$GCC_VERSION 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-$GCC_VERSION 100
EOF
@ -148,9 +152,8 @@ USER $UNAME
# https://docs.docker.com/reference/dockerfile/#copy---exclude (docker/dockerfile:1.7-labs)
COPY --chown=$UNAME:$UGROUP \
--exclude=.git \
--exclude=losmeshes/** \
--exclude=navmeshes/** \
--exclude=scripts \
--exclude=ximeshes/** \
--exclude=sql \
. /server
@ -163,7 +166,6 @@ ENV CCACHE_DIR=/xiadmin/.ccache
RUN --mount=type=cache,target=/xiadmin/build,uid=$UID,gid=$GID,id=build-ubuntu-$COMPILER-$CMAKE_BUILD_TYPE-tracy$TRACY_ENABLE-pch$PCH_ENABLE \
--mount=type=cache,target=/xiadmin/.ccache,uid=$UID,gid=$GID,id=ccache-ubuntu-$COMPILER-$CMAKE_BUILD_TYPE-tracy$TRACY_ENABLE-pch$PCH_ENABLE \
--mount=type=bind,source=.git,target=/server/.git \
--mount=type=bind,source=scripts,target=/server/scripts \
--mount=type=bind,source=sql,target=/server/sql <<EOF
set -eo pipefail
cp -p /xiadmin/build/version.cpp /server/src/common/ 2> /dev/null || true
@ -199,13 +201,14 @@ USER $UNAME
COPY --chown=$UNAME:$UGROUP LICENSE /server/LICENSE
COPY --chown=$UNAME:$UGROUP res/compress.dat res/decompress.dat /server/res/
COPY --chown=$UNAME:$UGROUP scripts /server/scripts
COPY --chown=$UNAME:$UGROUP sql /server/sql
COPY --chown=$UNAME:$UGROUP tools /server/tools
COPY --chown=$UNAME:$UGROUP modules /server/modules
COPY --chown=$UNAME:$UGROUP settings /server/settings
COPY --chown=$UNAME:$UGROUP --from=staging $VIRTUAL_ENV $VIRTUAL_ENV
COPY --chown=$UNAME:$UGROUP --from=build /server/data /server/data
COPY --chown=$UNAME:$UGROUP --from=build /server/scripts /server/scripts
COPY --chown=$UNAME:$UGROUP --from=build /server/xi_* /server/
COPY --chown=$UNAME:$UGROUP --from=build /server/build.log /server/build.log

View file

@ -43,18 +43,18 @@ ATTACKED - Defender, attacker, action
RANGE_START - Entity, action
RANGE_STATE_EXIT - Entity, Target, action
ABILITY_START - Entity, Ability
ABILITY_USE - Entity, Target, Ability, action
ABILITY_TAKE - Target, Entity, Ability, action
ABILITY_STATE_EXIT - Entity, Ability
ABILITY_START - userEntity, skillObject
ABILITY_USE - userEntity, targetEntity, skillObject, action
ABILITY_TAKE - userEntity, targetEntity, skillObject, action
ABILITY_STATE_EXIT - userEntity, skillObject
WEAPONSKILL_STATE_ENTER - Entity, Skillid
WEAPONSKILL_BEFORE_USE - Entity, Skillid
WEAPONSKILL_USE - Entity, Target, Skillid, TP, action
WEAPONSKILL_TAKE - Target, Entity, Skillid, TP, action
WEAPONSKILL_STATE_EXIT - Entity, Skillid
WEAPONSKILL_STATE_ENTER - userEntity, skillId
WEAPONSKILL_BEFORE_USE - userEntity, skillId
WEAPONSKILL_USE - userEntity, targetEntity, skill, tp, action, damage
WEAPONSKILL_TAKE - userEntity, targetEntity, skill, tp, action
WEAPONSKILL_STATE_EXIT - userEntity, skillId, wasExecuted
MAGIC_START - Entity, Spell, action
MAGIC_START - Entity, Target, Spell, action
MAGIC_USE - Entity, Target, Spell, action
MAGIC_INTERRUPTED - Entity, Target, Spell, action
MAGIC_TAKE - Target, Entity, Spell, action

View file

@ -0,0 +1,59 @@
# AI Agents
```txt
* This post was written by hand, zhuzhed up by AI, and then manually proofread, fact-checked, and
polished by hand, exactly how it should be.
Even with careful oversight, I still had to alter the tone, correct statements, remove ligatures,
remove outright lies and hallucinations, replace the telltale "em dashes"'s that AI is so fond
of (—), etc.
It's unknown if it would have been faster for me to write the document entirely by hand, or if using
AI forced me to spend much more time in editing and verification than I otherwise would have...
Worth thinking about.
```
### Use of AI, LLMs, and Code Generation Tools in LandSandBoat
AI-assisted coding tools like ChatGPT, Claude, Copilot, and Cursor are now a part of most developers' workflows. Their use is inevitable in an open-source project like LandSandBoat.
However, these tools are **not a substitute for understanding what you're doing**, and they cannot be trusted to write, test, or reason about code on your behalf. If you submit code written or heavily influenced by AI, you are still responsible for the result. That means understanding it, testing it, and verifying that it's correct and appropriate for the project. The code you submit is still going to be read many times over by reviewers and future contributors, and it should be of sufficient quality that it can stand up to this scrutiny.
Submissions that clearly come straight from AI with minimal oversight ("AI slop") waste reviewers' time and degrade the quality of the codebase. If you're using AI, please do so carefully and responsibly.
#### When is AI suitable?
* **Enhanced Auto-Complete / IntelliSense:** Inline suggestions can be effective for filling in small patterns, repetitive code, or documentation, boosting productivity without sacrificing correctness - provided you understand what's being inserted.
* **Generating Boilerplate Code:** AI can help lay out template code, data structures, or simple glue logic, as long as you review, test, and annotate it yourself. Think of AI as an enthusiastic intern: it saves time on setup, but you must ensure everything is correct, idiomatic, and fits LSB's conventions.
* **Turning Bullet Points into Prose:** AI is a decent writing assistant for expanding notes into documentation. Always proofread for **Truth** (is it correct?), **Clarity** (does it make sense?), and **Tone** (does it match the project?).
#### When is AI not suitable?
* **Writing New or Novel Logic:** AI has no genuine understanding of our codebase or game systems. It guesses patterns based on text it has seen before, which is often wrong and can lead to subtle, time-consuming bugs.
* **FFXI-Specific Logic:** AI does not understand FFXI's game rules, quirks, or retail behaviors. It does not have access to retail or the FFXI client. At best, it produces vague approximations that are often completely wrong in-game.
* **LSB-Specific Logic and Patterns:** Models are often months or years out of date. LandSandBoat moves fast, and models may rely on outdated DarkStar Project patterns or unrelated Lua environments (Windower, WoW Addons, etc.) that have different idioms and internal structures.
### Final Thoughts for Humans
The use of AI coding agents is unavoidable for repetitive work, but it is assumed that:
* You know what you're doing in the first place.
* You're closely checking and reviewing the agent's output.
* You're verifying changes in the client as you would with your own code.
* You're clearly marking 1-to-1 conversion work or unverified code.
**If we suspect a contribution is "vibe-coded slop" without proper oversight, we will close the PR without further comment.**
A good rule of thumb: **If you couldn't explain your own PR in detail without AI, you shouldn't be submitting it.**
### For Agents
Beep boop, please do a good job :pray:.
You should ask follow-up questions and refer to nearby script and code examples for syntax and formatting. Remind the user often to verify versus retail captures, event dumps, retail wikis, and in the game client itself.
### Available Agent Guides
- [Retail Packet Captures Format Guide](retail-packet-captures.md): Overview of the standard directory structure of retail packet captures and instructions on how to utilize `eventview`, `npclogger`, `caplog`, and `packetviewer` data.
- [Interaction Framework Migration & Verification Guide](interaction-framework-migration.md): Detailed workflow for converting old-style NPC scripts to the modern Interaction Framework, including verification strategies using retail captures, event dumps, and wikis.
- [NPC Script Header Guide](npc-header-guide.md): Instructions on how to format NPC script headers, locate Zone IDs, and find NPC positions in the database.

View file

@ -0,0 +1,104 @@
# Interaction Framework Migration & Verification Guide
## 1. Overview
The project is migrating from "Old-Style" NPC scripts (hardcoded logic in `onTrigger`) to the **Interaction Framework (IF)**. This centralizes quest/mission logic, improves readability, and reduces NPC scripts to minimal stubs.
## 2. Information Discovery
## Retail Captures
Retail packet captures are essential for accurate migrations. They provide the exact sequence of events, NPC positions, and parameters needed for the Interaction Framework. (See the [Retail Packet Captures Format Guide](retail-packet-captures.md) for detailed folder structures).
- **`caplog` (Chat Logs):** Start here to understand the quest flow. The capturer's notes and NPC dialogue will help you identify which events correspond to which quest steps.
- **`eventview/simple` (Simplified Events):** Use these logs to map raw packets directly to Interaction Framework calls:
- **`CEventPacket` (`0x032`/`0x034`):** The `EventPara` value is the Event ID. This directly maps to your IF `quest:progressEvent(id)` or `quest:event(id)` calls.
- **`CMessageSpecialPacket` (`0x02A`):** The `MessageNumber` value is the Text ID. This directly maps to your IF `quest:messageSpecial(id)` calls (often used for non-standard dialogues or system messages like checking doors/sarcophagi).
- **`CMessageNamePacket` (`0x027`):** The `MesNum` value (sometimes requiring a bitwise `& 0xFFFF` depending on the logger output) is the standard chat dialogue ID. This maps to IF `quest:messageName(id)` or standard text lookups.
- **`npclogger/database` (NPC Data):** Use the `.lua` files here to populate or verify NPC coordinates and properties in `sql/npc_list.sql` or to format your NPC script headers correctly.
- **`packetviewer` (Raw Packets):** For complex interactions that `eventview` doesn't fully capture, you can dive into the raw packets here to understand what the client is sending and receiving.
### Database (SQL)
- **NPC IDs & Positions:** Check `sql/npc_list.sql`. Use this to find the 8-digit NPC ID and their `!pos` coordinates.
- **Item IDs:** Check `sql/item_basic.sql`. If an item constant is missing from Lua, find the ID here and use it directly or add it to the enum.
### Global Registries (Lua Enums)
- **Quest IDs:** `scripts/globals/quests.lua`.
- **Mission IDs:** `scripts/globals/missions.lua`.
- **Item Constants:** `scripts/enum/item.lua`.
- **Key Item Constants:** `scripts/enum/key_item.lua`.
- **Zone Constants:** `scripts/enum/zone.lua`.
### Retail Event Dumps
The `sruon/FFXI-EventsDump` repository is the source of truth for retail event IDs and dialogue.
- **Nearby Repo:** If the repo is cloned next to this one, access it via `../FFXI-EventsDump/dumps/<Zone_Name>`.
- **Remote Access:** Use `web_fetch` or `google_web_search` to find raw markdown files on GitHub if the local path is unavailable.
- **Strings:** Each zone folder has a `strings.txt` file. Map the decimal/hex IDs in the `.md` files to these strings to verify dialogue.
## 3. The Migration Workflow
### Step 1: Research (The "Wiki Triangulation")
1. Check **BOTH** [BG-Wiki](https://www.bg-wiki.com) and [FFXI Wikia](https://ffxiclopedia.fandom.com).
2. Compare steps, item requirements, and NPC dialogue descriptions.
3. Note any "Wait until Japanese Midnight" or "Zone out/in" requirements.
### Step 2: Implementation (The IF File)
Create the appropriate file in `scripts/quests/`, `scripts/missions/`, or `scripts/quests/hiddenQuests/`.
- **Choosing the Container Class:**
- **Quests:** `local quest = Quest:new(xi.questLog.LOG_NAME, xi.quest.id.area.QUEST_NAME)`
- **Missions:** `local mission = Mission:new(xi.mission.log_id.LOG_NAME, xi.mission.id.area.MISSION_NAME)`
- **Hidden Quests:** `local quest = HiddenQuest:new('UniqueStringName')` (Used for non-logged content like Trust acquisitions or Mog House expansions).
- **Why they are different:**
- **Variable Scoping:** Each class automatically prefixes variables (e.g., `Quest[1][2]Prog`, `Mission[4][10]Prog`, or `UniqueStringNameProg`). This prevents collisions across different types of content.
- **Check Arguments:** `Quest` and `Mission` objects automatically check their respective logs/statuses when determining if a section's `check` function should run. `HiddenQuest` relies entirely on custom variables.
- **Basic Structure:**
```lua
local quest = Quest:new(xi.questLog.LOG_NAME, xi.quest.id.area.QUEST_NAME)
quest.reward = { fame = 30, gil = 1000 }
quest.sections = {
{
check = function(player, status, vars) return status == xi.questStatus.QUEST_AVAILABLE end,
[xi.zone.ZONE_ID] = {
['NPC_Name'] = quest:progressEvent(100),
},
},
}
```
- **Trading:** Use `onTrade` within the NPC block. Always use `npcUtil.tradeHasExactly` or `npcUtil.tradeHas`.
- **Zoning:** Use `quest:setMustZone(player)` and `quest:getMustZone(player)`.
- **Trigger Areas:** Handle approach-based cutscenes via `onTriggerAreaEnter`.
### Step 3: NPC Script Cleanup
1. **Header:** Ensure the header includes the `!pos` from `npc_list.sql`.
2. **Logic Removal:** Strip all `if/else` quest blocks.
3. **Minimal Stub:** If no non-quest logic remains, convert to:
```lua
---@type TNpcEntity
local entity = {}
entity.onTrigger = function(player, npc) end
entity.onTrade = function(player, npc, trade) end
return entity
```
4. **Preservation:** Keep patrol logic (`onSpawn`), Trust logic, or complex non-migrated quests in the script.
### Step 4: Default Actions
If an NPC has a single default interaction (e.g., `player:startEvent(200)`), move it to `scripts/zones/<Zone>/DefaultActions.lua`:
```lua
['NPC_Name'] = { event = 200 },
```
### Step 5: Global Marking
Mark the quest in `scripts/globals/quests.lua` with the specific partial conversion tag:
```lua
QUEST_NAME = 123, -- + Partial conversion. TODO: This needs completing with retail caps
```
## 4. Advanced Interaction Techniques
- **Container Action Helpers (`event` vs `progressEvent`):** Under the hood (`scripts/globals/interaction/container.lua`), actions like `quest:progressEvent(id)` are simply syntactic sugar for creating a base Event and applying a priority modifier (e.g. `Event:new(id):progress()`). The same applies to `quest:cutscene(id)` or `quest:replaceEvent(id)`. Use `progressEvent` for critical quest progression to ensure it overrides default NPC behaviors.
- **Event Updates:** Handle multi-choice menus via `onEventUpdate`.
- **Bitmasks:** Use `quest:setVarBit(player, 'Prog', bit)` and `quest:isVarBitsSet(player, 'Prog', bit)`.
- **Variables:** Prefer `quest:getVar` over `player:getCharVar` for framework-managed persistence.
- **Timers:** Use `quest:setTimedVar(player, 'Timer', JstMidnight())` for daily repeats.
## 5. Verification Golden Rule
**Never assume existing logic is correct.** Existing scripts often skip "Reminder" dialogue or "Post-Quest" flavor text. Always cross-reference the `sruon/FFXI-EventsDump` for every NPC involved in the quest to ensure 100% dialogue coverage.

View file

@ -0,0 +1,75 @@
# NPC Script Header Guide
This guide explains how to format the header for NPC script files in LandSandBoat, and how to locate the required information.
## Header Format
Every NPC script should begin with a standardized header. This header provides the zone name, zone ID, NPC name, and the NPC's spawn position (as a `!pos` command).
```lua
-----------------------------------
-- Area: Windurst Walls (239)
-- NPC: Ambrosius
-- !pos 65.175 -2.499 -63.231 239
-----------------------------------
```
### Components
1. **Area**: The name of the zone followed by its Zone ID in parentheses.
2. **NPC**: The name of the NPC.
3. **!pos**: The X, Y, Z coordinates, followed by the Zone ID. This matches the format used by the in-game `!pos` command.
## Finding the Information
### 1. Zone Name and ID
* **Zone Name**: Usually matches the name of the folder containing the script (e.g., `scripts/zones/Windurst_Walls/`).
* **Zone ID**: Can be found in `scripts/enum/zone.lua`. Search for the zone's constant name (e.g., `WINDURST_WALLS`) to find its numeric ID.
### 2. NPC Name
* **NPC Name**: Use the **display name** (the second name) as it appears in the `sql/npc_list.sql` file. This is usually the name players see in-game.
Example SQL:
```sql
INSERT INTO `npc_list` VALUES (17752605,'AMAN_Liaison','A.M.A.N. Liaison', ...);
```
In this case, you would use `A.M.A.N. Liaison` in the header.
### 3. Finding Position (X, Y, Z) in `sql/npc_list.sql`
If you don't have the coordinates from an in-game capture or a retail dump, you can find them in the database:
1. Open `sql/npc_list.sql`.
2. Search for the NPC's name within the section for the specific zone. Note that names in SQL might be in `varbinary` or `char` formats.
3. The coordinates are stored in the `pos_x`, `pos_y`, and `pos_z` columns.
Example SQL entry:
```sql
INSERT INTO `npc_list` VALUES (16781427,'Ambrosius','Ambrosius',0,65.175,-2.499,-63.231,0,40,40,0,0,0,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',0,NULL,1);
```
In this example:
* `pos_x` = `65.175`
* `pos_y` = `-2.499`
* `pos_z` = `-63.231`
* Zone ID = `239` (derived from the NPC ID or the zone header in the SQL file).
## Maintaining the Notes Section
If a script requires additional context or documentation, a "Notes" section can be included within the header block.
### Existing Notes
If a script already has a notes section, **do not remove it**. Maintain the notes and update them if your changes alter the NPC's behavior or purpose.
### Formatting Notes
Notes should be placed within the header block, usually before the `!pos` command.
```lua
-----------------------------------
-- Area: Windurst Walls (239)
-- NPC: Ambrosius
-- Notes: This NPC is part of the "Crying Over Onions" quest.
-- !pos 65.175 -2.499 -63.231 239
-----------------------------------
```

View file

@ -0,0 +1,46 @@
# Retail Packet Captures Format Guide
When processing unzipped retail packet captures, you will typically encounter a standard directory structure. These captures are usually provided as a `.zip` file, which unpacks into a parent folder representing the content's title, followed by a character folder containing the extracted capture data.
## Folder Structure
A typical unpack hierarchy looks like this:
`[Title Folder] / [Character Name] / [Addon Folders]`
### Important Addon Folders and Their Uses
Inside the character folder, you will find data generated by various capture addons. Folder names may vary slightly in capitalization or structure depending on the logger version. Here are the most important folders and how they should be utilized:
#### 1. `eventview` / `EventView`
Contains data regarding cutscenes and events.
- **`eventview/simple`** (or `.log` files directly under the character name directory): This is the primary directory you will use. It contains logs (usually one `.log` file per zone) outlining simplified event data. Use these files to fill out mission and quest event information when migrating or writing scripts for the Interaction Framework (IF).
- **`eventview/raw`**: Contains more verbose, raw event data if deeper debugging is needed.
#### 2. `npclogger` / `NPCLogger`
Contains data regarding NPC locations, behaviors, and properties.
- **`database` folder or `.db` files**: Depending on the capture, this may be a `database` folder with `.lua` files per zone, or `.db` SQLite files directly in the `NPCLogger` folder. You will use this data to populate or update NPC details, positions, and parameters in `sql/npc_list.sql`.
- *Other folders (like `logs`, `tables`, `widescan`) contain additional raw or parsed NPC data which can be used as supplementary references.*
#### 3. `caplog` / `CapLog`
Contains chat logs from the game client during the capture session.
- **`*.txt` or `*.log` files**: These files represent the capturer's chat window. They are extremely useful for reading notes left by the capturer or seeing the text spoken by NPCs as they are interacted with. This can provide crucial context to help you understand which event is currently playing out.
#### 4. `packetviewer` / `PacketLogger`
Contains raw network packet information.
- Contains `incoming` and `outgoing` folders with packets separated by their hex IDs (e.g., `0x034.log` or `0x0D3.log`), as well as consolidated `full.log`, `incoming.log`, and `outgoing.log` files. This is used when deep-diving into specific raw packet data to understand complex or unmapped game client behaviors.
#### 5. Additional Addon Folders
You may also encounter other specialized folders:
- **`ActionView`**: Logs actions and events (sometimes contains its own `simple` folder with logs, similar to `EventView`).
- **`PathLog`**: Contains `.csv` files tracking PC and NPC movement paths. Useful for recreating NPC patrols.
- **`ShopStock` / `GuildStock`**: Contains `.db` files (`BuyList.db`, `SellList.db`) logging shop and guild inventory data.
- **`KITrack`**: Tracks Key Item acquisitions.
- **`HPTrack`**: Tracks Home Point unlocks/interactions.
- **`AttackDelay`**: Logs related to attack speeds and delays.
## General Workflow
1. Use **`caplog`** to read the flow of the capture and gather context from player notes or NPC dialogues.
2. Use **`eventview`** (specifically the simple logs) to map out the steps, parameters, and event IDs for your Interaction Framework (IF) implementation.
3. If new NPCs are encountered or existing ones are missing data, use **`npclogger`** to prepare their `npc_list.sql` entries.
4. Fall back to **`packetviewer`** / **`PacketLogger`** or `eventview/raw` only when you need to understand low-level network interactions that aren't obvious from the simplified logs.

View file

@ -964,8 +964,8 @@
963 Sleet Blast alt
964 Sleet Blast
965 Geotic Breath
966 Ochre Blast alt
967 Ochre Blast
966 Ocher Blast alt
967 Ocher Blast
968 Sable Breath
969 Snowball
970 Snow Cloud

View file

@ -0,0 +1,245 @@
-----------------------------------
-- Area: Apollyon
-----------------------------------
zones = zones or {}
zones[xi.zone.APOLLYON] =
{
text =
{
ITEM_CANNOT_BE_OBTAINED = 6385, -- You cannot obtain the <item>. Come back after sorting your inventory.
ITEM_OBTAINED = 6391, -- Obtained: <item>.
GIL_OBTAINED = 6392, -- Obtained <number> gil.
KEYITEM_OBTAINED = 6394, -- Obtained key item: <keyitem>.
CARRIED_OVER_POINTS = 7002, -- You have carried over <number> login point[/s].
LOGIN_CAMPAIGN_UNDERWAY = 7003, -- The [/January/February/March/April/May/June/July/August/September/October/November/December] <number> Login Campaign is currently underway!
LOGIN_NUMBER = 7004, -- In celebration of your most recent login (login no. <number>), we have provided you with <number> points! You currently have a total of <number> points.
MEMBERS_LEVELS_ARE_RESTRICTED = 7024, -- Your party is unable to participate because certain members' levels are restricted.
CONQUEST_BASE = 7069, -- Tallying conquest results...
},
mob =
{
-- CS_CARNAGECHIEF_JACKBODOKK = GetFirstID('Carnagechief_Jackbodokk'),
-- CS_DEE_WAPA_THE_DESOLATOR = GetFirstID('Dee_Wapa_the_Desolator'),
-- CS_NAQBA_CHIRURGEON = GetFirstID('NaQba_Chirurgeon'),
-- NE_APOLLYON_SWEEPER_OFFSET = GetFirstID('Apollyon_Sweeper'),
-- NE_GOOBBUE_HARVESTER = GetFirstID('Goobbue_Harvester'),
-- NE_TROGLODYTE_DHALMEL_OFFSET = GetFirstID('Troglodyte_Dhalmel'),
-- NW_APOLLYON_SCAVENGER_OFFSET = GetFirstID('Apollyon_Scavenger'),
-- NW_BARDHA_OFFSET = GetFirstID('Bardha'),
-- NW_CYNOPROSOPI = GetFirstID('Cynoprosopi'),
-- NW_GORYNICH_OFFSET = GetFirstID('Gorynich'),
-- NW_KAISER_BEHEMOTH = GetFirstID('Kaiser_Behemoth'),
-- NW_MILLENARY_MOSSBACK = GetFirstID('Millenary_Mossback'),
-- NW_MOUNTAIN_BUFFALO_OFFSET = GetFirstID('Mountain_Buffalo'),
-- NW_PLUTO = GetFirstID('Pluto'),
-- NW_ZLATOROG = GetFirstID('Zlatorog'),
-- SE_ADAMANTSHELL_OFFSET = GetFirstID('Adamantshell'),
-- SE_FLYING_SPEAR_OFFSET = GetFirstID('Flying_Spear'),
-- SE_TIEHOLTSODI = GetFirstID('Tieholtsodi'),
-- SW_BOSS_JIDRA = GetFirstID('Jidra_Boss'),
-- SW_AIR_ELEMENTAL_OFFSET = GetFirstID('Air_Elemental'),
-- SW_DARK_ELEMENTAL_OFFSET = GetFirstID('Dark_Elemental'),
-- SW_EARTH_ELEMENTAL_OFFSET = GetFirstID('Earth_Elemental'),
-- SW_FIRE_ELEMENTAL_OFFSET = GetFirstID('Fire_Elemental'),
-- SW_ICE_ELEMENTAL_OFFSET = GetFirstID('Ice_Elemental'),
-- SW_LIGHT_ELEMENTAL_OFFSET = GetFirstID('Light_Elemental'),
-- SW_THUNDER_ELEMENTAL_OFFSET = GetFirstID('Thunder_Elemental'),
-- SW_WATER_ELEMENTAL_OFFSET = GetFirstID('Water_Elemental'),
},
npc =
{
-- CENTRAL_LOOT_CRATE = GetFirstID('Central_Loot_Crate'),
-- CS_LOOT_CRATE = GetFirstID('CS_Loot_Crate'),
-- NE_LOOT_CRATE = GetFirstID('NE_Loot_Crate'),
-- NW_LOOT_CRATE = GetFirstID('NW_Loot_Crate'),
-- SE_LOOT_CRATE = GetFirstID('SE_Loot_Crate'),
-- SW_LOOT_CRATE = GetFirstID('SW_Loot_Crate'),
},
-- SW_APOLLYON =
-- {
-- npc =
-- {
-- PORTAL =
-- {
-- 16933231,
-- 16933232,
-- 16933233,
-- },
-- ITEM_CRATES =
-- {
-- 16932865,
-- 16932878,
-- 16932896,
-- },
-- RECOVER_CRATES =
-- {
-- 16932867,
-- 16932880,
-- 16932898,
-- },
-- TIME_CRATES =
-- {
-- 16932866,
-- 16932879,
-- 16932897,
-- },
-- },
-- LINKED_CRATES =
-- {
-- [16932865] = { 16932866, 16932867 },
-- [16932866] = { 16932865, 16932867 },
-- [16932867] = { 16932865, 16932866 },
-- [16932878] = { 16932879, 16932880 },
-- [16932879] = { 16932878, 16932880 },
-- [16932880] = { 16932878, 16932879 },
-- },
-- },
-- SE_APOLLYON =
-- {
-- npc =
-- {
-- PORTAL =
-- {
-- 16933240,
-- 16933239,
-- 16933242,
-- },
-- ITEM_CRATES =
-- {
-- 16932991,
-- 16933005,
-- 16933019,
-- },
-- RECOVER_CRATES =
-- {
-- 16932990,
-- 16933004,
-- 16933018,
-- },
-- TIME_CRATES =
-- {
-- 16932989,
-- 16933003,
-- 16933017,
-- },
-- },
-- },
-- NW_APOLLYON =
-- {
-- npc =
-- {
-- PORTAL =
-- {
-- 16933227,
-- 16933228,
-- 16933229,
-- 16933225,
-- },
-- ITEM_CRATES =
-- {
-- 16932934,
-- 16932947,
-- 16932960,
-- 16932973,
-- },
-- RECOVER_CRATES =
-- {
-- 16932936,
-- 16932949,
-- 16932962,
-- 16932983,
-- },
-- TIME_CRATES =
-- {
-- 16932935,
-- 16932945,
-- 16932946,
-- 16932948,
-- 16932958,
-- 16932959,
-- 16932961,
-- 16932971,
-- 16932972,
-- 16932974,
-- 16932975,
-- 16932982,
-- },
-- },
-- },
-- NE_APOLLYON =
-- {
-- npc =
-- {
-- PORTAL =
-- {
-- 16933236,
-- 16933235,
-- 16933234,
-- 16933238,
-- },
-- ITEM_CRATES =
-- {
-- 16933041,
-- 16933059,
-- 16933076,
-- 16933096,
-- },
-- RECOVER_CRATES =
-- {
-- 16933053,
-- 16933061,
-- 16933078,
-- 16933098,
-- },
-- TIME_CRATES =
-- {
-- 16933042,
-- 16933043,
-- 16933054,
-- 16933060,
-- 16933074,
-- 16933075,
-- 16933077,
-- 16933079,
-- 16933080,
-- 16933097,
-- 16933110,
-- 16933111,
-- },
-- },
-- },
-- CENTRAL_APOLLYON =
-- {
-- },
-- CS_APOLLYON =
-- {
-- npc =
-- {
-- TIME_CRATES =
-- {
-- 16933127,
-- 16933128,
-- },
-- },
-- },
}
return zones[xi.zone.APOLLYON]

View file

@ -0,0 +1,176 @@
-----------------------------------
-- Zone: Apollyon
-----------------------------------
-- local ID = zones[xi.zone.APOLLYON]
-----------------------------------
---@type TZone
local zoneObject = {}
zoneObject.onInitialize = function(zone)
SetServerVariable('[CENTRAL_APOLLYON]Time', 0)
SetServerVariable('[CS_Apollyon]Time', 0)
SetServerVariable('[NE_Apollyon]Time', 0)
SetServerVariable('[NW_Apollyon]Time', 0)
SetServerVariable('[SE_APOLLYON]Time', 0)
SetServerVariable('[SW_APOLLYON]Time', 0)
zone:registerCuboidTriggerArea(1, 637, -4, -642, 642, 4, -637) -- SE Apollyon NE exit
zone:registerCuboidTriggerArea(2, -642, -4, -642, -637, 4, -637) -- APOLLYON_NW_SW exit
zone:registerCuboidTriggerArea(20, 396, -4, -522, 403, 4, -516) -- Apollyon SE telporter floor 1 to floor 2
zone:registerCuboidTriggerArea(21, 116, -4, -443, 123, 4, -436) -- Apollyon SE telporter floor 2 to floor 3
zone:registerCuboidTriggerArea(22, 276, -4, -283, 283, 4, -276) -- Apollyon SE telporter floor 3 to floor 4
zone:registerCuboidTriggerArea(24, 396, -4, 76, 403, 4, 83) -- Apollyon NE telporter floor 1 to floor 2
zone:registerCuboidTriggerArea(25, 276, -4, 356, 283, 4, 363) -- Apollyon NE telporter floor 2 to floor 3
zone:registerCuboidTriggerArea(26, 236, -4, 517, 243, 4, 523) -- Apollyon NE telporter floor 3 to floor 4
zone:registerCuboidTriggerArea(27, 517, -4, 637, 523, 4, 643) -- Apollyon NE telporter floor 4 to floor 5
zone:registerCuboidTriggerArea(29, -403, -4, -523, -396, 4, -516) -- Apollyon SW telporter floor 1 to floor 2
zone:registerCuboidTriggerArea(30, -123, -4, -443, -116, 4, -436) -- Apollyon SW telporter floor 2 to floor 3
zone:registerCuboidTriggerArea(31, -283, -4, -283, -276, 4, -276) -- Apollyon SW telporter floor 3 to floor 4
zone:registerCuboidTriggerArea(33, -403, -4, 76, -396, 4, 83) -- Apollyon NW telporter floor 1 to floor 2
zone:registerCuboidTriggerArea(34, -283, -4, 356, -276, 4, 363) -- Apollyon NW telporter floor 2 to floor 3
zone:registerCuboidTriggerArea(35, -243, -4, 516, -236, 4, 523) -- Apollyon NW telporter floor 3 to floor 4
zone:registerCuboidTriggerArea(36, -523, -4, 636, -516, 4, 643) -- Apollyon NW telporter floor 4 to floor 5
end
zoneObject.onConquestUpdate = function(zone, updatetype, influence, owner, ranking, isConquestAlliance)
xi.conquest.onConquestUpdate(zone, updatetype, influence, owner, ranking, isConquestAlliance)
end
zoneObject.onZoneIn = function(player, prevZone)
local cs = -1
if
player:getXPos() == 0 and
player:getYPos() == 0 and
player:getZPos() == 0
then
player:setPos(643, 0.1, -600)
end
return cs
end
zoneObject.onTriggerAreaEnter = function(player, triggerArea)
-- local triggerAreaID = triggerArea:getTriggerAreaID()
-- switch (triggerAreaID): caseof
-- {
-- -- Apollyon: SE_NE exit
-- [1] = function()
-- player:startEvent(100)
-- end,
-- -- Apollyon: NW_SW exit
-- [2] = function()
-- player:startEvent(101)
-- end,
-- -- Apollyon: SE Teleporters
-- [20] = function()
-- if GetNPCByID(ID.SE_APOLLYON.npc.PORTAL[1]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(219)
-- end
-- end,
-- [21] = function()
-- if GetNPCByID(ID.SE_APOLLYON.npc.PORTAL[2]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(218)
-- end
-- end,
-- [22] = function()
-- if GetNPCByID(ID.SE_APOLLYON.npc.PORTAL[3]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(216)
-- end
-- end,
-- -- Apollyon: NE Teleporters
-- [24] = function()
-- if GetNPCByID(ID.NE_APOLLYON.npc.PORTAL[1]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(214)
-- end
-- end,
-- [25] = function()
-- if GetNPCByID(ID.NE_APOLLYON.npc.PORTAL[2]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(212)
-- end
-- end,
-- [26] = function()
-- if GetNPCByID(ID.NE_APOLLYON.npc.PORTAL[3]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(210)
-- end
-- end,
-- [27] = function()
-- if GetNPCByID(ID.NE_APOLLYON.npc.PORTAL[4]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(215)
-- end
-- end,
-- -- Apollyon: SW Teleporters
-- [29] = function()
-- if GetNPCByID(ID.SW_APOLLYON.npc.PORTAL[1]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(208)
-- end
-- end,
-- [30] = function()
-- if GetNPCByID(ID.SW_APOLLYON.npc.PORTAL[2]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(209)
-- end
-- end,
-- [31] = function()
-- if GetNPCByID(ID.SW_APOLLYON.npc.PORTAL[3]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(207)
-- end
-- end,
-- -- Apollyon: NW Teleporters
-- [33] = function()
-- if GetNPCByID(ID.NW_APOLLYON.npc.PORTAL[1]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(205)
-- end
-- end,
-- [34] = function()
-- if GetNPCByID(ID.NW_APOLLYON.npc.PORTAL[2]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(203)
-- end
-- end,
-- [35] = function()
-- if GetNPCByID(ID.NW_APOLLYON.npc.PORTAL[3]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(201)
-- end
-- end,
-- [36] = function()
-- if GetNPCByID(ID.NW_APOLLYON.npc.PORTAL[4]):getAnimation() == xi.animation.OPEN_DOOR then
-- player:startOptionalCutscene(200)
-- end
-- end,
-- }
end
zoneObject.onTriggerAreaLeave = function(player, triggerArea)
end
zoneObject.onEventUpdate = function(player, csid, option, npc)
end
zoneObject.onEventFinish = function(player, csid, option, npc)
if csid == 100 and option == 1 then
player:setPos(557, -1, 441, 128, 33) -- Apollyon: SE_NE exit
elseif csid == 101 and option == 1 then
player:setPos(-561, 0, 443, 242, 33) -- Apollyon: NW_SW exit
end
end
return zoneObject

View file

@ -11,7 +11,7 @@ entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = xi.jsa.MANAFONT, hpp = math.random(50, 60) },
{ id = xi.mobSkill.MANAFONT_1, hpp = math.random(50, 60) },
},
})
end

View file

@ -11,7 +11,7 @@ entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = xi.jsa.INVINCIBLE, hpp = math.random(50, 60) },
{ id = xi.mobSkill.INVINCIBLE_1, hpp = math.random(50, 60) },
},
})
end

View file

@ -11,7 +11,7 @@ entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = xi.jsa.CHAINSPELL, hpp = math.random(50, 60) },
{ id = xi.mobSkill.CHAINSPELL_1, hpp = math.random(50, 60) },
},
})
end

View file

@ -11,7 +11,7 @@ entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = xi.jsa.MEIKYO_SHISUI, hpp = math.random(50, 60) },
{ id = xi.mobSkill.MEIKYO_SHISUI_1, hpp = math.random(50, 60) },
},
})
end

View file

@ -11,7 +11,7 @@ entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = xi.jsa.PERFECT_DODGE, hpp = math.random(50, 60) },
{ id = xi.mobSkill.PERFECT_DODGE_1, hpp = math.random(50, 60) },
},
})
end

View file

@ -15,7 +15,7 @@ entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = xi.jsa.CALL_WYVERN, hpp = 100 },
{ id = xi.mobSkill.CALL_WYVERN_1, hpp = 100 },
},
})

Some files were not shown because too many files have changed in this diff Show more