From d575d1cceab7d26d46804f0a020a803a6fddb5b4 Mon Sep 17 00:00:00 2001
From: Benj <benjamin7006@gmail.com>
Date: Tue, 23 Aug 2022 19:33:51 +0800
Subject: [PATCH] Update 3.0 protos

---
 .../proto/AbilityChangeNotifyOuterClass.java  |    6 +-
 .../AbilityInvocationsNotifyOuterClass.java   |    4 +-
 .../AbilityInvokeArgumentOuterClass.java      |  101 +-
 .../proto/ActivityInfoNotifyOuterClass.java   |    8 +-
 .../net/proto/ActivityInfoOuterClass.java     |  184 ++
 .../ActivityScheduleInfoNotifyOuterClass.java |    8 +-
 .../proto/ActivityScheduleInfoOuterClass.java |  226 +-
 ...ctivityTakeWatcherRewardReqOuterClass.java |    8 +-
 ...ctivityTakeWatcherRewardRspOuterClass.java |  134 +-
 ...ActivityUpdateWatcherNotifyOuterClass.java |  130 +-
 .../proto/ActivityWatcherInfoOuterClass.java  |   48 +-
 .../AddQuestContentProgressReqOuterClass.java |    4 +-
 .../AddQuestContentProgressRspOuterClass.java |    6 +-
 .../proto/AllWidgetDataNotifyOuterClass.java  | 2562 ++++++++-------
 .../AnchorPointDataNotifyOuterClass.java      |    6 +-
 .../net/proto/AnchorPointOpReqOuterClass.java |    4 +-
 .../net/proto/AnchorPointOpRspOuterClass.java |    6 +-
 .../net/proto/AnnounceDataOuterClass.java     |  678 ++--
 .../proto/AskAddFriendNotifyOuterClass.java   |    6 +-
 .../net/proto/AskAddFriendReqOuterClass.java  |    4 +-
 .../net/proto/AskAddFriendRspOuterClass.java  |    4 +-
 .../net/proto/AvatarAddNotifyOuterClass.java  |    6 +-
 .../AvatarChangeCostumeNotifyOuterClass.java  |    6 +-
 .../AvatarChangeCostumeReqOuterClass.java     |    4 +-
 .../AvatarChangeCostumeRspOuterClass.java     |    6 +-
 .../AvatarChangeElementTypeReqOuterClass.java |    4 +-
 .../AvatarChangeElementTypeRspOuterClass.java |    6 +-
 .../net/proto/AvatarDataNotifyOuterClass.java | 1528 +++++----
 .../AvatarDieAnimationEndReqOuterClass.java   |    4 +-
 .../AvatarDieAnimationEndRspOuterClass.java   |    6 +-
 .../AvatarEquipChangeNotifyOuterClass.java    |    4 +-
 .../AvatarExpeditionAllDataRspOuterClass.java |    6 +-
 ...AvatarExpeditionCallBackReqOuterClass.java |    4 +-
 ...AvatarExpeditionCallBackRspOuterClass.java |    6 +-
 .../AvatarExpeditionDataNotifyOuterClass.java |    6 +-
 ...vatarExpeditionGetRewardReqOuterClass.java |    4 +-
 ...vatarExpeditionGetRewardRspOuterClass.java |    6 +-
 .../AvatarExpeditionStartReqOuterClass.java   |    4 +-
 .../AvatarExpeditionStartRspOuterClass.java   |    6 +-
 .../AvatarFetterDataNotifyOuterClass.java     |    6 +-
 .../AvatarFetterLevelRewardReqOuterClass.java |    4 +-
 .../AvatarFetterLevelRewardRspOuterClass.java |    6 +-
 .../AvatarFightPropNotifyOuterClass.java      |    6 +-
 ...AvatarFightPropUpdateNotifyOuterClass.java |    6 +-
 .../AvatarFlycloakChangeNotifyOuterClass.java |    6 +-
 .../AvatarGainCostumeNotifyOuterClass.java    |    6 +-
 .../AvatarGainFlycloakNotifyOuterClass.java   |    6 +-
 ...AvatarLifeStateChangeNotifyOuterClass.java |    6 +-
 .../AvatarPromoteGetRewardReqOuterClass.java  |    4 +-
 .../AvatarPromoteGetRewardRspOuterClass.java  |    6 +-
 .../net/proto/AvatarPromoteReqOuterClass.java |    4 +-
 .../net/proto/AvatarPromoteRspOuterClass.java |    6 +-
 .../net/proto/AvatarPropNotifyOuterClass.java |    6 +-
 .../AvatarSkillChangeNotifyOuterClass.java    |    6 +-
 ...vatarSkillDepotChangeNotifyOuterClass.java |    6 +-
 .../AvatarSkillInfoNotifyOuterClass.java      |    6 +-
 ...arSkillMaxChargeCountNotifyOuterClass.java |    6 +-
 .../AvatarSkillUpgradeReqOuterClass.java      |    4 +-
 .../AvatarSkillUpgradeRspOuterClass.java      |    6 +-
 .../AvatarTeamUpdateNotifyOuterClass.java     |    6 +-
 .../AvatarUnlockTalentNotifyOuterClass.java   |    6 +-
 .../net/proto/AvatarUpgradeReqOuterClass.java |    4 +-
 .../net/proto/AvatarUpgradeRspOuterClass.java |    6 +-
 .../AvatarWearFlycloakReqOuterClass.java      |    4 +-
 .../AvatarWearFlycloakRspOuterClass.java      |    6 +-
 .../BattlePassAllDataNotifyOuterClass.java    |  378 +--
 .../BattlePassBuySuccNotifyOuterClass.java    |  128 +-
 ...PassCurScheduleUpdateNotifyOuterClass.java |   10 +-
 .../net/proto/BattlePassCycleOuterClass.java  |  108 +-
 .../BattlePassMissionDelNotifyOuterClass.java |   10 +-
 .../proto/BattlePassMissionOuterClass.java    |  302 +-
 ...ttlePassMissionUpdateNotifyOuterClass.java |   10 +-
 .../proto/BattlePassRewardTagOuterClass.java  |  120 +-
 .../proto/BattlePassScheduleOuterClass.java   |  897 ++---
 .../BlossomBriefInfoNotifyOuterClass.java     |    4 +-
 .../BuyBattlePassLevelReqOuterClass.java      |    4 +-
 .../BuyBattlePassLevelRspOuterClass.java      |    6 +-
 .../net/proto/BuyGoodsReqOuterClass.java      |    4 +-
 .../net/proto/BuyGoodsRspOuterClass.java      |    6 +-
 ...WeaponUpgradeReturnItemsReqOuterClass.java |    4 +-
 ...WeaponUpgradeReturnItemsRspOuterClass.java |    6 +-
 .../proto/CanUseSkillNotifyOuterClass.java    |    6 +-
 .../CardProductRewardNotifyOuterClass.java    |    6 +-
 .../proto/ChallengeDataNotifyOuterClass.java  |    6 +-
 .../net/proto/ChangeAvatarReqOuterClass.java  |    4 +-
 .../net/proto/ChangeAvatarRspOuterClass.java  |    6 +-
 .../proto/ChangeGameTimeReqOuterClass.java    |    4 +-
 .../proto/ChangeGameTimeRspOuterClass.java    |    6 +-
 .../proto/ChangeMailStarNotifyOuterClass.java |    4 +-
 .../ChangeMpTeamAvatarReqOuterClass.java      |    4 +-
 .../ChangeMpTeamAvatarRspOuterClass.java      |    6 +-
 .../proto/ChangeTeamNameReqOuterClass.java    |    4 +-
 .../proto/ChangeTeamNameRspOuterClass.java    |    6 +-
 .../proto/ChapterStateNotifyOuterClass.java   |  244 +-
 ...eckAddItemExceedLimitNotifyOuterClass.java |    6 +-
 .../ChooseCurAvatarTeamReqOuterClass.java     |    4 +-
 .../ChooseCurAvatarTeamRspOuterClass.java     |    6 +-
 .../ClientAbilityChangeNotifyOuterClass.java  |    4 +-
 ...lientAbilityInitBeginNotifyOuterClass.java |    4 +-
 ...ientAbilityInitFinishNotifyOuterClass.java |    4 +-
 .../ClientCollectorDataNotifyOuterClass.java  |    6 +-
 .../proto/CodexDataFullNotifyOuterClass.java  |    6 +-
 .../CodexDataUpdateNotifyOuterClass.java      |    6 +-
 .../CombatInvocationsNotifyOuterClass.java    |    4 +-
 .../proto/CombatTypeArgumentOuterClass.java   |   16 +-
 .../proto/CombineDataNotifyOuterClass.java    |    6 +-
 .../CombineFormulaDataNotifyOuterClass.java   |    6 +-
 .../net/proto/CombineReqOuterClass.java       |    4 +-
 .../net/proto/CombineRspOuterClass.java       |    6 +-
 .../net/proto/CookDataNotifyOuterClass.java   |  128 +-
 .../proto/CookGradeDataNotifyOuterClass.java  |    6 +-
 .../proto/CookRecipeDataNotifyOuterClass.java |    6 +-
 .../net/proto/CookRecipeDataOuterClass.java   |  106 +-
 .../net/proto/CoopDataNotifyOuterClass.java   |    6 +-
 .../net/proto/CreateVehicleReqOuterClass.java |    4 +-
 .../net/proto/CreateVehicleRspOuterClass.java |    6 +-
 .../proto/CutSceneBeginNotifyOuterClass.java  |    6 +-
 .../proto/CutSceneEndNotifyOuterClass.java    |    6 +-
 .../proto/CutSceneFinishNotifyOuterClass.java |    4 +-
 .../net/proto/DealAddFriendReqOuterClass.java |    4 +-
 .../net/proto/DealAddFriendRspOuterClass.java |    4 +-
 .../net/proto/DelMailReqOuterClass.java       |    4 +-
 .../net/proto/DelMailRspOuterClass.java       |    6 +-
 .../proto/DelTeamEntityNotifyOuterClass.java  |    6 +-
 .../proto/DeleteFriendNotifyOuterClass.java   |    6 +-
 .../net/proto/DeleteFriendReqOuterClass.java  |    4 +-
 .../net/proto/DeleteFriendRspOuterClass.java  |    6 +-
 .../proto/DestroyMaterialReqOuterClass.java   |    4 +-
 .../proto/DestroyMaterialRspOuterClass.java   |    6 +-
 .../net/proto/DoGachaReqOuterClass.java       |    4 +-
 .../net/proto/DoGachaRspOuterClass.java       |    6 +-
 .../net/proto/DropHintNotifyOuterClass.java   |    6 +-
 ...DungeonChallengeBeginNotifyOuterClass.java |    6 +-
 ...ungeonChallengeFinishNotifyOuterClass.java |    6 +-
 .../proto/DungeonDataNotifyOuterClass.java    |    6 +-
 .../proto/DungeonEntryInfoReqOuterClass.java  |    4 +-
 .../proto/DungeonEntryInfoRspOuterClass.java  |    6 +-
 .../DungeonGetStatueDropRspOuterClass.java    |    6 +-
 .../proto/DungeonSettleNotifyOuterClass.java  |  338 +-
 .../DungeonShowReminderNotifyOuterClass.java  |    6 +-
 .../proto/EnterSceneDoneRspOuterClass.java    |    6 +-
 .../proto/EnterScenePeerNotifyOuterClass.java |    6 +-
 .../proto/EnterSceneReadyRspOuterClass.java   |    6 +-
 ...EnterTransPointRegionNotifyOuterClass.java |    4 +-
 .../proto/EnterWorldAreaReqOuterClass.java    |    4 +-
 .../proto/EnterWorldAreaRspOuterClass.java    |    6 +-
 .../proto/EntityAiSyncNotifyOuterClass.java   |    4 +-
 ...FightPropChangeReasonNotifyOuterClass.java |    6 +-
 ...EntityFightPropUpdateNotifyOuterClass.java |    6 +-
 .../net/proto/EntityPropNotifyOuterClass.java |    6 +-
 ...iSyncCombatThreatInfoNotifyOuterClass.java |    4 +-
 .../EvtAiSyncSkillCdNotifyOuterClass.java     |    4 +-
 .../EvtAvatarLockChairReqOuterClass.java      |    4 +-
 .../EvtAvatarLockChairRspOuterClass.java      |    6 +-
 .../EvtAvatarSitDownNotifyOuterClass.java     |    4 +-
 .../EvtAvatarStandUpNotifyOuterClass.java     |    4 +-
 .../proto/EvtBeingHitNotifyOuterClass.java    |    4 +-
 .../EvtBeingHitsCombineNotifyOuterClass.java  |    4 +-
 .../EvtCreateGadgetNotifyOuterClass.java      |    4 +-
 .../EvtDestroyGadgetNotifyOuterClass.java     |    4 +-
 .../proto/EvtDoSkillSuccNotifyOuterClass.java |    4 +-
 ...ntityRenderersChangedNotifyOuterClass.java |  128 +-
 .../FinishedParentQuestNotifyOuterClass.java  |    6 +-
 ...shedParentQuestUpdateNotifyOuterClass.java |    6 +-
 .../net/proto/ForgeDataNotifyOuterClass.java  |    6 +-
 .../ForgeFormulaDataNotifyOuterClass.java     |    6 +-
 .../proto/ForgeGetQueueDataRspOuterClass.java |    6 +-
 .../proto/ForgeQueueDataNotifyOuterClass.java |    4 +-
 .../ForgeQueueManipulateReqOuterClass.java    |    4 +-
 .../ForgeQueueManipulateRspOuterClass.java    |    6 +-
 .../net/proto/ForgeStartReqOuterClass.java    |    4 +-
 .../net/proto/ForgeStartRspOuterClass.java    |    6 +-
 ...CurModuleArrangeCountNotifyOuterClass.java |    6 +-
 .../net/proto/FurnitureMakeReqOuterClass.java |    4 +-
 .../net/proto/FurnitureMakeRspOuterClass.java |    6 +-
 .../FurnitureMakeStartReqOuterClass.java      |    4 +-
 .../FurnitureMakeStartRspOuterClass.java      |    6 +-
 .../net/proto/GachaInfoOuterClass.java        | 2890 ++++++++---------
 .../net/proto/GachaWishReqOuterClass.java     |    4 +-
 .../net/proto/GachaWishRspOuterClass.java     |    6 +-
 ...adgetAutoPickDropInfoNotifyOuterClass.java |    6 +-
 .../proto/GadgetInteractReqOuterClass.java    |    4 +-
 .../proto/GadgetInteractRspOuterClass.java    |    6 +-
 .../proto/GadgetStateNotifyOuterClass.java    |    6 +-
 .../proto/GetActivityInfoReqOuterClass.java   |    8 +-
 .../proto/GetActivityInfoRspOuterClass.java   |    6 +-
 .../net/proto/GetAllMailReqOuterClass.java    |    4 +-
 .../net/proto/GetAllMailRspOuterClass.java    |    6 +-
 .../GetAllUnlockNameCardRspOuterClass.java    |    4 +-
 .../net/proto/GetAuthkeyReqOuterClass.java    |    4 +-
 .../net/proto/GetAuthkeyRspOuterClass.java    |    6 +-
 .../GetBattlePassProductReqOuterClass.java    |    4 +-
 .../GetBattlePassProductRspOuterClass.java    |  340 +-
 ...GetDailyDungeonEntryInfoReqOuterClass.java |    4 +-
 ...GetDailyDungeonEntryInfoRspOuterClass.java |    6 +-
 .../GetFriendShowAvatarInfoReqOuterClass.java |    4 +-
 .../GetFriendShowAvatarInfoRspOuterClass.java |    6 +-
 ...ureCurModuleArrangeCountReqOuterClass.java |    4 +-
 .../net/proto/GetGachaInfoRspOuterClass.java  |    6 +-
 .../GetInvestigationMonsterReqOuterClass.java |    4 +-
 .../GetInvestigationMonsterRspOuterClass.java |    4 +-
 .../net/proto/GetMailItemReqOuterClass.java   |    4 +-
 .../net/proto/GetMailItemRspOuterClass.java   |    6 +-
 .../GetOnlinePlayerListReqOuterClass.java     |    4 +-
 .../GetOnlinePlayerListRspOuterClass.java     |    6 +-
 .../GetPlayerAskFriendListRspOuterClass.java  |    6 +-
 .../GetPlayerBlacklistRspOuterClass.java      |    6 +-
 .../GetPlayerFriendListRspOuterClass.java     |    4 +-
 .../GetPlayerHomeCompInfoReqOuterClass.java   |    4 +-
 .../GetPlayerSocialDetailReqOuterClass.java   |    4 +-
 .../GetPlayerSocialDetailRspOuterClass.java   |    6 +-
 .../proto/GetPlayerTokenReqOuterClass.java    |    4 +-
 .../proto/GetPlayerTokenRspOuterClass.java    |    6 +-
 .../net/proto/GetSceneAreaReqOuterClass.java  |    4 +-
 .../net/proto/GetSceneAreaRspOuterClass.java  |    6 +-
 .../net/proto/GetScenePointReqOuterClass.java |    4 +-
 .../net/proto/GetScenePointRspOuterClass.java |    6 +-
 .../net/proto/GetShopReqOuterClass.java       |    4 +-
 .../net/proto/GetShopRspOuterClass.java       |    6 +-
 .../proto/GetShopmallDataRspOuterClass.java   |    6 +-
 .../net/proto/GetWidgetSlotReqOuterClass.java |    4 +-
 .../net/proto/GetWidgetSlotRspOuterClass.java |    6 +-
 .../proto/GetWorldMpInfoRspOuterClass.java    |    6 +-
 .../net/proto/GroupSuiteNotifyOuterClass.java |    6 +-
 .../proto/GroupUnloadNotifyOuterClass.java    |    6 +-
 .../proto/H5ActivityIdsNotifyOuterClass.java  |   54 +-
 .../net/proto/HitTreeNotifyOuterClass.java    |    4 +-
 .../proto/HomeBasicInfoNotifyOuterClass.java  |    6 +-
 .../net/proto/HomeBlockNotifyOuterClass.java  |    6 +-
 .../HomeChangeEditModeReqOuterClass.java      |    4 +-
 .../HomeChangeEditModeRspOuterClass.java      |    6 +-
 .../proto/HomeChooseModuleReqOuterClass.java  |    4 +-
 .../proto/HomeChooseModuleRspOuterClass.java  |    6 +-
 .../HomeComfortInfoNotifyOuterClass.java      |    6 +-
 .../HomeGetArrangementInfoReqOuterClass.java  |    4 +-
 .../HomeGetArrangementInfoRspOuterClass.java  |    6 +-
 .../proto/HomeGetBasicInfoReqOuterClass.java  |    4 +-
 .../proto/HomeMarkPointNotifyOuterClass.java  |    6 +-
 .../HomeSceneInitFinishReqOuterClass.java     |    4 +-
 .../HomeSceneInitFinishRspOuterClass.java     |    6 +-
 .../net/proto/HomeSceneJumpReqOuterClass.java |    4 +-
 .../net/proto/HomeSceneJumpRspOuterClass.java |    6 +-
 ...omeUpdateArrangementInfoReqOuterClass.java |    4 +-
 ...omeUpdateArrangementInfoRspOuterClass.java |    6 +-
 .../net/proto/HostPlayerNotifyOuterClass.java |    6 +-
 .../net/proto/InteractTypeOuterClass.java     |   16 +-
 .../proto/ItemAddHintNotifyOuterClass.java    |    6 +-
 .../net/proto/ItemGivingReqOuterClass.java    |    4 +-
 .../net/proto/ItemGivingRspOuterClass.java    |    6 +-
 .../LifeStateChangeNotifyOuterClass.java      |    6 +-
 .../LockedPersonallineDataOuterClass.java     |  194 +-
 .../net/proto/MailChangeNotifyOuterClass.java |    6 +-
 .../MarkEntityInMinMapNotifyOuterClass.java   |    6 +-
 .../net/proto/MarkMapReqOuterClass.java       |   21 +-
 .../net/proto/MarkMapRspOuterClass.java       |    6 +-
 .../net/proto/MarkNewNotifyOuterClass.java    |    6 +-
 .../proto/MaterialDeleteInfoOuterClass.java   |   50 +-
 .../McoinExchangeHcoinReqOuterClass.java      |    4 +-
 .../McoinExchangeHcoinRspOuterClass.java      |    6 +-
 .../proto/MusicGameSettleReqOuterClass.java   | 1778 +++++-----
 .../proto/MusicGameSettleRspOuterClass.java   |  214 +-
 .../proto/MusicGameStartReqOuterClass.java    |  166 +-
 .../proto/MusicGameStartRspOuterClass.java    |  162 +-
 .../net/proto/NpcTalkReqOuterClass.java       |    4 +-
 .../net/proto/NpcTalkRspOuterClass.java       |    6 +-
 ...therPointDetectorDataNotifyOuterClass.java |    6 +-
 .../OpenStateChangeNotifyOuterClass.java      |    6 +-
 .../OpenStateUpdateNotifyOuterClass.java      |    6 +-
 .../net/proto/ParentQuestOuterClass.java      | 1554 +++++----
 .../PersonalLineAllDataReqOuterClass.java     |    8 +-
 .../PersonalLineAllDataRspOuterClass.java     |  458 +--
 .../proto/PersonalSceneJumpReqOuterClass.java |    4 +-
 .../proto/PersonalSceneJumpRspOuterClass.java |    6 +-
 .../net/proto/PingReqOuterClass.java          |    4 +-
 .../net/proto/PingRspOuterClass.java          |    6 +-
 .../net/proto/PlatformTypeOuterClass.java     |   43 +-
 .../PlayerApplyEnterMpNotifyOuterClass.java   |    6 +-
 .../PlayerApplyEnterMpReqOuterClass.java      |    4 +-
 ...yerApplyEnterMpResultNotifyOuterClass.java |    6 +-
 ...PlayerApplyEnterMpResultReqOuterClass.java |    4 +-
 ...PlayerApplyEnterMpResultRspOuterClass.java |    6 +-
 .../PlayerApplyEnterMpRspOuterClass.java      |    6 +-
 .../net/proto/PlayerChatNotifyOuterClass.java |    6 +-
 .../net/proto/PlayerChatReqOuterClass.java    |    4 +-
 .../net/proto/PlayerChatRspOuterClass.java    |    6 +-
 .../proto/PlayerCookArgsReqOuterClass.java    |  112 +-
 .../proto/PlayerCookArgsRspOuterClass.java    |    6 +-
 .../net/proto/PlayerCookReqOuterClass.java    |  172 +-
 .../net/proto/PlayerCookRspOuterClass.java    |  988 +++---
 .../net/proto/PlayerDataNotifyOuterClass.java |    6 +-
 .../PlayerEnterDungeonReqOuterClass.java      |    4 +-
 .../PlayerEnterDungeonRspOuterClass.java      |    6 +-
 .../PlayerEnterSceneInfoNotifyOuterClass.java |    4 +-
 .../PlayerEnterSceneNotifyOuterClass.java     |    6 +-
 .../proto/PlayerGameTimeNotifyOuterClass.java |    4 +-
 ...layerGetForceQuitBanInfoRspOuterClass.java |    6 +-
 .../PlayerHomeCompInfoNotifyOuterClass.java   |    6 +-
 ...ayerLevelRewardUpdateNotifyOuterClass.java |    6 +-
 .../net/proto/PlayerLoginReqOuterClass.java   |    4 +-
 .../net/proto/PlayerLoginRspOuterClass.java   |  104 +-
 .../PlayerPropChangeNotifyOuterClass.java     |    6 +-
 ...layerPropChangeReasonNotifyOuterClass.java |    6 +-
 .../net/proto/PlayerPropNotifyOuterClass.java |    6 +-
 .../proto/PlayerQuitDungeonReqOuterClass.java |    4 +-
 .../proto/PlayerQuitDungeonRspOuterClass.java |    6 +-
 .../proto/PlayerSetPauseReqOuterClass.java    |    4 +-
 .../proto/PlayerStoreNotifyOuterClass.java    |    6 +-
 .../net/proto/PlayerTimeNotifyOuterClass.java |    6 +-
 ...yerWorldSceneInfoListNotifyOuterClass.java |    6 +-
 .../proto/PostEnterSceneRspOuterClass.java    |    6 +-
 .../proto/PrivateChatNotifyOuterClass.java    |    6 +-
 .../net/proto/PrivateChatReqOuterClass.java   |    4 +-
 .../net/proto/PrivateChatRspOuterClass.java   |    6 +-
 .../ProudSkillChangeNotifyOuterClass.java     |    6 +-
 .../ProudSkillExtraLevelNotifyOuterClass.java |    6 +-
 .../proto/PullPrivateChatReqOuterClass.java   |    4 +-
 .../proto/PullPrivateChatRspOuterClass.java   |    6 +-
 .../proto/PullRecentChatRspOuterClass.java    |    6 +-
 ...yCodexMonsterBeKilledNumReqOuterClass.java |    4 +-
 ...yCodexMonsterBeKilledNumRspOuterClass.java |    6 +-
 .../net/proto/QueryPathReqOuterClass.java     | 1070 +++---
 .../net/proto/QueryPathRspOuterClass.java     |  320 +-
 .../net/proto/QuestDelNotifyOuterClass.java   |    6 +-
 .../proto/QuestGlobalVarNotifyOuterClass.java |    6 +-
 .../net/proto/QuestListNotifyOuterClass.java  |    6 +-
 .../QuestListUpdateNotifyOuterClass.java      |    6 +-
 .../QuestProgressUpdateNotifyOuterClass.java  |    6 +-
 .../QuestUpdateQuestVarNotifyOuterClass.java  |    6 +-
 .../QuestUpdateQuestVarReqOuterClass.java     |    4 +-
 .../QuestUpdateQuestVarRspOuterClass.java     |    6 +-
 .../proto/QuickUseWidgetReqOuterClass.java    |    4 +-
 .../proto/QuickUseWidgetRspOuterClass.java    |    6 +-
 .../net/proto/ReadMailNotifyOuterClass.java   |    4 +-
 .../net/proto/RegionInfoOuterClass.java       |   73 +-
 .../ReliquaryDecomposeReqOuterClass.java      |    4 +-
 .../ReliquaryDecomposeRspOuterClass.java      |    4 +-
 .../proto/ReliquaryPromoteReqOuterClass.java  |    4 +-
 .../proto/ReliquaryPromoteRspOuterClass.java  |    6 +-
 .../proto/ReliquaryUpgradeReqOuterClass.java  |    4 +-
 .../proto/ReliquaryUpgradeRspOuterClass.java  |    6 +-
 .../net/proto/ResVersionConfigOuterClass.java |   32 +-
 .../proto/ResinChangeNotifyOuterClass.java    |    6 +-
 .../net/proto/RetcodeOuterClass.java          | 1944 ++++++-----
 .../SceneAreaUnlockNotifyOuterClass.java      |    6 +-
 .../SceneAreaWeatherNotifyOuterClass.java     |    6 +-
 .../SceneEntityAppearNotifyOuterClass.java    |    6 +-
 .../SceneEntityDisappearNotifyOuterClass.java |    6 +-
 .../proto/SceneEntityDrownReqOuterClass.java  |    4 +-
 .../proto/SceneEntityDrownRspOuterClass.java  |    6 +-
 .../SceneEntityMoveNotifyOuterClass.java      |    6 +-
 .../SceneForceUnlockNotifyOuterClass.java     |    6 +-
 .../net/proto/SceneGadgetInfoOuterClass.java  |  308 +-
 .../proto/SceneInitFinishRspOuterClass.java   |    4 +-
 .../SceneKickPlayerNotifyOuterClass.java      |    4 +-
 .../proto/SceneKickPlayerReqOuterClass.java   |    4 +-
 .../proto/SceneKickPlayerRspOuterClass.java   |    6 +-
 .../net/proto/SceneMonsterInfoOuterClass.java |  344 +-
 .../ScenePlayerInfoNotifyOuterClass.java      |    6 +-
 .../ScenePlayerLocationNotifyOuterClass.java  |    6 +-
 .../ScenePointUnlockNotifyOuterClass.java     |    6 +-
 .../SceneTeamUpdateNotifyOuterClass.java      |    6 +-
 .../net/proto/SceneTimeNotifyOuterClass.java  |    6 +-
 .../proto/SceneTransToPointReqOuterClass.java |    4 +-
 .../proto/SceneTransToPointRspOuterClass.java |    6 +-
 .../SelectWorktopOptionReqOuterClass.java     |    4 +-
 .../SelectWorktopOptionRspOuterClass.java     |    6 +-
 .../proto/ServerAnnounceNotifyOuterClass.java |    6 +-
 .../ServerAnnounceRevokeNotifyOuterClass.java |    6 +-
 .../ServerBuffChangeNotifyOuterClass.java     |    6 +-
 ...ndMeetQuestListUpdateNotifyOuterClass.java |    6 +-
 .../net/proto/ServerTimeNotifyOuterClass.java |    6 +-
 .../SetBattlePassViewedReqOuterClass.java     |    4 +-
 .../SetBattlePassViewedRspOuterClass.java     |  114 +-
 .../SetEntityClientDataNotifyOuterClass.java  |    4 +-
 .../proto/SetEquipLockStateReqOuterClass.java |    4 +-
 .../proto/SetEquipLockStateRspOuterClass.java |    6 +-
 .../net/proto/SetNameCardReqOuterClass.java   |    4 +-
 .../net/proto/SetNameCardRspOuterClass.java   |    4 +-
 .../net/proto/SetOpenStateReqOuterClass.java  |    4 +-
 .../net/proto/SetOpenStateRspOuterClass.java  |    6 +-
 .../proto/SetPlayerBirthdayReqOuterClass.java |    4 +-
 .../proto/SetPlayerBirthdayRspOuterClass.java |    6 +-
 .../proto/SetPlayerBornDataReqOuterClass.java |    4 +-
 .../proto/SetPlayerBornDataRspOuterClass.java |    6 +-
 .../SetPlayerHeadImageReqOuterClass.java      |    4 +-
 .../SetPlayerHeadImageRspOuterClass.java      |    6 +-
 .../net/proto/SetPlayerNameReqOuterClass.java |    4 +-
 .../net/proto/SetPlayerNameRspOuterClass.java |    6 +-
 .../net/proto/SetPlayerPropReqOuterClass.java |    4 +-
 .../net/proto/SetPlayerPropRspOuterClass.java |    6 +-
 .../SetPlayerSignatureReqOuterClass.java      |    4 +-
 .../SetPlayerSignatureRspOuterClass.java      |    6 +-
 .../proto/SetUpAvatarTeamReqOuterClass.java   |    4 +-
 .../proto/SetUpAvatarTeamRspOuterClass.java   |    6 +-
 .../SetUpLunchBoxWidgetReqOuterClass.java     |    4 +-
 .../SetUpLunchBoxWidgetRspOuterClass.java     |    6 +-
 .../net/proto/SetWidgetSlotReqOuterClass.java |    4 +-
 .../net/proto/SetWidgetSlotRspOuterClass.java |    6 +-
 .../net/proto/ShopCardProductOuterClass.java  |   24 +-
 .../StoreItemChangeNotifyOuterClass.java      |    6 +-
 .../proto/StoreItemDelNotifyOuterClass.java   |    6 +-
 .../StoreWeightLimitNotifyOuterClass.java     |    6 +-
 ...ncScenePlayTeamEntityNotifyOuterClass.java |    6 +-
 .../proto/SyncTeamEntityNotifyOuterClass.java |    6 +-
 .../TakeAchievementRewardReqOuterClass.java   |    4 +-
 ...keBattlePassMissionPointReqOuterClass.java |    4 +-
 ...keBattlePassMissionPointRspOuterClass.java |    6 +-
 .../TakeBattlePassRewardReqOuterClass.java    |    4 +-
 .../TakeBattlePassRewardRspOuterClass.java    |  770 ++---
 .../proto/TakeFurnitureMakeReqOuterClass.java |    4 +-
 .../proto/TakeFurnitureMakeRspOuterClass.java |    6 +-
 .../TakePlayerLevelRewardReqOuterClass.java   |    4 +-
 .../TakePlayerLevelRewardRspOuterClass.java   |    6 +-
 .../net/proto/TakeoffEquipReqOuterClass.java  |    4 +-
 .../net/proto/TakeoffEquipRspOuterClass.java  |    6 +-
 .../TeamResonanceChangeNotifyOuterClass.java  |    6 +-
 .../net/proto/TowerAllDataRspOuterClass.java  |    6 +-
 .../proto/TowerBuffSelectReqOuterClass.java   |    4 +-
 .../proto/TowerBuffSelectRspOuterClass.java   |    6 +-
 ...rCurLevelRecordChangeNotifyOuterClass.java |    6 +-
 .../proto/TowerEnterLevelReqOuterClass.java   |    4 +-
 .../proto/TowerEnterLevelRspOuterClass.java   |    6 +-
 ...owerFloorRecordChangeNotifyOuterClass.java |    6 +-
 .../proto/TowerLevelEndNotifyOuterClass.java  |    6 +-
 .../TowerLevelStarCondNotifyOuterClass.java   |    6 +-
 ...MiddleLevelChangeTeamNotifyOuterClass.java |    6 +-
 .../proto/TowerTeamSelectReqOuterClass.java   |    4 +-
 .../proto/TowerTeamSelectRspOuterClass.java   |    6 +-
 ...vatarFirstPassDungeonNotifyOuterClass.java |    6 +-
 .../TrialAvatarGrantRecordOuterClass.java     |   28 +-
 .../net/proto/TryEnterHomeReqOuterClass.java  |    4 +-
 .../net/proto/TryEnterHomeRspOuterClass.java  |    6 +-
 .../net/proto/UnionCmdNotifyOuterClass.java   |    4 +-
 .../net/proto/Unk3000CCCOFNABDMB.java         |  876 +++++
 .../net/proto/Unk3000ENLDIHLGNCK.java         |  915 ++++++
 .../net/proto/Unk3000FANANGGCLOF.java         |  663 ++++
 .../net/proto/Unk3000GDDGGJIFNCH.java         |  822 +++++
 .../net/proto/Unk3000GNOPDGELABH.java         |  684 ++++
 .../net/proto/Unk3000HKHFFDEMNKN.java         |  914 ++++++
 .../UnlockAvatarTalentReqOuterClass.java      |    4 +-
 .../UnlockAvatarTalentRspOuterClass.java      |    6 +-
 .../proto/UnlockNameCardNotifyOuterClass.java |    6 +-
 .../UnlockPersonalLineReqOuterClass.java      |    4 +-
 .../UnlockPersonalLineRspOuterClass.java      |    6 +-
 .../proto/UnlockTransPointReqOuterClass.java  |    4 +-
 .../proto/UnlockTransPointRspOuterClass.java  |    6 +-
 ...dFurnitureFormulaDataNotifyOuterClass.java |    6 +-
 ...kedFurnitureSuiteDataNotifyOuterClass.java |    6 +-
 ...datePlayerShowAvatarListReqOuterClass.java |    4 +-
 ...datePlayerShowAvatarListRspOuterClass.java |    6 +-
 .../net/proto/UseItemReqOuterClass.java       |    4 +-
 .../net/proto/UseItemRspOuterClass.java       |    6 +-
 .../UseWidgetCreateGadgetReqOuterClass.java   |    4 +-
 .../UseWidgetCreateGadgetRspOuterClass.java   |    6 +-
 .../UseWidgetRetractGadgetReqOuterClass.java  |    4 +-
 .../UseWidgetRetractGadgetRspOuterClass.java  |    4 +-
 .../proto/VehicleInteractReqOuterClass.java   |    4 +-
 .../proto/VehicleInteractRspOuterClass.java   |    6 +-
 .../proto/VehicleStaminaNotifyOuterClass.java |    6 +-
 .../net/proto/WeaponAwakenReqOuterClass.java  |    4 +-
 .../net/proto/WeaponAwakenRspOuterClass.java  |    6 +-
 .../net/proto/WeaponPromoteReqOuterClass.java |    4 +-
 .../net/proto/WeaponPromoteRspOuterClass.java |    6 +-
 .../net/proto/WeaponUpgradeReqOuterClass.java |    4 +-
 .../net/proto/WeaponUpgradeRspOuterClass.java |    6 +-
 .../net/proto/WearEquipReqOuterClass.java     |    4 +-
 .../net/proto/WearEquipRspOuterClass.java     |    6 +-
 .../WidgetActiveChangeNotifyOuterClass.java   |    6 +-
 .../proto/WidgetCoolDownNotifyOuterClass.java |    6 +-
 .../net/proto/WidgetDoBagReqOuterClass.java   |    4 +-
 .../net/proto/WidgetDoBagRspOuterClass.java   |    6 +-
 .../WidgetGadgetAllDataNotifyOuterClass.java  |    6 +-
 .../WidgetGadgetDataNotifyOuterClass.java     |    6 +-
 .../WidgetGadgetDestroyNotifyOuterClass.java  |    6 +-
 .../net/proto/WidgetReportReqOuterClass.java  |    4 +-
 .../net/proto/WidgetReportRspOuterClass.java  |    6 +-
 .../WidgetSlotChangeNotifyOuterClass.java     |    6 +-
 ...achAbilityGroupChangeNotifyOuterClass.java |    6 +-
 .../proto/WorktopOptionNotifyOuterClass.java  |    6 +-
 .../net/proto/WorldDataNotifyOuterClass.java  |    4 +-
 .../proto/WorldPlayerDieNotifyOuterClass.java |    6 +-
 .../WorldPlayerInfoNotifyOuterClass.java      |  590 +++-
 .../WorldPlayerLocationNotifyOuterClass.java  |    6 +-
 .../proto/WorldPlayerRTTNotifyOuterClass.java |    6 +-
 .../proto/WorldPlayerReviveReqOuterClass.java |    4 +-
 .../proto/WorldPlayerReviveRspOuterClass.java |    6 +-
 486 files changed, 19130 insertions(+), 11433 deletions(-)
 create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/Unk3000CCCOFNABDMB.java
 create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/Unk3000ENLDIHLGNCK.java
 create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/Unk3000FANANGGCLOF.java
 create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/Unk3000GDDGGJIFNCH.java
 create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/Unk3000GNOPDGELABH.java
 create mode 100644 src/generated/main/java/emu/grasscutter/net/proto/Unk3000HKHFFDEMNKN.java

diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AbilityChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AbilityChangeNotifyOuterClass.java
index 9c0d3204..b49dbe97 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AbilityChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AbilityChangeNotifyOuterClass.java
@@ -43,7 +43,8 @@ public final class AbilityChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1131
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AbilityChangeNotify}
@@ -352,7 +353,8 @@ public final class AbilityChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1131
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AbilityChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvocationsNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvocationsNotifyOuterClass.java
index aeaf7718..ca7b2269 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvocationsNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvocationsNotifyOuterClass.java
@@ -46,7 +46,7 @@ public final class AbilityInvocationsNotifyOuterClass {
    * <pre>
    * CmdId: 1198
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class AbilityInvocationsNotifyOuterClass {
      * <pre>
      * CmdId: 1198
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeArgumentOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeArgumentOuterClass.java
index 70f9a415..185914fe 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeArgumentOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeArgumentOuterClass.java
@@ -167,6 +167,14 @@ public final class AbilityInvokeArgumentOuterClass {
      * <code>ABILITY_INVOKE_ARGUMENT_Unk2700_FNANDDPDLOL = 63;</code>
      */
     ABILITY_INVOKE_ARGUMENT_Unk2700_FNANDDPDLOL(63),
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_EEANHJONEEP = 64;</code>
+     */
+    ABILITY_INVOKE_ARGUMENT_Unk3000_EEANHJONEEP(64),
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD = 65;</code>
+     */
+    ABILITY_INVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD(65),
     /**
      * <code>ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STEER_BY_CAMERA = 100;</code>
      */
@@ -235,6 +243,18 @@ public final class AbilityInvokeArgumentOuterClass {
      * <code>ABILITY_INVOKE_ARGUMENT_Unk2700_KDPKJGJNGFB = 116;</code>
      */
     ABILITY_INVOKE_ARGUMENT_Unk2700_KDPKJGJNGFB(116),
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP = 117;</code>
+     */
+    ABILITY_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP(117),
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOCBHKAL = 118;</code>
+     */
+    ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOCBHKAL(118),
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_EFJIGCEGHJG = 119;</code>
+     */
+    ABILITY_INVOKE_ARGUMENT_Unk3000_EFJIGCEGHJG(119),
     UNRECOGNIZED(-1),
     ;
 
@@ -386,6 +406,14 @@ public final class AbilityInvokeArgumentOuterClass {
      * <code>ABILITY_INVOKE_ARGUMENT_Unk2700_FNANDDPDLOL = 63;</code>
      */
     public static final int ABILITY_INVOKE_ARGUMENT_Unk2700_FNANDDPDLOL_VALUE = 63;
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_EEANHJONEEP = 64;</code>
+     */
+    public static final int ABILITY_INVOKE_ARGUMENT_Unk3000_EEANHJONEEP_VALUE = 64;
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD = 65;</code>
+     */
+    public static final int ABILITY_INVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD_VALUE = 65;
     /**
      * <code>ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STEER_BY_CAMERA = 100;</code>
      */
@@ -454,6 +482,18 @@ public final class AbilityInvokeArgumentOuterClass {
      * <code>ABILITY_INVOKE_ARGUMENT_Unk2700_KDPKJGJNGFB = 116;</code>
      */
     public static final int ABILITY_INVOKE_ARGUMENT_Unk2700_KDPKJGJNGFB_VALUE = 116;
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP = 117;</code>
+     */
+    public static final int ABILITY_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP_VALUE = 117;
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOCBHKAL = 118;</code>
+     */
+    public static final int ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOCBHKAL_VALUE = 118;
+    /**
+     * <code>ABILITY_INVOKE_ARGUMENT_Unk3000_EFJIGCEGHJG = 119;</code>
+     */
+    public static final int ABILITY_INVOKE_ARGUMENT_Unk3000_EFJIGCEGHJG_VALUE = 119;
 
 
     public final int getNumber() {
@@ -517,6 +557,8 @@ public final class AbilityInvokeArgumentOuterClass {
         case 61: return ABILITY_INVOKE_ARGUMENT_ACTION_DESTROY_TILE;
         case 62: return ABILITY_INVOKE_ARGUMENT_ACTION_FIRE_AFTER_IMAGE;
         case 63: return ABILITY_INVOKE_ARGUMENT_Unk2700_FNANDDPDLOL;
+        case 64: return ABILITY_INVOKE_ARGUMENT_Unk3000_EEANHJONEEP;
+        case 65: return ABILITY_INVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD;
         case 100: return ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STEER_BY_CAMERA;
         case 101: return ABILITY_INVOKE_ARGUMENT_MIXIN_MONSTER_DEFEND;
         case 102: return ABILITY_INVOKE_ARGUMENT_MIXIN_WIND_ZONE;
@@ -534,6 +576,9 @@ public final class AbilityInvokeArgumentOuterClass {
         case 114: return ABILITY_INVOKE_ARGUMENT_Unk2700_EGCIFFFLLBG;
         case 115: return ABILITY_INVOKE_ARGUMENT_Unk2700_OFDGFACOLDI;
         case 116: return ABILITY_INVOKE_ARGUMENT_Unk2700_KDPKJGJNGFB;
+        case 117: return ABILITY_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP;
+        case 118: return ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOCBHKAL;
+        case 119: return ABILITY_INVOKE_ARGUMENT_Unk3000_EFJIGCEGHJG;
         default: return null;
       }
     }
@@ -599,7 +644,7 @@ public final class AbilityInvokeArgumentOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\033AbilityInvokeArgument.proto*\253\026\n\025Abilit" +
+      "\n\033AbilityInvokeArgument.proto*\240\030\n\025Abilit" +
       "yInvokeArgument\022 \n\034ABILITY_INVOKE_ARGUME" +
       "NT_NONE\020\000\0220\n,ABILITY_INVOKE_ARGUMENT_MET" +
       "A_MODIFIER_CHANGE\020\001\022@\n<ABILITY_INVOKE_AR" +
@@ -649,30 +694,36 @@ public final class AbilityInvokeArgumentOuterClass {
       "NVOKE_ARGUMENT_ACTION_DESTROY_TILE\020=\0223\n/" +
       "ABILITY_INVOKE_ARGUMENT_ACTION_FIRE_AFTE" +
       "R_IMAGE\020>\022/\n+ABILITY_INVOKE_ARGUMENT_Unk" +
-      "2700_FNANDDPDLOL\020?\0228\n4ABILITY_INVOKE_ARG" +
-      "UMENT_MIXIN_AVATAR_STEER_BY_CAMERA\020d\0220\n," +
-      "ABILITY_INVOKE_ARGUMENT_MIXIN_MONSTER_DE" +
-      "FEND\020e\022+\n\'ABILITY_INVOKE_ARGUMENT_MIXIN_" +
-      "WIND_ZONE\020f\022.\n*ABILITY_INVOKE_ARGUMENT_M" +
-      "IXIN_COST_STAMINA\020g\022.\n*ABILITY_INVOKE_AR" +
-      "GUMENT_MIXIN_ELITE_SHIELD\020h\0220\n,ABILITY_I" +
-      "NVOKE_ARGUMENT_MIXIN_ELEMENT_SHIELD\020i\022/\n" +
-      "+ABILITY_INVOKE_ARGUMENT_MIXIN_GLOBAL_SH" +
-      "IELD\020j\022,\n(ABILITY_INVOKE_ARGUMENT_MIXIN_" +
-      "SHIELD_BAR\020k\0223\n/ABILITY_INVOKE_ARGUMENT_" +
-      "MIXIN_WIND_SEED_SPAWNER\020l\022?\n;ABILITY_INV" +
-      "OKE_ARGUMENT_MIXIN_DO_ACTION_BY_ELEMENT_" +
-      "REACTION\020m\022;\n7ABILITY_INVOKE_ARGUMENT_MI" +
-      "XIN_FIELD_ENTITY_COUNT_CHANGE\020n\0221\n-ABILI" +
-      "TY_INVOKE_ARGUMENT_MIXIN_SCENE_PROP_SYNC" +
-      "\020o\0223\n/ABILITY_INVOKE_ARGUMENT_MIXIN_WIDG" +
-      "ET_MP_SUPPORT\020p\022/\n+ABILITY_INVOKE_ARGUME" +
-      "NT_Unk2700_NJHBFADEOON\020q\022/\n+ABILITY_INVO" +
-      "KE_ARGUMENT_Unk2700_EGCIFFFLLBG\020r\022/\n+ABI" +
-      "LITY_INVOKE_ARGUMENT_Unk2700_OFDGFACOLDI" +
-      "\020s\022/\n+ABILITY_INVOKE_ARGUMENT_Unk2700_KD" +
-      "PKJGJNGFB\020tB\033\n\031emu.grasscutter.net.proto" +
-      "b\006proto3"
+      "2700_FNANDDPDLOL\020?\022/\n+ABILITY_INVOKE_ARG" +
+      "UMENT_Unk3000_EEANHJONEEP\020@\022/\n+ABILITY_I" +
+      "NVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD\020A\0228\n4" +
+      "ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STE" +
+      "ER_BY_CAMERA\020d\0220\n,ABILITY_INVOKE_ARGUMEN" +
+      "T_MIXIN_MONSTER_DEFEND\020e\022+\n\'ABILITY_INVO" +
+      "KE_ARGUMENT_MIXIN_WIND_ZONE\020f\022.\n*ABILITY" +
+      "_INVOKE_ARGUMENT_MIXIN_COST_STAMINA\020g\022.\n" +
+      "*ABILITY_INVOKE_ARGUMENT_MIXIN_ELITE_SHI" +
+      "ELD\020h\0220\n,ABILITY_INVOKE_ARGUMENT_MIXIN_E" +
+      "LEMENT_SHIELD\020i\022/\n+ABILITY_INVOKE_ARGUME" +
+      "NT_MIXIN_GLOBAL_SHIELD\020j\022,\n(ABILITY_INVO" +
+      "KE_ARGUMENT_MIXIN_SHIELD_BAR\020k\0223\n/ABILIT" +
+      "Y_INVOKE_ARGUMENT_MIXIN_WIND_SEED_SPAWNE" +
+      "R\020l\022?\n;ABILITY_INVOKE_ARGUMENT_MIXIN_DO_" +
+      "ACTION_BY_ELEMENT_REACTION\020m\022;\n7ABILITY_" +
+      "INVOKE_ARGUMENT_MIXIN_FIELD_ENTITY_COUNT" +
+      "_CHANGE\020n\0221\n-ABILITY_INVOKE_ARGUMENT_MIX" +
+      "IN_SCENE_PROP_SYNC\020o\0223\n/ABILITY_INVOKE_A" +
+      "RGUMENT_MIXIN_WIDGET_MP_SUPPORT\020p\022/\n+ABI" +
+      "LITY_INVOKE_ARGUMENT_Unk2700_NJHBFADEOON" +
+      "\020q\022/\n+ABILITY_INVOKE_ARGUMENT_Unk2700_EG" +
+      "CIFFFLLBG\020r\022/\n+ABILITY_INVOKE_ARGUMENT_U" +
+      "nk2700_OFDGFACOLDI\020s\022/\n+ABILITY_INVOKE_A" +
+      "RGUMENT_Unk2700_KDPKJGJNGFB\020t\022/\n+ABILITY" +
+      "_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP\020u\022/" +
+      "\n+ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOC" +
+      "BHKAL\020v\022/\n+ABILITY_INVOKE_ARGUMENT_Unk30" +
+      "00_EFJIGCEGHJG\020wB\033\n\031emu.grasscutter.net." +
+      "protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoNotifyOuterClass.java
index 4d13778a..2a3ec345 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoNotifyOuterClass.java
@@ -35,9 +35,9 @@ public final class ActivityInfoNotifyOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2125
+   * CmdId: 2060
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -318,9 +318,9 @@ public final class ActivityInfoNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2125
+     * CmdId: 2060
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoOuterClass.java
index 6a7e05b4..b8be182a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoOuterClass.java
@@ -60,6 +60,10 @@ public final class ActivityInfoOuterClass {
     int getTakenRewardList(int index);
 
     /**
+     * <pre>
+     *bool Unk2700_NONJFHAIFLA = 102;
+     * </pre>
+     *
      * <code>uint32 selected_avatar_reward_id = 1290;</code>
      * @return The selectedAvatarRewardId.
      */
@@ -142,24 +146,44 @@ public final class ActivityInfoOuterClass {
     int getActivityType();
 
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     java.util.List<emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC> 
         getUnk2800KOMIPKKKOBEList();
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC getUnk2800KOMIPKKKOBE(int index);
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     int getUnk2800KOMIPKKKOBECount();
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     java.util.List<? extends emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLCOrBuilder> 
         getUnk2800KOMIPKKKOBEOrBuilderList();
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLCOrBuilder getUnk2800KOMIPKKKOBEOrBuilder(
@@ -183,16 +207,28 @@ public final class ActivityInfoOuterClass {
     int getMeetCondList(int index);
 
     /**
+     * <pre>
+     *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+     * </pre>
+     *
      * <code>repeated uint32 expire_cond_list = 3;</code>
      * @return A list containing the expireCondList.
      */
     java.util.List<java.lang.Integer> getExpireCondListList();
     /**
+     * <pre>
+     *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+     * </pre>
+     *
      * <code>repeated uint32 expire_cond_list = 3;</code>
      * @return The count of expireCondList.
      */
     int getExpireCondListCount();
     /**
+     * <pre>
+     *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+     * </pre>
+     *
      * <code>repeated uint32 expire_cond_list = 3;</code>
      * @param index The index of the element to return.
      * @return The expireCondList at the given index.
@@ -742,6 +778,10 @@ public final class ActivityInfoOuterClass {
     public static final int SELECTED_AVATAR_REWARD_ID_FIELD_NUMBER = 1290;
     private int selectedAvatarRewardId_;
     /**
+     * <pre>
+     *bool Unk2700_NONJFHAIFLA = 102;
+     * </pre>
+     *
      * <code>uint32 selected_avatar_reward_id = 1290;</code>
      * @return The selectedAvatarRewardId.
      */
@@ -911,6 +951,10 @@ public final class ActivityInfoOuterClass {
     public static final int UNK2800_KOMIPKKKOBE_FIELD_NUMBER = 864;
     private java.util.List<emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC> unk2800KOMIPKKKOBE_;
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     @java.lang.Override
@@ -918,6 +962,10 @@ public final class ActivityInfoOuterClass {
       return unk2800KOMIPKKKOBE_;
     }
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     @java.lang.Override
@@ -926,6 +974,10 @@ public final class ActivityInfoOuterClass {
       return unk2800KOMIPKKKOBE_;
     }
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     @java.lang.Override
@@ -933,6 +985,10 @@ public final class ActivityInfoOuterClass {
       return unk2800KOMIPKKKOBE_.size();
     }
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     @java.lang.Override
@@ -940,6 +996,10 @@ public final class ActivityInfoOuterClass {
       return unk2800KOMIPKKKOBE_.get(index);
     }
     /**
+     * <pre>
+     *bool Unk2700_EDKLLHBEEGE = 1449;
+     * </pre>
+     *
      * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
      */
     @java.lang.Override
@@ -979,6 +1039,10 @@ public final class ActivityInfoOuterClass {
     public static final int EXPIRE_COND_LIST_FIELD_NUMBER = 3;
     private com.google.protobuf.Internal.IntList expireCondList_;
     /**
+     * <pre>
+     *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+     * </pre>
+     *
      * <code>repeated uint32 expire_cond_list = 3;</code>
      * @return A list containing the expireCondList.
      */
@@ -988,6 +1052,10 @@ public final class ActivityInfoOuterClass {
       return expireCondList_;
     }
     /**
+     * <pre>
+     *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+     * </pre>
+     *
      * <code>repeated uint32 expire_cond_list = 3;</code>
      * @return The count of expireCondList.
      */
@@ -995,6 +1063,10 @@ public final class ActivityInfoOuterClass {
       return expireCondList_.size();
     }
     /**
+     * <pre>
+     *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+     * </pre>
+     *
      * <code>repeated uint32 expire_cond_list = 3;</code>
      * @param index The index of the element to return.
      * @return The expireCondList at the given index.
@@ -2252,6 +2324,10 @@ public final class ActivityInfoOuterClass {
 
       private int selectedAvatarRewardId_ ;
       /**
+       * <pre>
+       *bool Unk2700_NONJFHAIFLA = 102;
+       * </pre>
+       *
        * <code>uint32 selected_avatar_reward_id = 1290;</code>
        * @return The selectedAvatarRewardId.
        */
@@ -2260,6 +2336,10 @@ public final class ActivityInfoOuterClass {
         return selectedAvatarRewardId_;
       }
       /**
+       * <pre>
+       *bool Unk2700_NONJFHAIFLA = 102;
+       * </pre>
+       *
        * <code>uint32 selected_avatar_reward_id = 1290;</code>
        * @param value The selectedAvatarRewardId to set.
        * @return This builder for chaining.
@@ -2271,6 +2351,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_NONJFHAIFLA = 102;
+       * </pre>
+       *
        * <code>uint32 selected_avatar_reward_id = 1290;</code>
        * @return This builder for chaining.
        */
@@ -2639,6 +2723,10 @@ public final class ActivityInfoOuterClass {
           emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC, emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.Builder, emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLCOrBuilder> unk2800KOMIPKKKOBEBuilder_;
 
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public java.util.List<emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC> getUnk2800KOMIPKKKOBEList() {
@@ -2649,6 +2737,10 @@ public final class ActivityInfoOuterClass {
         }
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public int getUnk2800KOMIPKKKOBECount() {
@@ -2659,6 +2751,10 @@ public final class ActivityInfoOuterClass {
         }
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC getUnk2800KOMIPKKKOBE(int index) {
@@ -2669,6 +2765,10 @@ public final class ActivityInfoOuterClass {
         }
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder setUnk2800KOMIPKKKOBE(
@@ -2686,6 +2786,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder setUnk2800KOMIPKKKOBE(
@@ -2700,6 +2804,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder addUnk2800KOMIPKKKOBE(emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC value) {
@@ -2716,6 +2824,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder addUnk2800KOMIPKKKOBE(
@@ -2733,6 +2845,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder addUnk2800KOMIPKKKOBE(
@@ -2747,6 +2863,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder addUnk2800KOMIPKKKOBE(
@@ -2761,6 +2881,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder addAllUnk2800KOMIPKKKOBE(
@@ -2776,6 +2900,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder clearUnk2800KOMIPKKKOBE() {
@@ -2789,6 +2917,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public Builder removeUnk2800KOMIPKKKOBE(int index) {
@@ -2802,6 +2934,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.Builder getUnk2800KOMIPKKKOBEBuilder(
@@ -2809,6 +2945,10 @@ public final class ActivityInfoOuterClass {
         return getUnk2800KOMIPKKKOBEFieldBuilder().getBuilder(index);
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLCOrBuilder getUnk2800KOMIPKKKOBEOrBuilder(
@@ -2819,6 +2959,10 @@ public final class ActivityInfoOuterClass {
         }
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public java.util.List<? extends emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLCOrBuilder> 
@@ -2830,6 +2974,10 @@ public final class ActivityInfoOuterClass {
         }
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.Builder addUnk2800KOMIPKKKOBEBuilder() {
@@ -2837,6 +2985,10 @@ public final class ActivityInfoOuterClass {
             emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.getDefaultInstance());
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.Builder addUnk2800KOMIPKKKOBEBuilder(
@@ -2845,6 +2997,10 @@ public final class ActivityInfoOuterClass {
             index, emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.getDefaultInstance());
       }
       /**
+       * <pre>
+       *bool Unk2700_EDKLLHBEEGE = 1449;
+       * </pre>
+       *
        * <code>repeated .Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;</code>
        */
       public java.util.List<emu.grasscutter.net.proto.Unk2800PHPHMILPOLC.Unk2800_PHPHMILPOLC.Builder> 
@@ -2953,6 +3109,10 @@ public final class ActivityInfoOuterClass {
          }
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @return A list containing the expireCondList.
        */
@@ -2962,6 +3122,10 @@ public final class ActivityInfoOuterClass {
                  java.util.Collections.unmodifiableList(expireCondList_) : expireCondList_;
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @return The count of expireCondList.
        */
@@ -2969,6 +3133,10 @@ public final class ActivityInfoOuterClass {
         return expireCondList_.size();
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @param index The index of the element to return.
        * @return The expireCondList at the given index.
@@ -2977,6 +3145,10 @@ public final class ActivityInfoOuterClass {
         return expireCondList_.getInt(index);
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @param index The index to set the value at.
        * @param value The expireCondList to set.
@@ -2990,6 +3162,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @param value The expireCondList to add.
        * @return This builder for chaining.
@@ -3001,6 +3177,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @param values The expireCondList to add.
        * @return This builder for chaining.
@@ -3014,6 +3194,10 @@ public final class ActivityInfoOuterClass {
         return this;
       }
       /**
+       * <pre>
+       *map&lt;uint32, uint32&gt; Unk2700_IFPBCNLCKLG = 1399;
+       * </pre>
+       *
        * <code>repeated uint32 expire_cond_list = 3;</code>
        * @return This builder for chaining.
        */
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoNotifyOuterClass.java
index 8eb33202..f01ce37d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoNotifyOuterClass.java
@@ -50,9 +50,9 @@ public final class ActivityScheduleInfoNotifyOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2033
+   * CmdId: 2073
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -372,9 +372,9 @@ public final class ActivityScheduleInfoNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2033
+     * CmdId: 2073
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoOuterClass.java
index 99a51c6f..aa9756e7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoOuterClass.java
@@ -19,10 +19,10 @@ public final class ActivityScheduleInfoOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>uint32 activity_id = 14;</code>
-     * @return The activityId.
+     * <code>uint32 schedule_id = 13;</code>
+     * @return The scheduleId.
      */
-    int getActivityId();
+    int getScheduleId();
 
     /**
      * <code>bool is_open = 2;</code>
@@ -31,22 +31,22 @@ public final class ActivityScheduleInfoOuterClass {
     boolean getIsOpen();
 
     /**
-     * <code>uint32 schedule_id = 13;</code>
-     * @return The scheduleId.
-     */
-    int getScheduleId();
-
-    /**
-     * <code>uint32 begin_time = 10;</code>
-     * @return The beginTime.
+     * <code>uint32 activity_id = 14;</code>
+     * @return The activityId.
      */
-    int getBeginTime();
+    int getActivityId();
 
     /**
      * <code>uint32 end_time = 1;</code>
      * @return The endTime.
      */
     int getEndTime();
+
+    /**
+     * <code>uint32 begin_time = 10;</code>
+     * @return The beginTime.
+     */
+    int getBeginTime();
   }
   /**
    * Protobuf type {@code ActivityScheduleInfo}
@@ -150,15 +150,15 @@ public final class ActivityScheduleInfoOuterClass {
               emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo.class, emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo.Builder.class);
     }
 
-    public static final int ACTIVITY_ID_FIELD_NUMBER = 14;
-    private int activityId_;
+    public static final int SCHEDULE_ID_FIELD_NUMBER = 13;
+    private int scheduleId_;
     /**
-     * <code>uint32 activity_id = 14;</code>
-     * @return The activityId.
+     * <code>uint32 schedule_id = 13;</code>
+     * @return The scheduleId.
      */
     @java.lang.Override
-    public int getActivityId() {
-      return activityId_;
+    public int getScheduleId() {
+      return scheduleId_;
     }
 
     public static final int IS_OPEN_FIELD_NUMBER = 2;
@@ -172,26 +172,15 @@ public final class ActivityScheduleInfoOuterClass {
       return isOpen_;
     }
 
-    public static final int SCHEDULE_ID_FIELD_NUMBER = 13;
-    private int scheduleId_;
-    /**
-     * <code>uint32 schedule_id = 13;</code>
-     * @return The scheduleId.
-     */
-    @java.lang.Override
-    public int getScheduleId() {
-      return scheduleId_;
-    }
-
-    public static final int BEGIN_TIME_FIELD_NUMBER = 10;
-    private int beginTime_;
+    public static final int ACTIVITY_ID_FIELD_NUMBER = 14;
+    private int activityId_;
     /**
-     * <code>uint32 begin_time = 10;</code>
-     * @return The beginTime.
+     * <code>uint32 activity_id = 14;</code>
+     * @return The activityId.
      */
     @java.lang.Override
-    public int getBeginTime() {
-      return beginTime_;
+    public int getActivityId() {
+      return activityId_;
     }
 
     public static final int END_TIME_FIELD_NUMBER = 1;
@@ -205,6 +194,17 @@ public final class ActivityScheduleInfoOuterClass {
       return endTime_;
     }
 
+    public static final int BEGIN_TIME_FIELD_NUMBER = 10;
+    private int beginTime_;
+    /**
+     * <code>uint32 begin_time = 10;</code>
+     * @return The beginTime.
+     */
+    @java.lang.Override
+    public int getBeginTime() {
+      return beginTime_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -278,16 +278,16 @@ public final class ActivityScheduleInfoOuterClass {
       }
       emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo other = (emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo) obj;
 
-      if (getActivityId()
-          != other.getActivityId()) return false;
-      if (getIsOpen()
-          != other.getIsOpen()) return false;
       if (getScheduleId()
           != other.getScheduleId()) return false;
-      if (getBeginTime()
-          != other.getBeginTime()) return false;
+      if (getIsOpen()
+          != other.getIsOpen()) return false;
+      if (getActivityId()
+          != other.getActivityId()) return false;
       if (getEndTime()
           != other.getEndTime()) return false;
+      if (getBeginTime()
+          != other.getBeginTime()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -299,17 +299,17 @@ public final class ActivityScheduleInfoOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + ACTIVITY_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getActivityId();
+      hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getScheduleId();
       hash = (37 * hash) + IS_OPEN_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getIsOpen());
-      hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getScheduleId();
-      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
-      hash = (53 * hash) + getBeginTime();
+      hash = (37 * hash) + ACTIVITY_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getActivityId();
       hash = (37 * hash) + END_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getEndTime();
+      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getBeginTime();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -443,16 +443,16 @@ public final class ActivityScheduleInfoOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        activityId_ = 0;
+        scheduleId_ = 0;
 
         isOpen_ = false;
 
-        scheduleId_ = 0;
-
-        beginTime_ = 0;
+        activityId_ = 0;
 
         endTime_ = 0;
 
+        beginTime_ = 0;
+
         return this;
       }
 
@@ -479,11 +479,11 @@ public final class ActivityScheduleInfoOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo buildPartial() {
         emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo result = new emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo(this);
-        result.activityId_ = activityId_;
-        result.isOpen_ = isOpen_;
         result.scheduleId_ = scheduleId_;
-        result.beginTime_ = beginTime_;
+        result.isOpen_ = isOpen_;
+        result.activityId_ = activityId_;
         result.endTime_ = endTime_;
+        result.beginTime_ = beginTime_;
         onBuilt();
         return result;
       }
@@ -532,21 +532,21 @@ public final class ActivityScheduleInfoOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo other) {
         if (other == emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo.getDefaultInstance()) return this;
-        if (other.getActivityId() != 0) {
-          setActivityId(other.getActivityId());
+        if (other.getScheduleId() != 0) {
+          setScheduleId(other.getScheduleId());
         }
         if (other.getIsOpen() != false) {
           setIsOpen(other.getIsOpen());
         }
-        if (other.getScheduleId() != 0) {
-          setScheduleId(other.getScheduleId());
-        }
-        if (other.getBeginTime() != 0) {
-          setBeginTime(other.getBeginTime());
+        if (other.getActivityId() != 0) {
+          setActivityId(other.getActivityId());
         }
         if (other.getEndTime() != 0) {
           setEndTime(other.getEndTime());
         }
+        if (other.getBeginTime() != 0) {
+          setBeginTime(other.getBeginTime());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -576,33 +576,33 @@ public final class ActivityScheduleInfoOuterClass {
         return this;
       }
 
-      private int activityId_ ;
+      private int scheduleId_ ;
       /**
-       * <code>uint32 activity_id = 14;</code>
-       * @return The activityId.
+       * <code>uint32 schedule_id = 13;</code>
+       * @return The scheduleId.
        */
       @java.lang.Override
-      public int getActivityId() {
-        return activityId_;
+      public int getScheduleId() {
+        return scheduleId_;
       }
       /**
-       * <code>uint32 activity_id = 14;</code>
-       * @param value The activityId to set.
+       * <code>uint32 schedule_id = 13;</code>
+       * @param value The scheduleId to set.
        * @return This builder for chaining.
        */
-      public Builder setActivityId(int value) {
+      public Builder setScheduleId(int value) {
         
-        activityId_ = value;
+        scheduleId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 activity_id = 14;</code>
+       * <code>uint32 schedule_id = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder clearActivityId() {
+      public Builder clearScheduleId() {
         
-        activityId_ = 0;
+        scheduleId_ = 0;
         onChanged();
         return this;
       }
@@ -638,95 +638,95 @@ public final class ActivityScheduleInfoOuterClass {
         return this;
       }
 
-      private int scheduleId_ ;
+      private int activityId_ ;
       /**
-       * <code>uint32 schedule_id = 13;</code>
-       * @return The scheduleId.
+       * <code>uint32 activity_id = 14;</code>
+       * @return The activityId.
        */
       @java.lang.Override
-      public int getScheduleId() {
-        return scheduleId_;
+      public int getActivityId() {
+        return activityId_;
       }
       /**
-       * <code>uint32 schedule_id = 13;</code>
-       * @param value The scheduleId to set.
+       * <code>uint32 activity_id = 14;</code>
+       * @param value The activityId to set.
        * @return This builder for chaining.
        */
-      public Builder setScheduleId(int value) {
+      public Builder setActivityId(int value) {
         
-        scheduleId_ = value;
+        activityId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 schedule_id = 13;</code>
+       * <code>uint32 activity_id = 14;</code>
        * @return This builder for chaining.
        */
-      public Builder clearScheduleId() {
+      public Builder clearActivityId() {
         
-        scheduleId_ = 0;
+        activityId_ = 0;
         onChanged();
         return this;
       }
 
-      private int beginTime_ ;
+      private int endTime_ ;
       /**
-       * <code>uint32 begin_time = 10;</code>
-       * @return The beginTime.
+       * <code>uint32 end_time = 1;</code>
+       * @return The endTime.
        */
       @java.lang.Override
-      public int getBeginTime() {
-        return beginTime_;
+      public int getEndTime() {
+        return endTime_;
       }
       /**
-       * <code>uint32 begin_time = 10;</code>
-       * @param value The beginTime to set.
+       * <code>uint32 end_time = 1;</code>
+       * @param value The endTime to set.
        * @return This builder for chaining.
        */
-      public Builder setBeginTime(int value) {
+      public Builder setEndTime(int value) {
         
-        beginTime_ = value;
+        endTime_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 begin_time = 10;</code>
+       * <code>uint32 end_time = 1;</code>
        * @return This builder for chaining.
        */
-      public Builder clearBeginTime() {
+      public Builder clearEndTime() {
         
-        beginTime_ = 0;
+        endTime_ = 0;
         onChanged();
         return this;
       }
 
-      private int endTime_ ;
+      private int beginTime_ ;
       /**
-       * <code>uint32 end_time = 1;</code>
-       * @return The endTime.
+       * <code>uint32 begin_time = 10;</code>
+       * @return The beginTime.
        */
       @java.lang.Override
-      public int getEndTime() {
-        return endTime_;
+      public int getBeginTime() {
+        return beginTime_;
       }
       /**
-       * <code>uint32 end_time = 1;</code>
-       * @param value The endTime to set.
+       * <code>uint32 begin_time = 10;</code>
+       * @param value The beginTime to set.
        * @return This builder for chaining.
        */
-      public Builder setEndTime(int value) {
+      public Builder setBeginTime(int value) {
         
-        endTime_ = value;
+        beginTime_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 end_time = 1;</code>
+       * <code>uint32 begin_time = 10;</code>
        * @return This builder for chaining.
        */
-      public Builder clearEndTime() {
+      public Builder clearBeginTime() {
         
-        endTime_ = 0;
+        beginTime_ = 0;
         onChanged();
         return this;
       }
@@ -798,9 +798,9 @@ public final class ActivityScheduleInfoOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\032ActivityScheduleInfo.proto\"w\n\024Activity" +
-      "ScheduleInfo\022\023\n\013activity_id\030\016 \001(\r\022\017\n\007is_" +
-      "open\030\002 \001(\010\022\023\n\013schedule_id\030\r \001(\r\022\022\n\nbegin" +
-      "_time\030\n \001(\r\022\020\n\010end_time\030\001 \001(\rB\033\n\031emu.gra" +
+      "ScheduleInfo\022\023\n\013schedule_id\030\r \001(\r\022\017\n\007is_" +
+      "open\030\002 \001(\010\022\023\n\013activity_id\030\016 \001(\r\022\020\n\010end_t" +
+      "ime\030\001 \001(\r\022\022\n\nbegin_time\030\n \001(\rB\033\n\031emu.gra" +
       "sscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -812,7 +812,7 @@ public final class ActivityScheduleInfoOuterClass {
     internal_static_ActivityScheduleInfo_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ActivityScheduleInfo_descriptor,
-        new java.lang.String[] { "ActivityId", "IsOpen", "ScheduleId", "BeginTime", "EndTime", });
+        new java.lang.String[] { "ScheduleId", "IsOpen", "ActivityId", "EndTime", "BeginTime", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardReqOuterClass.java
index 7a814329..d7998d71 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardReqOuterClass.java
@@ -32,9 +32,9 @@ public final class ActivityTakeWatcherRewardReqOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2090
+   * CmdId: 2038
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -314,9 +314,9 @@ public final class ActivityTakeWatcherRewardReqOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2090
+     * CmdId: 2038
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardRspOuterClass.java
index 14925307..8ad418b7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardRspOuterClass.java
@@ -18,12 +18,6 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
       // @@protoc_insertion_point(interface_extends:ActivityTakeWatcherRewardRsp)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>int32 retcode = 9;</code>
-     * @return The retcode.
-     */
-    int getRetcode();
-
     /**
      * <code>uint32 activity_id = 14;</code>
      * @return The activityId.
@@ -35,12 +29,19 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
      * @return The watcherId.
      */
     int getWatcherId();
+
+    /**
+     * <code>int32 retcode = 9;</code>
+     * @return The retcode.
+     */
+    int getRetcode();
   }
   /**
    * <pre>
-   * CmdId: 2025
+   * CmdId: 2034
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ActivityTakeWatcherRewardRsp}
@@ -134,17 +135,6 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
               emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp.class, emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp.Builder.class);
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 9;
-    private int retcode_;
-    /**
-     * <code>int32 retcode = 9;</code>
-     * @return The retcode.
-     */
-    @java.lang.Override
-    public int getRetcode() {
-      return retcode_;
-    }
-
     public static final int ACTIVITY_ID_FIELD_NUMBER = 14;
     private int activityId_;
     /**
@@ -167,6 +157,17 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
       return watcherId_;
     }
 
+    public static final int RETCODE_FIELD_NUMBER = 9;
+    private int retcode_;
+    /**
+     * <code>int32 retcode = 9;</code>
+     * @return The retcode.
+     */
+    @java.lang.Override
+    public int getRetcode() {
+      return retcode_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -226,12 +227,12 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
       }
       emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp other = (emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp) obj;
 
-      if (getRetcode()
-          != other.getRetcode()) return false;
       if (getActivityId()
           != other.getActivityId()) return false;
       if (getWatcherId()
           != other.getWatcherId()) return false;
+      if (getRetcode()
+          != other.getRetcode()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -243,12 +244,12 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
-      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + ACTIVITY_ID_FIELD_NUMBER;
       hash = (53 * hash) + getActivityId();
       hash = (37 * hash) + WATCHER_ID_FIELD_NUMBER;
       hash = (53 * hash) + getWatcherId();
+      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+      hash = (53 * hash) + getRetcode();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -346,9 +347,10 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2025
+     * CmdId: 2034
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ActivityTakeWatcherRewardRsp}
@@ -388,12 +390,12 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        retcode_ = 0;
-
         activityId_ = 0;
 
         watcherId_ = 0;
 
+        retcode_ = 0;
+
         return this;
       }
 
@@ -420,9 +422,9 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp buildPartial() {
         emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp result = new emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp(this);
-        result.retcode_ = retcode_;
         result.activityId_ = activityId_;
         result.watcherId_ = watcherId_;
+        result.retcode_ = retcode_;
         onBuilt();
         return result;
       }
@@ -471,15 +473,15 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp other) {
         if (other == emu.grasscutter.net.proto.ActivityTakeWatcherRewardRspOuterClass.ActivityTakeWatcherRewardRsp.getDefaultInstance()) return this;
-        if (other.getRetcode() != 0) {
-          setRetcode(other.getRetcode());
-        }
         if (other.getActivityId() != 0) {
           setActivityId(other.getActivityId());
         }
         if (other.getWatcherId() != 0) {
           setWatcherId(other.getWatcherId());
         }
+        if (other.getRetcode() != 0) {
+          setRetcode(other.getRetcode());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -509,37 +511,6 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
         return this;
       }
 
-      private int retcode_ ;
-      /**
-       * <code>int32 retcode = 9;</code>
-       * @return The retcode.
-       */
-      @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
-      }
-      /**
-       * <code>int32 retcode = 9;</code>
-       * @param value The retcode to set.
-       * @return This builder for chaining.
-       */
-      public Builder setRetcode(int value) {
-        
-        retcode_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>int32 retcode = 9;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearRetcode() {
-        
-        retcode_ = 0;
-        onChanged();
-        return this;
-      }
-
       private int activityId_ ;
       /**
        * <code>uint32 activity_id = 14;</code>
@@ -601,6 +572,37 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
         onChanged();
         return this;
       }
+
+      private int retcode_ ;
+      /**
+       * <code>int32 retcode = 9;</code>
+       * @return The retcode.
+       */
+      @java.lang.Override
+      public int getRetcode() {
+        return retcode_;
+      }
+      /**
+       * <code>int32 retcode = 9;</code>
+       * @param value The retcode to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRetcode(int value) {
+        
+        retcode_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 retcode = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRetcode() {
+        
+        retcode_ = 0;
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -669,9 +671,9 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\"ActivityTakeWatcherRewardRsp.proto\"X\n\034" +
-      "ActivityTakeWatcherRewardRsp\022\017\n\007retcode\030" +
-      "\t \001(\005\022\023\n\013activity_id\030\016 \001(\r\022\022\n\nwatcher_id" +
-      "\030\007 \001(\rB\033\n\031emu.grasscutter.net.protob\006pro" +
+      "ActivityTakeWatcherRewardRsp\022\023\n\013activity" +
+      "_id\030\016 \001(\r\022\022\n\nwatcher_id\030\007 \001(\r\022\017\n\007retcode" +
+      "\030\t \001(\005B\033\n\031emu.grasscutter.net.protob\006pro" +
       "to3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -683,7 +685,7 @@ public final class ActivityTakeWatcherRewardRspOuterClass {
     internal_static_ActivityTakeWatcherRewardRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ActivityTakeWatcherRewardRsp_descriptor,
-        new java.lang.String[] { "Retcode", "ActivityId", "WatcherId", });
+        new java.lang.String[] { "ActivityId", "WatcherId", "Retcode", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityUpdateWatcherNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityUpdateWatcherNotifyOuterClass.java
index beadb4e1..3a4b7493 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityUpdateWatcherNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityUpdateWatcherNotifyOuterClass.java
@@ -18,12 +18,6 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
       // @@protoc_insertion_point(interface_extends:ActivityUpdateWatcherNotify)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 activity_id = 1;</code>
-     * @return The activityId.
-     */
-    int getActivityId();
-
     /**
      * <code>.ActivityWatcherInfo watcher_info = 2;</code>
      * @return Whether the watcherInfo field is set.
@@ -38,12 +32,18 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
      * <code>.ActivityWatcherInfo watcher_info = 2;</code>
      */
     emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfoOrBuilder getWatcherInfoOrBuilder();
+
+    /**
+     * <code>uint32 activity_id = 1;</code>
+     * @return The activityId.
+     */
+    int getActivityId();
   }
   /**
    * <pre>
-   * CmdId: 2172
+   * CmdId: 2156
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -141,17 +141,6 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
               emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify.class, emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify.Builder.class);
     }
 
-    public static final int ACTIVITY_ID_FIELD_NUMBER = 1;
-    private int activityId_;
-    /**
-     * <code>uint32 activity_id = 1;</code>
-     * @return The activityId.
-     */
-    @java.lang.Override
-    public int getActivityId() {
-      return activityId_;
-    }
-
     public static final int WATCHER_INFO_FIELD_NUMBER = 2;
     private emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfo watcherInfo_;
     /**
@@ -178,6 +167,17 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
       return getWatcherInfo();
     }
 
+    public static final int ACTIVITY_ID_FIELD_NUMBER = 1;
+    private int activityId_;
+    /**
+     * <code>uint32 activity_id = 1;</code>
+     * @return The activityId.
+     */
+    @java.lang.Override
+    public int getActivityId() {
+      return activityId_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -230,13 +230,13 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
       }
       emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify other = (emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify) obj;
 
-      if (getActivityId()
-          != other.getActivityId()) return false;
       if (hasWatcherInfo() != other.hasWatcherInfo()) return false;
       if (hasWatcherInfo()) {
         if (!getWatcherInfo()
             .equals(other.getWatcherInfo())) return false;
       }
+      if (getActivityId()
+          != other.getActivityId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -248,12 +248,12 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + ACTIVITY_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getActivityId();
       if (hasWatcherInfo()) {
         hash = (37 * hash) + WATCHER_INFO_FIELD_NUMBER;
         hash = (53 * hash) + getWatcherInfo().hashCode();
       }
+      hash = (37 * hash) + ACTIVITY_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getActivityId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -351,9 +351,9 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2172
+     * CmdId: 2156
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -394,14 +394,14 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        activityId_ = 0;
-
         if (watcherInfoBuilder_ == null) {
           watcherInfo_ = null;
         } else {
           watcherInfo_ = null;
           watcherInfoBuilder_ = null;
         }
+        activityId_ = 0;
+
         return this;
       }
 
@@ -428,12 +428,12 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify buildPartial() {
         emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify result = new emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify(this);
-        result.activityId_ = activityId_;
         if (watcherInfoBuilder_ == null) {
           result.watcherInfo_ = watcherInfo_;
         } else {
           result.watcherInfo_ = watcherInfoBuilder_.build();
         }
+        result.activityId_ = activityId_;
         onBuilt();
         return result;
       }
@@ -482,12 +482,12 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify other) {
         if (other == emu.grasscutter.net.proto.ActivityUpdateWatcherNotifyOuterClass.ActivityUpdateWatcherNotify.getDefaultInstance()) return this;
-        if (other.getActivityId() != 0) {
-          setActivityId(other.getActivityId());
-        }
         if (other.hasWatcherInfo()) {
           mergeWatcherInfo(other.getWatcherInfo());
         }
+        if (other.getActivityId() != 0) {
+          setActivityId(other.getActivityId());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -517,37 +517,6 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
         return this;
       }
 
-      private int activityId_ ;
-      /**
-       * <code>uint32 activity_id = 1;</code>
-       * @return The activityId.
-       */
-      @java.lang.Override
-      public int getActivityId() {
-        return activityId_;
-      }
-      /**
-       * <code>uint32 activity_id = 1;</code>
-       * @param value The activityId to set.
-       * @return This builder for chaining.
-       */
-      public Builder setActivityId(int value) {
-        
-        activityId_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 activity_id = 1;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearActivityId() {
-        
-        activityId_ = 0;
-        onChanged();
-        return this;
-      }
-
       private emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfo watcherInfo_;
       private com.google.protobuf.SingleFieldBuilderV3<
           emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfo, emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfo.Builder, emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfoOrBuilder> watcherInfoBuilder_;
@@ -666,6 +635,37 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
         }
         return watcherInfoBuilder_;
       }
+
+      private int activityId_ ;
+      /**
+       * <code>uint32 activity_id = 1;</code>
+       * @return The activityId.
+       */
+      @java.lang.Override
+      public int getActivityId() {
+        return activityId_;
+      }
+      /**
+       * <code>uint32 activity_id = 1;</code>
+       * @param value The activityId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setActivityId(int value) {
+        
+        activityId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 activity_id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearActivityId() {
+        
+        activityId_ = 0;
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -735,8 +735,8 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
     java.lang.String[] descriptorData = {
       "\n!ActivityUpdateWatcherNotify.proto\032\031Act" +
       "ivityWatcherInfo.proto\"^\n\033ActivityUpdate" +
-      "WatcherNotify\022\023\n\013activity_id\030\001 \001(\r\022*\n\014wa" +
-      "tcher_info\030\002 \001(\0132\024.ActivityWatcherInfoB\033" +
+      "WatcherNotify\022*\n\014watcher_info\030\002 \001(\0132\024.Ac" +
+      "tivityWatcherInfo\022\023\n\013activity_id\030\001 \001(\rB\033" +
       "\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -749,7 +749,7 @@ public final class ActivityUpdateWatcherNotifyOuterClass {
     internal_static_ActivityUpdateWatcherNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ActivityUpdateWatcherNotify_descriptor,
-        new java.lang.String[] { "ActivityId", "WatcherInfo", });
+        new java.lang.String[] { "WatcherInfo", "ActivityId", });
     emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ActivityWatcherInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ActivityWatcherInfoOuterClass.java
index b4c77c01..ab0e7ac6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ActivityWatcherInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ActivityWatcherInfoOuterClass.java
@@ -19,7 +19,7 @@ public final class ActivityWatcherInfoOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>bool is_taken_reward = 5;</code>
+     * <code>bool is_taken_reward = 8;</code>
      * @return The isTakenReward.
      */
     boolean getIsTakenReward();
@@ -37,7 +37,7 @@ public final class ActivityWatcherInfoOuterClass {
     int getTotalProgress();
 
     /**
-     * <code>uint32 watcher_id = 8;</code>
+     * <code>uint32 watcher_id = 5;</code>
      * @return The watcherId.
      */
     int getWatcherId();
@@ -99,12 +99,12 @@ public final class ActivityWatcherInfoOuterClass {
             }
             case 40: {
 
-              isTakenReward_ = input.readBool();
+              watcherId_ = input.readUInt32();
               break;
             }
             case 64: {
 
-              watcherId_ = input.readUInt32();
+              isTakenReward_ = input.readBool();
               break;
             }
             default: {
@@ -139,10 +139,10 @@ public final class ActivityWatcherInfoOuterClass {
               emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfo.class, emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass.ActivityWatcherInfo.Builder.class);
     }
 
-    public static final int IS_TAKEN_REWARD_FIELD_NUMBER = 5;
+    public static final int IS_TAKEN_REWARD_FIELD_NUMBER = 8;
     private boolean isTakenReward_;
     /**
-     * <code>bool is_taken_reward = 5;</code>
+     * <code>bool is_taken_reward = 8;</code>
      * @return The isTakenReward.
      */
     @java.lang.Override
@@ -172,10 +172,10 @@ public final class ActivityWatcherInfoOuterClass {
       return totalProgress_;
     }
 
-    public static final int WATCHER_ID_FIELD_NUMBER = 8;
+    public static final int WATCHER_ID_FIELD_NUMBER = 5;
     private int watcherId_;
     /**
-     * <code>uint32 watcher_id = 8;</code>
+     * <code>uint32 watcher_id = 5;</code>
      * @return The watcherId.
      */
     @java.lang.Override
@@ -203,11 +203,11 @@ public final class ActivityWatcherInfoOuterClass {
       if (totalProgress_ != 0) {
         output.writeUInt32(4, totalProgress_);
       }
-      if (isTakenReward_ != false) {
-        output.writeBool(5, isTakenReward_);
-      }
       if (watcherId_ != 0) {
-        output.writeUInt32(8, watcherId_);
+        output.writeUInt32(5, watcherId_);
+      }
+      if (isTakenReward_ != false) {
+        output.writeBool(8, isTakenReward_);
       }
       unknownFields.writeTo(output);
     }
@@ -226,13 +226,13 @@ public final class ActivityWatcherInfoOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeUInt32Size(4, totalProgress_);
       }
-      if (isTakenReward_ != false) {
+      if (watcherId_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isTakenReward_);
+          .computeUInt32Size(5, watcherId_);
       }
-      if (watcherId_ != 0) {
+      if (isTakenReward_ != false) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(8, watcherId_);
+          .computeBoolSize(8, isTakenReward_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -539,7 +539,7 @@ public final class ActivityWatcherInfoOuterClass {
 
       private boolean isTakenReward_ ;
       /**
-       * <code>bool is_taken_reward = 5;</code>
+       * <code>bool is_taken_reward = 8;</code>
        * @return The isTakenReward.
        */
       @java.lang.Override
@@ -547,7 +547,7 @@ public final class ActivityWatcherInfoOuterClass {
         return isTakenReward_;
       }
       /**
-       * <code>bool is_taken_reward = 5;</code>
+       * <code>bool is_taken_reward = 8;</code>
        * @param value The isTakenReward to set.
        * @return This builder for chaining.
        */
@@ -558,7 +558,7 @@ public final class ActivityWatcherInfoOuterClass {
         return this;
       }
       /**
-       * <code>bool is_taken_reward = 5;</code>
+       * <code>bool is_taken_reward = 8;</code>
        * @return This builder for chaining.
        */
       public Builder clearIsTakenReward() {
@@ -632,7 +632,7 @@ public final class ActivityWatcherInfoOuterClass {
 
       private int watcherId_ ;
       /**
-       * <code>uint32 watcher_id = 8;</code>
+       * <code>uint32 watcher_id = 5;</code>
        * @return The watcherId.
        */
       @java.lang.Override
@@ -640,7 +640,7 @@ public final class ActivityWatcherInfoOuterClass {
         return watcherId_;
       }
       /**
-       * <code>uint32 watcher_id = 8;</code>
+       * <code>uint32 watcher_id = 5;</code>
        * @param value The watcherId to set.
        * @return This builder for chaining.
        */
@@ -651,7 +651,7 @@ public final class ActivityWatcherInfoOuterClass {
         return this;
       }
       /**
-       * <code>uint32 watcher_id = 8;</code>
+       * <code>uint32 watcher_id = 5;</code>
        * @return This builder for chaining.
        */
       public Builder clearWatcherId() {
@@ -728,9 +728,9 @@ public final class ActivityWatcherInfoOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\031ActivityWatcherInfo.proto\"p\n\023ActivityW" +
-      "atcherInfo\022\027\n\017is_taken_reward\030\005 \001(\010\022\024\n\014c" +
+      "atcherInfo\022\027\n\017is_taken_reward\030\010 \001(\010\022\024\n\014c" +
       "ur_progress\030\002 \001(\r\022\026\n\016total_progress\030\004 \001(" +
-      "\r\022\022\n\nwatcher_id\030\010 \001(\rB\033\n\031emu.grasscutter" +
+      "\r\022\022\n\nwatcher_id\030\005 \001(\rB\033\n\031emu.grasscutter" +
       ".net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressReqOuterClass.java
index 148270cb..1ba2bd66 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressReqOuterClass.java
@@ -40,7 +40,7 @@ public final class AddQuestContentProgressReqOuterClass {
    * <pre>
    * CmdId: 421
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class AddQuestContentProgressReqOuterClass {
      * <pre>
      * CmdId: 421
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressRspOuterClass.java
index b048a64f..5e2f4e11 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressRspOuterClass.java
@@ -34,7 +34,8 @@ public final class AddQuestContentProgressRspOuterClass {
    * <pre>
    * CmdId: 403
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AddQuestContentProgressRsp}
@@ -315,7 +316,8 @@ public final class AddQuestContentProgressRspOuterClass {
      * <pre>
      * CmdId: 403
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AddQuestContentProgressRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AllWidgetDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AllWidgetDataNotifyOuterClass.java
index caf8a31b..72644e21 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AllWidgetDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AllWidgetDataNotifyOuterClass.java
@@ -19,19 +19,60 @@ public final class AllWidgetDataNotifyOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
-     * @return Whether the unk2700COIELIGEACL field is set.
+     * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+     * @return A list containing the unk3000CNNFGFBBBFP.
      */
-    boolean hasUnk2700COIELIGEACL();
+    java.util.List<java.lang.Integer> getUnk3000CNNFGFBBBFPList();
     /**
-     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
-     * @return The unk2700COIELIGEACL.
+     * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+     * @return The count of unk3000CNNFGFBBBFP.
      */
-    emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK getUnk2700COIELIGEACL();
+    int getUnk3000CNNFGFBBBFPCount();
     /**
-     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+     * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+     * @param index The index of the element to return.
+     * @return The unk3000CNNFGFBBBFP at the given index.
      */
-    emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder getUnk2700COIELIGEACLOrBuilder();
+    int getUnk3000CNNFGFBBBFP(int index);
+
+    /**
+     * <code>.LunchBoxData lunch_box_data = 1;</code>
+     * @return Whether the lunchBoxData field is set.
+     */
+    boolean hasLunchBoxData();
+    /**
+     * <code>.LunchBoxData lunch_box_data = 1;</code>
+     * @return The lunchBoxData.
+     */
+    emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData getLunchBoxData();
+    /**
+     * <code>.LunchBoxData lunch_box_data = 1;</code>
+     */
+    emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder getLunchBoxDataOrBuilder();
+
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> 
+        getCoolDownGroupDataListList();
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getCoolDownGroupDataList(int index);
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    int getCoolDownGroupDataListCount();
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
+        getCoolDownGroupDataListOrBuilderList();
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getCoolDownGroupDataListOrBuilder(
+        int index);
 
     /**
      * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
@@ -58,58 +99,58 @@ public final class AllWidgetDataNotifyOuterClass {
         int index);
 
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
-    java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> 
-        getClientCollectorDataListList();
+    java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> 
+        getSlotListList();
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
-    emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData getClientCollectorDataList(int index);
+    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index);
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
-    int getClientCollectorDataListCount();
+    int getSlotListCount();
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
-    java.util.List<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
-        getClientCollectorDataListOrBuilderList();
+    java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+        getSlotListOrBuilderList();
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
-    emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder getClientCollectorDataListOrBuilder(
+    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
         int index);
 
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>uint32 next_anchor_point_usable_time = 10;</code>
+     * @return The nextAnchorPointUsableTime.
      */
-    java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> 
-        getNormalCoolDownDataListList();
+    int getNextAnchorPointUsableTime();
+
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
      */
-    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getNormalCoolDownDataList(int index);
+    java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> 
+        getClientCollectorDataListList();
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
      */
-    int getNormalCoolDownDataListCount();
+    emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData getClientCollectorDataList(int index);
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
      */
-    java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-        getNormalCoolDownDataListOrBuilderList();
+    int getClientCollectorDataListCount();
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
      */
-    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getNormalCoolDownDataListOrBuilder(
-        int index);
-
+    java.util.List<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
+        getClientCollectorDataListOrBuilderList();
     /**
-     * <code>uint32 next_anchor_point_usable_time = 10;</code>
-     * @return The nextAnchorPointUsableTime.
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
      */
-    int getNextAnchorPointUsableTime();
+    emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder getClientCollectorDataListOrBuilder(
+        int index);
 
     /**
      * <code>repeated .OneofGatherPointDetectorData oneof_gather_point_detector_data_list = 15;</code>
@@ -136,73 +177,50 @@ public final class AllWidgetDataNotifyOuterClass {
         int index);
 
     /**
-     * <code>.LunchBoxData lunch_box_data = 1;</code>
-     * @return Whether the lunchBoxData field is set.
-     */
-    boolean hasLunchBoxData();
-    /**
-     * <code>.LunchBoxData lunch_box_data = 1;</code>
-     * @return The lunchBoxData.
-     */
-    emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData getLunchBoxData();
-    /**
-     * <code>.LunchBoxData lunch_box_data = 1;</code>
-     */
-    emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder getLunchBoxDataOrBuilder();
-
-    /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> 
-        getCoolDownGroupDataListList();
+        getNormalCoolDownDataListList();
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
-    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getCoolDownGroupDataList(int index);
+    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getNormalCoolDownDataList(int index);
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
-    int getCoolDownGroupDataListCount();
+    int getNormalCoolDownDataListCount();
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-        getCoolDownGroupDataListOrBuilderList();
+        getNormalCoolDownDataListOrBuilderList();
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
-    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getCoolDownGroupDataListOrBuilder(
+    emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getNormalCoolDownDataListOrBuilder(
         int index);
 
     /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
-     */
-    java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> 
-        getSlotListList();
-    /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
-     */
-    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index);
-    /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
+     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+     * @return Whether the unk2700COIELIGEACL field is set.
      */
-    int getSlotListCount();
+    boolean hasUnk2700COIELIGEACL();
     /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
+     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+     * @return The unk2700COIELIGEACL.
      */
-    java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
-        getSlotListOrBuilderList();
+    emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK getUnk2700COIELIGEACL();
     /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
+     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
      */
-    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
-        int index);
+    emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder getUnk2700COIELIGEACLOrBuilder();
   }
   /**
    * <pre>
    * CmdId: 4271
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AllWidgetDataNotify}
@@ -217,12 +235,13 @@ public final class AllWidgetDataNotifyOuterClass {
       super(builder);
     }
     private AllWidgetDataNotify() {
+      unk3000CNNFGFBBBFP_ = emptyIntList();
+      coolDownGroupDataList_ = java.util.Collections.emptyList();
       anchorPointList_ = java.util.Collections.emptyList();
+      slotList_ = java.util.Collections.emptyList();
       clientCollectorDataList_ = java.util.Collections.emptyList();
-      normalCoolDownDataList_ = java.util.Collections.emptyList();
       oneofGatherPointDetectorDataList_ = java.util.Collections.emptyList();
-      coolDownGroupDataList_ = java.util.Collections.emptyList();
-      slotList_ = java.util.Collections.emptyList();
+      normalCoolDownDataList_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -270,36 +289,36 @@ public final class AllWidgetDataNotifyOuterClass {
               break;
             }
             case 26: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                 anchorPointList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData>();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000004;
               }
               anchorPointList_.add(
                   input.readMessage(emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData.parser(), extensionRegistry));
               break;
             }
             case 34: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                 clientCollectorDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData>();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000010;
               }
               clientCollectorDataList_.add(
                   input.readMessage(emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.parser(), extensionRegistry));
               break;
             }
             case 50: {
-              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                 slotList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData>();
-                mutable_bitField0_ |= 0x00000020;
+                mutable_bitField0_ |= 0x00000008;
               }
               slotList_.add(
                   input.readMessage(emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.parser(), extensionRegistry));
               break;
             }
             case 74: {
-              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                 normalCoolDownDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData>();
-                mutable_bitField0_ |= 0x00000004;
+                mutable_bitField0_ |= 0x00000040;
               }
               normalCoolDownDataList_.add(
                   input.readMessage(emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.parser(), extensionRegistry));
@@ -310,6 +329,27 @@ public final class AllWidgetDataNotifyOuterClass {
               nextAnchorPointUsableTime_ = input.readUInt32();
               break;
             }
+            case 88: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                unk3000CNNFGFBBBFP_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              unk3000CNNFGFBBBFP_.addInt(input.readUInt32());
+              break;
+            }
+            case 90: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                unk3000CNNFGFBBBFP_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                unk3000CNNFGFBBBFP_.addInt(input.readUInt32());
+              }
+              input.popLimit(limit);
+              break;
+            }
             case 98: {
               emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder subBuilder = null;
               if (unk2700COIELIGEACL_ != null) {
@@ -324,18 +364,18 @@ public final class AllWidgetDataNotifyOuterClass {
               break;
             }
             case 106: {
-              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                 coolDownGroupDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData>();
-                mutable_bitField0_ |= 0x00000010;
+                mutable_bitField0_ |= 0x00000002;
               }
               coolDownGroupDataList_.add(
                   input.readMessage(emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.parser(), extensionRegistry));
               break;
             }
             case 122: {
-              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                 oneofGatherPointDetectorDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData>();
-                mutable_bitField0_ |= 0x00000008;
+                mutable_bitField0_ |= 0x00000020;
               }
               oneofGatherPointDetectorDataList_.add(
                   input.readMessage(emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData.parser(), extensionRegistry));
@@ -356,22 +396,25 @@ public final class AllWidgetDataNotifyOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
           anchorPointList_ = java.util.Collections.unmodifiableList(anchorPointList_);
         }
-        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        if (((mutable_bitField0_ & 0x00000010) != 0)) {
           clientCollectorDataList_ = java.util.Collections.unmodifiableList(clientCollectorDataList_);
         }
-        if (((mutable_bitField0_ & 0x00000020) != 0)) {
+        if (((mutable_bitField0_ & 0x00000008) != 0)) {
           slotList_ = java.util.Collections.unmodifiableList(slotList_);
         }
-        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+        if (((mutable_bitField0_ & 0x00000040) != 0)) {
           normalCoolDownDataList_ = java.util.Collections.unmodifiableList(normalCoolDownDataList_);
         }
-        if (((mutable_bitField0_ & 0x00000010) != 0)) {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          unk3000CNNFGFBBBFP_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
           coolDownGroupDataList_ = java.util.Collections.unmodifiableList(coolDownGroupDataList_);
         }
-        if (((mutable_bitField0_ & 0x00000008) != 0)) {
+        if (((mutable_bitField0_ & 0x00000020) != 0)) {
           oneofGatherPointDetectorDataList_ = java.util.Collections.unmodifiableList(oneofGatherPointDetectorDataList_);
         }
         this.unknownFields = unknownFields.build();
@@ -391,150 +434,178 @@ public final class AllWidgetDataNotifyOuterClass {
               emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify.class, emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify.Builder.class);
     }
 
-    public static final int UNK2700_COIELIGEACL_FIELD_NUMBER = 12;
-    private emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK unk2700COIELIGEACL_;
+    public static final int UNK3000_CNNFGFBBBFP_FIELD_NUMBER = 11;
+    private com.google.protobuf.Internal.IntList unk3000CNNFGFBBBFP_;
     /**
-     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
-     * @return Whether the unk2700COIELIGEACL field is set.
+     * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+     * @return A list containing the unk3000CNNFGFBBBFP.
      */
     @java.lang.Override
-    public boolean hasUnk2700COIELIGEACL() {
-      return unk2700COIELIGEACL_ != null;
+    public java.util.List<java.lang.Integer>
+        getUnk3000CNNFGFBBBFPList() {
+      return unk3000CNNFGFBBBFP_;
     }
     /**
-     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
-     * @return The unk2700COIELIGEACL.
+     * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+     * @return The count of unk3000CNNFGFBBBFP.
      */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK getUnk2700COIELIGEACL() {
-      return unk2700COIELIGEACL_ == null ? emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.getDefaultInstance() : unk2700COIELIGEACL_;
+    public int getUnk3000CNNFGFBBBFPCount() {
+      return unk3000CNNFGFBBBFP_.size();
     }
     /**
-     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+     * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+     * @param index The index of the element to return.
+     * @return The unk3000CNNFGFBBBFP at the given index.
      */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder getUnk2700COIELIGEACLOrBuilder() {
-      return getUnk2700COIELIGEACL();
+    public int getUnk3000CNNFGFBBBFP(int index) {
+      return unk3000CNNFGFBBBFP_.getInt(index);
     }
+    private int unk3000CNNFGFBBBFPMemoizedSerializedSize = -1;
 
-    public static final int ANCHOR_POINT_LIST_FIELD_NUMBER = 3;
-    private java.util.List<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData> anchorPointList_;
+    public static final int LUNCH_BOX_DATA_FIELD_NUMBER = 1;
+    private emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData lunchBoxData_;
     /**
-     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
+     * <code>.LunchBoxData lunch_box_data = 1;</code>
+     * @return Whether the lunchBoxData field is set.
      */
     @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData> getAnchorPointListList() {
-      return anchorPointList_;
+    public boolean hasLunchBoxData() {
+      return lunchBoxData_ != null;
     }
     /**
-     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
+     * <code>.LunchBoxData lunch_box_data = 1;</code>
+     * @return The lunchBoxData.
      */
     @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointDataOrBuilder> 
-        getAnchorPointListOrBuilderList() {
-      return anchorPointList_;
+    public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData getLunchBoxData() {
+      return lunchBoxData_ == null ? emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.getDefaultInstance() : lunchBoxData_;
     }
     /**
-     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
+     * <code>.LunchBoxData lunch_box_data = 1;</code>
      */
     @java.lang.Override
-    public int getAnchorPointListCount() {
-      return anchorPointList_.size();
+    public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder getLunchBoxDataOrBuilder() {
+      return getLunchBoxData();
     }
+
+    public static final int COOL_DOWN_GROUP_DATA_LIST_FIELD_NUMBER = 13;
+    private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> coolDownGroupDataList_;
     /**
-     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData getAnchorPointList(int index) {
-      return anchorPointList_.get(index);
+    public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getCoolDownGroupDataListList() {
+      return coolDownGroupDataList_;
     }
     /**
-     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointDataOrBuilder getAnchorPointListOrBuilder(
+    public java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
+        getCoolDownGroupDataListOrBuilderList() {
+      return coolDownGroupDataList_;
+    }
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    @java.lang.Override
+    public int getCoolDownGroupDataListCount() {
+      return coolDownGroupDataList_.size();
+    }
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getCoolDownGroupDataList(int index) {
+      return coolDownGroupDataList_.get(index);
+    }
+    /**
+     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getCoolDownGroupDataListOrBuilder(
         int index) {
-      return anchorPointList_.get(index);
+      return coolDownGroupDataList_.get(index);
     }
 
-    public static final int CLIENT_COLLECTOR_DATA_LIST_FIELD_NUMBER = 4;
-    private java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> clientCollectorDataList_;
+    public static final int ANCHOR_POINT_LIST_FIELD_NUMBER = 3;
+    private java.util.List<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData> anchorPointList_;
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
      */
     @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> getClientCollectorDataListList() {
-      return clientCollectorDataList_;
+    public java.util.List<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData> getAnchorPointListList() {
+      return anchorPointList_;
     }
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
      */
     @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
-        getClientCollectorDataListOrBuilderList() {
-      return clientCollectorDataList_;
+    public java.util.List<? extends emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointDataOrBuilder> 
+        getAnchorPointListOrBuilderList() {
+      return anchorPointList_;
     }
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
      */
     @java.lang.Override
-    public int getClientCollectorDataListCount() {
-      return clientCollectorDataList_.size();
+    public int getAnchorPointListCount() {
+      return anchorPointList_.size();
     }
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData getClientCollectorDataList(int index) {
-      return clientCollectorDataList_.get(index);
+    public emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData getAnchorPointList(int index) {
+      return anchorPointList_.get(index);
     }
     /**
-     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     * <code>repeated .AnchorPointData anchor_point_list = 3;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder getClientCollectorDataListOrBuilder(
+    public emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointDataOrBuilder getAnchorPointListOrBuilder(
         int index) {
-      return clientCollectorDataList_.get(index);
+      return anchorPointList_.get(index);
     }
 
-    public static final int NORMAL_COOL_DOWN_DATA_LIST_FIELD_NUMBER = 9;
-    private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> normalCoolDownDataList_;
+    public static final int SLOT_LIST_FIELD_NUMBER = 6;
+    private java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> slotList_;
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
     @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getNormalCoolDownDataListList() {
-      return normalCoolDownDataList_;
+    public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> getSlotListList() {
+      return slotList_;
     }
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
     @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-        getNormalCoolDownDataListOrBuilderList() {
-      return normalCoolDownDataList_;
+    public java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+        getSlotListOrBuilderList() {
+      return slotList_;
     }
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
     @java.lang.Override
-    public int getNormalCoolDownDataListCount() {
-      return normalCoolDownDataList_.size();
+    public int getSlotListCount() {
+      return slotList_.size();
     }
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getNormalCoolDownDataList(int index) {
-      return normalCoolDownDataList_.get(index);
+    public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index) {
+      return slotList_.get(index);
     }
     /**
-     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+     * <code>repeated .WidgetSlotData slot_list = 6;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getNormalCoolDownDataListOrBuilder(
+    public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
         int index) {
-      return normalCoolDownDataList_.get(index);
+      return slotList_.get(index);
     }
 
     public static final int NEXT_ANCHOR_POINT_USABLE_TIME_FIELD_NUMBER = 10;
@@ -548,6 +619,46 @@ public final class AllWidgetDataNotifyOuterClass {
       return nextAnchorPointUsableTime_;
     }
 
+    public static final int CLIENT_COLLECTOR_DATA_LIST_FIELD_NUMBER = 4;
+    private java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> clientCollectorDataList_;
+    /**
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     */
+    @java.lang.Override
+    public java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> getClientCollectorDataListList() {
+      return clientCollectorDataList_;
+    }
+    /**
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     */
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
+        getClientCollectorDataListOrBuilderList() {
+      return clientCollectorDataList_;
+    }
+    /**
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     */
+    @java.lang.Override
+    public int getClientCollectorDataListCount() {
+      return clientCollectorDataList_.size();
+    }
+    /**
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData getClientCollectorDataList(int index) {
+      return clientCollectorDataList_.get(index);
+    }
+    /**
+     * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder getClientCollectorDataListOrBuilder(
+        int index) {
+      return clientCollectorDataList_.get(index);
+    }
+
     public static final int ONEOF_GATHER_POINT_DETECTOR_DATA_LIST_FIELD_NUMBER = 15;
     private java.util.List<emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData> oneofGatherPointDetectorDataList_;
     /**
@@ -588,110 +699,70 @@ public final class AllWidgetDataNotifyOuterClass {
       return oneofGatherPointDetectorDataList_.get(index);
     }
 
-    public static final int LUNCH_BOX_DATA_FIELD_NUMBER = 1;
-    private emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData lunchBoxData_;
-    /**
-     * <code>.LunchBoxData lunch_box_data = 1;</code>
-     * @return Whether the lunchBoxData field is set.
-     */
-    @java.lang.Override
-    public boolean hasLunchBoxData() {
-      return lunchBoxData_ != null;
-    }
-    /**
-     * <code>.LunchBoxData lunch_box_data = 1;</code>
-     * @return The lunchBoxData.
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData getLunchBoxData() {
-      return lunchBoxData_ == null ? emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.getDefaultInstance() : lunchBoxData_;
-    }
-    /**
-     * <code>.LunchBoxData lunch_box_data = 1;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder getLunchBoxDataOrBuilder() {
-      return getLunchBoxData();
-    }
-
-    public static final int COOL_DOWN_GROUP_DATA_LIST_FIELD_NUMBER = 13;
-    private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> coolDownGroupDataList_;
+    public static final int NORMAL_COOL_DOWN_DATA_LIST_FIELD_NUMBER = 9;
+    private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> normalCoolDownDataList_;
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getCoolDownGroupDataListList() {
-      return coolDownGroupDataList_;
+    public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getNormalCoolDownDataListList() {
+      return normalCoolDownDataList_;
     }
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     @java.lang.Override
     public java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-        getCoolDownGroupDataListOrBuilderList() {
-      return coolDownGroupDataList_;
+        getNormalCoolDownDataListOrBuilderList() {
+      return normalCoolDownDataList_;
     }
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     @java.lang.Override
-    public int getCoolDownGroupDataListCount() {
-      return coolDownGroupDataList_.size();
+    public int getNormalCoolDownDataListCount() {
+      return normalCoolDownDataList_.size();
     }
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getCoolDownGroupDataList(int index) {
-      return coolDownGroupDataList_.get(index);
+    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getNormalCoolDownDataList(int index) {
+      return normalCoolDownDataList_.get(index);
     }
     /**
-     * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+     * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getCoolDownGroupDataListOrBuilder(
+    public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getNormalCoolDownDataListOrBuilder(
         int index) {
-      return coolDownGroupDataList_.get(index);
+      return normalCoolDownDataList_.get(index);
     }
 
-    public static final int SLOT_LIST_FIELD_NUMBER = 6;
-    private java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> slotList_;
-    /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
-     */
-    @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> getSlotListList() {
-      return slotList_;
-    }
-    /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
-     */
-    @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
-        getSlotListOrBuilderList() {
-      return slotList_;
-    }
+    public static final int UNK2700_COIELIGEACL_FIELD_NUMBER = 12;
+    private emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK unk2700COIELIGEACL_;
     /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
+     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+     * @return Whether the unk2700COIELIGEACL field is set.
      */
     @java.lang.Override
-    public int getSlotListCount() {
-      return slotList_.size();
+    public boolean hasUnk2700COIELIGEACL() {
+      return unk2700COIELIGEACL_ != null;
     }
     /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
+     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+     * @return The unk2700COIELIGEACL.
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index) {
-      return slotList_.get(index);
+    public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK getUnk2700COIELIGEACL() {
+      return unk2700COIELIGEACL_ == null ? emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.getDefaultInstance() : unk2700COIELIGEACL_;
     }
     /**
-     * <code>repeated .WidgetSlotData slot_list = 6;</code>
+     * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
-        int index) {
-      return slotList_.get(index);
+    public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder getUnk2700COIELIGEACLOrBuilder() {
+      return getUnk2700COIELIGEACL();
     }
 
     private byte memoizedIsInitialized = -1;
@@ -708,6 +779,7 @@ public final class AllWidgetDataNotifyOuterClass {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
+      getSerializedSize();
       if (lunchBoxData_ != null) {
         output.writeMessage(1, getLunchBoxData());
       }
@@ -726,6 +798,13 @@ public final class AllWidgetDataNotifyOuterClass {
       if (nextAnchorPointUsableTime_ != 0) {
         output.writeUInt32(10, nextAnchorPointUsableTime_);
       }
+      if (getUnk3000CNNFGFBBBFPList().size() > 0) {
+        output.writeUInt32NoTag(90);
+        output.writeUInt32NoTag(unk3000CNNFGFBBBFPMemoizedSerializedSize);
+      }
+      for (int i = 0; i < unk3000CNNFGFBBBFP_.size(); i++) {
+        output.writeUInt32NoTag(unk3000CNNFGFBBBFP_.getInt(i));
+      }
       if (unk2700COIELIGEACL_ != null) {
         output.writeMessage(12, getUnk2700COIELIGEACL());
       }
@@ -768,6 +847,20 @@ public final class AllWidgetDataNotifyOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeUInt32Size(10, nextAnchorPointUsableTime_);
       }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < unk3000CNNFGFBBBFP_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeUInt32SizeNoTag(unk3000CNNFGFBBBFP_.getInt(i));
+        }
+        size += dataSize;
+        if (!getUnk3000CNNFGFBBBFPList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        unk3000CNNFGFBBBFPMemoizedSerializedSize = dataSize;
+      }
       if (unk2700COIELIGEACL_ != null) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(12, getUnk2700COIELIGEACL());
@@ -795,21 +888,8 @@ public final class AllWidgetDataNotifyOuterClass {
       }
       emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify other = (emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify) obj;
 
-      if (hasUnk2700COIELIGEACL() != other.hasUnk2700COIELIGEACL()) return false;
-      if (hasUnk2700COIELIGEACL()) {
-        if (!getUnk2700COIELIGEACL()
-            .equals(other.getUnk2700COIELIGEACL())) return false;
-      }
-      if (!getAnchorPointListList()
-          .equals(other.getAnchorPointListList())) return false;
-      if (!getClientCollectorDataListList()
-          .equals(other.getClientCollectorDataListList())) return false;
-      if (!getNormalCoolDownDataListList()
-          .equals(other.getNormalCoolDownDataListList())) return false;
-      if (getNextAnchorPointUsableTime()
-          != other.getNextAnchorPointUsableTime()) return false;
-      if (!getOneofGatherPointDetectorDataListList()
-          .equals(other.getOneofGatherPointDetectorDataListList())) return false;
+      if (!getUnk3000CNNFGFBBBFPList()
+          .equals(other.getUnk3000CNNFGFBBBFPList())) return false;
       if (hasLunchBoxData() != other.hasLunchBoxData()) return false;
       if (hasLunchBoxData()) {
         if (!getLunchBoxData()
@@ -817,8 +897,23 @@ public final class AllWidgetDataNotifyOuterClass {
       }
       if (!getCoolDownGroupDataListList()
           .equals(other.getCoolDownGroupDataListList())) return false;
+      if (!getAnchorPointListList()
+          .equals(other.getAnchorPointListList())) return false;
       if (!getSlotListList()
           .equals(other.getSlotListList())) return false;
+      if (getNextAnchorPointUsableTime()
+          != other.getNextAnchorPointUsableTime()) return false;
+      if (!getClientCollectorDataListList()
+          .equals(other.getClientCollectorDataListList())) return false;
+      if (!getOneofGatherPointDetectorDataListList()
+          .equals(other.getOneofGatherPointDetectorDataListList())) return false;
+      if (!getNormalCoolDownDataListList()
+          .equals(other.getNormalCoolDownDataListList())) return false;
+      if (hasUnk2700COIELIGEACL() != other.hasUnk2700COIELIGEACL()) return false;
+      if (hasUnk2700COIELIGEACL()) {
+        if (!getUnk2700COIELIGEACL()
+            .equals(other.getUnk2700COIELIGEACL())) return false;
+      }
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -830,39 +925,43 @@ public final class AllWidgetDataNotifyOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      if (hasUnk2700COIELIGEACL()) {
-        hash = (37 * hash) + UNK2700_COIELIGEACL_FIELD_NUMBER;
-        hash = (53 * hash) + getUnk2700COIELIGEACL().hashCode();
+      if (getUnk3000CNNFGFBBBFPCount() > 0) {
+        hash = (37 * hash) + UNK3000_CNNFGFBBBFP_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk3000CNNFGFBBBFPList().hashCode();
+      }
+      if (hasLunchBoxData()) {
+        hash = (37 * hash) + LUNCH_BOX_DATA_FIELD_NUMBER;
+        hash = (53 * hash) + getLunchBoxData().hashCode();
+      }
+      if (getCoolDownGroupDataListCount() > 0) {
+        hash = (37 * hash) + COOL_DOWN_GROUP_DATA_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getCoolDownGroupDataListList().hashCode();
       }
       if (getAnchorPointListCount() > 0) {
         hash = (37 * hash) + ANCHOR_POINT_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getAnchorPointListList().hashCode();
       }
+      if (getSlotListCount() > 0) {
+        hash = (37 * hash) + SLOT_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getSlotListList().hashCode();
+      }
+      hash = (37 * hash) + NEXT_ANCHOR_POINT_USABLE_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getNextAnchorPointUsableTime();
       if (getClientCollectorDataListCount() > 0) {
         hash = (37 * hash) + CLIENT_COLLECTOR_DATA_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getClientCollectorDataListList().hashCode();
       }
-      if (getNormalCoolDownDataListCount() > 0) {
-        hash = (37 * hash) + NORMAL_COOL_DOWN_DATA_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getNormalCoolDownDataListList().hashCode();
-      }
-      hash = (37 * hash) + NEXT_ANCHOR_POINT_USABLE_TIME_FIELD_NUMBER;
-      hash = (53 * hash) + getNextAnchorPointUsableTime();
       if (getOneofGatherPointDetectorDataListCount() > 0) {
         hash = (37 * hash) + ONEOF_GATHER_POINT_DETECTOR_DATA_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getOneofGatherPointDetectorDataListList().hashCode();
       }
-      if (hasLunchBoxData()) {
-        hash = (37 * hash) + LUNCH_BOX_DATA_FIELD_NUMBER;
-        hash = (53 * hash) + getLunchBoxData().hashCode();
-      }
-      if (getCoolDownGroupDataListCount() > 0) {
-        hash = (37 * hash) + COOL_DOWN_GROUP_DATA_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getCoolDownGroupDataListList().hashCode();
+      if (getNormalCoolDownDataListCount() > 0) {
+        hash = (37 * hash) + NORMAL_COOL_DOWN_DATA_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getNormalCoolDownDataListList().hashCode();
       }
-      if (getSlotListCount() > 0) {
-        hash = (37 * hash) + SLOT_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getSlotListList().hashCode();
+      if (hasUnk2700COIELIGEACL()) {
+        hash = (37 * hash) + UNK2700_COIELIGEACL_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk2700COIELIGEACL().hashCode();
       }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
@@ -963,7 +1062,8 @@ public final class AllWidgetDataNotifyOuterClass {
      * <pre>
      * CmdId: 4271
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AllWidgetDataNotify}
@@ -998,66 +1098,68 @@ public final class AllWidgetDataNotifyOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
+          getCoolDownGroupDataListFieldBuilder();
           getAnchorPointListFieldBuilder();
+          getSlotListFieldBuilder();
           getClientCollectorDataListFieldBuilder();
-          getNormalCoolDownDataListFieldBuilder();
           getOneofGatherPointDetectorDataListFieldBuilder();
-          getCoolDownGroupDataListFieldBuilder();
-          getSlotListFieldBuilder();
+          getNormalCoolDownDataListFieldBuilder();
         }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          unk2700COIELIGEACL_ = null;
+        unk3000CNNFGFBBBFP_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (lunchBoxDataBuilder_ == null) {
+          lunchBoxData_ = null;
         } else {
-          unk2700COIELIGEACL_ = null;
-          unk2700COIELIGEACLBuilder_ = null;
+          lunchBoxData_ = null;
+          lunchBoxDataBuilder_ = null;
+        }
+        if (coolDownGroupDataListBuilder_ == null) {
+          coolDownGroupDataList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        } else {
+          coolDownGroupDataListBuilder_.clear();
         }
         if (anchorPointListBuilder_ == null) {
           anchorPointList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000004);
         } else {
           anchorPointListBuilder_.clear();
         }
+        if (slotListBuilder_ == null) {
+          slotList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000008);
+        } else {
+          slotListBuilder_.clear();
+        }
+        nextAnchorPointUsableTime_ = 0;
+
         if (clientCollectorDataListBuilder_ == null) {
           clientCollectorDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
+          bitField0_ = (bitField0_ & ~0x00000010);
         } else {
           clientCollectorDataListBuilder_.clear();
         }
-        if (normalCoolDownDataListBuilder_ == null) {
-          normalCoolDownDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          normalCoolDownDataListBuilder_.clear();
-        }
-        nextAnchorPointUsableTime_ = 0;
-
         if (oneofGatherPointDetectorDataListBuilder_ == null) {
           oneofGatherPointDetectorDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
+          bitField0_ = (bitField0_ & ~0x00000020);
         } else {
           oneofGatherPointDetectorDataListBuilder_.clear();
         }
-        if (lunchBoxDataBuilder_ == null) {
-          lunchBoxData_ = null;
-        } else {
-          lunchBoxData_ = null;
-          lunchBoxDataBuilder_ = null;
-        }
-        if (coolDownGroupDataListBuilder_ == null) {
-          coolDownGroupDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000010);
+        if (normalCoolDownDataListBuilder_ == null) {
+          normalCoolDownDataList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000040);
         } else {
-          coolDownGroupDataListBuilder_.clear();
+          normalCoolDownDataListBuilder_.clear();
         }
-        if (slotListBuilder_ == null) {
-          slotList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000020);
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          unk2700COIELIGEACL_ = null;
         } else {
-          slotListBuilder_.clear();
+          unk2700COIELIGEACL_ = null;
+          unk2700COIELIGEACLBuilder_ = null;
         }
         return this;
       }
@@ -1086,70 +1188,75 @@ public final class AllWidgetDataNotifyOuterClass {
       public emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify buildPartial() {
         emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify result = new emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify(this);
         int from_bitField0_ = bitField0_;
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          result.unk2700COIELIGEACL_ = unk2700COIELIGEACL_;
-        } else {
-          result.unk2700COIELIGEACL_ = unk2700COIELIGEACLBuilder_.build();
+        if (((bitField0_ & 0x00000001) != 0)) {
+          unk3000CNNFGFBBBFP_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
         }
-        if (anchorPointListBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) != 0)) {
-            anchorPointList_ = java.util.Collections.unmodifiableList(anchorPointList_);
-            bitField0_ = (bitField0_ & ~0x00000001);
-          }
-          result.anchorPointList_ = anchorPointList_;
+        result.unk3000CNNFGFBBBFP_ = unk3000CNNFGFBBBFP_;
+        if (lunchBoxDataBuilder_ == null) {
+          result.lunchBoxData_ = lunchBoxData_;
         } else {
-          result.anchorPointList_ = anchorPointListBuilder_.build();
+          result.lunchBoxData_ = lunchBoxDataBuilder_.build();
         }
-        if (clientCollectorDataListBuilder_ == null) {
+        if (coolDownGroupDataListBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0)) {
-            clientCollectorDataList_ = java.util.Collections.unmodifiableList(clientCollectorDataList_);
+            coolDownGroupDataList_ = java.util.Collections.unmodifiableList(coolDownGroupDataList_);
             bitField0_ = (bitField0_ & ~0x00000002);
           }
-          result.clientCollectorDataList_ = clientCollectorDataList_;
+          result.coolDownGroupDataList_ = coolDownGroupDataList_;
         } else {
-          result.clientCollectorDataList_ = clientCollectorDataListBuilder_.build();
+          result.coolDownGroupDataList_ = coolDownGroupDataListBuilder_.build();
         }
-        if (normalCoolDownDataListBuilder_ == null) {
+        if (anchorPointListBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0)) {
-            normalCoolDownDataList_ = java.util.Collections.unmodifiableList(normalCoolDownDataList_);
+            anchorPointList_ = java.util.Collections.unmodifiableList(anchorPointList_);
             bitField0_ = (bitField0_ & ~0x00000004);
           }
-          result.normalCoolDownDataList_ = normalCoolDownDataList_;
+          result.anchorPointList_ = anchorPointList_;
         } else {
-          result.normalCoolDownDataList_ = normalCoolDownDataListBuilder_.build();
+          result.anchorPointList_ = anchorPointListBuilder_.build();
         }
-        result.nextAnchorPointUsableTime_ = nextAnchorPointUsableTime_;
-        if (oneofGatherPointDetectorDataListBuilder_ == null) {
+        if (slotListBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0)) {
-            oneofGatherPointDetectorDataList_ = java.util.Collections.unmodifiableList(oneofGatherPointDetectorDataList_);
+            slotList_ = java.util.Collections.unmodifiableList(slotList_);
             bitField0_ = (bitField0_ & ~0x00000008);
           }
-          result.oneofGatherPointDetectorDataList_ = oneofGatherPointDetectorDataList_;
-        } else {
-          result.oneofGatherPointDetectorDataList_ = oneofGatherPointDetectorDataListBuilder_.build();
-        }
-        if (lunchBoxDataBuilder_ == null) {
-          result.lunchBoxData_ = lunchBoxData_;
+          result.slotList_ = slotList_;
         } else {
-          result.lunchBoxData_ = lunchBoxDataBuilder_.build();
+          result.slotList_ = slotListBuilder_.build();
         }
-        if (coolDownGroupDataListBuilder_ == null) {
+        result.nextAnchorPointUsableTime_ = nextAnchorPointUsableTime_;
+        if (clientCollectorDataListBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0)) {
-            coolDownGroupDataList_ = java.util.Collections.unmodifiableList(coolDownGroupDataList_);
+            clientCollectorDataList_ = java.util.Collections.unmodifiableList(clientCollectorDataList_);
             bitField0_ = (bitField0_ & ~0x00000010);
           }
-          result.coolDownGroupDataList_ = coolDownGroupDataList_;
+          result.clientCollectorDataList_ = clientCollectorDataList_;
         } else {
-          result.coolDownGroupDataList_ = coolDownGroupDataListBuilder_.build();
+          result.clientCollectorDataList_ = clientCollectorDataListBuilder_.build();
         }
-        if (slotListBuilder_ == null) {
+        if (oneofGatherPointDetectorDataListBuilder_ == null) {
           if (((bitField0_ & 0x00000020) != 0)) {
-            slotList_ = java.util.Collections.unmodifiableList(slotList_);
+            oneofGatherPointDetectorDataList_ = java.util.Collections.unmodifiableList(oneofGatherPointDetectorDataList_);
             bitField0_ = (bitField0_ & ~0x00000020);
           }
-          result.slotList_ = slotList_;
+          result.oneofGatherPointDetectorDataList_ = oneofGatherPointDetectorDataList_;
         } else {
-          result.slotList_ = slotListBuilder_.build();
+          result.oneofGatherPointDetectorDataList_ = oneofGatherPointDetectorDataListBuilder_.build();
+        }
+        if (normalCoolDownDataListBuilder_ == null) {
+          if (((bitField0_ & 0x00000040) != 0)) {
+            normalCoolDownDataList_ = java.util.Collections.unmodifiableList(normalCoolDownDataList_);
+            bitField0_ = (bitField0_ & ~0x00000040);
+          }
+          result.normalCoolDownDataList_ = normalCoolDownDataList_;
+        } else {
+          result.normalCoolDownDataList_ = normalCoolDownDataListBuilder_.build();
+        }
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          result.unk2700COIELIGEACL_ = unk2700COIELIGEACL_;
+        } else {
+          result.unk2700COIELIGEACL_ = unk2700COIELIGEACLBuilder_.build();
         }
         onBuilt();
         return result;
@@ -1199,14 +1306,50 @@ public final class AllWidgetDataNotifyOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify other) {
         if (other == emu.grasscutter.net.proto.AllWidgetDataNotifyOuterClass.AllWidgetDataNotify.getDefaultInstance()) return this;
-        if (other.hasUnk2700COIELIGEACL()) {
-          mergeUnk2700COIELIGEACL(other.getUnk2700COIELIGEACL());
+        if (!other.unk3000CNNFGFBBBFP_.isEmpty()) {
+          if (unk3000CNNFGFBBBFP_.isEmpty()) {
+            unk3000CNNFGFBBBFP_ = other.unk3000CNNFGFBBBFP_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureUnk3000CNNFGFBBBFPIsMutable();
+            unk3000CNNFGFBBBFP_.addAll(other.unk3000CNNFGFBBBFP_);
+          }
+          onChanged();
+        }
+        if (other.hasLunchBoxData()) {
+          mergeLunchBoxData(other.getLunchBoxData());
+        }
+        if (coolDownGroupDataListBuilder_ == null) {
+          if (!other.coolDownGroupDataList_.isEmpty()) {
+            if (coolDownGroupDataList_.isEmpty()) {
+              coolDownGroupDataList_ = other.coolDownGroupDataList_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+            } else {
+              ensureCoolDownGroupDataListIsMutable();
+              coolDownGroupDataList_.addAll(other.coolDownGroupDataList_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.coolDownGroupDataList_.isEmpty()) {
+            if (coolDownGroupDataListBuilder_.isEmpty()) {
+              coolDownGroupDataListBuilder_.dispose();
+              coolDownGroupDataListBuilder_ = null;
+              coolDownGroupDataList_ = other.coolDownGroupDataList_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              coolDownGroupDataListBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getCoolDownGroupDataListFieldBuilder() : null;
+            } else {
+              coolDownGroupDataListBuilder_.addAllMessages(other.coolDownGroupDataList_);
+            }
+          }
         }
         if (anchorPointListBuilder_ == null) {
           if (!other.anchorPointList_.isEmpty()) {
             if (anchorPointList_.isEmpty()) {
               anchorPointList_ = other.anchorPointList_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000004);
             } else {
               ensureAnchorPointListIsMutable();
               anchorPointList_.addAll(other.anchorPointList_);
@@ -1219,7 +1362,7 @@ public final class AllWidgetDataNotifyOuterClass {
               anchorPointListBuilder_.dispose();
               anchorPointListBuilder_ = null;
               anchorPointList_ = other.anchorPointList_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000004);
               anchorPointListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getAnchorPointListFieldBuilder() : null;
@@ -1228,66 +1371,66 @@ public final class AllWidgetDataNotifyOuterClass {
             }
           }
         }
-        if (clientCollectorDataListBuilder_ == null) {
-          if (!other.clientCollectorDataList_.isEmpty()) {
-            if (clientCollectorDataList_.isEmpty()) {
-              clientCollectorDataList_ = other.clientCollectorDataList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
+        if (slotListBuilder_ == null) {
+          if (!other.slotList_.isEmpty()) {
+            if (slotList_.isEmpty()) {
+              slotList_ = other.slotList_;
+              bitField0_ = (bitField0_ & ~0x00000008);
             } else {
-              ensureClientCollectorDataListIsMutable();
-              clientCollectorDataList_.addAll(other.clientCollectorDataList_);
+              ensureSlotListIsMutable();
+              slotList_.addAll(other.slotList_);
             }
             onChanged();
           }
         } else {
-          if (!other.clientCollectorDataList_.isEmpty()) {
-            if (clientCollectorDataListBuilder_.isEmpty()) {
-              clientCollectorDataListBuilder_.dispose();
-              clientCollectorDataListBuilder_ = null;
-              clientCollectorDataList_ = other.clientCollectorDataList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
-              clientCollectorDataListBuilder_ = 
+          if (!other.slotList_.isEmpty()) {
+            if (slotListBuilder_.isEmpty()) {
+              slotListBuilder_.dispose();
+              slotListBuilder_ = null;
+              slotList_ = other.slotList_;
+              bitField0_ = (bitField0_ & ~0x00000008);
+              slotListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getClientCollectorDataListFieldBuilder() : null;
+                   getSlotListFieldBuilder() : null;
             } else {
-              clientCollectorDataListBuilder_.addAllMessages(other.clientCollectorDataList_);
+              slotListBuilder_.addAllMessages(other.slotList_);
             }
           }
         }
-        if (normalCoolDownDataListBuilder_ == null) {
-          if (!other.normalCoolDownDataList_.isEmpty()) {
-            if (normalCoolDownDataList_.isEmpty()) {
-              normalCoolDownDataList_ = other.normalCoolDownDataList_;
-              bitField0_ = (bitField0_ & ~0x00000004);
+        if (other.getNextAnchorPointUsableTime() != 0) {
+          setNextAnchorPointUsableTime(other.getNextAnchorPointUsableTime());
+        }
+        if (clientCollectorDataListBuilder_ == null) {
+          if (!other.clientCollectorDataList_.isEmpty()) {
+            if (clientCollectorDataList_.isEmpty()) {
+              clientCollectorDataList_ = other.clientCollectorDataList_;
+              bitField0_ = (bitField0_ & ~0x00000010);
             } else {
-              ensureNormalCoolDownDataListIsMutable();
-              normalCoolDownDataList_.addAll(other.normalCoolDownDataList_);
+              ensureClientCollectorDataListIsMutable();
+              clientCollectorDataList_.addAll(other.clientCollectorDataList_);
             }
             onChanged();
           }
         } else {
-          if (!other.normalCoolDownDataList_.isEmpty()) {
-            if (normalCoolDownDataListBuilder_.isEmpty()) {
-              normalCoolDownDataListBuilder_.dispose();
-              normalCoolDownDataListBuilder_ = null;
-              normalCoolDownDataList_ = other.normalCoolDownDataList_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              normalCoolDownDataListBuilder_ = 
+          if (!other.clientCollectorDataList_.isEmpty()) {
+            if (clientCollectorDataListBuilder_.isEmpty()) {
+              clientCollectorDataListBuilder_.dispose();
+              clientCollectorDataListBuilder_ = null;
+              clientCollectorDataList_ = other.clientCollectorDataList_;
+              bitField0_ = (bitField0_ & ~0x00000010);
+              clientCollectorDataListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getNormalCoolDownDataListFieldBuilder() : null;
+                   getClientCollectorDataListFieldBuilder() : null;
             } else {
-              normalCoolDownDataListBuilder_.addAllMessages(other.normalCoolDownDataList_);
+              clientCollectorDataListBuilder_.addAllMessages(other.clientCollectorDataList_);
             }
           }
         }
-        if (other.getNextAnchorPointUsableTime() != 0) {
-          setNextAnchorPointUsableTime(other.getNextAnchorPointUsableTime());
-        }
         if (oneofGatherPointDetectorDataListBuilder_ == null) {
           if (!other.oneofGatherPointDetectorDataList_.isEmpty()) {
             if (oneofGatherPointDetectorDataList_.isEmpty()) {
               oneofGatherPointDetectorDataList_ = other.oneofGatherPointDetectorDataList_;
-              bitField0_ = (bitField0_ & ~0x00000008);
+              bitField0_ = (bitField0_ & ~0x00000020);
             } else {
               ensureOneofGatherPointDetectorDataListIsMutable();
               oneofGatherPointDetectorDataList_.addAll(other.oneofGatherPointDetectorDataList_);
@@ -1300,7 +1443,7 @@ public final class AllWidgetDataNotifyOuterClass {
               oneofGatherPointDetectorDataListBuilder_.dispose();
               oneofGatherPointDetectorDataListBuilder_ = null;
               oneofGatherPointDetectorDataList_ = other.oneofGatherPointDetectorDataList_;
-              bitField0_ = (bitField0_ & ~0x00000008);
+              bitField0_ = (bitField0_ & ~0x00000020);
               oneofGatherPointDetectorDataListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getOneofGatherPointDetectorDataListFieldBuilder() : null;
@@ -1309,60 +1452,34 @@ public final class AllWidgetDataNotifyOuterClass {
             }
           }
         }
-        if (other.hasLunchBoxData()) {
-          mergeLunchBoxData(other.getLunchBoxData());
-        }
-        if (coolDownGroupDataListBuilder_ == null) {
-          if (!other.coolDownGroupDataList_.isEmpty()) {
-            if (coolDownGroupDataList_.isEmpty()) {
-              coolDownGroupDataList_ = other.coolDownGroupDataList_;
-              bitField0_ = (bitField0_ & ~0x00000010);
+        if (normalCoolDownDataListBuilder_ == null) {
+          if (!other.normalCoolDownDataList_.isEmpty()) {
+            if (normalCoolDownDataList_.isEmpty()) {
+              normalCoolDownDataList_ = other.normalCoolDownDataList_;
+              bitField0_ = (bitField0_ & ~0x00000040);
             } else {
-              ensureCoolDownGroupDataListIsMutable();
-              coolDownGroupDataList_.addAll(other.coolDownGroupDataList_);
+              ensureNormalCoolDownDataListIsMutable();
+              normalCoolDownDataList_.addAll(other.normalCoolDownDataList_);
             }
             onChanged();
           }
         } else {
-          if (!other.coolDownGroupDataList_.isEmpty()) {
-            if (coolDownGroupDataListBuilder_.isEmpty()) {
-              coolDownGroupDataListBuilder_.dispose();
-              coolDownGroupDataListBuilder_ = null;
-              coolDownGroupDataList_ = other.coolDownGroupDataList_;
-              bitField0_ = (bitField0_ & ~0x00000010);
-              coolDownGroupDataListBuilder_ = 
+          if (!other.normalCoolDownDataList_.isEmpty()) {
+            if (normalCoolDownDataListBuilder_.isEmpty()) {
+              normalCoolDownDataListBuilder_.dispose();
+              normalCoolDownDataListBuilder_ = null;
+              normalCoolDownDataList_ = other.normalCoolDownDataList_;
+              bitField0_ = (bitField0_ & ~0x00000040);
+              normalCoolDownDataListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getCoolDownGroupDataListFieldBuilder() : null;
+                   getNormalCoolDownDataListFieldBuilder() : null;
             } else {
-              coolDownGroupDataListBuilder_.addAllMessages(other.coolDownGroupDataList_);
+              normalCoolDownDataListBuilder_.addAllMessages(other.normalCoolDownDataList_);
             }
           }
         }
-        if (slotListBuilder_ == null) {
-          if (!other.slotList_.isEmpty()) {
-            if (slotList_.isEmpty()) {
-              slotList_ = other.slotList_;
-              bitField0_ = (bitField0_ & ~0x00000020);
-            } else {
-              ensureSlotListIsMutable();
-              slotList_.addAll(other.slotList_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.slotList_.isEmpty()) {
-            if (slotListBuilder_.isEmpty()) {
-              slotListBuilder_.dispose();
-              slotListBuilder_ = null;
-              slotList_ = other.slotList_;
-              bitField0_ = (bitField0_ & ~0x00000020);
-              slotListBuilder_ = 
-                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getSlotListFieldBuilder() : null;
-            } else {
-              slotListBuilder_.addAllMessages(other.slotList_);
-            }
-          }
+        if (other.hasUnk2700COIELIGEACL()) {
+          mergeUnk2700COIELIGEACL(other.getUnk2700COIELIGEACL());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -1394,131 +1511,450 @@ public final class AllWidgetDataNotifyOuterClass {
       }
       private int bitField0_;
 
-      private emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK unk2700COIELIGEACL_;
+      private com.google.protobuf.Internal.IntList unk3000CNNFGFBBBFP_ = emptyIntList();
+      private void ensureUnk3000CNNFGFBBBFPIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          unk3000CNNFGFBBBFP_ = mutableCopy(unk3000CNNFGFBBBFP_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @return A list containing the unk3000CNNFGFBBBFP.
+       */
+      public java.util.List<java.lang.Integer>
+          getUnk3000CNNFGFBBBFPList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(unk3000CNNFGFBBBFP_) : unk3000CNNFGFBBBFP_;
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @return The count of unk3000CNNFGFBBBFP.
+       */
+      public int getUnk3000CNNFGFBBBFPCount() {
+        return unk3000CNNFGFBBBFP_.size();
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @param index The index of the element to return.
+       * @return The unk3000CNNFGFBBBFP at the given index.
+       */
+      public int getUnk3000CNNFGFBBBFP(int index) {
+        return unk3000CNNFGFBBBFP_.getInt(index);
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @param index The index to set the value at.
+       * @param value The unk3000CNNFGFBBBFP to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000CNNFGFBBBFP(
+          int index, int value) {
+        ensureUnk3000CNNFGFBBBFPIsMutable();
+        unk3000CNNFGFBBBFP_.setInt(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @param value The unk3000CNNFGFBBBFP to add.
+       * @return This builder for chaining.
+       */
+      public Builder addUnk3000CNNFGFBBBFP(int value) {
+        ensureUnk3000CNNFGFBBBFPIsMutable();
+        unk3000CNNFGFBBBFP_.addInt(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @param values The unk3000CNNFGFBBBFP to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllUnk3000CNNFGFBBBFP(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureUnk3000CNNFGFBBBFPIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, unk3000CNNFGFBBBFP_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 Unk3000_CNNFGFBBBFP = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000CNNFGFBBBFP() {
+        unk3000CNNFGFBBBFP_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData lunchBoxData_;
       private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder> unk2700COIELIGEACLBuilder_;
+          emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder> lunchBoxDataBuilder_;
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
-       * @return Whether the unk2700COIELIGEACL field is set.
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
+       * @return Whether the lunchBoxData field is set.
        */
-      public boolean hasUnk2700COIELIGEACL() {
-        return unk2700COIELIGEACLBuilder_ != null || unk2700COIELIGEACL_ != null;
+      public boolean hasLunchBoxData() {
+        return lunchBoxDataBuilder_ != null || lunchBoxData_ != null;
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
-       * @return The unk2700COIELIGEACL.
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
+       * @return The lunchBoxData.
        */
-      public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK getUnk2700COIELIGEACL() {
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          return unk2700COIELIGEACL_ == null ? emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.getDefaultInstance() : unk2700COIELIGEACL_;
+      public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData getLunchBoxData() {
+        if (lunchBoxDataBuilder_ == null) {
+          return lunchBoxData_ == null ? emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.getDefaultInstance() : lunchBoxData_;
         } else {
-          return unk2700COIELIGEACLBuilder_.getMessage();
+          return lunchBoxDataBuilder_.getMessage();
         }
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
-      public Builder setUnk2700COIELIGEACL(emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK value) {
-        if (unk2700COIELIGEACLBuilder_ == null) {
+      public Builder setLunchBoxData(emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData value) {
+        if (lunchBoxDataBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          unk2700COIELIGEACL_ = value;
+          lunchBoxData_ = value;
           onChanged();
         } else {
-          unk2700COIELIGEACLBuilder_.setMessage(value);
+          lunchBoxDataBuilder_.setMessage(value);
         }
 
         return this;
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
-      public Builder setUnk2700COIELIGEACL(
-          emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder builderForValue) {
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          unk2700COIELIGEACL_ = builderForValue.build();
+      public Builder setLunchBoxData(
+          emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder builderForValue) {
+        if (lunchBoxDataBuilder_ == null) {
+          lunchBoxData_ = builderForValue.build();
           onChanged();
         } else {
-          unk2700COIELIGEACLBuilder_.setMessage(builderForValue.build());
+          lunchBoxDataBuilder_.setMessage(builderForValue.build());
         }
 
         return this;
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
-      public Builder mergeUnk2700COIELIGEACL(emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK value) {
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          if (unk2700COIELIGEACL_ != null) {
-            unk2700COIELIGEACL_ =
-              emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.newBuilder(unk2700COIELIGEACL_).mergeFrom(value).buildPartial();
+      public Builder mergeLunchBoxData(emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData value) {
+        if (lunchBoxDataBuilder_ == null) {
+          if (lunchBoxData_ != null) {
+            lunchBoxData_ =
+              emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.newBuilder(lunchBoxData_).mergeFrom(value).buildPartial();
           } else {
-            unk2700COIELIGEACL_ = value;
+            lunchBoxData_ = value;
           }
           onChanged();
         } else {
-          unk2700COIELIGEACLBuilder_.mergeFrom(value);
+          lunchBoxDataBuilder_.mergeFrom(value);
         }
 
         return this;
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
-      public Builder clearUnk2700COIELIGEACL() {
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          unk2700COIELIGEACL_ = null;
+      public Builder clearLunchBoxData() {
+        if (lunchBoxDataBuilder_ == null) {
+          lunchBoxData_ = null;
           onChanged();
         } else {
-          unk2700COIELIGEACL_ = null;
-          unk2700COIELIGEACLBuilder_ = null;
+          lunchBoxData_ = null;
+          lunchBoxDataBuilder_ = null;
         }
 
         return this;
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
-      public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder getUnk2700COIELIGEACLBuilder() {
+      public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder getLunchBoxDataBuilder() {
         
         onChanged();
-        return getUnk2700COIELIGEACLFieldBuilder().getBuilder();
+        return getLunchBoxDataFieldBuilder().getBuilder();
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
-      public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder getUnk2700COIELIGEACLOrBuilder() {
-        if (unk2700COIELIGEACLBuilder_ != null) {
-          return unk2700COIELIGEACLBuilder_.getMessageOrBuilder();
+      public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder getLunchBoxDataOrBuilder() {
+        if (lunchBoxDataBuilder_ != null) {
+          return lunchBoxDataBuilder_.getMessageOrBuilder();
         } else {
-          return unk2700COIELIGEACL_ == null ?
-              emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.getDefaultInstance() : unk2700COIELIGEACL_;
+          return lunchBoxData_ == null ?
+              emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.getDefaultInstance() : lunchBoxData_;
         }
       }
       /**
-       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * <code>.LunchBoxData lunch_box_data = 1;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder> 
-          getUnk2700COIELIGEACLFieldBuilder() {
-        if (unk2700COIELIGEACLBuilder_ == null) {
-          unk2700COIELIGEACLBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder>(
-                  getUnk2700COIELIGEACL(),
+          emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder> 
+          getLunchBoxDataFieldBuilder() {
+        if (lunchBoxDataBuilder_ == null) {
+          lunchBoxDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder>(
+                  getLunchBoxData(),
                   getParentForChildren(),
                   isClean());
-          unk2700COIELIGEACL_ = null;
+          lunchBoxData_ = null;
         }
-        return unk2700COIELIGEACLBuilder_;
+        return lunchBoxDataBuilder_;
+      }
+
+      private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> coolDownGroupDataList_ =
+        java.util.Collections.emptyList();
+      private void ensureCoolDownGroupDataListIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          coolDownGroupDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData>(coolDownGroupDataList_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> coolDownGroupDataListBuilder_;
+
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getCoolDownGroupDataListList() {
+        if (coolDownGroupDataListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(coolDownGroupDataList_);
+        } else {
+          return coolDownGroupDataListBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public int getCoolDownGroupDataListCount() {
+        if (coolDownGroupDataListBuilder_ == null) {
+          return coolDownGroupDataList_.size();
+        } else {
+          return coolDownGroupDataListBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getCoolDownGroupDataList(int index) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          return coolDownGroupDataList_.get(index);
+        } else {
+          return coolDownGroupDataListBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder setCoolDownGroupDataList(
+          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.set(index, value);
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder setCoolDownGroupDataList(
+          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder addCoolDownGroupDataList(emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.add(value);
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder addCoolDownGroupDataList(
+          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.add(index, value);
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder addCoolDownGroupDataList(
+          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder addCoolDownGroupDataList(
+          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder addAllCoolDownGroupDataList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> values) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          ensureCoolDownGroupDataListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, coolDownGroupDataList_);
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder clearCoolDownGroupDataList() {
+        if (coolDownGroupDataListBuilder_ == null) {
+          coolDownGroupDataList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public Builder removeCoolDownGroupDataList(int index) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          ensureCoolDownGroupDataListIsMutable();
+          coolDownGroupDataList_.remove(index);
+          onChanged();
+        } else {
+          coolDownGroupDataListBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder getCoolDownGroupDataListBuilder(
+          int index) {
+        return getCoolDownGroupDataListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getCoolDownGroupDataListOrBuilder(
+          int index) {
+        if (coolDownGroupDataListBuilder_ == null) {
+          return coolDownGroupDataList_.get(index);  } else {
+          return coolDownGroupDataListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
+           getCoolDownGroupDataListOrBuilderList() {
+        if (coolDownGroupDataListBuilder_ != null) {
+          return coolDownGroupDataListBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(coolDownGroupDataList_);
+        }
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addCoolDownGroupDataListBuilder() {
+        return getCoolDownGroupDataListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addCoolDownGroupDataListBuilder(
+          int index) {
+        return getCoolDownGroupDataListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder> 
+           getCoolDownGroupDataListBuilderList() {
+        return getCoolDownGroupDataListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
+          getCoolDownGroupDataListFieldBuilder() {
+        if (coolDownGroupDataListBuilder_ == null) {
+          coolDownGroupDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder>(
+                  coolDownGroupDataList_,
+                  ((bitField0_ & 0x00000002) != 0),
+                  getParentForChildren(),
+                  isClean());
+          coolDownGroupDataList_ = null;
+        }
+        return coolDownGroupDataListBuilder_;
       }
 
       private java.util.List<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData> anchorPointList_ =
         java.util.Collections.emptyList();
       private void ensureAnchorPointListIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
+        if (!((bitField0_ & 0x00000004) != 0)) {
           anchorPointList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData>(anchorPointList_);
-          bitField0_ |= 0x00000001;
+          bitField0_ |= 0x00000004;
          }
       }
 
@@ -1668,7 +2104,7 @@ public final class AllWidgetDataNotifyOuterClass {
       public Builder clearAnchorPointList() {
         if (anchorPointListBuilder_ == null) {
           anchorPointList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000004);
           onChanged();
         } else {
           anchorPointListBuilder_.clear();
@@ -1745,7 +2181,7 @@ public final class AllWidgetDataNotifyOuterClass {
           anchorPointListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
               emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData, emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointData.Builder, emu.grasscutter.net.proto.AnchorPointDataOuterClass.AnchorPointDataOrBuilder>(
                   anchorPointList_,
-                  ((bitField0_ & 0x00000001) != 0),
+                  ((bitField0_ & 0x00000004) != 0),
                   getParentForChildren(),
                   isClean());
           anchorPointList_ = null;
@@ -1753,523 +2189,523 @@ public final class AllWidgetDataNotifyOuterClass {
         return anchorPointListBuilder_;
       }
 
-      private java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> clientCollectorDataList_ =
+      private java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> slotList_ =
         java.util.Collections.emptyList();
-      private void ensureClientCollectorDataListIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
-          clientCollectorDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData>(clientCollectorDataList_);
-          bitField0_ |= 0x00000002;
+      private void ensureSlotListIsMutable() {
+        if (!((bitField0_ & 0x00000008) != 0)) {
+          slotList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData>(slotList_);
+          bitField0_ |= 0x00000008;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> clientCollectorDataListBuilder_;
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> slotListBuilder_;
 
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> getClientCollectorDataListList() {
-        if (clientCollectorDataListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(clientCollectorDataList_);
+      public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> getSlotListList() {
+        if (slotListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(slotList_);
         } else {
-          return clientCollectorDataListBuilder_.getMessageList();
+          return slotListBuilder_.getMessageList();
         }
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public int getClientCollectorDataListCount() {
-        if (clientCollectorDataListBuilder_ == null) {
-          return clientCollectorDataList_.size();
+      public int getSlotListCount() {
+        if (slotListBuilder_ == null) {
+          return slotList_.size();
         } else {
-          return clientCollectorDataListBuilder_.getCount();
+          return slotListBuilder_.getCount();
         }
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData getClientCollectorDataList(int index) {
-        if (clientCollectorDataListBuilder_ == null) {
-          return clientCollectorDataList_.get(index);
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index) {
+        if (slotListBuilder_ == null) {
+          return slotList_.get(index);
         } else {
-          return clientCollectorDataListBuilder_.getMessage(index);
+          return slotListBuilder_.getMessage(index);
         }
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder setClientCollectorDataList(
-          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData value) {
-        if (clientCollectorDataListBuilder_ == null) {
+      public Builder setSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
+        if (slotListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.set(index, value);
+          ensureSlotListIsMutable();
+          slotList_.set(index, value);
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.setMessage(index, value);
+          slotListBuilder_.setMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder setClientCollectorDataList(
-          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder builderForValue) {
-        if (clientCollectorDataListBuilder_ == null) {
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.set(index, builderForValue.build());
+      public Builder setSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.set(index, builderForValue.build());
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.setMessage(index, builderForValue.build());
+          slotListBuilder_.setMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder addClientCollectorDataList(emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData value) {
-        if (clientCollectorDataListBuilder_ == null) {
+      public Builder addSlotList(emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
+        if (slotListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.add(value);
+          ensureSlotListIsMutable();
+          slotList_.add(value);
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.addMessage(value);
+          slotListBuilder_.addMessage(value);
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder addClientCollectorDataList(
-          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData value) {
-        if (clientCollectorDataListBuilder_ == null) {
+      public Builder addSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
+        if (slotListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.add(index, value);
+          ensureSlotListIsMutable();
+          slotList_.add(index, value);
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.addMessage(index, value);
+          slotListBuilder_.addMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder addClientCollectorDataList(
-          emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder builderForValue) {
-        if (clientCollectorDataListBuilder_ == null) {
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.add(builderForValue.build());
+      public Builder addSlotList(
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.add(builderForValue.build());
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.addMessage(builderForValue.build());
+          slotListBuilder_.addMessage(builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder addClientCollectorDataList(
-          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder builderForValue) {
-        if (clientCollectorDataListBuilder_ == null) {
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.add(index, builderForValue.build());
+      public Builder addSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.add(index, builderForValue.build());
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.addMessage(index, builderForValue.build());
+          slotListBuilder_.addMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder addAllClientCollectorDataList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> values) {
-        if (clientCollectorDataListBuilder_ == null) {
-          ensureClientCollectorDataListIsMutable();
+      public Builder addAllSlotList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> values) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, clientCollectorDataList_);
+              values, slotList_);
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.addAllMessages(values);
+          slotListBuilder_.addAllMessages(values);
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder clearClientCollectorDataList() {
-        if (clientCollectorDataListBuilder_ == null) {
-          clientCollectorDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
+      public Builder clearSlotList() {
+        if (slotListBuilder_ == null) {
+          slotList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000008);
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.clear();
+          slotListBuilder_.clear();
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public Builder removeClientCollectorDataList(int index) {
-        if (clientCollectorDataListBuilder_ == null) {
-          ensureClientCollectorDataListIsMutable();
-          clientCollectorDataList_.remove(index);
+      public Builder removeSlotList(int index) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.remove(index);
           onChanged();
         } else {
-          clientCollectorDataListBuilder_.remove(index);
+          slotListBuilder_.remove(index);
         }
         return this;
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder getClientCollectorDataListBuilder(
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder getSlotListBuilder(
           int index) {
-        return getClientCollectorDataListFieldBuilder().getBuilder(index);
+        return getSlotListFieldBuilder().getBuilder(index);
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder getClientCollectorDataListOrBuilder(
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
           int index) {
-        if (clientCollectorDataListBuilder_ == null) {
-          return clientCollectorDataList_.get(index);  } else {
-          return clientCollectorDataListBuilder_.getMessageOrBuilder(index);
+        if (slotListBuilder_ == null) {
+          return slotList_.get(index);  } else {
+          return slotListBuilder_.getMessageOrBuilder(index);
         }
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
-           getClientCollectorDataListOrBuilderList() {
-        if (clientCollectorDataListBuilder_ != null) {
-          return clientCollectorDataListBuilder_.getMessageOrBuilderList();
+      public java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+           getSlotListOrBuilderList() {
+        if (slotListBuilder_ != null) {
+          return slotListBuilder_.getMessageOrBuilderList();
         } else {
-          return java.util.Collections.unmodifiableList(clientCollectorDataList_);
+          return java.util.Collections.unmodifiableList(slotList_);
         }
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder addClientCollectorDataListBuilder() {
-        return getClientCollectorDataListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.getDefaultInstance());
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder addSlotListBuilder() {
+        return getSlotListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.getDefaultInstance());
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder addClientCollectorDataListBuilder(
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder addSlotListBuilder(
           int index) {
-        return getClientCollectorDataListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.getDefaultInstance());
+        return getSlotListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.getDefaultInstance());
       }
       /**
-       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       * <code>repeated .WidgetSlotData slot_list = 6;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder> 
-           getClientCollectorDataListBuilderList() {
-        return getClientCollectorDataListFieldBuilder().getBuilderList();
+      public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder> 
+           getSlotListBuilderList() {
+        return getSlotListFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
-          getClientCollectorDataListFieldBuilder() {
-        if (clientCollectorDataListBuilder_ == null) {
-          clientCollectorDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder>(
-                  clientCollectorDataList_,
-                  ((bitField0_ & 0x00000002) != 0),
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+          getSlotListFieldBuilder() {
+        if (slotListBuilder_ == null) {
+          slotListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder>(
+                  slotList_,
+                  ((bitField0_ & 0x00000008) != 0),
                   getParentForChildren(),
                   isClean());
-          clientCollectorDataList_ = null;
+          slotList_ = null;
         }
-        return clientCollectorDataListBuilder_;
+        return slotListBuilder_;
       }
 
-      private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> normalCoolDownDataList_ =
-        java.util.Collections.emptyList();
-      private void ensureNormalCoolDownDataListIsMutable() {
-        if (!((bitField0_ & 0x00000004) != 0)) {
-          normalCoolDownDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData>(normalCoolDownDataList_);
-          bitField0_ |= 0x00000004;
-         }
+      private int nextAnchorPointUsableTime_ ;
+      /**
+       * <code>uint32 next_anchor_point_usable_time = 10;</code>
+       * @return The nextAnchorPointUsableTime.
+       */
+      @java.lang.Override
+      public int getNextAnchorPointUsableTime() {
+        return nextAnchorPointUsableTime_;
       }
-
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> normalCoolDownDataListBuilder_;
-
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>uint32 next_anchor_point_usable_time = 10;</code>
+       * @param value The nextAnchorPointUsableTime to set.
+       * @return This builder for chaining.
        */
-      public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getNormalCoolDownDataListList() {
-        if (normalCoolDownDataListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(normalCoolDownDataList_);
+      public Builder setNextAnchorPointUsableTime(int value) {
+        
+        nextAnchorPointUsableTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 next_anchor_point_usable_time = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNextAnchorPointUsableTime() {
+        
+        nextAnchorPointUsableTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> clientCollectorDataList_ =
+        java.util.Collections.emptyList();
+      private void ensureClientCollectorDataListIsMutable() {
+        if (!((bitField0_ & 0x00000010) != 0)) {
+          clientCollectorDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData>(clientCollectorDataList_);
+          bitField0_ |= 0x00000010;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> clientCollectorDataListBuilder_;
+
+      /**
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> getClientCollectorDataListList() {
+        if (clientCollectorDataListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(clientCollectorDataList_);
         } else {
-          return normalCoolDownDataListBuilder_.getMessageList();
+          return clientCollectorDataListBuilder_.getMessageList();
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public int getNormalCoolDownDataListCount() {
-        if (normalCoolDownDataListBuilder_ == null) {
-          return normalCoolDownDataList_.size();
+      public int getClientCollectorDataListCount() {
+        if (clientCollectorDataListBuilder_ == null) {
+          return clientCollectorDataList_.size();
         } else {
-          return normalCoolDownDataListBuilder_.getCount();
+          return clientCollectorDataListBuilder_.getCount();
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getNormalCoolDownDataList(int index) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          return normalCoolDownDataList_.get(index);
+      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData getClientCollectorDataList(int index) {
+        if (clientCollectorDataListBuilder_ == null) {
+          return clientCollectorDataList_.get(index);
         } else {
-          return normalCoolDownDataListBuilder_.getMessage(index);
+          return clientCollectorDataListBuilder_.getMessage(index);
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder setNormalCoolDownDataList(
-          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
-        if (normalCoolDownDataListBuilder_ == null) {
+      public Builder setClientCollectorDataList(
+          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData value) {
+        if (clientCollectorDataListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.set(index, value);
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.set(index, value);
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.setMessage(index, value);
+          clientCollectorDataListBuilder_.setMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder setNormalCoolDownDataList(
-          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.set(index, builderForValue.build());
+      public Builder setClientCollectorDataList(
+          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder builderForValue) {
+        if (clientCollectorDataListBuilder_ == null) {
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.set(index, builderForValue.build());
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.setMessage(index, builderForValue.build());
+          clientCollectorDataListBuilder_.setMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder addNormalCoolDownDataList(emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
-        if (normalCoolDownDataListBuilder_ == null) {
+      public Builder addClientCollectorDataList(emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData value) {
+        if (clientCollectorDataListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.add(value);
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.add(value);
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.addMessage(value);
+          clientCollectorDataListBuilder_.addMessage(value);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder addNormalCoolDownDataList(
-          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
-        if (normalCoolDownDataListBuilder_ == null) {
+      public Builder addClientCollectorDataList(
+          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData value) {
+        if (clientCollectorDataListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.add(index, value);
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.add(index, value);
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.addMessage(index, value);
+          clientCollectorDataListBuilder_.addMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder addNormalCoolDownDataList(
-          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.add(builderForValue.build());
+      public Builder addClientCollectorDataList(
+          emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder builderForValue) {
+        if (clientCollectorDataListBuilder_ == null) {
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.add(builderForValue.build());
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.addMessage(builderForValue.build());
+          clientCollectorDataListBuilder_.addMessage(builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder addNormalCoolDownDataList(
-          int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.add(index, builderForValue.build());
+      public Builder addClientCollectorDataList(
+          int index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder builderForValue) {
+        if (clientCollectorDataListBuilder_ == null) {
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.add(index, builderForValue.build());
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.addMessage(index, builderForValue.build());
+          clientCollectorDataListBuilder_.addMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder addAllNormalCoolDownDataList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> values) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          ensureNormalCoolDownDataListIsMutable();
+      public Builder addAllClientCollectorDataList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData> values) {
+        if (clientCollectorDataListBuilder_ == null) {
+          ensureClientCollectorDataListIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, normalCoolDownDataList_);
+              values, clientCollectorDataList_);
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.addAllMessages(values);
+          clientCollectorDataListBuilder_.addAllMessages(values);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder clearNormalCoolDownDataList() {
-        if (normalCoolDownDataListBuilder_ == null) {
-          normalCoolDownDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
+      public Builder clearClientCollectorDataList() {
+        if (clientCollectorDataListBuilder_ == null) {
+          clientCollectorDataList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000010);
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.clear();
+          clientCollectorDataListBuilder_.clear();
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public Builder removeNormalCoolDownDataList(int index) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          ensureNormalCoolDownDataListIsMutable();
-          normalCoolDownDataList_.remove(index);
+      public Builder removeClientCollectorDataList(int index) {
+        if (clientCollectorDataListBuilder_ == null) {
+          ensureClientCollectorDataListIsMutable();
+          clientCollectorDataList_.remove(index);
           onChanged();
         } else {
-          normalCoolDownDataListBuilder_.remove(index);
+          clientCollectorDataListBuilder_.remove(index);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder getNormalCoolDownDataListBuilder(
+      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder getClientCollectorDataListBuilder(
           int index) {
-        return getNormalCoolDownDataListFieldBuilder().getBuilder(index);
+        return getClientCollectorDataListFieldBuilder().getBuilder(index);
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getNormalCoolDownDataListOrBuilder(
+      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder getClientCollectorDataListOrBuilder(
           int index) {
-        if (normalCoolDownDataListBuilder_ == null) {
-          return normalCoolDownDataList_.get(index);  } else {
-          return normalCoolDownDataListBuilder_.getMessageOrBuilder(index);
+        if (clientCollectorDataListBuilder_ == null) {
+          return clientCollectorDataList_.get(index);  } else {
+          return clientCollectorDataListBuilder_.getMessageOrBuilder(index);
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-           getNormalCoolDownDataListOrBuilderList() {
-        if (normalCoolDownDataListBuilder_ != null) {
-          return normalCoolDownDataListBuilder_.getMessageOrBuilderList();
+      public java.util.List<? extends emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
+           getClientCollectorDataListOrBuilderList() {
+        if (clientCollectorDataListBuilder_ != null) {
+          return clientCollectorDataListBuilder_.getMessageOrBuilderList();
         } else {
-          return java.util.Collections.unmodifiableList(normalCoolDownDataList_);
+          return java.util.Collections.unmodifiableList(clientCollectorDataList_);
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addNormalCoolDownDataListBuilder() {
-        return getNormalCoolDownDataListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.getDefaultInstance());
+      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder addClientCollectorDataListBuilder() {
+        return getClientCollectorDataListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.getDefaultInstance());
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addNormalCoolDownDataListBuilder(
+      public emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder addClientCollectorDataListBuilder(
           int index) {
-        return getNormalCoolDownDataListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.getDefaultInstance());
+        return getClientCollectorDataListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.getDefaultInstance());
       }
       /**
-       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
+       * <code>repeated .ClientCollectorData client_collector_data_list = 4;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder> 
-           getNormalCoolDownDataListBuilderList() {
-        return getNormalCoolDownDataListFieldBuilder().getBuilderList();
+      public java.util.List<emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder> 
+           getClientCollectorDataListBuilderList() {
+        return getClientCollectorDataListFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-          getNormalCoolDownDataListFieldBuilder() {
-        if (normalCoolDownDataListBuilder_ == null) {
-          normalCoolDownDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder>(
-                  normalCoolDownDataList_,
-                  ((bitField0_ & 0x00000004) != 0),
+          emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder> 
+          getClientCollectorDataListFieldBuilder() {
+        if (clientCollectorDataListBuilder_ == null) {
+          clientCollectorDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorData.Builder, emu.grasscutter.net.proto.ClientCollectorDataOuterClass.ClientCollectorDataOrBuilder>(
+                  clientCollectorDataList_,
+                  ((bitField0_ & 0x00000010) != 0),
                   getParentForChildren(),
                   isClean());
-          normalCoolDownDataList_ = null;
+          clientCollectorDataList_ = null;
         }
-        return normalCoolDownDataListBuilder_;
-      }
-
-      private int nextAnchorPointUsableTime_ ;
-      /**
-       * <code>uint32 next_anchor_point_usable_time = 10;</code>
-       * @return The nextAnchorPointUsableTime.
-       */
-      @java.lang.Override
-      public int getNextAnchorPointUsableTime() {
-        return nextAnchorPointUsableTime_;
-      }
-      /**
-       * <code>uint32 next_anchor_point_usable_time = 10;</code>
-       * @param value The nextAnchorPointUsableTime to set.
-       * @return This builder for chaining.
-       */
-      public Builder setNextAnchorPointUsableTime(int value) {
-        
-        nextAnchorPointUsableTime_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 next_anchor_point_usable_time = 10;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearNextAnchorPointUsableTime() {
-        
-        nextAnchorPointUsableTime_ = 0;
-        onChanged();
-        return this;
+        return clientCollectorDataListBuilder_;
       }
 
       private java.util.List<emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData> oneofGatherPointDetectorDataList_ =
         java.util.Collections.emptyList();
       private void ensureOneofGatherPointDetectorDataListIsMutable() {
-        if (!((bitField0_ & 0x00000008) != 0)) {
+        if (!((bitField0_ & 0x00000020) != 0)) {
           oneofGatherPointDetectorDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData>(oneofGatherPointDetectorDataList_);
-          bitField0_ |= 0x00000008;
+          bitField0_ |= 0x00000020;
          }
       }
 
@@ -2419,7 +2855,7 @@ public final class AllWidgetDataNotifyOuterClass {
       public Builder clearOneofGatherPointDetectorDataList() {
         if (oneofGatherPointDetectorDataListBuilder_ == null) {
           oneofGatherPointDetectorDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
+          bitField0_ = (bitField0_ & ~0x00000020);
           onChanged();
         } else {
           oneofGatherPointDetectorDataListBuilder_.clear();
@@ -2496,7 +2932,7 @@ public final class AllWidgetDataNotifyOuterClass {
           oneofGatherPointDetectorDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
               emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData, emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorData.Builder, emu.grasscutter.net.proto.OneofGatherPointDetectorDataOuterClass.OneofGatherPointDetectorDataOrBuilder>(
                   oneofGatherPointDetectorDataList_,
-                  ((bitField0_ & 0x00000008) != 0),
+                  ((bitField0_ & 0x00000020) != 0),
                   getParentForChildren(),
                   isClean());
           oneofGatherPointDetectorDataList_ = null;
@@ -2504,603 +2940,363 @@ public final class AllWidgetDataNotifyOuterClass {
         return oneofGatherPointDetectorDataListBuilder_;
       }
 
-      private emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData lunchBoxData_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder> lunchBoxDataBuilder_;
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       * @return Whether the lunchBoxData field is set.
-       */
-      public boolean hasLunchBoxData() {
-        return lunchBoxDataBuilder_ != null || lunchBoxData_ != null;
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       * @return The lunchBoxData.
-       */
-      public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData getLunchBoxData() {
-        if (lunchBoxDataBuilder_ == null) {
-          return lunchBoxData_ == null ? emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.getDefaultInstance() : lunchBoxData_;
-        } else {
-          return lunchBoxDataBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      public Builder setLunchBoxData(emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData value) {
-        if (lunchBoxDataBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          lunchBoxData_ = value;
-          onChanged();
-        } else {
-          lunchBoxDataBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      public Builder setLunchBoxData(
-          emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder builderForValue) {
-        if (lunchBoxDataBuilder_ == null) {
-          lunchBoxData_ = builderForValue.build();
-          onChanged();
-        } else {
-          lunchBoxDataBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      public Builder mergeLunchBoxData(emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData value) {
-        if (lunchBoxDataBuilder_ == null) {
-          if (lunchBoxData_ != null) {
-            lunchBoxData_ =
-              emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.newBuilder(lunchBoxData_).mergeFrom(value).buildPartial();
-          } else {
-            lunchBoxData_ = value;
-          }
-          onChanged();
-        } else {
-          lunchBoxDataBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      public Builder clearLunchBoxData() {
-        if (lunchBoxDataBuilder_ == null) {
-          lunchBoxData_ = null;
-          onChanged();
-        } else {
-          lunchBoxData_ = null;
-          lunchBoxDataBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder getLunchBoxDataBuilder() {
-        
-        onChanged();
-        return getLunchBoxDataFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      public emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder getLunchBoxDataOrBuilder() {
-        if (lunchBoxDataBuilder_ != null) {
-          return lunchBoxDataBuilder_.getMessageOrBuilder();
-        } else {
-          return lunchBoxData_ == null ?
-              emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.getDefaultInstance() : lunchBoxData_;
-        }
-      }
-      /**
-       * <code>.LunchBoxData lunch_box_data = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder> 
-          getLunchBoxDataFieldBuilder() {
-        if (lunchBoxDataBuilder_ == null) {
-          lunchBoxDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxData.Builder, emu.grasscutter.net.proto.LunchBoxDataOuterClass.LunchBoxDataOrBuilder>(
-                  getLunchBoxData(),
-                  getParentForChildren(),
-                  isClean());
-          lunchBoxData_ = null;
-        }
-        return lunchBoxDataBuilder_;
-      }
-
-      private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> coolDownGroupDataList_ =
+      private java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> normalCoolDownDataList_ =
         java.util.Collections.emptyList();
-      private void ensureCoolDownGroupDataListIsMutable() {
-        if (!((bitField0_ & 0x00000010) != 0)) {
-          coolDownGroupDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData>(coolDownGroupDataList_);
-          bitField0_ |= 0x00000010;
+      private void ensureNormalCoolDownDataListIsMutable() {
+        if (!((bitField0_ & 0x00000040) != 0)) {
+          normalCoolDownDataList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData>(normalCoolDownDataList_);
+          bitField0_ |= 0x00000040;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> coolDownGroupDataListBuilder_;
+          emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> normalCoolDownDataListBuilder_;
 
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getCoolDownGroupDataListList() {
-        if (coolDownGroupDataListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(coolDownGroupDataList_);
+      public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> getNormalCoolDownDataListList() {
+        if (normalCoolDownDataListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(normalCoolDownDataList_);
         } else {
-          return coolDownGroupDataListBuilder_.getMessageList();
+          return normalCoolDownDataListBuilder_.getMessageList();
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public int getCoolDownGroupDataListCount() {
-        if (coolDownGroupDataListBuilder_ == null) {
-          return coolDownGroupDataList_.size();
+      public int getNormalCoolDownDataListCount() {
+        if (normalCoolDownDataListBuilder_ == null) {
+          return normalCoolDownDataList_.size();
         } else {
-          return coolDownGroupDataListBuilder_.getCount();
+          return normalCoolDownDataListBuilder_.getCount();
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getCoolDownGroupDataList(int index) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          return coolDownGroupDataList_.get(index);
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData getNormalCoolDownDataList(int index) {
+        if (normalCoolDownDataListBuilder_ == null) {
+          return normalCoolDownDataList_.get(index);
         } else {
-          return coolDownGroupDataListBuilder_.getMessage(index);
+          return normalCoolDownDataListBuilder_.getMessage(index);
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder setCoolDownGroupDataList(
+      public Builder setNormalCoolDownDataList(
           int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
-        if (coolDownGroupDataListBuilder_ == null) {
+        if (normalCoolDownDataListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.set(index, value);
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.set(index, value);
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.setMessage(index, value);
+          normalCoolDownDataListBuilder_.setMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder setCoolDownGroupDataList(
+      public Builder setNormalCoolDownDataList(
           int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.set(index, builderForValue.build());
+        if (normalCoolDownDataListBuilder_ == null) {
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.set(index, builderForValue.build());
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.setMessage(index, builderForValue.build());
+          normalCoolDownDataListBuilder_.setMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder addCoolDownGroupDataList(emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
-        if (coolDownGroupDataListBuilder_ == null) {
+      public Builder addNormalCoolDownDataList(emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
+        if (normalCoolDownDataListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.add(value);
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.add(value);
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.addMessage(value);
+          normalCoolDownDataListBuilder_.addMessage(value);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder addCoolDownGroupDataList(
+      public Builder addNormalCoolDownDataList(
           int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData value) {
-        if (coolDownGroupDataListBuilder_ == null) {
+        if (normalCoolDownDataListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.add(index, value);
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.add(index, value);
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.addMessage(index, value);
+          normalCoolDownDataListBuilder_.addMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder addCoolDownGroupDataList(
+      public Builder addNormalCoolDownDataList(
           emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.add(builderForValue.build());
+        if (normalCoolDownDataListBuilder_ == null) {
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.add(builderForValue.build());
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.addMessage(builderForValue.build());
+          normalCoolDownDataListBuilder_.addMessage(builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder addCoolDownGroupDataList(
+      public Builder addNormalCoolDownDataList(
           int index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder builderForValue) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.add(index, builderForValue.build());
+        if (normalCoolDownDataListBuilder_ == null) {
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.add(index, builderForValue.build());
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.addMessage(index, builderForValue.build());
+          normalCoolDownDataListBuilder_.addMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder addAllCoolDownGroupDataList(
+      public Builder addAllNormalCoolDownDataList(
           java.lang.Iterable<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData> values) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          ensureCoolDownGroupDataListIsMutable();
+        if (normalCoolDownDataListBuilder_ == null) {
+          ensureNormalCoolDownDataListIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, coolDownGroupDataList_);
+              values, normalCoolDownDataList_);
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.addAllMessages(values);
+          normalCoolDownDataListBuilder_.addAllMessages(values);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder clearCoolDownGroupDataList() {
-        if (coolDownGroupDataListBuilder_ == null) {
-          coolDownGroupDataList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000010);
+      public Builder clearNormalCoolDownDataList() {
+        if (normalCoolDownDataListBuilder_ == null) {
+          normalCoolDownDataList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000040);
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.clear();
+          normalCoolDownDataListBuilder_.clear();
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public Builder removeCoolDownGroupDataList(int index) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          ensureCoolDownGroupDataListIsMutable();
-          coolDownGroupDataList_.remove(index);
+      public Builder removeNormalCoolDownDataList(int index) {
+        if (normalCoolDownDataListBuilder_ == null) {
+          ensureNormalCoolDownDataListIsMutable();
+          normalCoolDownDataList_.remove(index);
           onChanged();
         } else {
-          coolDownGroupDataListBuilder_.remove(index);
+          normalCoolDownDataListBuilder_.remove(index);
         }
         return this;
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder getCoolDownGroupDataListBuilder(
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder getNormalCoolDownDataListBuilder(
           int index) {
-        return getCoolDownGroupDataListFieldBuilder().getBuilder(index);
+        return getNormalCoolDownDataListFieldBuilder().getBuilder(index);
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getCoolDownGroupDataListOrBuilder(
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder getNormalCoolDownDataListOrBuilder(
           int index) {
-        if (coolDownGroupDataListBuilder_ == null) {
-          return coolDownGroupDataList_.get(index);  } else {
-          return coolDownGroupDataListBuilder_.getMessageOrBuilder(index);
+        if (normalCoolDownDataListBuilder_ == null) {
+          return normalCoolDownDataList_.get(index);  } else {
+          return normalCoolDownDataListBuilder_.getMessageOrBuilder(index);
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
       public java.util.List<? extends emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-           getCoolDownGroupDataListOrBuilderList() {
-        if (coolDownGroupDataListBuilder_ != null) {
-          return coolDownGroupDataListBuilder_.getMessageOrBuilderList();
+           getNormalCoolDownDataListOrBuilderList() {
+        if (normalCoolDownDataListBuilder_ != null) {
+          return normalCoolDownDataListBuilder_.getMessageOrBuilderList();
         } else {
-          return java.util.Collections.unmodifiableList(coolDownGroupDataList_);
+          return java.util.Collections.unmodifiableList(normalCoolDownDataList_);
         }
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addCoolDownGroupDataListBuilder() {
-        return getCoolDownGroupDataListFieldBuilder().addBuilder(
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addNormalCoolDownDataListBuilder() {
+        return getNormalCoolDownDataListFieldBuilder().addBuilder(
             emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.getDefaultInstance());
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addCoolDownGroupDataListBuilder(
+      public emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder addNormalCoolDownDataListBuilder(
           int index) {
-        return getCoolDownGroupDataListFieldBuilder().addBuilder(
+        return getNormalCoolDownDataListFieldBuilder().addBuilder(
             index, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.getDefaultInstance());
       }
       /**
-       * <code>repeated .WidgetCoolDownData cool_down_group_data_list = 13;</code>
+       * <code>repeated .WidgetCoolDownData normal_cool_down_data_list = 9;</code>
        */
       public java.util.List<emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder> 
-           getCoolDownGroupDataListBuilderList() {
-        return getCoolDownGroupDataListFieldBuilder().getBuilderList();
+           getNormalCoolDownDataListBuilderList() {
+        return getNormalCoolDownDataListFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilderV3<
           emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder> 
-          getCoolDownGroupDataListFieldBuilder() {
-        if (coolDownGroupDataListBuilder_ == null) {
-          coolDownGroupDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+          getNormalCoolDownDataListFieldBuilder() {
+        if (normalCoolDownDataListBuilder_ == null) {
+          normalCoolDownDataListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
               emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownData.Builder, emu.grasscutter.net.proto.WidgetCoolDownDataOuterClass.WidgetCoolDownDataOrBuilder>(
-                  coolDownGroupDataList_,
-                  ((bitField0_ & 0x00000010) != 0),
+                  normalCoolDownDataList_,
+                  ((bitField0_ & 0x00000040) != 0),
                   getParentForChildren(),
                   isClean());
-          coolDownGroupDataList_ = null;
+          normalCoolDownDataList_ = null;
         }
-        return coolDownGroupDataListBuilder_;
-      }
-
-      private java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> slotList_ =
-        java.util.Collections.emptyList();
-      private void ensureSlotListIsMutable() {
-        if (!((bitField0_ & 0x00000020) != 0)) {
-          slotList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData>(slotList_);
-          bitField0_ |= 0x00000020;
-         }
+        return normalCoolDownDataListBuilder_;
       }
 
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> slotListBuilder_;
-
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> getSlotListList() {
-        if (slotListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(slotList_);
-        } else {
-          return slotListBuilder_.getMessageList();
-        }
-      }
+      private emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK unk2700COIELIGEACL_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder> unk2700COIELIGEACLBuilder_;
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * @return Whether the unk2700COIELIGEACL field is set.
        */
-      public int getSlotListCount() {
-        if (slotListBuilder_ == null) {
-          return slotList_.size();
-        } else {
-          return slotListBuilder_.getCount();
-        }
+      public boolean hasUnk2700COIELIGEACL() {
+        return unk2700COIELIGEACLBuilder_ != null || unk2700COIELIGEACL_ != null;
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
+       * @return The unk2700COIELIGEACL.
        */
-      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index) {
-        if (slotListBuilder_ == null) {
-          return slotList_.get(index);
+      public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK getUnk2700COIELIGEACL() {
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          return unk2700COIELIGEACL_ == null ? emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.getDefaultInstance() : unk2700COIELIGEACL_;
         } else {
-          return slotListBuilder_.getMessage(index);
+          return unk2700COIELIGEACLBuilder_.getMessage();
         }
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public Builder setSlotList(
-          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
-        if (slotListBuilder_ == null) {
+      public Builder setUnk2700COIELIGEACL(emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK value) {
+        if (unk2700COIELIGEACLBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureSlotListIsMutable();
-          slotList_.set(index, value);
-          onChanged();
-        } else {
-          slotListBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public Builder setSlotList(
-          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
-        if (slotListBuilder_ == null) {
-          ensureSlotListIsMutable();
-          slotList_.set(index, builderForValue.build());
+          unk2700COIELIGEACL_ = value;
           onChanged();
         } else {
-          slotListBuilder_.setMessage(index, builderForValue.build());
+          unk2700COIELIGEACLBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public Builder addSlotList(emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
-        if (slotListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureSlotListIsMutable();
-          slotList_.add(value);
+      public Builder setUnk2700COIELIGEACL(
+          emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder builderForValue) {
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          unk2700COIELIGEACL_ = builderForValue.build();
           onChanged();
         } else {
-          slotListBuilder_.addMessage(value);
+          unk2700COIELIGEACLBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public Builder addSlotList(
-          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
-        if (slotListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
+      public Builder mergeUnk2700COIELIGEACL(emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK value) {
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          if (unk2700COIELIGEACL_ != null) {
+            unk2700COIELIGEACL_ =
+              emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.newBuilder(unk2700COIELIGEACL_).mergeFrom(value).buildPartial();
+          } else {
+            unk2700COIELIGEACL_ = value;
           }
-          ensureSlotListIsMutable();
-          slotList_.add(index, value);
-          onChanged();
-        } else {
-          slotListBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public Builder addSlotList(
-          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
-        if (slotListBuilder_ == null) {
-          ensureSlotListIsMutable();
-          slotList_.add(builderForValue.build());
-          onChanged();
-        } else {
-          slotListBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public Builder addSlotList(
-          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
-        if (slotListBuilder_ == null) {
-          ensureSlotListIsMutable();
-          slotList_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          slotListBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public Builder addAllSlotList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> values) {
-        if (slotListBuilder_ == null) {
-          ensureSlotListIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, slotList_);
-          onChanged();
-        } else {
-          slotListBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public Builder clearSlotList() {
-        if (slotListBuilder_ == null) {
-          slotList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000020);
           onChanged();
         } else {
-          slotListBuilder_.clear();
+          unk2700COIELIGEACLBuilder_.mergeFrom(value);
         }
+
         return this;
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public Builder removeSlotList(int index) {
-        if (slotListBuilder_ == null) {
-          ensureSlotListIsMutable();
-          slotList_.remove(index);
+      public Builder clearUnk2700COIELIGEACL() {
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          unk2700COIELIGEACL_ = null;
           onChanged();
         } else {
-          slotListBuilder_.remove(index);
+          unk2700COIELIGEACL_ = null;
+          unk2700COIELIGEACLBuilder_ = null;
         }
+
         return this;
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder getSlotListBuilder(
-          int index) {
-        return getSlotListFieldBuilder().getBuilder(index);
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
-          int index) {
-        if (slotListBuilder_ == null) {
-          return slotList_.get(index);  } else {
-          return slotListBuilder_.getMessageOrBuilder(index);
-        }
+      public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder getUnk2700COIELIGEACLBuilder() {
+        
+        onChanged();
+        return getUnk2700COIELIGEACLFieldBuilder().getBuilder();
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
-           getSlotListOrBuilderList() {
-        if (slotListBuilder_ != null) {
-          return slotListBuilder_.getMessageOrBuilderList();
+      public emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder getUnk2700COIELIGEACLOrBuilder() {
+        if (unk2700COIELIGEACLBuilder_ != null) {
+          return unk2700COIELIGEACLBuilder_.getMessageOrBuilder();
         } else {
-          return java.util.Collections.unmodifiableList(slotList_);
+          return unk2700COIELIGEACL_ == null ?
+              emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.getDefaultInstance() : unk2700COIELIGEACL_;
         }
       }
       /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder addSlotListBuilder() {
-        return getSlotListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder addSlotListBuilder(
-          int index) {
-        return getSlotListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .WidgetSlotData slot_list = 6;</code>
+       * <code>.Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder> 
-           getSlotListBuilderList() {
-        return getSlotListFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
-          getSlotListFieldBuilder() {
-        if (slotListBuilder_ == null) {
-          slotListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder>(
-                  slotList_,
-                  ((bitField0_ & 0x00000020) != 0),
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder> 
+          getUnk2700COIELIGEACLFieldBuilder() {
+        if (unk2700COIELIGEACLBuilder_ == null) {
+          unk2700COIELIGEACLBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPK.Builder, emu.grasscutter.net.proto.Unk2700CCEOEOHLAPK.Unk2700_CCEOEOHLAPKOrBuilder>(
+                  getUnk2700COIELIGEACL(),
                   getParentForChildren(),
                   isClean());
-          slotList_ = null;
+          unk2700COIELIGEACL_ = null;
         }
-        return slotListBuilder_;
+        return unk2700COIELIGEACLBuilder_;
       }
       @java.lang.Override
       public final Builder setUnknownFields(
@@ -3174,20 +3370,20 @@ public final class AllWidgetDataNotifyOuterClass {
       "unchBoxData.proto\032\"OneofGatherPointDetec" +
       "torData.proto\032\031Unk2700_CCEOEOHLAPK.proto" +
       "\032\030WidgetCoolDownData.proto\032\024WidgetSlotDa" +
-      "ta.proto\"\340\003\n\023AllWidgetDataNotify\0221\n\023Unk2" +
-      "700_COIELIGEACL\030\014 \001(\0132\024.Unk2700_CCEOEOHL" +
-      "APK\022+\n\021anchor_point_list\030\003 \003(\0132\020.AnchorP" +
-      "ointData\0228\n\032client_collector_data_list\030\004" +
-      " \003(\0132\024.ClientCollectorData\0227\n\032normal_coo" +
-      "l_down_data_list\030\t \003(\0132\023.WidgetCoolDownD" +
-      "ata\022%\n\035next_anchor_point_usable_time\030\n \001" +
-      "(\r\022L\n%oneof_gather_point_detector_data_l" +
-      "ist\030\017 \003(\0132\035.OneofGatherPointDetectorData" +
-      "\022%\n\016lunch_box_data\030\001 \001(\0132\r.LunchBoxData\022" +
-      "6\n\031cool_down_group_data_list\030\r \003(\0132\023.Wid" +
-      "getCoolDownData\022\"\n\tslot_list\030\006 \003(\0132\017.Wid" +
-      "getSlotDataB\033\n\031emu.grasscutter.net.proto" +
-      "b\006proto3"
+      "ta.proto\"\375\003\n\023AllWidgetDataNotify\022\033\n\023Unk3" +
+      "000_CNNFGFBBBFP\030\013 \003(\r\022%\n\016lunch_box_data\030" +
+      "\001 \001(\0132\r.LunchBoxData\0226\n\031cool_down_group_" +
+      "data_list\030\r \003(\0132\023.WidgetCoolDownData\022+\n\021" +
+      "anchor_point_list\030\003 \003(\0132\020.AnchorPointDat" +
+      "a\022\"\n\tslot_list\030\006 \003(\0132\017.WidgetSlotData\022%\n" +
+      "\035next_anchor_point_usable_time\030\n \001(\r\0228\n\032" +
+      "client_collector_data_list\030\004 \003(\0132\024.Clien" +
+      "tCollectorData\022L\n%oneof_gather_point_det" +
+      "ector_data_list\030\017 \003(\0132\035.OneofGatherPoint" +
+      "DetectorData\0227\n\032normal_cool_down_data_li" +
+      "st\030\t \003(\0132\023.WidgetCoolDownData\0221\n\023Unk2700" +
+      "_COIELIGEACL\030\014 \001(\0132\024.Unk2700_CCEOEOHLAPK" +
+      "B\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -3205,7 +3401,7 @@ public final class AllWidgetDataNotifyOuterClass {
     internal_static_AllWidgetDataNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_AllWidgetDataNotify_descriptor,
-        new java.lang.String[] { "Unk2700COIELIGEACL", "AnchorPointList", "ClientCollectorDataList", "NormalCoolDownDataList", "NextAnchorPointUsableTime", "OneofGatherPointDetectorDataList", "LunchBoxData", "CoolDownGroupDataList", "SlotList", });
+        new java.lang.String[] { "Unk3000CNNFGFBBBFP", "LunchBoxData", "CoolDownGroupDataList", "AnchorPointList", "SlotList", "NextAnchorPointUsableTime", "ClientCollectorDataList", "OneofGatherPointDetectorDataList", "NormalCoolDownDataList", "Unk2700COIELIGEACL", });
     emu.grasscutter.net.proto.AnchorPointDataOuterClass.getDescriptor();
     emu.grasscutter.net.proto.ClientCollectorDataOuterClass.getDescriptor();
     emu.grasscutter.net.proto.LunchBoxDataOuterClass.getDescriptor();
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointDataNotifyOuterClass.java
index 93ab9d5c..b52cccb2 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointDataNotifyOuterClass.java
@@ -52,7 +52,8 @@ public final class AnchorPointDataNotifyOuterClass {
    * <pre>
    * CmdId: 4276
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AnchorPointDataNotify}
@@ -373,7 +374,8 @@ public final class AnchorPointDataNotifyOuterClass {
      * <pre>
      * CmdId: 4276
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AnchorPointDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpReqOuterClass.java
index 58ae1d59..c188d414 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpReqOuterClass.java
@@ -34,7 +34,7 @@ public final class AnchorPointOpReqOuterClass {
    * <pre>
    * CmdId: 4257
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -433,7 +433,7 @@ public final class AnchorPointOpReqOuterClass {
      * <pre>
      * CmdId: 4257
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpRspOuterClass.java
index 61b7c6b5..43075605 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AnchorPointOpRspOuterClass.java
@@ -40,7 +40,8 @@ public final class AnchorPointOpRspOuterClass {
    * <pre>
    * CmdId: 4252
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AnchorPointOpRsp}
@@ -348,7 +349,8 @@ public final class AnchorPointOpRspOuterClass {
      * <pre>
      * CmdId: 4252
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AnchorPointOpRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AnnounceDataOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AnnounceDataOuterClass.java
index 856db6b8..2ffa83bd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AnnounceDataOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AnnounceDataOuterClass.java
@@ -19,22 +19,16 @@ public final class AnnounceDataOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>uint32 config_id = 7;</code>
-     * @return The configId.
-     */
-    int getConfigId();
-
-    /**
-     * <code>uint32 begin_time = 4;</code>
-     * @return The beginTime.
+     * <code>string count_down_text = 9;</code>
+     * @return The countDownText.
      */
-    int getBeginTime();
-
+    java.lang.String getCountDownText();
     /**
-     * <code>uint32 end_time = 10;</code>
-     * @return The endTime.
+     * <code>string count_down_text = 9;</code>
+     * @return The bytes for countDownText.
      */
-    int getEndTime();
+    com.google.protobuf.ByteString
+        getCountDownTextBytes();
 
     /**
      * <code>string center_system_text = 8;</code>
@@ -49,16 +43,28 @@ public final class AnnounceDataOuterClass {
         getCenterSystemTextBytes();
 
     /**
-     * <code>string count_down_text = 9;</code>
-     * @return The countDownText.
+     * <code>uint32 count_down_frequency = 1;</code>
+     * @return The countDownFrequency.
      */
-    java.lang.String getCountDownText();
+    int getCountDownFrequency();
+
     /**
-     * <code>string count_down_text = 9;</code>
-     * @return The bytes for countDownText.
+     * <code>uint32 config_id = 7;</code>
+     * @return The configId.
      */
-    com.google.protobuf.ByteString
-        getCountDownTextBytes();
+    int getConfigId();
+
+    /**
+     * <code>uint32 begin_time = 4;</code>
+     * @return The beginTime.
+     */
+    int getBeginTime();
+
+    /**
+     * <code>uint32 center_system_frequency = 11;</code>
+     * @return The centerSystemFrequency.
+     */
+    int getCenterSystemFrequency();
 
     /**
      * <code>string dungeon_confirm_text = 2;</code>
@@ -73,22 +79,16 @@ public final class AnnounceDataOuterClass {
         getDungeonConfirmTextBytes();
 
     /**
-     * <code>uint32 center_system_frequency = 11;</code>
-     * @return The centerSystemFrequency.
-     */
-    int getCenterSystemFrequency();
-
-    /**
-     * <code>uint32 count_down_frequency = 1;</code>
-     * @return The countDownFrequency.
+     * <code>bool is_center_system_last5_every_minutes = 14;</code>
+     * @return The isCenterSystemLast5EveryMinutes.
      */
-    int getCountDownFrequency();
+    boolean getIsCenterSystemLast5EveryMinutes();
 
     /**
-     * <code>bool is_center_system_last_5_every_minutes = 14;</code>
-     * @return The isCenterSystemLast5EveryMinutes.
+     * <code>uint32 end_time = 10;</code>
+     * @return The endTime.
      */
-    boolean getIsCenterSystemLast5EveryMinutes();
+    int getEndTime();
   }
   /**
    * Protobuf type {@code AnnounceData}
@@ -103,8 +103,8 @@ public final class AnnounceDataOuterClass {
       super(builder);
     }
     private AnnounceData() {
-      centerSystemText_ = "";
       countDownText_ = "";
+      centerSystemText_ = "";
       dungeonConfirmText_ = "";
     }
 
@@ -218,37 +218,42 @@ public final class AnnounceDataOuterClass {
               emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData.class, emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData.Builder.class);
     }
 
-    public static final int CONFIG_ID_FIELD_NUMBER = 7;
-    private int configId_;
-    /**
-     * <code>uint32 config_id = 7;</code>
-     * @return The configId.
-     */
-    @java.lang.Override
-    public int getConfigId() {
-      return configId_;
-    }
-
-    public static final int BEGIN_TIME_FIELD_NUMBER = 4;
-    private int beginTime_;
+    public static final int COUNT_DOWN_TEXT_FIELD_NUMBER = 9;
+    private volatile java.lang.Object countDownText_;
     /**
-     * <code>uint32 begin_time = 4;</code>
-     * @return The beginTime.
+     * <code>string count_down_text = 9;</code>
+     * @return The countDownText.
      */
     @java.lang.Override
-    public int getBeginTime() {
-      return beginTime_;
+    public java.lang.String getCountDownText() {
+      java.lang.Object ref = countDownText_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        countDownText_ = s;
+        return s;
+      }
     }
-
-    public static final int END_TIME_FIELD_NUMBER = 10;
-    private int endTime_;
     /**
-     * <code>uint32 end_time = 10;</code>
-     * @return The endTime.
+     * <code>string count_down_text = 9;</code>
+     * @return The bytes for countDownText.
      */
     @java.lang.Override
-    public int getEndTime() {
-      return endTime_;
+    public com.google.protobuf.ByteString
+        getCountDownTextBytes() {
+      java.lang.Object ref = countDownText_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        countDownText_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
 
     public static final int CENTER_SYSTEM_TEXT_FIELD_NUMBER = 8;
@@ -289,42 +294,48 @@ public final class AnnounceDataOuterClass {
       }
     }
 
-    public static final int COUNT_DOWN_TEXT_FIELD_NUMBER = 9;
-    private volatile java.lang.Object countDownText_;
+    public static final int COUNT_DOWN_FREQUENCY_FIELD_NUMBER = 1;
+    private int countDownFrequency_;
     /**
-     * <code>string count_down_text = 9;</code>
-     * @return The countDownText.
+     * <code>uint32 count_down_frequency = 1;</code>
+     * @return The countDownFrequency.
      */
     @java.lang.Override
-    public java.lang.String getCountDownText() {
-      java.lang.Object ref = countDownText_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        countDownText_ = s;
-        return s;
-      }
+    public int getCountDownFrequency() {
+      return countDownFrequency_;
     }
+
+    public static final int CONFIG_ID_FIELD_NUMBER = 7;
+    private int configId_;
     /**
-     * <code>string count_down_text = 9;</code>
-     * @return The bytes for countDownText.
+     * <code>uint32 config_id = 7;</code>
+     * @return The configId.
      */
     @java.lang.Override
-    public com.google.protobuf.ByteString
-        getCountDownTextBytes() {
-      java.lang.Object ref = countDownText_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        countDownText_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
+    public int getConfigId() {
+      return configId_;
+    }
+
+    public static final int BEGIN_TIME_FIELD_NUMBER = 4;
+    private int beginTime_;
+    /**
+     * <code>uint32 begin_time = 4;</code>
+     * @return The beginTime.
+     */
+    @java.lang.Override
+    public int getBeginTime() {
+      return beginTime_;
+    }
+
+    public static final int CENTER_SYSTEM_FREQUENCY_FIELD_NUMBER = 11;
+    private int centerSystemFrequency_;
+    /**
+     * <code>uint32 center_system_frequency = 11;</code>
+     * @return The centerSystemFrequency.
+     */
+    @java.lang.Override
+    public int getCenterSystemFrequency() {
+      return centerSystemFrequency_;
     }
 
     public static final int DUNGEON_CONFIRM_TEXT_FIELD_NUMBER = 2;
@@ -365,37 +376,26 @@ public final class AnnounceDataOuterClass {
       }
     }
 
-    public static final int CENTER_SYSTEM_FREQUENCY_FIELD_NUMBER = 11;
-    private int centerSystemFrequency_;
-    /**
-     * <code>uint32 center_system_frequency = 11;</code>
-     * @return The centerSystemFrequency.
-     */
-    @java.lang.Override
-    public int getCenterSystemFrequency() {
-      return centerSystemFrequency_;
-    }
-
-    public static final int COUNT_DOWN_FREQUENCY_FIELD_NUMBER = 1;
-    private int countDownFrequency_;
+    public static final int IS_CENTER_SYSTEM_LAST5_EVERY_MINUTES_FIELD_NUMBER = 14;
+    private boolean isCenterSystemLast5EveryMinutes_;
     /**
-     * <code>uint32 count_down_frequency = 1;</code>
-     * @return The countDownFrequency.
+     * <code>bool is_center_system_last5_every_minutes = 14;</code>
+     * @return The isCenterSystemLast5EveryMinutes.
      */
     @java.lang.Override
-    public int getCountDownFrequency() {
-      return countDownFrequency_;
+    public boolean getIsCenterSystemLast5EveryMinutes() {
+      return isCenterSystemLast5EveryMinutes_;
     }
 
-    public static final int IS_CENTER_SYSTEM_LAST_5_EVERY_MINUTES_FIELD_NUMBER = 14;
-    private boolean isCenterSystemLast5EveryMinutes_;
+    public static final int END_TIME_FIELD_NUMBER = 10;
+    private int endTime_;
     /**
-     * <code>bool is_center_system_last_5_every_minutes = 14;</code>
-     * @return The isCenterSystemLast5EveryMinutes.
+     * <code>uint32 end_time = 10;</code>
+     * @return The endTime.
      */
     @java.lang.Override
-    public boolean getIsCenterSystemLast5EveryMinutes() {
-      return isCenterSystemLast5EveryMinutes_;
+    public int getEndTime() {
+      return endTime_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -496,24 +496,24 @@ public final class AnnounceDataOuterClass {
       }
       emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData other = (emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData) obj;
 
+      if (!getCountDownText()
+          .equals(other.getCountDownText())) return false;
+      if (!getCenterSystemText()
+          .equals(other.getCenterSystemText())) return false;
+      if (getCountDownFrequency()
+          != other.getCountDownFrequency()) return false;
       if (getConfigId()
           != other.getConfigId()) return false;
       if (getBeginTime()
           != other.getBeginTime()) return false;
-      if (getEndTime()
-          != other.getEndTime()) return false;
-      if (!getCenterSystemText()
-          .equals(other.getCenterSystemText())) return false;
-      if (!getCountDownText()
-          .equals(other.getCountDownText())) return false;
-      if (!getDungeonConfirmText()
-          .equals(other.getDungeonConfirmText())) return false;
       if (getCenterSystemFrequency()
           != other.getCenterSystemFrequency()) return false;
-      if (getCountDownFrequency()
-          != other.getCountDownFrequency()) return false;
+      if (!getDungeonConfirmText()
+          .equals(other.getDungeonConfirmText())) return false;
       if (getIsCenterSystemLast5EveryMinutes()
           != other.getIsCenterSystemLast5EveryMinutes()) return false;
+      if (getEndTime()
+          != other.getEndTime()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -525,25 +525,25 @@ public final class AnnounceDataOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + COUNT_DOWN_TEXT_FIELD_NUMBER;
+      hash = (53 * hash) + getCountDownText().hashCode();
+      hash = (37 * hash) + CENTER_SYSTEM_TEXT_FIELD_NUMBER;
+      hash = (53 * hash) + getCenterSystemText().hashCode();
+      hash = (37 * hash) + COUNT_DOWN_FREQUENCY_FIELD_NUMBER;
+      hash = (53 * hash) + getCountDownFrequency();
       hash = (37 * hash) + CONFIG_ID_FIELD_NUMBER;
       hash = (53 * hash) + getConfigId();
       hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getBeginTime();
-      hash = (37 * hash) + END_TIME_FIELD_NUMBER;
-      hash = (53 * hash) + getEndTime();
-      hash = (37 * hash) + CENTER_SYSTEM_TEXT_FIELD_NUMBER;
-      hash = (53 * hash) + getCenterSystemText().hashCode();
-      hash = (37 * hash) + COUNT_DOWN_TEXT_FIELD_NUMBER;
-      hash = (53 * hash) + getCountDownText().hashCode();
-      hash = (37 * hash) + DUNGEON_CONFIRM_TEXT_FIELD_NUMBER;
-      hash = (53 * hash) + getDungeonConfirmText().hashCode();
       hash = (37 * hash) + CENTER_SYSTEM_FREQUENCY_FIELD_NUMBER;
       hash = (53 * hash) + getCenterSystemFrequency();
-      hash = (37 * hash) + COUNT_DOWN_FREQUENCY_FIELD_NUMBER;
-      hash = (53 * hash) + getCountDownFrequency();
-      hash = (37 * hash) + IS_CENTER_SYSTEM_LAST_5_EVERY_MINUTES_FIELD_NUMBER;
+      hash = (37 * hash) + DUNGEON_CONFIRM_TEXT_FIELD_NUMBER;
+      hash = (53 * hash) + getDungeonConfirmText().hashCode();
+      hash = (37 * hash) + IS_CENTER_SYSTEM_LAST5_EVERY_MINUTES_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getIsCenterSystemLast5EveryMinutes());
+      hash = (37 * hash) + END_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getEndTime();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -677,24 +677,24 @@ public final class AnnounceDataOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        configId_ = 0;
+        countDownText_ = "";
 
-        beginTime_ = 0;
+        centerSystemText_ = "";
 
-        endTime_ = 0;
-
-        centerSystemText_ = "";
+        countDownFrequency_ = 0;
 
-        countDownText_ = "";
+        configId_ = 0;
 
-        dungeonConfirmText_ = "";
+        beginTime_ = 0;
 
         centerSystemFrequency_ = 0;
 
-        countDownFrequency_ = 0;
+        dungeonConfirmText_ = "";
 
         isCenterSystemLast5EveryMinutes_ = false;
 
+        endTime_ = 0;
+
         return this;
       }
 
@@ -721,15 +721,15 @@ public final class AnnounceDataOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData buildPartial() {
         emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData result = new emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData(this);
+        result.countDownText_ = countDownText_;
+        result.centerSystemText_ = centerSystemText_;
+        result.countDownFrequency_ = countDownFrequency_;
         result.configId_ = configId_;
         result.beginTime_ = beginTime_;
-        result.endTime_ = endTime_;
-        result.centerSystemText_ = centerSystemText_;
-        result.countDownText_ = countDownText_;
-        result.dungeonConfirmText_ = dungeonConfirmText_;
         result.centerSystemFrequency_ = centerSystemFrequency_;
-        result.countDownFrequency_ = countDownFrequency_;
+        result.dungeonConfirmText_ = dungeonConfirmText_;
         result.isCenterSystemLast5EveryMinutes_ = isCenterSystemLast5EveryMinutes_;
+        result.endTime_ = endTime_;
         onBuilt();
         return result;
       }
@@ -778,36 +778,36 @@ public final class AnnounceDataOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData other) {
         if (other == emu.grasscutter.net.proto.AnnounceDataOuterClass.AnnounceData.getDefaultInstance()) return this;
-        if (other.getConfigId() != 0) {
-          setConfigId(other.getConfigId());
-        }
-        if (other.getBeginTime() != 0) {
-          setBeginTime(other.getBeginTime());
-        }
-        if (other.getEndTime() != 0) {
-          setEndTime(other.getEndTime());
+        if (!other.getCountDownText().isEmpty()) {
+          countDownText_ = other.countDownText_;
+          onChanged();
         }
         if (!other.getCenterSystemText().isEmpty()) {
           centerSystemText_ = other.centerSystemText_;
           onChanged();
         }
-        if (!other.getCountDownText().isEmpty()) {
-          countDownText_ = other.countDownText_;
-          onChanged();
+        if (other.getCountDownFrequency() != 0) {
+          setCountDownFrequency(other.getCountDownFrequency());
         }
-        if (!other.getDungeonConfirmText().isEmpty()) {
-          dungeonConfirmText_ = other.dungeonConfirmText_;
-          onChanged();
+        if (other.getConfigId() != 0) {
+          setConfigId(other.getConfigId());
+        }
+        if (other.getBeginTime() != 0) {
+          setBeginTime(other.getBeginTime());
         }
         if (other.getCenterSystemFrequency() != 0) {
           setCenterSystemFrequency(other.getCenterSystemFrequency());
         }
-        if (other.getCountDownFrequency() != 0) {
-          setCountDownFrequency(other.getCountDownFrequency());
+        if (!other.getDungeonConfirmText().isEmpty()) {
+          dungeonConfirmText_ = other.dungeonConfirmText_;
+          onChanged();
         }
         if (other.getIsCenterSystemLast5EveryMinutes() != false) {
           setIsCenterSystemLast5EveryMinutes(other.getIsCenterSystemLast5EveryMinutes());
         }
+        if (other.getEndTime() != 0) {
+          setEndTime(other.getEndTime());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -837,95 +837,78 @@ public final class AnnounceDataOuterClass {
         return this;
       }
 
-      private int configId_ ;
-      /**
-       * <code>uint32 config_id = 7;</code>
-       * @return The configId.
-       */
-      @java.lang.Override
-      public int getConfigId() {
-        return configId_;
-      }
-      /**
-       * <code>uint32 config_id = 7;</code>
-       * @param value The configId to set.
-       * @return This builder for chaining.
-       */
-      public Builder setConfigId(int value) {
-        
-        configId_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 config_id = 7;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearConfigId() {
-        
-        configId_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private int beginTime_ ;
+      private java.lang.Object countDownText_ = "";
       /**
-       * <code>uint32 begin_time = 4;</code>
-       * @return The beginTime.
+       * <code>string count_down_text = 9;</code>
+       * @return The countDownText.
        */
-      @java.lang.Override
-      public int getBeginTime() {
-        return beginTime_;
+      public java.lang.String getCountDownText() {
+        java.lang.Object ref = countDownText_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          countDownText_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
       }
       /**
-       * <code>uint32 begin_time = 4;</code>
-       * @param value The beginTime to set.
-       * @return This builder for chaining.
+       * <code>string count_down_text = 9;</code>
+       * @return The bytes for countDownText.
        */
-      public Builder setBeginTime(int value) {
-        
-        beginTime_ = value;
-        onChanged();
-        return this;
+      public com.google.protobuf.ByteString
+          getCountDownTextBytes() {
+        java.lang.Object ref = countDownText_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          countDownText_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
       }
       /**
-       * <code>uint32 begin_time = 4;</code>
+       * <code>string count_down_text = 9;</code>
+       * @param value The countDownText to set.
        * @return This builder for chaining.
        */
-      public Builder clearBeginTime() {
-        
-        beginTime_ = 0;
+      public Builder setCountDownText(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        countDownText_ = value;
         onChanged();
         return this;
       }
-
-      private int endTime_ ;
       /**
-       * <code>uint32 end_time = 10;</code>
-       * @return The endTime.
-       */
-      @java.lang.Override
-      public int getEndTime() {
-        return endTime_;
-      }
-      /**
-       * <code>uint32 end_time = 10;</code>
-       * @param value The endTime to set.
+       * <code>string count_down_text = 9;</code>
        * @return This builder for chaining.
        */
-      public Builder setEndTime(int value) {
+      public Builder clearCountDownText() {
         
-        endTime_ = value;
+        countDownText_ = getDefaultInstance().getCountDownText();
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 end_time = 10;</code>
+       * <code>string count_down_text = 9;</code>
+       * @param value The bytes for countDownText to set.
        * @return This builder for chaining.
        */
-      public Builder clearEndTime() {
+      public Builder setCountDownTextBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
         
-        endTime_ = 0;
+        countDownText_ = value;
         onChanged();
         return this;
       }
@@ -1006,78 +989,126 @@ public final class AnnounceDataOuterClass {
         return this;
       }
 
-      private java.lang.Object countDownText_ = "";
+      private int countDownFrequency_ ;
       /**
-       * <code>string count_down_text = 9;</code>
-       * @return The countDownText.
+       * <code>uint32 count_down_frequency = 1;</code>
+       * @return The countDownFrequency.
        */
-      public java.lang.String getCountDownText() {
-        java.lang.Object ref = countDownText_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          countDownText_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
+      @java.lang.Override
+      public int getCountDownFrequency() {
+        return countDownFrequency_;
       }
       /**
-       * <code>string count_down_text = 9;</code>
-       * @return The bytes for countDownText.
+       * <code>uint32 count_down_frequency = 1;</code>
+       * @param value The countDownFrequency to set.
+       * @return This builder for chaining.
        */
-      public com.google.protobuf.ByteString
-          getCountDownTextBytes() {
-        java.lang.Object ref = countDownText_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          countDownText_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
+      public Builder setCountDownFrequency(int value) {
+        
+        countDownFrequency_ = value;
+        onChanged();
+        return this;
       }
       /**
-       * <code>string count_down_text = 9;</code>
-       * @param value The countDownText to set.
+       * <code>uint32 count_down_frequency = 1;</code>
        * @return This builder for chaining.
        */
-      public Builder setCountDownText(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        countDownText_ = value;
+      public Builder clearCountDownFrequency() {
+        
+        countDownFrequency_ = 0;
         onChanged();
         return this;
       }
+
+      private int configId_ ;
       /**
-       * <code>string count_down_text = 9;</code>
+       * <code>uint32 config_id = 7;</code>
+       * @return The configId.
+       */
+      @java.lang.Override
+      public int getConfigId() {
+        return configId_;
+      }
+      /**
+       * <code>uint32 config_id = 7;</code>
+       * @param value The configId to set.
        * @return This builder for chaining.
        */
-      public Builder clearCountDownText() {
+      public Builder setConfigId(int value) {
         
-        countDownText_ = getDefaultInstance().getCountDownText();
+        configId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>string count_down_text = 9;</code>
-       * @param value The bytes for countDownText to set.
+       * <code>uint32 config_id = 7;</code>
        * @return This builder for chaining.
        */
-      public Builder setCountDownTextBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      public Builder clearConfigId() {
         
-        countDownText_ = value;
+        configId_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int beginTime_ ;
+      /**
+       * <code>uint32 begin_time = 4;</code>
+       * @return The beginTime.
+       */
+      @java.lang.Override
+      public int getBeginTime() {
+        return beginTime_;
+      }
+      /**
+       * <code>uint32 begin_time = 4;</code>
+       * @param value The beginTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setBeginTime(int value) {
+        
+        beginTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 begin_time = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearBeginTime() {
+        
+        beginTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int centerSystemFrequency_ ;
+      /**
+       * <code>uint32 center_system_frequency = 11;</code>
+       * @return The centerSystemFrequency.
+       */
+      @java.lang.Override
+      public int getCenterSystemFrequency() {
+        return centerSystemFrequency_;
+      }
+      /**
+       * <code>uint32 center_system_frequency = 11;</code>
+       * @param value The centerSystemFrequency to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCenterSystemFrequency(int value) {
+        
+        centerSystemFrequency_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 center_system_frequency = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCenterSystemFrequency() {
+        
+        centerSystemFrequency_ = 0;
         onChanged();
         return this;
       }
@@ -1158,95 +1189,64 @@ public final class AnnounceDataOuterClass {
         return this;
       }
 
-      private int centerSystemFrequency_ ;
-      /**
-       * <code>uint32 center_system_frequency = 11;</code>
-       * @return The centerSystemFrequency.
-       */
-      @java.lang.Override
-      public int getCenterSystemFrequency() {
-        return centerSystemFrequency_;
-      }
-      /**
-       * <code>uint32 center_system_frequency = 11;</code>
-       * @param value The centerSystemFrequency to set.
-       * @return This builder for chaining.
-       */
-      public Builder setCenterSystemFrequency(int value) {
-        
-        centerSystemFrequency_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 center_system_frequency = 11;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearCenterSystemFrequency() {
-        
-        centerSystemFrequency_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private int countDownFrequency_ ;
+      private boolean isCenterSystemLast5EveryMinutes_ ;
       /**
-       * <code>uint32 count_down_frequency = 1;</code>
-       * @return The countDownFrequency.
+       * <code>bool is_center_system_last5_every_minutes = 14;</code>
+       * @return The isCenterSystemLast5EveryMinutes.
        */
       @java.lang.Override
-      public int getCountDownFrequency() {
-        return countDownFrequency_;
+      public boolean getIsCenterSystemLast5EveryMinutes() {
+        return isCenterSystemLast5EveryMinutes_;
       }
       /**
-       * <code>uint32 count_down_frequency = 1;</code>
-       * @param value The countDownFrequency to set.
+       * <code>bool is_center_system_last5_every_minutes = 14;</code>
+       * @param value The isCenterSystemLast5EveryMinutes to set.
        * @return This builder for chaining.
        */
-      public Builder setCountDownFrequency(int value) {
+      public Builder setIsCenterSystemLast5EveryMinutes(boolean value) {
         
-        countDownFrequency_ = value;
+        isCenterSystemLast5EveryMinutes_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 count_down_frequency = 1;</code>
+       * <code>bool is_center_system_last5_every_minutes = 14;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCountDownFrequency() {
+      public Builder clearIsCenterSystemLast5EveryMinutes() {
         
-        countDownFrequency_ = 0;
+        isCenterSystemLast5EveryMinutes_ = false;
         onChanged();
         return this;
       }
 
-      private boolean isCenterSystemLast5EveryMinutes_ ;
+      private int endTime_ ;
       /**
-       * <code>bool is_center_system_last_5_every_minutes = 14;</code>
-       * @return The isCenterSystemLast5EveryMinutes.
+       * <code>uint32 end_time = 10;</code>
+       * @return The endTime.
        */
       @java.lang.Override
-      public boolean getIsCenterSystemLast5EveryMinutes() {
-        return isCenterSystemLast5EveryMinutes_;
+      public int getEndTime() {
+        return endTime_;
       }
       /**
-       * <code>bool is_center_system_last_5_every_minutes = 14;</code>
-       * @param value The isCenterSystemLast5EveryMinutes to set.
+       * <code>uint32 end_time = 10;</code>
+       * @param value The endTime to set.
        * @return This builder for chaining.
        */
-      public Builder setIsCenterSystemLast5EveryMinutes(boolean value) {
+      public Builder setEndTime(int value) {
         
-        isCenterSystemLast5EveryMinutes_ = value;
+        endTime_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_center_system_last_5_every_minutes = 14;</code>
+       * <code>uint32 end_time = 10;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsCenterSystemLast5EveryMinutes() {
+      public Builder clearEndTime() {
         
-        isCenterSystemLast5EveryMinutes_ = false;
+        endTime_ = 0;
         onChanged();
         return this;
       }
@@ -1317,15 +1317,15 @@ public final class AnnounceDataOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\022AnnounceData.proto\"\210\002\n\014AnnounceData\022\021\n" +
-      "\tconfig_id\030\007 \001(\r\022\022\n\nbegin_time\030\004 \001(\r\022\020\n\010" +
-      "end_time\030\n \001(\r\022\032\n\022center_system_text\030\010 \001" +
-      "(\t\022\027\n\017count_down_text\030\t \001(\t\022\034\n\024dungeon_c" +
-      "onfirm_text\030\002 \001(\t\022\037\n\027center_system_frequ" +
-      "ency\030\013 \001(\r\022\034\n\024count_down_frequency\030\001 \001(\r" +
-      "\022-\n%is_center_system_last_5_every_minute" +
-      "s\030\016 \001(\010B\033\n\031emu.grasscutter.net.protob\006pr" +
-      "oto3"
+      "\n\022AnnounceData.proto\"\207\002\n\014AnnounceData\022\027\n" +
+      "\017count_down_text\030\t \001(\t\022\032\n\022center_system_" +
+      "text\030\010 \001(\t\022\034\n\024count_down_frequency\030\001 \001(\r" +
+      "\022\021\n\tconfig_id\030\007 \001(\r\022\022\n\nbegin_time\030\004 \001(\r\022" +
+      "\037\n\027center_system_frequency\030\013 \001(\r\022\034\n\024dung" +
+      "eon_confirm_text\030\002 \001(\t\022,\n$is_center_syst" +
+      "em_last5_every_minutes\030\016 \001(\010\022\020\n\010end_time" +
+      "\030\n \001(\rB\033\n\031emu.grasscutter.net.protob\006pro" +
+      "to3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -1336,7 +1336,7 @@ public final class AnnounceDataOuterClass {
     internal_static_AnnounceData_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_AnnounceData_descriptor,
-        new java.lang.String[] { "ConfigId", "BeginTime", "EndTime", "CenterSystemText", "CountDownText", "DungeonConfirmText", "CenterSystemFrequency", "CountDownFrequency", "IsCenterSystemLast5EveryMinutes", });
+        new java.lang.String[] { "CountDownText", "CenterSystemText", "CountDownFrequency", "ConfigId", "BeginTime", "CenterSystemFrequency", "DungeonConfirmText", "IsCenterSystemLast5EveryMinutes", "EndTime", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendNotifyOuterClass.java
index fe63926c..405d558c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendNotifyOuterClass.java
@@ -43,7 +43,8 @@ public final class AskAddFriendNotifyOuterClass {
    * <pre>
    * CmdId: 4065
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AskAddFriendNotify}
@@ -352,7 +353,8 @@ public final class AskAddFriendNotifyOuterClass {
      * <pre>
      * CmdId: 4065
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AskAddFriendNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendReqOuterClass.java
index c07ed1e7..011e49ff 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendReqOuterClass.java
@@ -28,7 +28,7 @@ public final class AskAddFriendReqOuterClass {
    * <pre>
    * CmdId: 4007
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class AskAddFriendReqOuterClass {
      * <pre>
      * CmdId: 4007
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendRspOuterClass.java
index 5926add1..8fad1145 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendRspOuterClass.java
@@ -40,7 +40,7 @@ public final class AskAddFriendRspOuterClass {
    * <pre>
    * CmdId: 4021
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class AskAddFriendRspOuterClass {
      * <pre>
      * CmdId: 4021
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarAddNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarAddNotifyOuterClass.java
index e7e12227..8c302f9d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarAddNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarAddNotifyOuterClass.java
@@ -43,7 +43,8 @@ public final class AvatarAddNotifyOuterClass {
    * <pre>
    * CmdId: 1769
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarAddNotify}
@@ -353,7 +354,8 @@ public final class AvatarAddNotifyOuterClass {
      * <pre>
      * CmdId: 1769
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarAddNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeNotifyOuterClass.java
index 9e867e51..306d54ea 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class AvatarChangeCostumeNotifyOuterClass {
    * <pre>
    * CmdId: 1644
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarChangeCostumeNotify}
@@ -319,7 +320,8 @@ public final class AvatarChangeCostumeNotifyOuterClass {
      * <pre>
      * CmdId: 1644
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarChangeCostumeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeReqOuterClass.java
index 78c32a39..08791c0c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeReqOuterClass.java
@@ -34,7 +34,7 @@ public final class AvatarChangeCostumeReqOuterClass {
    * <pre>
    * CmdId: 1778
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class AvatarChangeCostumeReqOuterClass {
      * <pre>
      * CmdId: 1778
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeRspOuterClass.java
index 690d7d02..0551615d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeRspOuterClass.java
@@ -40,7 +40,8 @@ public final class AvatarChangeCostumeRspOuterClass {
    * <pre>
    * CmdId: 1645
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarChangeCostumeRsp}
@@ -349,7 +350,8 @@ public final class AvatarChangeCostumeRspOuterClass {
      * <pre>
      * CmdId: 1645
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarChangeCostumeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeReqOuterClass.java
index 584c9d8a..b45c4184 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeReqOuterClass.java
@@ -34,7 +34,7 @@ public final class AvatarChangeElementTypeReqOuterClass {
    * <pre>
    * CmdId: 1785
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class AvatarChangeElementTypeReqOuterClass {
      * <pre>
      * CmdId: 1785
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeRspOuterClass.java
index 010d2d02..1f17f9cb 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeRspOuterClass.java
@@ -28,7 +28,8 @@ public final class AvatarChangeElementTypeRspOuterClass {
    * <pre>
    * CmdId: 1651
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarChangeElementTypeRsp}
@@ -282,7 +283,8 @@ public final class AvatarChangeElementTypeRspOuterClass {
      * <pre>
      * CmdId: 1651
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarChangeElementTypeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarDataNotifyOuterClass.java
index 6c207158..4131f193 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarDataNotifyOuterClass.java
@@ -19,68 +19,78 @@ public final class AvatarDataNotifyOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>repeated uint32 owned_flycloak_list = 1;</code>
-     * @return A list containing the ownedFlycloakList.
+     * <code>repeated uint32 owned_costume_list = 11;</code>
+     * @return A list containing the ownedCostumeList.
      */
-    java.util.List<java.lang.Integer> getOwnedFlycloakListList();
+    java.util.List<java.lang.Integer> getOwnedCostumeListList();
     /**
-     * <code>repeated uint32 owned_flycloak_list = 1;</code>
-     * @return The count of ownedFlycloakList.
+     * <code>repeated uint32 owned_costume_list = 11;</code>
+     * @return The count of ownedCostumeList.
      */
-    int getOwnedFlycloakListCount();
+    int getOwnedCostumeListCount();
     /**
-     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * <code>repeated uint32 owned_costume_list = 11;</code>
      * @param index The index of the element to return.
-     * @return The ownedFlycloakList at the given index.
+     * @return The ownedCostumeList at the given index.
      */
-    int getOwnedFlycloakList(int index);
+    int getOwnedCostumeList(int index);
 
     /**
-     * <code>uint32 cur_avatar_team_id = 2;</code>
-     * @return The curAvatarTeamId.
+     * <code>uint64 choose_avatar_guid = 8;</code>
+     * @return The chooseAvatarGuid.
      */
-    int getCurAvatarTeamId();
+    long getChooseAvatarGuid();
 
     /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
      */
-    java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> 
-        getAvatarListList();
+    int getAvatarTeamMapCount();
     /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
      */
-    emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo getAvatarList(int index);
+    boolean containsAvatarTeamMap(
+        int key);
     /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     * Use {@link #getAvatarTeamMapMap()} instead.
      */
-    int getAvatarListCount();
+    @java.lang.Deprecated
+    java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
+    getAvatarTeamMap();
     /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
      */
-    java.util.List<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
-        getAvatarListOrBuilderList();
+    java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
+    getAvatarTeamMapMap();
     /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
      */
-    emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder getAvatarListOrBuilder(
-        int index);
 
+    emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrDefault(
+        int key,
+        emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam defaultValue);
     /**
-     * <code>repeated uint32 owned_costume_list = 11;</code>
-     * @return A list containing the ownedCostumeList.
+     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
      */
-    java.util.List<java.lang.Integer> getOwnedCostumeListList();
+
+    emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrThrow(
+        int key);
+
     /**
-     * <code>repeated uint32 owned_costume_list = 11;</code>
-     * @return The count of ownedCostumeList.
+     * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+     * @return A list containing the unk3000NIGPICLBHMA.
      */
-    int getOwnedCostumeListCount();
+    java.util.List<java.lang.Integer> getUnk3000NIGPICLBHMAList();
     /**
-     * <code>repeated uint32 owned_costume_list = 11;</code>
+     * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+     * @return The count of unk3000NIGPICLBHMA.
+     */
+    int getUnk3000NIGPICLBHMACount();
+    /**
+     * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
      * @param index The index of the element to return.
-     * @return The ownedCostumeList at the given index.
+     * @return The unk3000NIGPICLBHMA at the given index.
      */
-    int getOwnedCostumeList(int index);
+    int getUnk3000NIGPICLBHMA(int index);
 
     /**
      * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
@@ -100,50 +110,58 @@ public final class AvatarDataNotifyOuterClass {
     long getTempAvatarGuidList(int index);
 
     /**
-     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * @return A list containing the ownedFlycloakList.
      */
-    int getAvatarTeamMapCount();
+    java.util.List<java.lang.Integer> getOwnedFlycloakListList();
     /**
-     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * @return The count of ownedFlycloakList.
      */
-    boolean containsAvatarTeamMap(
-        int key);
+    int getOwnedFlycloakListCount();
     /**
-     * Use {@link #getAvatarTeamMapMap()} instead.
+     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * @param index The index of the element to return.
+     * @return The ownedFlycloakList at the given index.
      */
-    @java.lang.Deprecated
-    java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
-    getAvatarTeamMap();
+    int getOwnedFlycloakList(int index);
+
     /**
-     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
      */
-    java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
-    getAvatarTeamMapMap();
+    java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> 
+        getAvatarListList();
     /**
-     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
      */
-
-    emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrDefault(
-        int key,
-        emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam defaultValue);
+    emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo getAvatarList(int index);
     /**
-     * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
      */
-
-    emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrThrow(
-        int key);
+    int getAvatarListCount();
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
+        getAvatarListOrBuilderList();
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder getAvatarListOrBuilder(
+        int index);
 
     /**
-     * <code>uint64 choose_avatar_guid = 8;</code>
-     * @return The chooseAvatarGuid.
+     * <code>uint32 cur_avatar_team_id = 2;</code>
+     * @return The curAvatarTeamId.
      */
-    long getChooseAvatarGuid();
+    int getCurAvatarTeamId();
   }
   /**
    * <pre>
    * CmdId: 1633
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarDataNotify}
@@ -158,10 +176,11 @@ public final class AvatarDataNotifyOuterClass {
       super(builder);
     }
     private AvatarDataNotify() {
-      ownedFlycloakList_ = emptyIntList();
-      avatarList_ = java.util.Collections.emptyList();
       ownedCostumeList_ = emptyIntList();
+      unk3000NIGPICLBHMA_ = emptyIntList();
       tempAvatarGuidList_ = emptyLongList();
+      ownedFlycloakList_ = emptyIntList();
+      avatarList_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -196,9 +215,9 @@ public final class AvatarDataNotifyOuterClass {
               done = true;
               break;
             case 8: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                 ownedFlycloakList_ = newIntList();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000010;
               }
               ownedFlycloakList_.addInt(input.readUInt32());
               break;
@@ -206,9 +225,9 @@ public final class AvatarDataNotifyOuterClass {
             case 10: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000010) != 0) && input.getBytesUntilLimit() > 0) {
                 ownedFlycloakList_ = newIntList();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000010;
               }
               while (input.getBytesUntilLimit() > 0) {
                 ownedFlycloakList_.addInt(input.readUInt32());
@@ -222,19 +241,19 @@ public final class AvatarDataNotifyOuterClass {
               break;
             }
             case 50: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                 avatarList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo>();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000020;
               }
               avatarList_.add(
                   input.readMessage(emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.parser(), extensionRegistry));
               break;
             }
             case 58: {
-              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                 avatarTeamMap_ = com.google.protobuf.MapField.newMapField(
                     AvatarTeamMapDefaultEntryHolder.defaultEntry);
-                mutable_bitField0_ |= 0x00000010;
+                mutable_bitField0_ |= 0x00000002;
               }
               com.google.protobuf.MapEntry<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
               avatarTeamMap__ = input.readMessage(
@@ -248,20 +267,41 @@ public final class AvatarDataNotifyOuterClass {
               chooseAvatarGuid_ = input.readUInt64();
               break;
             }
-            case 88: {
+            case 72: {
               if (!((mutable_bitField0_ & 0x00000004) != 0)) {
-                ownedCostumeList_ = newIntList();
+                unk3000NIGPICLBHMA_ = newIntList();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              unk3000NIGPICLBHMA_.addInt(input.readUInt32());
+              break;
+            }
+            case 74: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
+                unk3000NIGPICLBHMA_ = newIntList();
                 mutable_bitField0_ |= 0x00000004;
               }
+              while (input.getBytesUntilLimit() > 0) {
+                unk3000NIGPICLBHMA_.addInt(input.readUInt32());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 88: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                ownedCostumeList_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
               ownedCostumeList_.addInt(input.readUInt32());
               break;
             }
             case 90: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                 ownedCostumeList_ = newIntList();
-                mutable_bitField0_ |= 0x00000004;
+                mutable_bitField0_ |= 0x00000001;
               }
               while (input.getBytesUntilLimit() > 0) {
                 ownedCostumeList_.addInt(input.readUInt32());
@@ -305,13 +345,16 @@ public final class AvatarDataNotifyOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+        if (((mutable_bitField0_ & 0x00000010) != 0)) {
           ownedFlycloakList_.makeImmutable(); // C
         }
-        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        if (((mutable_bitField0_ & 0x00000020) != 0)) {
           avatarList_ = java.util.Collections.unmodifiableList(avatarList_);
         }
         if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          unk3000NIGPICLBHMA_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
           ownedCostumeList_.makeImmutable(); // C
         }
         if (((mutable_bitField0_ & 0x00000008) != 0)) {
@@ -346,85 +389,6 @@ public final class AvatarDataNotifyOuterClass {
               emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify.class, emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify.Builder.class);
     }
 
-    public static final int OWNED_FLYCLOAK_LIST_FIELD_NUMBER = 1;
-    private com.google.protobuf.Internal.IntList ownedFlycloakList_;
-    /**
-     * <code>repeated uint32 owned_flycloak_list = 1;</code>
-     * @return A list containing the ownedFlycloakList.
-     */
-    @java.lang.Override
-    public java.util.List<java.lang.Integer>
-        getOwnedFlycloakListList() {
-      return ownedFlycloakList_;
-    }
-    /**
-     * <code>repeated uint32 owned_flycloak_list = 1;</code>
-     * @return The count of ownedFlycloakList.
-     */
-    public int getOwnedFlycloakListCount() {
-      return ownedFlycloakList_.size();
-    }
-    /**
-     * <code>repeated uint32 owned_flycloak_list = 1;</code>
-     * @param index The index of the element to return.
-     * @return The ownedFlycloakList at the given index.
-     */
-    public int getOwnedFlycloakList(int index) {
-      return ownedFlycloakList_.getInt(index);
-    }
-    private int ownedFlycloakListMemoizedSerializedSize = -1;
-
-    public static final int CUR_AVATAR_TEAM_ID_FIELD_NUMBER = 2;
-    private int curAvatarTeamId_;
-    /**
-     * <code>uint32 cur_avatar_team_id = 2;</code>
-     * @return The curAvatarTeamId.
-     */
-    @java.lang.Override
-    public int getCurAvatarTeamId() {
-      return curAvatarTeamId_;
-    }
-
-    public static final int AVATAR_LIST_FIELD_NUMBER = 6;
-    private java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> avatarList_;
-    /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
-     */
-    @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> getAvatarListList() {
-      return avatarList_;
-    }
-    /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
-     */
-    @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
-        getAvatarListOrBuilderList() {
-      return avatarList_;
-    }
-    /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
-     */
-    @java.lang.Override
-    public int getAvatarListCount() {
-      return avatarList_.size();
-    }
-    /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo getAvatarList(int index) {
-      return avatarList_.get(index);
-    }
-    /**
-     * <code>repeated .AvatarInfo avatar_list = 6;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder getAvatarListOrBuilder(
-        int index) {
-      return avatarList_.get(index);
-    }
-
     public static final int OWNED_COSTUME_LIST_FIELD_NUMBER = 11;
     private com.google.protobuf.Internal.IntList ownedCostumeList_;
     /**
@@ -453,33 +417,16 @@ public final class AvatarDataNotifyOuterClass {
     }
     private int ownedCostumeListMemoizedSerializedSize = -1;
 
-    public static final int TEMP_AVATAR_GUID_LIST_FIELD_NUMBER = 12;
-    private com.google.protobuf.Internal.LongList tempAvatarGuidList_;
+    public static final int CHOOSE_AVATAR_GUID_FIELD_NUMBER = 8;
+    private long chooseAvatarGuid_;
     /**
-     * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
-     * @return A list containing the tempAvatarGuidList.
+     * <code>uint64 choose_avatar_guid = 8;</code>
+     * @return The chooseAvatarGuid.
      */
     @java.lang.Override
-    public java.util.List<java.lang.Long>
-        getTempAvatarGuidListList() {
-      return tempAvatarGuidList_;
-    }
-    /**
-     * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
-     * @return The count of tempAvatarGuidList.
-     */
-    public int getTempAvatarGuidListCount() {
-      return tempAvatarGuidList_.size();
-    }
-    /**
-     * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
-     * @param index The index of the element to return.
-     * @return The tempAvatarGuidList at the given index.
-     */
-    public long getTempAvatarGuidList(int index) {
-      return tempAvatarGuidList_.getLong(index);
+    public long getChooseAvatarGuid() {
+      return chooseAvatarGuid_;
     }
-    private int tempAvatarGuidListMemoizedSerializedSize = -1;
 
     public static final int AVATAR_TEAM_MAP_FIELD_NUMBER = 7;
     private static final class AvatarTeamMapDefaultEntryHolder {
@@ -562,15 +509,139 @@ public final class AvatarDataNotifyOuterClass {
       return map.get(key);
     }
 
-    public static final int CHOOSE_AVATAR_GUID_FIELD_NUMBER = 8;
-    private long chooseAvatarGuid_;
+    public static final int UNK3000_NIGPICLBHMA_FIELD_NUMBER = 9;
+    private com.google.protobuf.Internal.IntList unk3000NIGPICLBHMA_;
     /**
-     * <code>uint64 choose_avatar_guid = 8;</code>
-     * @return The chooseAvatarGuid.
+     * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+     * @return A list containing the unk3000NIGPICLBHMA.
      */
     @java.lang.Override
-    public long getChooseAvatarGuid() {
-      return chooseAvatarGuid_;
+    public java.util.List<java.lang.Integer>
+        getUnk3000NIGPICLBHMAList() {
+      return unk3000NIGPICLBHMA_;
+    }
+    /**
+     * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+     * @return The count of unk3000NIGPICLBHMA.
+     */
+    public int getUnk3000NIGPICLBHMACount() {
+      return unk3000NIGPICLBHMA_.size();
+    }
+    /**
+     * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+     * @param index The index of the element to return.
+     * @return The unk3000NIGPICLBHMA at the given index.
+     */
+    public int getUnk3000NIGPICLBHMA(int index) {
+      return unk3000NIGPICLBHMA_.getInt(index);
+    }
+    private int unk3000NIGPICLBHMAMemoizedSerializedSize = -1;
+
+    public static final int TEMP_AVATAR_GUID_LIST_FIELD_NUMBER = 12;
+    private com.google.protobuf.Internal.LongList tempAvatarGuidList_;
+    /**
+     * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
+     * @return A list containing the tempAvatarGuidList.
+     */
+    @java.lang.Override
+    public java.util.List<java.lang.Long>
+        getTempAvatarGuidListList() {
+      return tempAvatarGuidList_;
+    }
+    /**
+     * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
+     * @return The count of tempAvatarGuidList.
+     */
+    public int getTempAvatarGuidListCount() {
+      return tempAvatarGuidList_.size();
+    }
+    /**
+     * <code>repeated uint64 temp_avatar_guid_list = 12;</code>
+     * @param index The index of the element to return.
+     * @return The tempAvatarGuidList at the given index.
+     */
+    public long getTempAvatarGuidList(int index) {
+      return tempAvatarGuidList_.getLong(index);
+    }
+    private int tempAvatarGuidListMemoizedSerializedSize = -1;
+
+    public static final int OWNED_FLYCLOAK_LIST_FIELD_NUMBER = 1;
+    private com.google.protobuf.Internal.IntList ownedFlycloakList_;
+    /**
+     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * @return A list containing the ownedFlycloakList.
+     */
+    @java.lang.Override
+    public java.util.List<java.lang.Integer>
+        getOwnedFlycloakListList() {
+      return ownedFlycloakList_;
+    }
+    /**
+     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * @return The count of ownedFlycloakList.
+     */
+    public int getOwnedFlycloakListCount() {
+      return ownedFlycloakList_.size();
+    }
+    /**
+     * <code>repeated uint32 owned_flycloak_list = 1;</code>
+     * @param index The index of the element to return.
+     * @return The ownedFlycloakList at the given index.
+     */
+    public int getOwnedFlycloakList(int index) {
+      return ownedFlycloakList_.getInt(index);
+    }
+    private int ownedFlycloakListMemoizedSerializedSize = -1;
+
+    public static final int AVATAR_LIST_FIELD_NUMBER = 6;
+    private java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> avatarList_;
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    @java.lang.Override
+    public java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> getAvatarListList() {
+      return avatarList_;
+    }
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
+        getAvatarListOrBuilderList() {
+      return avatarList_;
+    }
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    @java.lang.Override
+    public int getAvatarListCount() {
+      return avatarList_.size();
+    }
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo getAvatarList(int index) {
+      return avatarList_.get(index);
+    }
+    /**
+     * <code>repeated .AvatarInfo avatar_list = 6;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder getAvatarListOrBuilder(
+        int index) {
+      return avatarList_.get(index);
+    }
+
+    public static final int CUR_AVATAR_TEAM_ID_FIELD_NUMBER = 2;
+    private int curAvatarTeamId_;
+    /**
+     * <code>uint32 cur_avatar_team_id = 2;</code>
+     * @return The curAvatarTeamId.
+     */
+    @java.lang.Override
+    public int getCurAvatarTeamId() {
+      return curAvatarTeamId_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -610,6 +681,13 @@ public final class AvatarDataNotifyOuterClass {
       if (chooseAvatarGuid_ != 0L) {
         output.writeUInt64(8, chooseAvatarGuid_);
       }
+      if (getUnk3000NIGPICLBHMAList().size() > 0) {
+        output.writeUInt32NoTag(74);
+        output.writeUInt32NoTag(unk3000NIGPICLBHMAMemoizedSerializedSize);
+      }
+      for (int i = 0; i < unk3000NIGPICLBHMA_.size(); i++) {
+        output.writeUInt32NoTag(unk3000NIGPICLBHMA_.getInt(i));
+      }
       if (getOwnedCostumeListList().size() > 0) {
         output.writeUInt32NoTag(90);
         output.writeUInt32NoTag(ownedCostumeListMemoizedSerializedSize);
@@ -669,6 +747,20 @@ public final class AvatarDataNotifyOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeUInt64Size(8, chooseAvatarGuid_);
       }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < unk3000NIGPICLBHMA_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeUInt32SizeNoTag(unk3000NIGPICLBHMA_.getInt(i));
+        }
+        size += dataSize;
+        if (!getUnk3000NIGPICLBHMAList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        unk3000NIGPICLBHMAMemoizedSerializedSize = dataSize;
+      }
       {
         int dataSize = 0;
         for (int i = 0; i < ownedCostumeList_.size(); i++) {
@@ -712,20 +804,22 @@ public final class AvatarDataNotifyOuterClass {
       }
       emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify other = (emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify) obj;
 
-      if (!getOwnedFlycloakListList()
-          .equals(other.getOwnedFlycloakListList())) return false;
-      if (getCurAvatarTeamId()
-          != other.getCurAvatarTeamId()) return false;
-      if (!getAvatarListList()
-          .equals(other.getAvatarListList())) return false;
       if (!getOwnedCostumeListList()
           .equals(other.getOwnedCostumeListList())) return false;
-      if (!getTempAvatarGuidListList()
-          .equals(other.getTempAvatarGuidListList())) return false;
-      if (!internalGetAvatarTeamMap().equals(
-          other.internalGetAvatarTeamMap())) return false;
       if (getChooseAvatarGuid()
           != other.getChooseAvatarGuid()) return false;
+      if (!internalGetAvatarTeamMap().equals(
+          other.internalGetAvatarTeamMap())) return false;
+      if (!getUnk3000NIGPICLBHMAList()
+          .equals(other.getUnk3000NIGPICLBHMAList())) return false;
+      if (!getTempAvatarGuidListList()
+          .equals(other.getTempAvatarGuidListList())) return false;
+      if (!getOwnedFlycloakListList()
+          .equals(other.getOwnedFlycloakListList())) return false;
+      if (!getAvatarListList()
+          .equals(other.getAvatarListList())) return false;
+      if (getCurAvatarTeamId()
+          != other.getCurAvatarTeamId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -737,31 +831,35 @@ public final class AvatarDataNotifyOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      if (getOwnedFlycloakListCount() > 0) {
-        hash = (37 * hash) + OWNED_FLYCLOAK_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getOwnedFlycloakListList().hashCode();
-      }
-      hash = (37 * hash) + CUR_AVATAR_TEAM_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getCurAvatarTeamId();
-      if (getAvatarListCount() > 0) {
-        hash = (37 * hash) + AVATAR_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getAvatarListList().hashCode();
-      }
       if (getOwnedCostumeListCount() > 0) {
         hash = (37 * hash) + OWNED_COSTUME_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getOwnedCostumeListList().hashCode();
       }
+      hash = (37 * hash) + CHOOSE_AVATAR_GUID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getChooseAvatarGuid());
+      if (!internalGetAvatarTeamMap().getMap().isEmpty()) {
+        hash = (37 * hash) + AVATAR_TEAM_MAP_FIELD_NUMBER;
+        hash = (53 * hash) + internalGetAvatarTeamMap().hashCode();
+      }
+      if (getUnk3000NIGPICLBHMACount() > 0) {
+        hash = (37 * hash) + UNK3000_NIGPICLBHMA_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk3000NIGPICLBHMAList().hashCode();
+      }
       if (getTempAvatarGuidListCount() > 0) {
         hash = (37 * hash) + TEMP_AVATAR_GUID_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getTempAvatarGuidListList().hashCode();
       }
-      if (!internalGetAvatarTeamMap().getMap().isEmpty()) {
-        hash = (37 * hash) + AVATAR_TEAM_MAP_FIELD_NUMBER;
-        hash = (53 * hash) + internalGetAvatarTeamMap().hashCode();
+      if (getOwnedFlycloakListCount() > 0) {
+        hash = (37 * hash) + OWNED_FLYCLOAK_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getOwnedFlycloakListList().hashCode();
       }
-      hash = (37 * hash) + CHOOSE_AVATAR_GUID_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getChooseAvatarGuid());
+      if (getAvatarListCount() > 0) {
+        hash = (37 * hash) + AVATAR_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getAvatarListList().hashCode();
+      }
+      hash = (37 * hash) + CUR_AVATAR_TEAM_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getCurAvatarTeamId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -861,7 +959,8 @@ public final class AvatarDataNotifyOuterClass {
      * <pre>
      * CmdId: 1633
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarDataNotify}
@@ -924,22 +1023,24 @@ public final class AvatarDataNotifyOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        ownedFlycloakList_ = emptyIntList();
+        ownedCostumeList_ = emptyIntList();
         bitField0_ = (bitField0_ & ~0x00000001);
-        curAvatarTeamId_ = 0;
+        chooseAvatarGuid_ = 0L;
 
+        internalGetMutableAvatarTeamMap().clear();
+        unk3000NIGPICLBHMA_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000004);
+        tempAvatarGuidList_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000008);
+        ownedFlycloakList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000010);
         if (avatarListBuilder_ == null) {
           avatarList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
+          bitField0_ = (bitField0_ & ~0x00000020);
         } else {
           avatarListBuilder_.clear();
         }
-        ownedCostumeList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000004);
-        tempAvatarGuidList_ = emptyLongList();
-        bitField0_ = (bitField0_ & ~0x00000008);
-        internalGetMutableAvatarTeamMap().clear();
-        chooseAvatarGuid_ = 0L;
+        curAvatarTeamId_ = 0;
 
         return this;
       }
@@ -969,33 +1070,38 @@ public final class AvatarDataNotifyOuterClass {
         emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify result = new emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify(this);
         int from_bitField0_ = bitField0_;
         if (((bitField0_ & 0x00000001) != 0)) {
-          ownedFlycloakList_.makeImmutable();
+          ownedCostumeList_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000001);
         }
-        result.ownedFlycloakList_ = ownedFlycloakList_;
-        result.curAvatarTeamId_ = curAvatarTeamId_;
-        if (avatarListBuilder_ == null) {
-          if (((bitField0_ & 0x00000002) != 0)) {
-            avatarList_ = java.util.Collections.unmodifiableList(avatarList_);
-            bitField0_ = (bitField0_ & ~0x00000002);
-          }
-          result.avatarList_ = avatarList_;
-        } else {
-          result.avatarList_ = avatarListBuilder_.build();
-        }
+        result.ownedCostumeList_ = ownedCostumeList_;
+        result.chooseAvatarGuid_ = chooseAvatarGuid_;
+        result.avatarTeamMap_ = internalGetAvatarTeamMap();
+        result.avatarTeamMap_.makeImmutable();
         if (((bitField0_ & 0x00000004) != 0)) {
-          ownedCostumeList_.makeImmutable();
+          unk3000NIGPICLBHMA_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000004);
         }
-        result.ownedCostumeList_ = ownedCostumeList_;
+        result.unk3000NIGPICLBHMA_ = unk3000NIGPICLBHMA_;
         if (((bitField0_ & 0x00000008) != 0)) {
           tempAvatarGuidList_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000008);
         }
         result.tempAvatarGuidList_ = tempAvatarGuidList_;
-        result.avatarTeamMap_ = internalGetAvatarTeamMap();
-        result.avatarTeamMap_.makeImmutable();
-        result.chooseAvatarGuid_ = chooseAvatarGuid_;
+        if (((bitField0_ & 0x00000010) != 0)) {
+          ownedFlycloakList_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000010);
+        }
+        result.ownedFlycloakList_ = ownedFlycloakList_;
+        if (avatarListBuilder_ == null) {
+          if (((bitField0_ & 0x00000020) != 0)) {
+            avatarList_ = java.util.Collections.unmodifiableList(avatarList_);
+            bitField0_ = (bitField0_ & ~0x00000020);
+          }
+          result.avatarList_ = avatarList_;
+        } else {
+          result.avatarList_ = avatarListBuilder_.build();
+        }
+        result.curAvatarTeamId_ = curAvatarTeamId_;
         onBuilt();
         return result;
       }
@@ -1044,24 +1150,56 @@ public final class AvatarDataNotifyOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify other) {
         if (other == emu.grasscutter.net.proto.AvatarDataNotifyOuterClass.AvatarDataNotify.getDefaultInstance()) return this;
-        if (!other.ownedFlycloakList_.isEmpty()) {
-          if (ownedFlycloakList_.isEmpty()) {
-            ownedFlycloakList_ = other.ownedFlycloakList_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+        if (!other.ownedCostumeList_.isEmpty()) {
+          if (ownedCostumeList_.isEmpty()) {
+            ownedCostumeList_ = other.ownedCostumeList_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureOwnedCostumeListIsMutable();
+            ownedCostumeList_.addAll(other.ownedCostumeList_);
+          }
+          onChanged();
+        }
+        if (other.getChooseAvatarGuid() != 0L) {
+          setChooseAvatarGuid(other.getChooseAvatarGuid());
+        }
+        internalGetMutableAvatarTeamMap().mergeFrom(
+            other.internalGetAvatarTeamMap());
+        if (!other.unk3000NIGPICLBHMA_.isEmpty()) {
+          if (unk3000NIGPICLBHMA_.isEmpty()) {
+            unk3000NIGPICLBHMA_ = other.unk3000NIGPICLBHMA_;
+            bitField0_ = (bitField0_ & ~0x00000004);
+          } else {
+            ensureUnk3000NIGPICLBHMAIsMutable();
+            unk3000NIGPICLBHMA_.addAll(other.unk3000NIGPICLBHMA_);
+          }
+          onChanged();
+        }
+        if (!other.tempAvatarGuidList_.isEmpty()) {
+          if (tempAvatarGuidList_.isEmpty()) {
+            tempAvatarGuidList_ = other.tempAvatarGuidList_;
+            bitField0_ = (bitField0_ & ~0x00000008);
+          } else {
+            ensureTempAvatarGuidListIsMutable();
+            tempAvatarGuidList_.addAll(other.tempAvatarGuidList_);
+          }
+          onChanged();
+        }
+        if (!other.ownedFlycloakList_.isEmpty()) {
+          if (ownedFlycloakList_.isEmpty()) {
+            ownedFlycloakList_ = other.ownedFlycloakList_;
+            bitField0_ = (bitField0_ & ~0x00000010);
           } else {
             ensureOwnedFlycloakListIsMutable();
             ownedFlycloakList_.addAll(other.ownedFlycloakList_);
           }
           onChanged();
         }
-        if (other.getCurAvatarTeamId() != 0) {
-          setCurAvatarTeamId(other.getCurAvatarTeamId());
-        }
         if (avatarListBuilder_ == null) {
           if (!other.avatarList_.isEmpty()) {
             if (avatarList_.isEmpty()) {
               avatarList_ = other.avatarList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
+              bitField0_ = (bitField0_ & ~0x00000020);
             } else {
               ensureAvatarListIsMutable();
               avatarList_.addAll(other.avatarList_);
@@ -1074,7 +1212,7 @@ public final class AvatarDataNotifyOuterClass {
               avatarListBuilder_.dispose();
               avatarListBuilder_ = null;
               avatarList_ = other.avatarList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
+              bitField0_ = (bitField0_ & ~0x00000020);
               avatarListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getAvatarListFieldBuilder() : null;
@@ -1083,30 +1221,8 @@ public final class AvatarDataNotifyOuterClass {
             }
           }
         }
-        if (!other.ownedCostumeList_.isEmpty()) {
-          if (ownedCostumeList_.isEmpty()) {
-            ownedCostumeList_ = other.ownedCostumeList_;
-            bitField0_ = (bitField0_ & ~0x00000004);
-          } else {
-            ensureOwnedCostumeListIsMutable();
-            ownedCostumeList_.addAll(other.ownedCostumeList_);
-          }
-          onChanged();
-        }
-        if (!other.tempAvatarGuidList_.isEmpty()) {
-          if (tempAvatarGuidList_.isEmpty()) {
-            tempAvatarGuidList_ = other.tempAvatarGuidList_;
-            bitField0_ = (bitField0_ & ~0x00000008);
-          } else {
-            ensureTempAvatarGuidListIsMutable();
-            tempAvatarGuidList_.addAll(other.tempAvatarGuidList_);
-          }
-          onChanged();
-        }
-        internalGetMutableAvatarTeamMap().mergeFrom(
-            other.internalGetAvatarTeamMap());
-        if (other.getChooseAvatarGuid() != 0L) {
-          setChooseAvatarGuid(other.getChooseAvatarGuid());
+        if (other.getCurAvatarTeamId() != 0) {
+          setCurAvatarTeamId(other.getCurAvatarTeamId());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -1138,430 +1254,318 @@ public final class AvatarDataNotifyOuterClass {
       }
       private int bitField0_;
 
-      private com.google.protobuf.Internal.IntList ownedFlycloakList_ = emptyIntList();
-      private void ensureOwnedFlycloakListIsMutable() {
+      private com.google.protobuf.Internal.IntList ownedCostumeList_ = emptyIntList();
+      private void ensureOwnedCostumeListIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          ownedFlycloakList_ = mutableCopy(ownedFlycloakList_);
+          ownedCostumeList_ = mutableCopy(ownedCostumeList_);
           bitField0_ |= 0x00000001;
          }
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
-       * @return A list containing the ownedFlycloakList.
+       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * @return A list containing the ownedCostumeList.
        */
       public java.util.List<java.lang.Integer>
-          getOwnedFlycloakListList() {
+          getOwnedCostumeListList() {
         return ((bitField0_ & 0x00000001) != 0) ?
-                 java.util.Collections.unmodifiableList(ownedFlycloakList_) : ownedFlycloakList_;
+                 java.util.Collections.unmodifiableList(ownedCostumeList_) : ownedCostumeList_;
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
-       * @return The count of ownedFlycloakList.
+       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * @return The count of ownedCostumeList.
        */
-      public int getOwnedFlycloakListCount() {
-        return ownedFlycloakList_.size();
+      public int getOwnedCostumeListCount() {
+        return ownedCostumeList_.size();
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * <code>repeated uint32 owned_costume_list = 11;</code>
        * @param index The index of the element to return.
-       * @return The ownedFlycloakList at the given index.
+       * @return The ownedCostumeList at the given index.
        */
-      public int getOwnedFlycloakList(int index) {
-        return ownedFlycloakList_.getInt(index);
+      public int getOwnedCostumeList(int index) {
+        return ownedCostumeList_.getInt(index);
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * <code>repeated uint32 owned_costume_list = 11;</code>
        * @param index The index to set the value at.
-       * @param value The ownedFlycloakList to set.
+       * @param value The ownedCostumeList to set.
        * @return This builder for chaining.
        */
-      public Builder setOwnedFlycloakList(
+      public Builder setOwnedCostumeList(
           int index, int value) {
-        ensureOwnedFlycloakListIsMutable();
-        ownedFlycloakList_.setInt(index, value);
+        ensureOwnedCostumeListIsMutable();
+        ownedCostumeList_.setInt(index, value);
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
-       * @param value The ownedFlycloakList to add.
+       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * @param value The ownedCostumeList to add.
        * @return This builder for chaining.
        */
-      public Builder addOwnedFlycloakList(int value) {
-        ensureOwnedFlycloakListIsMutable();
-        ownedFlycloakList_.addInt(value);
+      public Builder addOwnedCostumeList(int value) {
+        ensureOwnedCostumeListIsMutable();
+        ownedCostumeList_.addInt(value);
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
-       * @param values The ownedFlycloakList to add.
+       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * @param values The ownedCostumeList to add.
        * @return This builder for chaining.
        */
-      public Builder addAllOwnedFlycloakList(
+      public Builder addAllOwnedCostumeList(
           java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureOwnedFlycloakListIsMutable();
+        ensureOwnedCostumeListIsMutable();
         com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, ownedFlycloakList_);
+            values, ownedCostumeList_);
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * <code>repeated uint32 owned_costume_list = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder clearOwnedFlycloakList() {
-        ownedFlycloakList_ = emptyIntList();
+      public Builder clearOwnedCostumeList() {
+        ownedCostumeList_ = emptyIntList();
         bitField0_ = (bitField0_ & ~0x00000001);
         onChanged();
         return this;
       }
 
-      private int curAvatarTeamId_ ;
+      private long chooseAvatarGuid_ ;
       /**
-       * <code>uint32 cur_avatar_team_id = 2;</code>
-       * @return The curAvatarTeamId.
+       * <code>uint64 choose_avatar_guid = 8;</code>
+       * @return The chooseAvatarGuid.
        */
       @java.lang.Override
-      public int getCurAvatarTeamId() {
-        return curAvatarTeamId_;
+      public long getChooseAvatarGuid() {
+        return chooseAvatarGuid_;
       }
       /**
-       * <code>uint32 cur_avatar_team_id = 2;</code>
-       * @param value The curAvatarTeamId to set.
+       * <code>uint64 choose_avatar_guid = 8;</code>
+       * @param value The chooseAvatarGuid to set.
        * @return This builder for chaining.
        */
-      public Builder setCurAvatarTeamId(int value) {
+      public Builder setChooseAvatarGuid(long value) {
         
-        curAvatarTeamId_ = value;
+        chooseAvatarGuid_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cur_avatar_team_id = 2;</code>
+       * <code>uint64 choose_avatar_guid = 8;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCurAvatarTeamId() {
+      public Builder clearChooseAvatarGuid() {
         
-        curAvatarTeamId_ = 0;
+        chooseAvatarGuid_ = 0L;
         onChanged();
         return this;
       }
 
-      private java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> avatarList_ =
-        java.util.Collections.emptyList();
-      private void ensureAvatarListIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
-          avatarList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo>(avatarList_);
-          bitField0_ |= 0x00000002;
-         }
+      private com.google.protobuf.MapField<
+          java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> avatarTeamMap_;
+      private com.google.protobuf.MapField<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
+      internalGetAvatarTeamMap() {
+        if (avatarTeamMap_ == null) {
+          return com.google.protobuf.MapField.emptyMapField(
+              AvatarTeamMapDefaultEntryHolder.defaultEntry);
+        }
+        return avatarTeamMap_;
+      }
+      private com.google.protobuf.MapField<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
+      internalGetMutableAvatarTeamMap() {
+        onChanged();;
+        if (avatarTeamMap_ == null) {
+          avatarTeamMap_ = com.google.protobuf.MapField.newMapField(
+              AvatarTeamMapDefaultEntryHolder.defaultEntry);
+        }
+        if (!avatarTeamMap_.isMutable()) {
+          avatarTeamMap_ = avatarTeamMap_.copy();
+        }
+        return avatarTeamMap_;
       }
 
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> avatarListBuilder_;
-
+      public int getAvatarTeamMapCount() {
+        return internalGetAvatarTeamMap().getMap().size();
+      }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> getAvatarListList() {
-        if (avatarListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(avatarList_);
-        } else {
-          return avatarListBuilder_.getMessageList();
-        }
+
+      @java.lang.Override
+      public boolean containsAvatarTeamMap(
+          int key) {
+        
+        return internalGetAvatarTeamMap().getMap().containsKey(key);
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * Use {@link #getAvatarTeamMapMap()} instead.
        */
-      public int getAvatarListCount() {
-        if (avatarListBuilder_ == null) {
-          return avatarList_.size();
-        } else {
-          return avatarListBuilder_.getCount();
-        }
+      @java.lang.Override
+      @java.lang.Deprecated
+      public java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> getAvatarTeamMap() {
+        return getAvatarTeamMapMap();
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo getAvatarList(int index) {
-        if (avatarListBuilder_ == null) {
-          return avatarList_.get(index);
-        } else {
-          return avatarListBuilder_.getMessage(index);
-        }
+      @java.lang.Override
+
+      public java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> getAvatarTeamMapMap() {
+        return internalGetAvatarTeamMap().getMap();
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public Builder setAvatarList(
-          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo value) {
-        if (avatarListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureAvatarListIsMutable();
-          avatarList_.set(index, value);
-          onChanged();
-        } else {
-          avatarListBuilder_.setMessage(index, value);
-        }
-        return this;
+      @java.lang.Override
+
+      public emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrDefault(
+          int key,
+          emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam defaultValue) {
+        
+        java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> map =
+            internalGetAvatarTeamMap().getMap();
+        return map.containsKey(key) ? map.get(key) : defaultValue;
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public Builder setAvatarList(
-          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder builderForValue) {
-        if (avatarListBuilder_ == null) {
-          ensureAvatarListIsMutable();
-          avatarList_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          avatarListBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public Builder addAvatarList(emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo value) {
-        if (avatarListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureAvatarListIsMutable();
-          avatarList_.add(value);
-          onChanged();
-        } else {
-          avatarListBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public Builder addAvatarList(
-          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo value) {
-        if (avatarListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureAvatarListIsMutable();
-          avatarList_.add(index, value);
-          onChanged();
-        } else {
-          avatarListBuilder_.addMessage(index, value);
+      @java.lang.Override
+
+      public emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrThrow(
+          int key) {
+        
+        java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> map =
+            internalGetAvatarTeamMap().getMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
         }
-        return this;
+        return map.get(key);
       }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public Builder addAvatarList(
-          emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder builderForValue) {
-        if (avatarListBuilder_ == null) {
-          ensureAvatarListIsMutable();
-          avatarList_.add(builderForValue.build());
-          onChanged();
-        } else {
-          avatarListBuilder_.addMessage(builderForValue.build());
-        }
+
+      public Builder clearAvatarTeamMap() {
+        internalGetMutableAvatarTeamMap().getMutableMap()
+            .clear();
         return this;
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public Builder addAvatarList(
-          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder builderForValue) {
-        if (avatarListBuilder_ == null) {
-          ensureAvatarListIsMutable();
-          avatarList_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          avatarListBuilder_.addMessage(index, builderForValue.build());
-        }
+
+      public Builder removeAvatarTeamMap(
+          int key) {
+        
+        internalGetMutableAvatarTeamMap().getMutableMap()
+            .remove(key);
         return this;
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * Use alternate mutation accessors instead.
        */
-      public Builder addAllAvatarList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> values) {
-        if (avatarListBuilder_ == null) {
-          ensureAvatarListIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, avatarList_);
-          onChanged();
-        } else {
-          avatarListBuilder_.addAllMessages(values);
-        }
-        return this;
+      @java.lang.Deprecated
+      public java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
+      getMutableAvatarTeamMap() {
+        return internalGetMutableAvatarTeamMap().getMutableMap();
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public Builder clearAvatarList() {
-        if (avatarListBuilder_ == null) {
-          avatarList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
-          onChanged();
-        } else {
-          avatarListBuilder_.clear();
-        }
+      public Builder putAvatarTeamMap(
+          int key,
+          emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam value) {
+        
+        if (value == null) { throw new java.lang.NullPointerException(); }
+        internalGetMutableAvatarTeamMap().getMutableMap()
+            .put(key, value);
         return this;
       }
       /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
        */
-      public Builder removeAvatarList(int index) {
-        if (avatarListBuilder_ == null) {
-          ensureAvatarListIsMutable();
-          avatarList_.remove(index);
-          onChanged();
-        } else {
-          avatarListBuilder_.remove(index);
-        }
+
+      public Builder putAllAvatarTeamMap(
+          java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> values) {
+        internalGetMutableAvatarTeamMap().getMutableMap()
+            .putAll(values);
         return this;
       }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder getAvatarListBuilder(
-          int index) {
-        return getAvatarListFieldBuilder().getBuilder(index);
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder getAvatarListOrBuilder(
-          int index) {
-        if (avatarListBuilder_ == null) {
-          return avatarList_.get(index);  } else {
-          return avatarListBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public java.util.List<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
-           getAvatarListOrBuilderList() {
-        if (avatarListBuilder_ != null) {
-          return avatarListBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(avatarList_);
-        }
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder addAvatarListBuilder() {
-        return getAvatarListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder addAvatarListBuilder(
-          int index) {
-        return getAvatarListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .AvatarInfo avatar_list = 6;</code>
-       */
-      public java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder> 
-           getAvatarListBuilderList() {
-        return getAvatarListFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
-          getAvatarListFieldBuilder() {
-        if (avatarListBuilder_ == null) {
-          avatarListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder>(
-                  avatarList_,
-                  ((bitField0_ & 0x00000002) != 0),
-                  getParentForChildren(),
-                  isClean());
-          avatarList_ = null;
-        }
-        return avatarListBuilder_;
-      }
 
-      private com.google.protobuf.Internal.IntList ownedCostumeList_ = emptyIntList();
-      private void ensureOwnedCostumeListIsMutable() {
+      private com.google.protobuf.Internal.IntList unk3000NIGPICLBHMA_ = emptyIntList();
+      private void ensureUnk3000NIGPICLBHMAIsMutable() {
         if (!((bitField0_ & 0x00000004) != 0)) {
-          ownedCostumeList_ = mutableCopy(ownedCostumeList_);
+          unk3000NIGPICLBHMA_ = mutableCopy(unk3000NIGPICLBHMA_);
           bitField0_ |= 0x00000004;
          }
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
-       * @return A list containing the ownedCostumeList.
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+       * @return A list containing the unk3000NIGPICLBHMA.
        */
       public java.util.List<java.lang.Integer>
-          getOwnedCostumeListList() {
+          getUnk3000NIGPICLBHMAList() {
         return ((bitField0_ & 0x00000004) != 0) ?
-                 java.util.Collections.unmodifiableList(ownedCostumeList_) : ownedCostumeList_;
+                 java.util.Collections.unmodifiableList(unk3000NIGPICLBHMA_) : unk3000NIGPICLBHMA_;
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
-       * @return The count of ownedCostumeList.
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+       * @return The count of unk3000NIGPICLBHMA.
        */
-      public int getOwnedCostumeListCount() {
-        return ownedCostumeList_.size();
+      public int getUnk3000NIGPICLBHMACount() {
+        return unk3000NIGPICLBHMA_.size();
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
        * @param index The index of the element to return.
-       * @return The ownedCostumeList at the given index.
+       * @return The unk3000NIGPICLBHMA at the given index.
        */
-      public int getOwnedCostumeList(int index) {
-        return ownedCostumeList_.getInt(index);
+      public int getUnk3000NIGPICLBHMA(int index) {
+        return unk3000NIGPICLBHMA_.getInt(index);
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
        * @param index The index to set the value at.
-       * @param value The ownedCostumeList to set.
+       * @param value The unk3000NIGPICLBHMA to set.
        * @return This builder for chaining.
        */
-      public Builder setOwnedCostumeList(
+      public Builder setUnk3000NIGPICLBHMA(
           int index, int value) {
-        ensureOwnedCostumeListIsMutable();
-        ownedCostumeList_.setInt(index, value);
+        ensureUnk3000NIGPICLBHMAIsMutable();
+        unk3000NIGPICLBHMA_.setInt(index, value);
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
-       * @param value The ownedCostumeList to add.
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+       * @param value The unk3000NIGPICLBHMA to add.
        * @return This builder for chaining.
        */
-      public Builder addOwnedCostumeList(int value) {
-        ensureOwnedCostumeListIsMutable();
-        ownedCostumeList_.addInt(value);
+      public Builder addUnk3000NIGPICLBHMA(int value) {
+        ensureUnk3000NIGPICLBHMAIsMutable();
+        unk3000NIGPICLBHMA_.addInt(value);
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
-       * @param values The ownedCostumeList to add.
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
+       * @param values The unk3000NIGPICLBHMA to add.
        * @return This builder for chaining.
        */
-      public Builder addAllOwnedCostumeList(
+      public Builder addAllUnk3000NIGPICLBHMA(
           java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureOwnedCostumeListIsMutable();
+        ensureUnk3000NIGPICLBHMAIsMutable();
         com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, ownedCostumeList_);
+            values, unk3000NIGPICLBHMA_);
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 owned_costume_list = 11;</code>
+       * <code>repeated uint32 Unk3000_NIGPICLBHMA = 9;</code>
        * @return This builder for chaining.
        */
-      public Builder clearOwnedCostumeList() {
-        ownedCostumeList_ = emptyIntList();
+      public Builder clearUnk3000NIGPICLBHMA() {
+        unk3000NIGPICLBHMA_ = emptyIntList();
         bitField0_ = (bitField0_ & ~0x00000004);
         onChanged();
         return this;
@@ -1646,161 +1650,352 @@ public final class AvatarDataNotifyOuterClass {
         return this;
       }
 
-      private com.google.protobuf.MapField<
-          java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> avatarTeamMap_;
-      private com.google.protobuf.MapField<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
-      internalGetAvatarTeamMap() {
-        if (avatarTeamMap_ == null) {
-          return com.google.protobuf.MapField.emptyMapField(
-              AvatarTeamMapDefaultEntryHolder.defaultEntry);
-        }
-        return avatarTeamMap_;
-      }
-      private com.google.protobuf.MapField<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
-      internalGetMutableAvatarTeamMap() {
-        onChanged();;
-        if (avatarTeamMap_ == null) {
-          avatarTeamMap_ = com.google.protobuf.MapField.newMapField(
-              AvatarTeamMapDefaultEntryHolder.defaultEntry);
-        }
-        if (!avatarTeamMap_.isMutable()) {
-          avatarTeamMap_ = avatarTeamMap_.copy();
-        }
-        return avatarTeamMap_;
-      }
-
-      public int getAvatarTeamMapCount() {
-        return internalGetAvatarTeamMap().getMap().size();
+      private com.google.protobuf.Internal.IntList ownedFlycloakList_ = emptyIntList();
+      private void ensureOwnedFlycloakListIsMutable() {
+        if (!((bitField0_ & 0x00000010) != 0)) {
+          ownedFlycloakList_ = mutableCopy(ownedFlycloakList_);
+          bitField0_ |= 0x00000010;
+         }
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @return A list containing the ownedFlycloakList.
        */
-
-      @java.lang.Override
-      public boolean containsAvatarTeamMap(
-          int key) {
-        
-        return internalGetAvatarTeamMap().getMap().containsKey(key);
+      public java.util.List<java.lang.Integer>
+          getOwnedFlycloakListList() {
+        return ((bitField0_ & 0x00000010) != 0) ?
+                 java.util.Collections.unmodifiableList(ownedFlycloakList_) : ownedFlycloakList_;
       }
       /**
-       * Use {@link #getAvatarTeamMapMap()} instead.
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @return The count of ownedFlycloakList.
        */
-      @java.lang.Override
-      @java.lang.Deprecated
-      public java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> getAvatarTeamMap() {
-        return getAvatarTeamMapMap();
+      public int getOwnedFlycloakListCount() {
+        return ownedFlycloakList_.size();
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @param index The index of the element to return.
+       * @return The ownedFlycloakList at the given index.
        */
-      @java.lang.Override
-
-      public java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> getAvatarTeamMapMap() {
-        return internalGetAvatarTeamMap().getMap();
+      public int getOwnedFlycloakList(int index) {
+        return ownedFlycloakList_.getInt(index);
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @param index The index to set the value at.
+       * @param value The ownedFlycloakList to set.
+       * @return This builder for chaining.
        */
-      @java.lang.Override
-
-      public emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrDefault(
-          int key,
-          emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam defaultValue) {
-        
-        java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> map =
-            internalGetAvatarTeamMap().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
+      public Builder setOwnedFlycloakList(
+          int index, int value) {
+        ensureOwnedFlycloakListIsMutable();
+        ownedFlycloakList_.setInt(index, value);
+        onChanged();
+        return this;
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @param value The ownedFlycloakList to add.
+       * @return This builder for chaining.
        */
-      @java.lang.Override
+      public Builder addOwnedFlycloakList(int value) {
+        ensureOwnedFlycloakListIsMutable();
+        ownedFlycloakList_.addInt(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @param values The ownedFlycloakList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllOwnedFlycloakList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureOwnedFlycloakListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, ownedFlycloakList_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 owned_flycloak_list = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOwnedFlycloakList() {
+        ownedFlycloakList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000010);
+        onChanged();
+        return this;
+      }
 
-      public emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam getAvatarTeamMapOrThrow(
-          int key) {
-        
-        java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> map =
-            internalGetAvatarTeamMap().getMap();
-        if (!map.containsKey(key)) {
-          throw new java.lang.IllegalArgumentException();
-        }
-        return map.get(key);
+      private java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> avatarList_ =
+        java.util.Collections.emptyList();
+      private void ensureAvatarListIsMutable() {
+        if (!((bitField0_ & 0x00000020) != 0)) {
+          avatarList_ = new java.util.ArrayList<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo>(avatarList_);
+          bitField0_ |= 0x00000020;
+         }
       }
 
-      public Builder clearAvatarTeamMap() {
-        internalGetMutableAvatarTeamMap().getMutableMap()
-            .clear();
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> avatarListBuilder_;
+
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> getAvatarListList() {
+        if (avatarListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(avatarList_);
+        } else {
+          return avatarListBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public int getAvatarListCount() {
+        if (avatarListBuilder_ == null) {
+          return avatarList_.size();
+        } else {
+          return avatarListBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo getAvatarList(int index) {
+        if (avatarListBuilder_ == null) {
+          return avatarList_.get(index);
+        } else {
+          return avatarListBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public Builder setAvatarList(
+          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo value) {
+        if (avatarListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAvatarListIsMutable();
+          avatarList_.set(index, value);
+          onChanged();
+        } else {
+          avatarListBuilder_.setMessage(index, value);
+        }
         return this;
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
        */
-
-      public Builder removeAvatarTeamMap(
-          int key) {
-        
-        internalGetMutableAvatarTeamMap().getMutableMap()
-            .remove(key);
+      public Builder setAvatarList(
+          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder builderForValue) {
+        if (avatarListBuilder_ == null) {
+          ensureAvatarListIsMutable();
+          avatarList_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          avatarListBuilder_.setMessage(index, builderForValue.build());
+        }
         return this;
       }
       /**
-       * Use alternate mutation accessors instead.
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
        */
-      @java.lang.Deprecated
-      public java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam>
-      getMutableAvatarTeamMap() {
-        return internalGetMutableAvatarTeamMap().getMutableMap();
+      public Builder addAvatarList(emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo value) {
+        if (avatarListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAvatarListIsMutable();
+          avatarList_.add(value);
+          onChanged();
+        } else {
+          avatarListBuilder_.addMessage(value);
+        }
+        return this;
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
        */
-      public Builder putAvatarTeamMap(
-          int key,
-          emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam value) {
-        
-        if (value == null) { throw new java.lang.NullPointerException(); }
-        internalGetMutableAvatarTeamMap().getMutableMap()
-            .put(key, value);
+      public Builder addAvatarList(
+          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo value) {
+        if (avatarListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAvatarListIsMutable();
+          avatarList_.add(index, value);
+          onChanged();
+        } else {
+          avatarListBuilder_.addMessage(index, value);
+        }
         return this;
       }
       /**
-       * <code>map&lt;uint32, .AvatarTeam&gt; avatar_team_map = 7;</code>
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
        */
-
-      public Builder putAllAvatarTeamMap(
-          java.util.Map<java.lang.Integer, emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam> values) {
-        internalGetMutableAvatarTeamMap().getMutableMap()
-            .putAll(values);
+      public Builder addAvatarList(
+          emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder builderForValue) {
+        if (avatarListBuilder_ == null) {
+          ensureAvatarListIsMutable();
+          avatarList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          avatarListBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public Builder addAvatarList(
+          int index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder builderForValue) {
+        if (avatarListBuilder_ == null) {
+          ensureAvatarListIsMutable();
+          avatarList_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          avatarListBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public Builder addAllAvatarList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo> values) {
+        if (avatarListBuilder_ == null) {
+          ensureAvatarListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, avatarList_);
+          onChanged();
+        } else {
+          avatarListBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public Builder clearAvatarList() {
+        if (avatarListBuilder_ == null) {
+          avatarList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000020);
+          onChanged();
+        } else {
+          avatarListBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public Builder removeAvatarList(int index) {
+        if (avatarListBuilder_ == null) {
+          ensureAvatarListIsMutable();
+          avatarList_.remove(index);
+          onChanged();
+        } else {
+          avatarListBuilder_.remove(index);
+        }
         return this;
       }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder getAvatarListBuilder(
+          int index) {
+        return getAvatarListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder getAvatarListOrBuilder(
+          int index) {
+        if (avatarListBuilder_ == null) {
+          return avatarList_.get(index);  } else {
+          return avatarListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
+           getAvatarListOrBuilderList() {
+        if (avatarListBuilder_ != null) {
+          return avatarListBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(avatarList_);
+        }
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder addAvatarListBuilder() {
+        return getAvatarListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder addAvatarListBuilder(
+          int index) {
+        return getAvatarListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .AvatarInfo avatar_list = 6;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder> 
+           getAvatarListBuilderList() {
+        return getAvatarListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder> 
+          getAvatarListFieldBuilder() {
+        if (avatarListBuilder_ == null) {
+          avatarListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfo.Builder, emu.grasscutter.net.proto.AvatarInfoOuterClass.AvatarInfoOrBuilder>(
+                  avatarList_,
+                  ((bitField0_ & 0x00000020) != 0),
+                  getParentForChildren(),
+                  isClean());
+          avatarList_ = null;
+        }
+        return avatarListBuilder_;
+      }
 
-      private long chooseAvatarGuid_ ;
+      private int curAvatarTeamId_ ;
       /**
-       * <code>uint64 choose_avatar_guid = 8;</code>
-       * @return The chooseAvatarGuid.
+       * <code>uint32 cur_avatar_team_id = 2;</code>
+       * @return The curAvatarTeamId.
        */
       @java.lang.Override
-      public long getChooseAvatarGuid() {
-        return chooseAvatarGuid_;
+      public int getCurAvatarTeamId() {
+        return curAvatarTeamId_;
       }
       /**
-       * <code>uint64 choose_avatar_guid = 8;</code>
-       * @param value The chooseAvatarGuid to set.
+       * <code>uint32 cur_avatar_team_id = 2;</code>
+       * @param value The curAvatarTeamId to set.
        * @return This builder for chaining.
        */
-      public Builder setChooseAvatarGuid(long value) {
+      public Builder setCurAvatarTeamId(int value) {
         
-        chooseAvatarGuid_ = value;
+        curAvatarTeamId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint64 choose_avatar_guid = 8;</code>
+       * <code>uint32 cur_avatar_team_id = 2;</code>
        * @return This builder for chaining.
        */
-      public Builder clearChooseAvatarGuid() {
+      public Builder clearCurAvatarTeamId() {
         
-        chooseAvatarGuid_ = 0L;
+        curAvatarTeamId_ = 0;
         onChanged();
         return this;
       }
@@ -1877,16 +2072,17 @@ public final class AvatarDataNotifyOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\026AvatarDataNotify.proto\032\020AvatarInfo.pro" +
-      "to\032\020AvatarTeam.proto\"\306\002\n\020AvatarDataNotif" +
-      "y\022\033\n\023owned_flycloak_list\030\001 \003(\r\022\032\n\022cur_av" +
-      "atar_team_id\030\002 \001(\r\022 \n\013avatar_list\030\006 \003(\0132" +
-      "\013.AvatarInfo\022\032\n\022owned_costume_list\030\013 \003(\r" +
-      "\022\035\n\025temp_avatar_guid_list\030\014 \003(\004\022=\n\017avata" +
-      "r_team_map\030\007 \003(\0132$.AvatarDataNotify.Avat" +
-      "arTeamMapEntry\022\032\n\022choose_avatar_guid\030\010 \001" +
-      "(\004\032A\n\022AvatarTeamMapEntry\022\013\n\003key\030\001 \001(\r\022\032\n" +
-      "\005value\030\002 \001(\0132\013.AvatarTeam:\0028\001B\033\n\031emu.gra" +
-      "sscutter.net.protob\006proto3"
+      "to\032\020AvatarTeam.proto\"\343\002\n\020AvatarDataNotif" +
+      "y\022\032\n\022owned_costume_list\030\013 \003(\r\022\032\n\022choose_" +
+      "avatar_guid\030\010 \001(\004\022=\n\017avatar_team_map\030\007 \003" +
+      "(\0132$.AvatarDataNotify.AvatarTeamMapEntry" +
+      "\022\033\n\023Unk3000_NIGPICLBHMA\030\t \003(\r\022\035\n\025temp_av" +
+      "atar_guid_list\030\014 \003(\004\022\033\n\023owned_flycloak_l" +
+      "ist\030\001 \003(\r\022 \n\013avatar_list\030\006 \003(\0132\013.AvatarI" +
+      "nfo\022\032\n\022cur_avatar_team_id\030\002 \001(\r\032A\n\022Avata" +
+      "rTeamMapEntry\022\013\n\003key\030\001 \001(\r\022\032\n\005value\030\002 \001(" +
+      "\0132\013.AvatarTeam:\0028\001B\033\n\031emu.grasscutter.ne" +
+      "t.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -1899,7 +2095,7 @@ public final class AvatarDataNotifyOuterClass {
     internal_static_AvatarDataNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_AvatarDataNotify_descriptor,
-        new java.lang.String[] { "OwnedFlycloakList", "CurAvatarTeamId", "AvatarList", "OwnedCostumeList", "TempAvatarGuidList", "AvatarTeamMap", "ChooseAvatarGuid", });
+        new java.lang.String[] { "OwnedCostumeList", "ChooseAvatarGuid", "AvatarTeamMap", "Unk3000NIGPICLBHMA", "TempAvatarGuidList", "OwnedFlycloakList", "AvatarList", "CurAvatarTeamId", });
     internal_static_AvatarDataNotify_AvatarTeamMapEntry_descriptor =
       internal_static_AvatarDataNotify_descriptor.getNestedTypes().get(0);
     internal_static_AvatarDataNotify_AvatarTeamMapEntry_fieldAccessorTable = new
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndReqOuterClass.java
index 4fd2a4a5..58e10c6d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndReqOuterClass.java
@@ -49,7 +49,7 @@ public final class AvatarDieAnimationEndReqOuterClass {
    * <pre>
    * CmdId: 1610
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -387,7 +387,7 @@ public final class AvatarDieAnimationEndReqOuterClass {
      * <pre>
      * CmdId: 1610
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndRspOuterClass.java
index 9d34e8d9..649f13fc 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndRspOuterClass.java
@@ -40,7 +40,8 @@ public final class AvatarDieAnimationEndRspOuterClass {
    * <pre>
    * CmdId: 1694
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarDieAnimationEndRsp}
@@ -349,7 +350,8 @@ public final class AvatarDieAnimationEndRspOuterClass {
      * <pre>
      * CmdId: 1694
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarDieAnimationEndRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipChangeNotifyOuterClass.java
index 21a44fc5..9a3c83c5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipChangeNotifyOuterClass.java
@@ -76,7 +76,7 @@ public final class AvatarEquipChangeNotifyOuterClass {
    * <pre>
    * CmdId: 647
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -524,7 +524,7 @@ public final class AvatarEquipChangeNotifyOuterClass {
      * <pre>
      * CmdId: 647
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataRspOuterClass.java
index e8361e02..ee1db02b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataRspOuterClass.java
@@ -85,7 +85,8 @@ public final class AvatarExpeditionAllDataRspOuterClass {
    * <pre>
    * CmdId: 1648
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarExpeditionAllDataRsp}
@@ -576,7 +577,8 @@ public final class AvatarExpeditionAllDataRspOuterClass {
      * <pre>
      * CmdId: 1648
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarExpeditionAllDataRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackReqOuterClass.java
index 8691f3b0..b111e313 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackReqOuterClass.java
@@ -39,7 +39,7 @@ public final class AvatarExpeditionCallBackReqOuterClass {
    * <pre>
    * CmdId: 1752
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class AvatarExpeditionCallBackReqOuterClass {
      * <pre>
      * CmdId: 1752
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackRspOuterClass.java
index 5ddf4da3..dd5df438 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackRspOuterClass.java
@@ -62,7 +62,8 @@ public final class AvatarExpeditionCallBackRspOuterClass {
    * <pre>
    * CmdId: 1726
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarExpeditionCallBackRsp}
@@ -445,7 +446,8 @@ public final class AvatarExpeditionCallBackRspOuterClass {
      * <pre>
      * CmdId: 1726
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarExpeditionCallBackRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionDataNotifyOuterClass.java
index 728a6a83..fd1e9f02 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionDataNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class AvatarExpeditionDataNotifyOuterClass {
    * <pre>
    * CmdId: 1771
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarExpeditionDataNotify}
@@ -412,7 +413,8 @@ public final class AvatarExpeditionDataNotifyOuterClass {
      * <pre>
      * CmdId: 1771
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarExpeditionDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardReqOuterClass.java
index 0012970c..9fb5ec65 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardReqOuterClass.java
@@ -28,7 +28,7 @@ public final class AvatarExpeditionGetRewardReqOuterClass {
    * <pre>
    * CmdId: 1623
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class AvatarExpeditionGetRewardReqOuterClass {
      * <pre>
      * CmdId: 1623
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardRspOuterClass.java
index 7eb67d9a..f3a3db65 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardRspOuterClass.java
@@ -110,7 +110,8 @@ public final class AvatarExpeditionGetRewardRspOuterClass {
    * <pre>
    * CmdId: 1784
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarExpeditionGetRewardRsp}
@@ -625,7 +626,8 @@ public final class AvatarExpeditionGetRewardRspOuterClass {
      * <pre>
      * CmdId: 1784
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarExpeditionGetRewardRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartReqOuterClass.java
index 62832f0d..c9b272a6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartReqOuterClass.java
@@ -40,7 +40,7 @@ public final class AvatarExpeditionStartReqOuterClass {
    * <pre>
    * CmdId: 1715
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class AvatarExpeditionStartReqOuterClass {
      * <pre>
      * CmdId: 1715
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartRspOuterClass.java
index 42672c65..e29069b6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartRspOuterClass.java
@@ -62,7 +62,8 @@ public final class AvatarExpeditionStartRspOuterClass {
    * <pre>
    * CmdId: 1719
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarExpeditionStartRsp}
@@ -445,7 +446,8 @@ public final class AvatarExpeditionStartRspOuterClass {
      * <pre>
      * CmdId: 1719
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarExpeditionStartRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterDataNotifyOuterClass.java
index b8f45b8d..d511d3a0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterDataNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class AvatarFetterDataNotifyOuterClass {
    * <pre>
    * CmdId: 1782
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarFetterDataNotify}
@@ -412,7 +413,8 @@ public final class AvatarFetterDataNotifyOuterClass {
      * <pre>
      * CmdId: 1782
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarFetterDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardReqOuterClass.java
index 81bda8c1..bb0cf157 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardReqOuterClass.java
@@ -34,7 +34,7 @@ public final class AvatarFetterLevelRewardReqOuterClass {
    * <pre>
    * CmdId: 1653
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class AvatarFetterLevelRewardReqOuterClass {
      * <pre>
      * CmdId: 1653
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardRspOuterClass.java
index 397c541b..86eb8105 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardRspOuterClass.java
@@ -46,7 +46,8 @@ public final class AvatarFetterLevelRewardRspOuterClass {
    * <pre>
    * CmdId: 1606
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarFetterLevelRewardRsp}
@@ -382,7 +383,8 @@ public final class AvatarFetterLevelRewardRspOuterClass {
      * <pre>
      * CmdId: 1606
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarFetterLevelRewardRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropNotifyOuterClass.java
index 76dbd5e6..67e7c3ec 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class AvatarFightPropNotifyOuterClass {
    * <pre>
    * CmdId: 1207
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarFightPropNotify}
@@ -446,7 +447,8 @@ public final class AvatarFightPropNotifyOuterClass {
      * <pre>
      * CmdId: 1207
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarFightPropNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropUpdateNotifyOuterClass.java
index 5c1f6e4d..cb1a44d4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropUpdateNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class AvatarFightPropUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 1221
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarFightPropUpdateNotify}
@@ -446,7 +447,8 @@ public final class AvatarFightPropUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 1221
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarFightPropUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFlycloakChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFlycloakChangeNotifyOuterClass.java
index 7b6e2d07..e33c3bef 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarFlycloakChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarFlycloakChangeNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class AvatarFlycloakChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1643
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarFlycloakChangeNotify}
@@ -316,7 +317,8 @@ public final class AvatarFlycloakChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1643
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarFlycloakChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainCostumeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainCostumeNotifyOuterClass.java
index 39f68250..86cb0d2a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainCostumeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainCostumeNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class AvatarGainCostumeNotifyOuterClass {
    * <pre>
    * CmdId: 1677
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarGainCostumeNotify}
@@ -282,7 +283,8 @@ public final class AvatarGainCostumeNotifyOuterClass {
      * <pre>
      * CmdId: 1677
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarGainCostumeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainFlycloakNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainFlycloakNotifyOuterClass.java
index 73c7f0cc..3dc05802 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainFlycloakNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarGainFlycloakNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class AvatarGainFlycloakNotifyOuterClass {
    * <pre>
    * CmdId: 1656
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarGainFlycloakNotify}
@@ -282,7 +283,8 @@ public final class AvatarGainFlycloakNotifyOuterClass {
      * <pre>
      * CmdId: 1656
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarGainFlycloakNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarLifeStateChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarLifeStateChangeNotifyOuterClass.java
index 394e9ddf..83476fce 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarLifeStateChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarLifeStateChangeNotifyOuterClass.java
@@ -93,7 +93,8 @@ public final class AvatarLifeStateChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1290
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarLifeStateChangeNotify}
@@ -587,7 +588,8 @@ public final class AvatarLifeStateChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1290
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarLifeStateChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardReqOuterClass.java
index ee5ded5f..dc6922a9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardReqOuterClass.java
@@ -34,7 +34,7 @@ public final class AvatarPromoteGetRewardReqOuterClass {
    * <pre>
    * CmdId: 1696
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class AvatarPromoteGetRewardReqOuterClass {
      * <pre>
      * CmdId: 1696
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardRspOuterClass.java
index 5acad063..f639a172 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteGetRewardRspOuterClass.java
@@ -46,7 +46,8 @@ public final class AvatarPromoteGetRewardRspOuterClass {
    * <pre>
    * CmdId: 1683
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarPromoteGetRewardRsp}
@@ -382,7 +383,8 @@ public final class AvatarPromoteGetRewardRspOuterClass {
      * <pre>
      * CmdId: 1683
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarPromoteGetRewardRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteReqOuterClass.java
index 8092956c..824d17d3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteReqOuterClass.java
@@ -28,7 +28,7 @@ public final class AvatarPromoteReqOuterClass {
    * <pre>
    * CmdId: 1664
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class AvatarPromoteReqOuterClass {
      * <pre>
      * CmdId: 1664
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteRspOuterClass.java
index a8489631..3e1b8762 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteRspOuterClass.java
@@ -34,7 +34,8 @@ public final class AvatarPromoteRspOuterClass {
    * <pre>
    * CmdId: 1639
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarPromoteRsp}
@@ -316,7 +317,8 @@ public final class AvatarPromoteRspOuterClass {
      * <pre>
      * CmdId: 1639
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarPromoteRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPropNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPropNotifyOuterClass.java
index 0b81c4ab..8edf2b62 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarPropNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarPropNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class AvatarPropNotifyOuterClass {
    * <pre>
    * CmdId: 1231
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarPropNotify}
@@ -446,7 +447,8 @@ public final class AvatarPropNotifyOuterClass {
      * <pre>
      * CmdId: 1231
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarPropNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillChangeNotifyOuterClass.java
index 181a62f7..400f6b1d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillChangeNotifyOuterClass.java
@@ -58,7 +58,8 @@ public final class AvatarSkillChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1097
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarSkillChangeNotify}
@@ -448,7 +449,8 @@ public final class AvatarSkillChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1097
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarSkillChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillDepotChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillDepotChangeNotifyOuterClass.java
index 771c5816..7bf43328 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillDepotChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillDepotChangeNotifyOuterClass.java
@@ -148,7 +148,8 @@ public final class AvatarSkillDepotChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1035
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarSkillDepotChangeNotify}
@@ -892,7 +893,8 @@ public final class AvatarSkillDepotChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1035
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarSkillDepotChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoNotifyOuterClass.java
index 69b713cd..01b81bff 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class AvatarSkillInfoNotifyOuterClass {
    * <pre>
    * CmdId: 1090
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarSkillInfoNotify}
@@ -446,7 +447,8 @@ public final class AvatarSkillInfoNotifyOuterClass {
      * <pre>
      * CmdId: 1090
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarSkillInfoNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillMaxChargeCountNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillMaxChargeCountNotifyOuterClass.java
index 6af11917..3409bc29 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillMaxChargeCountNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillMaxChargeCountNotifyOuterClass.java
@@ -40,7 +40,8 @@ public final class AvatarSkillMaxChargeCountNotifyOuterClass {
    * <pre>
    * CmdId: 1003
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarSkillMaxChargeCountNotify}
@@ -349,7 +350,8 @@ public final class AvatarSkillMaxChargeCountNotifyOuterClass {
      * <pre>
      * CmdId: 1003
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarSkillMaxChargeCountNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeReqOuterClass.java
index b7d5c67b..339482a4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeReqOuterClass.java
@@ -40,7 +40,7 @@ public final class AvatarSkillUpgradeReqOuterClass {
    * <pre>
    * CmdId: 1075
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class AvatarSkillUpgradeReqOuterClass {
      * <pre>
      * CmdId: 1075
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeRspOuterClass.java
index e2b1a7a3..8cdd161a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeRspOuterClass.java
@@ -52,7 +52,8 @@ public final class AvatarSkillUpgradeRspOuterClass {
    * <pre>
    * CmdId: 1048
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarSkillUpgradeRsp}
@@ -415,7 +416,8 @@ public final class AvatarSkillUpgradeRspOuterClass {
      * <pre>
      * CmdId: 1048
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarSkillUpgradeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamUpdateNotifyOuterClass.java
index 75c669f7..208dc881 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamUpdateNotifyOuterClass.java
@@ -73,7 +73,8 @@ public final class AvatarTeamUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 1706
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarTeamUpdateNotify}
@@ -510,7 +511,8 @@ public final class AvatarTeamUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 1706
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarTeamUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarUnlockTalentNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarUnlockTalentNotifyOuterClass.java
index a80e8059..e43d649d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarUnlockTalentNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarUnlockTalentNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class AvatarUnlockTalentNotifyOuterClass {
    * <pre>
    * CmdId: 1012
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarUnlockTalentNotify}
@@ -382,7 +383,8 @@ public final class AvatarUnlockTalentNotifyOuterClass {
      * <pre>
      * CmdId: 1012
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarUnlockTalentNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeReqOuterClass.java
index 334ada2e..406c6aa9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeReqOuterClass.java
@@ -40,7 +40,7 @@ public final class AvatarUpgradeReqOuterClass {
    * <pre>
    * CmdId: 1770
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class AvatarUpgradeReqOuterClass {
      * <pre>
      * CmdId: 1770
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
index 47c2a1db..69aa22c3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
@@ -114,7 +114,8 @@ public final class AvatarUpgradeRspOuterClass {
    * <pre>
    * CmdId: 1701
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarUpgradeRsp}
@@ -697,7 +698,8 @@ public final class AvatarUpgradeRspOuterClass {
      * <pre>
      * CmdId: 1701
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarUpgradeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakReqOuterClass.java
index 7f58815b..a41cf4f9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakReqOuterClass.java
@@ -34,7 +34,7 @@ public final class AvatarWearFlycloakReqOuterClass {
    * <pre>
    * CmdId: 1737
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class AvatarWearFlycloakReqOuterClass {
      * <pre>
      * CmdId: 1737
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakRspOuterClass.java
index 80454efe..fa0d4730 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakRspOuterClass.java
@@ -40,7 +40,8 @@ public final class AvatarWearFlycloakRspOuterClass {
    * <pre>
    * CmdId: 1698
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code AvatarWearFlycloakRsp}
@@ -349,7 +350,8 @@ public final class AvatarWearFlycloakRspOuterClass {
      * <pre>
      * CmdId: 1698
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code AvatarWearFlycloakRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassAllDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassAllDataNotifyOuterClass.java
index 9db4c113..56410db3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassAllDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassAllDataNotifyOuterClass.java
@@ -24,21 +24,6 @@ public final class BattlePassAllDataNotifyOuterClass {
      */
     boolean getHaveCurSchedule();
 
-    /**
-     * <code>.BattlePassSchedule cur_schedule = 1;</code>
-     * @return Whether the curSchedule field is set.
-     */
-    boolean hasCurSchedule();
-    /**
-     * <code>.BattlePassSchedule cur_schedule = 1;</code>
-     * @return The curSchedule.
-     */
-    emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule getCurSchedule();
-    /**
-     * <code>.BattlePassSchedule cur_schedule = 1;</code>
-     */
-    emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder getCurScheduleOrBuilder();
-
     /**
      * <code>repeated .BattlePassMission mission_list = 4;</code>
      */
@@ -62,12 +47,28 @@ public final class BattlePassAllDataNotifyOuterClass {
      */
     emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMissionOrBuilder getMissionListOrBuilder(
         int index);
+
+    /**
+     * <code>.BattlePassSchedule cur_schedule = 1;</code>
+     * @return Whether the curSchedule field is set.
+     */
+    boolean hasCurSchedule();
+    /**
+     * <code>.BattlePassSchedule cur_schedule = 1;</code>
+     * @return The curSchedule.
+     */
+    emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule getCurSchedule();
+    /**
+     * <code>.BattlePassSchedule cur_schedule = 1;</code>
+     */
+    emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder getCurScheduleOrBuilder();
   }
   /**
    * <pre>
-   * CmdId: 2618
+   * CmdId: 2626
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BattlePassAllDataNotify}
@@ -189,32 +190,6 @@ public final class BattlePassAllDataNotifyOuterClass {
       return haveCurSchedule_;
     }
 
-    public static final int CUR_SCHEDULE_FIELD_NUMBER = 1;
-    private emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule curSchedule_;
-    /**
-     * <code>.BattlePassSchedule cur_schedule = 1;</code>
-     * @return Whether the curSchedule field is set.
-     */
-    @java.lang.Override
-    public boolean hasCurSchedule() {
-      return curSchedule_ != null;
-    }
-    /**
-     * <code>.BattlePassSchedule cur_schedule = 1;</code>
-     * @return The curSchedule.
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule getCurSchedule() {
-      return curSchedule_ == null ? emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance() : curSchedule_;
-    }
-    /**
-     * <code>.BattlePassSchedule cur_schedule = 1;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder getCurScheduleOrBuilder() {
-      return getCurSchedule();
-    }
-
     public static final int MISSION_LIST_FIELD_NUMBER = 4;
     private java.util.List<emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission> missionList_;
     /**
@@ -255,6 +230,32 @@ public final class BattlePassAllDataNotifyOuterClass {
       return missionList_.get(index);
     }
 
+    public static final int CUR_SCHEDULE_FIELD_NUMBER = 1;
+    private emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule curSchedule_;
+    /**
+     * <code>.BattlePassSchedule cur_schedule = 1;</code>
+     * @return Whether the curSchedule field is set.
+     */
+    @java.lang.Override
+    public boolean hasCurSchedule() {
+      return curSchedule_ != null;
+    }
+    /**
+     * <code>.BattlePassSchedule cur_schedule = 1;</code>
+     * @return The curSchedule.
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule getCurSchedule() {
+      return curSchedule_ == null ? emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance() : curSchedule_;
+    }
+    /**
+     * <code>.BattlePassSchedule cur_schedule = 1;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder getCurScheduleOrBuilder() {
+      return getCurSchedule();
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -316,13 +317,13 @@ public final class BattlePassAllDataNotifyOuterClass {
 
       if (getHaveCurSchedule()
           != other.getHaveCurSchedule()) return false;
+      if (!getMissionListList()
+          .equals(other.getMissionListList())) return false;
       if (hasCurSchedule() != other.hasCurSchedule()) return false;
       if (hasCurSchedule()) {
         if (!getCurSchedule()
             .equals(other.getCurSchedule())) return false;
       }
-      if (!getMissionListList()
-          .equals(other.getMissionListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -337,14 +338,14 @@ public final class BattlePassAllDataNotifyOuterClass {
       hash = (37 * hash) + HAVE_CUR_SCHEDULE_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getHaveCurSchedule());
-      if (hasCurSchedule()) {
-        hash = (37 * hash) + CUR_SCHEDULE_FIELD_NUMBER;
-        hash = (53 * hash) + getCurSchedule().hashCode();
-      }
       if (getMissionListCount() > 0) {
         hash = (37 * hash) + MISSION_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getMissionListList().hashCode();
       }
+      if (hasCurSchedule()) {
+        hash = (37 * hash) + CUR_SCHEDULE_FIELD_NUMBER;
+        hash = (53 * hash) + getCurSchedule().hashCode();
+      }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -442,9 +443,10 @@ public final class BattlePassAllDataNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2618
+     * CmdId: 2626
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BattlePassAllDataNotify}
@@ -487,18 +489,18 @@ public final class BattlePassAllDataNotifyOuterClass {
         super.clear();
         haveCurSchedule_ = false;
 
-        if (curScheduleBuilder_ == null) {
-          curSchedule_ = null;
-        } else {
-          curSchedule_ = null;
-          curScheduleBuilder_ = null;
-        }
         if (missionListBuilder_ == null) {
           missionList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000001);
         } else {
           missionListBuilder_.clear();
         }
+        if (curScheduleBuilder_ == null) {
+          curSchedule_ = null;
+        } else {
+          curSchedule_ = null;
+          curScheduleBuilder_ = null;
+        }
         return this;
       }
 
@@ -527,11 +529,6 @@ public final class BattlePassAllDataNotifyOuterClass {
         emu.grasscutter.net.proto.BattlePassAllDataNotifyOuterClass.BattlePassAllDataNotify result = new emu.grasscutter.net.proto.BattlePassAllDataNotifyOuterClass.BattlePassAllDataNotify(this);
         int from_bitField0_ = bitField0_;
         result.haveCurSchedule_ = haveCurSchedule_;
-        if (curScheduleBuilder_ == null) {
-          result.curSchedule_ = curSchedule_;
-        } else {
-          result.curSchedule_ = curScheduleBuilder_.build();
-        }
         if (missionListBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             missionList_ = java.util.Collections.unmodifiableList(missionList_);
@@ -541,6 +538,11 @@ public final class BattlePassAllDataNotifyOuterClass {
         } else {
           result.missionList_ = missionListBuilder_.build();
         }
+        if (curScheduleBuilder_ == null) {
+          result.curSchedule_ = curSchedule_;
+        } else {
+          result.curSchedule_ = curScheduleBuilder_.build();
+        }
         onBuilt();
         return result;
       }
@@ -592,9 +594,6 @@ public final class BattlePassAllDataNotifyOuterClass {
         if (other.getHaveCurSchedule() != false) {
           setHaveCurSchedule(other.getHaveCurSchedule());
         }
-        if (other.hasCurSchedule()) {
-          mergeCurSchedule(other.getCurSchedule());
-        }
         if (missionListBuilder_ == null) {
           if (!other.missionList_.isEmpty()) {
             if (missionList_.isEmpty()) {
@@ -621,6 +620,9 @@ public final class BattlePassAllDataNotifyOuterClass {
             }
           }
         }
+        if (other.hasCurSchedule()) {
+          mergeCurSchedule(other.getCurSchedule());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -682,125 +684,6 @@ public final class BattlePassAllDataNotifyOuterClass {
         return this;
       }
 
-      private emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule curSchedule_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder> curScheduleBuilder_;
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       * @return Whether the curSchedule field is set.
-       */
-      public boolean hasCurSchedule() {
-        return curScheduleBuilder_ != null || curSchedule_ != null;
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       * @return The curSchedule.
-       */
-      public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule getCurSchedule() {
-        if (curScheduleBuilder_ == null) {
-          return curSchedule_ == null ? emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance() : curSchedule_;
-        } else {
-          return curScheduleBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      public Builder setCurSchedule(emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule value) {
-        if (curScheduleBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          curSchedule_ = value;
-          onChanged();
-        } else {
-          curScheduleBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      public Builder setCurSchedule(
-          emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder builderForValue) {
-        if (curScheduleBuilder_ == null) {
-          curSchedule_ = builderForValue.build();
-          onChanged();
-        } else {
-          curScheduleBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      public Builder mergeCurSchedule(emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule value) {
-        if (curScheduleBuilder_ == null) {
-          if (curSchedule_ != null) {
-            curSchedule_ =
-              emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.newBuilder(curSchedule_).mergeFrom(value).buildPartial();
-          } else {
-            curSchedule_ = value;
-          }
-          onChanged();
-        } else {
-          curScheduleBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      public Builder clearCurSchedule() {
-        if (curScheduleBuilder_ == null) {
-          curSchedule_ = null;
-          onChanged();
-        } else {
-          curSchedule_ = null;
-          curScheduleBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder getCurScheduleBuilder() {
-        
-        onChanged();
-        return getCurScheduleFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder getCurScheduleOrBuilder() {
-        if (curScheduleBuilder_ != null) {
-          return curScheduleBuilder_.getMessageOrBuilder();
-        } else {
-          return curSchedule_ == null ?
-              emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance() : curSchedule_;
-        }
-      }
-      /**
-       * <code>.BattlePassSchedule cur_schedule = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder> 
-          getCurScheduleFieldBuilder() {
-        if (curScheduleBuilder_ == null) {
-          curScheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder>(
-                  getCurSchedule(),
-                  getParentForChildren(),
-                  isClean());
-          curSchedule_ = null;
-        }
-        return curScheduleBuilder_;
-      }
-
       private java.util.List<emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission> missionList_ =
         java.util.Collections.emptyList();
       private void ensureMissionListIsMutable() {
@@ -1040,6 +923,125 @@ public final class BattlePassAllDataNotifyOuterClass {
         }
         return missionListBuilder_;
       }
+
+      private emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule curSchedule_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder> curScheduleBuilder_;
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       * @return Whether the curSchedule field is set.
+       */
+      public boolean hasCurSchedule() {
+        return curScheduleBuilder_ != null || curSchedule_ != null;
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       * @return The curSchedule.
+       */
+      public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule getCurSchedule() {
+        if (curScheduleBuilder_ == null) {
+          return curSchedule_ == null ? emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance() : curSchedule_;
+        } else {
+          return curScheduleBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      public Builder setCurSchedule(emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule value) {
+        if (curScheduleBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          curSchedule_ = value;
+          onChanged();
+        } else {
+          curScheduleBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      public Builder setCurSchedule(
+          emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder builderForValue) {
+        if (curScheduleBuilder_ == null) {
+          curSchedule_ = builderForValue.build();
+          onChanged();
+        } else {
+          curScheduleBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      public Builder mergeCurSchedule(emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule value) {
+        if (curScheduleBuilder_ == null) {
+          if (curSchedule_ != null) {
+            curSchedule_ =
+              emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.newBuilder(curSchedule_).mergeFrom(value).buildPartial();
+          } else {
+            curSchedule_ = value;
+          }
+          onChanged();
+        } else {
+          curScheduleBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      public Builder clearCurSchedule() {
+        if (curScheduleBuilder_ == null) {
+          curSchedule_ = null;
+          onChanged();
+        } else {
+          curSchedule_ = null;
+          curScheduleBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder getCurScheduleBuilder() {
+        
+        onChanged();
+        return getCurScheduleFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder getCurScheduleOrBuilder() {
+        if (curScheduleBuilder_ != null) {
+          return curScheduleBuilder_.getMessageOrBuilder();
+        } else {
+          return curSchedule_ == null ?
+              emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance() : curSchedule_;
+        }
+      }
+      /**
+       * <code>.BattlePassSchedule cur_schedule = 1;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder> 
+          getCurScheduleFieldBuilder() {
+        if (curScheduleBuilder_ == null) {
+          curScheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassScheduleOrBuilder>(
+                  getCurSchedule(),
+                  getParentForChildren(),
+                  isClean());
+          curSchedule_ = null;
+        }
+        return curScheduleBuilder_;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -1110,9 +1112,9 @@ public final class BattlePassAllDataNotifyOuterClass {
       "\n\035BattlePassAllDataNotify.proto\032\027BattleP" +
       "assMission.proto\032\030BattlePassSchedule.pro" +
       "to\"\211\001\n\027BattlePassAllDataNotify\022\031\n\021have_c" +
-      "ur_schedule\030\002 \001(\010\022)\n\014cur_schedule\030\001 \001(\0132" +
-      "\023.BattlePassSchedule\022(\n\014mission_list\030\004 \003" +
-      "(\0132\022.BattlePassMissionB\033\n\031emu.grasscutte" +
+      "ur_schedule\030\002 \001(\010\022(\n\014mission_list\030\004 \003(\0132" +
+      "\022.BattlePassMission\022)\n\014cur_schedule\030\001 \001(" +
+      "\0132\023.BattlePassScheduleB\033\n\031emu.grasscutte" +
       "r.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -1126,7 +1128,7 @@ public final class BattlePassAllDataNotifyOuterClass {
     internal_static_BattlePassAllDataNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_BattlePassAllDataNotify_descriptor,
-        new java.lang.String[] { "HaveCurSchedule", "CurSchedule", "MissionList", });
+        new java.lang.String[] { "HaveCurSchedule", "MissionList", "CurSchedule", });
     emu.grasscutter.net.proto.BattlePassMissionOuterClass.getDescriptor();
     emu.grasscutter.net.proto.BattlePassScheduleOuterClass.getDescriptor();
   }
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassBuySuccNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassBuySuccNotifyOuterClass.java
index 1ff2e2f9..3328277f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassBuySuccNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassBuySuccNotifyOuterClass.java
@@ -30,6 +30,12 @@ public final class BattlePassBuySuccNotifyOuterClass {
      */
     int getProductPlayType();
 
+    /**
+     * <code>uint32 add_point = 12;</code>
+     * @return The addPoint.
+     */
+    int getAddPoint();
+
     /**
      * <code>repeated .ItemParam item_list = 9;</code>
      */
@@ -53,18 +59,13 @@ public final class BattlePassBuySuccNotifyOuterClass {
      */
     emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
         int index);
-
-    /**
-     * <code>uint32 add_point = 12;</code>
-     * @return The addPoint.
-     */
-    int getAddPoint();
   }
   /**
    * <pre>
    * CmdId: 2614
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BattlePassBuySuccNotify}
@@ -194,6 +195,17 @@ public final class BattlePassBuySuccNotifyOuterClass {
       return productPlayType_;
     }
 
+    public static final int ADD_POINT_FIELD_NUMBER = 12;
+    private int addPoint_;
+    /**
+     * <code>uint32 add_point = 12;</code>
+     * @return The addPoint.
+     */
+    @java.lang.Override
+    public int getAddPoint() {
+      return addPoint_;
+    }
+
     public static final int ITEM_LIST_FIELD_NUMBER = 9;
     private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_;
     /**
@@ -234,17 +246,6 @@ public final class BattlePassBuySuccNotifyOuterClass {
       return itemList_.get(index);
     }
 
-    public static final int ADD_POINT_FIELD_NUMBER = 12;
-    private int addPoint_;
-    /**
-     * <code>uint32 add_point = 12;</code>
-     * @return The addPoint.
-     */
-    @java.lang.Override
-    public int getAddPoint() {
-      return addPoint_;
-    }
-
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -315,10 +316,10 @@ public final class BattlePassBuySuccNotifyOuterClass {
           != other.getScheduleId()) return false;
       if (getProductPlayType()
           != other.getProductPlayType()) return false;
-      if (!getItemListList()
-          .equals(other.getItemListList())) return false;
       if (getAddPoint()
           != other.getAddPoint()) return false;
+      if (!getItemListList()
+          .equals(other.getItemListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -334,12 +335,12 @@ public final class BattlePassBuySuccNotifyOuterClass {
       hash = (53 * hash) + getScheduleId();
       hash = (37 * hash) + PRODUCT_PLAY_TYPE_FIELD_NUMBER;
       hash = (53 * hash) + getProductPlayType();
+      hash = (37 * hash) + ADD_POINT_FIELD_NUMBER;
+      hash = (53 * hash) + getAddPoint();
       if (getItemListCount() > 0) {
         hash = (37 * hash) + ITEM_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getItemListList().hashCode();
       }
-      hash = (37 * hash) + ADD_POINT_FIELD_NUMBER;
-      hash = (53 * hash) + getAddPoint();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -439,7 +440,8 @@ public final class BattlePassBuySuccNotifyOuterClass {
      * <pre>
      * CmdId: 2614
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BattlePassBuySuccNotify}
@@ -484,14 +486,14 @@ public final class BattlePassBuySuccNotifyOuterClass {
 
         productPlayType_ = 0;
 
+        addPoint_ = 0;
+
         if (itemListBuilder_ == null) {
           itemList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000001);
         } else {
           itemListBuilder_.clear();
         }
-        addPoint_ = 0;
-
         return this;
       }
 
@@ -521,6 +523,7 @@ public final class BattlePassBuySuccNotifyOuterClass {
         int from_bitField0_ = bitField0_;
         result.scheduleId_ = scheduleId_;
         result.productPlayType_ = productPlayType_;
+        result.addPoint_ = addPoint_;
         if (itemListBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             itemList_ = java.util.Collections.unmodifiableList(itemList_);
@@ -530,7 +533,6 @@ public final class BattlePassBuySuccNotifyOuterClass {
         } else {
           result.itemList_ = itemListBuilder_.build();
         }
-        result.addPoint_ = addPoint_;
         onBuilt();
         return result;
       }
@@ -585,6 +587,9 @@ public final class BattlePassBuySuccNotifyOuterClass {
         if (other.getProductPlayType() != 0) {
           setProductPlayType(other.getProductPlayType());
         }
+        if (other.getAddPoint() != 0) {
+          setAddPoint(other.getAddPoint());
+        }
         if (itemListBuilder_ == null) {
           if (!other.itemList_.isEmpty()) {
             if (itemList_.isEmpty()) {
@@ -611,9 +616,6 @@ public final class BattlePassBuySuccNotifyOuterClass {
             }
           }
         }
-        if (other.getAddPoint() != 0) {
-          setAddPoint(other.getAddPoint());
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -706,6 +708,37 @@ public final class BattlePassBuySuccNotifyOuterClass {
         return this;
       }
 
+      private int addPoint_ ;
+      /**
+       * <code>uint32 add_point = 12;</code>
+       * @return The addPoint.
+       */
+      @java.lang.Override
+      public int getAddPoint() {
+        return addPoint_;
+      }
+      /**
+       * <code>uint32 add_point = 12;</code>
+       * @param value The addPoint to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAddPoint(int value) {
+        
+        addPoint_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 add_point = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAddPoint() {
+        
+        addPoint_ = 0;
+        onChanged();
+        return this;
+      }
+
       private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_ =
         java.util.Collections.emptyList();
       private void ensureItemListIsMutable() {
@@ -945,37 +978,6 @@ public final class BattlePassBuySuccNotifyOuterClass {
         }
         return itemListBuilder_;
       }
-
-      private int addPoint_ ;
-      /**
-       * <code>uint32 add_point = 12;</code>
-       * @return The addPoint.
-       */
-      @java.lang.Override
-      public int getAddPoint() {
-        return addPoint_;
-      }
-      /**
-       * <code>uint32 add_point = 12;</code>
-       * @param value The addPoint to set.
-       * @return This builder for chaining.
-       */
-      public Builder setAddPoint(int value) {
-        
-        addPoint_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 add_point = 12;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearAddPoint() {
-        
-        addPoint_ = 0;
-        onChanged();
-        return this;
-      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -1046,8 +1048,8 @@ public final class BattlePassBuySuccNotifyOuterClass {
       "\n\035BattlePassBuySuccNotify.proto\032\017ItemPar" +
       "am.proto\"{\n\027BattlePassBuySuccNotify\022\023\n\013s" +
       "chedule_id\030\004 \001(\r\022\031\n\021product_play_type\030\013 " +
-      "\001(\r\022\035\n\titem_list\030\t \003(\0132\n.ItemParam\022\021\n\tad" +
-      "d_point\030\014 \001(\rB\033\n\031emu.grasscutter.net.pro" +
+      "\001(\r\022\021\n\tadd_point\030\014 \001(\r\022\035\n\titem_list\030\t \003(" +
+      "\0132\n.ItemParamB\033\n\031emu.grasscutter.net.pro" +
       "tob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -1060,7 +1062,7 @@ public final class BattlePassBuySuccNotifyOuterClass {
     internal_static_BattlePassBuySuccNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_BattlePassBuySuccNotify_descriptor,
-        new java.lang.String[] { "ScheduleId", "ProductPlayType", "ItemList", "AddPoint", });
+        new java.lang.String[] { "ScheduleId", "ProductPlayType", "AddPoint", "ItemList", });
     emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCurScheduleUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCurScheduleUpdateNotifyOuterClass.java
index f50eecb6..08e92384 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCurScheduleUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCurScheduleUpdateNotifyOuterClass.java
@@ -41,9 +41,10 @@ public final class BattlePassCurScheduleUpdateNotifyOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2604
+   * CmdId: 2607
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BattlePassCurScheduleUpdateNotify}
@@ -351,9 +352,10 @@ public final class BattlePassCurScheduleUpdateNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2604
+     * CmdId: 2607
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BattlePassCurScheduleUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCycleOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCycleOuterClass.java
index 153043e7..e76f15c8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCycleOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassCycleOuterClass.java
@@ -24,17 +24,17 @@ public final class BattlePassCycleOuterClass {
      */
     int getCycleIdx();
 
-    /**
-     * <code>uint32 begin_time = 13;</code>
-     * @return The beginTime.
-     */
-    int getBeginTime();
-
     /**
      * <code>uint32 end_time = 10;</code>
      * @return The endTime.
      */
     int getEndTime();
+
+    /**
+     * <code>uint32 begin_time = 13;</code>
+     * @return The beginTime.
+     */
+    int getBeginTime();
   }
   /**
    * Protobuf type {@code BattlePassCycle}
@@ -139,17 +139,6 @@ public final class BattlePassCycleOuterClass {
       return cycleIdx_;
     }
 
-    public static final int BEGIN_TIME_FIELD_NUMBER = 13;
-    private int beginTime_;
-    /**
-     * <code>uint32 begin_time = 13;</code>
-     * @return The beginTime.
-     */
-    @java.lang.Override
-    public int getBeginTime() {
-      return beginTime_;
-    }
-
     public static final int END_TIME_FIELD_NUMBER = 10;
     private int endTime_;
     /**
@@ -161,6 +150,17 @@ public final class BattlePassCycleOuterClass {
       return endTime_;
     }
 
+    public static final int BEGIN_TIME_FIELD_NUMBER = 13;
+    private int beginTime_;
+    /**
+     * <code>uint32 begin_time = 13;</code>
+     * @return The beginTime.
+     */
+    @java.lang.Override
+    public int getBeginTime() {
+      return beginTime_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -222,10 +222,10 @@ public final class BattlePassCycleOuterClass {
 
       if (getCycleIdx()
           != other.getCycleIdx()) return false;
-      if (getBeginTime()
-          != other.getBeginTime()) return false;
       if (getEndTime()
           != other.getEndTime()) return false;
+      if (getBeginTime()
+          != other.getBeginTime()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -239,10 +239,10 @@ public final class BattlePassCycleOuterClass {
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = (37 * hash) + CYCLE_IDX_FIELD_NUMBER;
       hash = (53 * hash) + getCycleIdx();
-      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
-      hash = (53 * hash) + getBeginTime();
       hash = (37 * hash) + END_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getEndTime();
+      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getBeginTime();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -378,10 +378,10 @@ public final class BattlePassCycleOuterClass {
         super.clear();
         cycleIdx_ = 0;
 
-        beginTime_ = 0;
-
         endTime_ = 0;
 
+        beginTime_ = 0;
+
         return this;
       }
 
@@ -409,8 +409,8 @@ public final class BattlePassCycleOuterClass {
       public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle buildPartial() {
         emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle result = new emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle(this);
         result.cycleIdx_ = cycleIdx_;
-        result.beginTime_ = beginTime_;
         result.endTime_ = endTime_;
+        result.beginTime_ = beginTime_;
         onBuilt();
         return result;
       }
@@ -462,12 +462,12 @@ public final class BattlePassCycleOuterClass {
         if (other.getCycleIdx() != 0) {
           setCycleIdx(other.getCycleIdx());
         }
-        if (other.getBeginTime() != 0) {
-          setBeginTime(other.getBeginTime());
-        }
         if (other.getEndTime() != 0) {
           setEndTime(other.getEndTime());
         }
+        if (other.getBeginTime() != 0) {
+          setBeginTime(other.getBeginTime());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -528,64 +528,64 @@ public final class BattlePassCycleOuterClass {
         return this;
       }
 
-      private int beginTime_ ;
+      private int endTime_ ;
       /**
-       * <code>uint32 begin_time = 13;</code>
-       * @return The beginTime.
+       * <code>uint32 end_time = 10;</code>
+       * @return The endTime.
        */
       @java.lang.Override
-      public int getBeginTime() {
-        return beginTime_;
+      public int getEndTime() {
+        return endTime_;
       }
       /**
-       * <code>uint32 begin_time = 13;</code>
-       * @param value The beginTime to set.
+       * <code>uint32 end_time = 10;</code>
+       * @param value The endTime to set.
        * @return This builder for chaining.
        */
-      public Builder setBeginTime(int value) {
+      public Builder setEndTime(int value) {
         
-        beginTime_ = value;
+        endTime_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 begin_time = 13;</code>
+       * <code>uint32 end_time = 10;</code>
        * @return This builder for chaining.
        */
-      public Builder clearBeginTime() {
+      public Builder clearEndTime() {
         
-        beginTime_ = 0;
+        endTime_ = 0;
         onChanged();
         return this;
       }
 
-      private int endTime_ ;
+      private int beginTime_ ;
       /**
-       * <code>uint32 end_time = 10;</code>
-       * @return The endTime.
+       * <code>uint32 begin_time = 13;</code>
+       * @return The beginTime.
        */
       @java.lang.Override
-      public int getEndTime() {
-        return endTime_;
+      public int getBeginTime() {
+        return beginTime_;
       }
       /**
-       * <code>uint32 end_time = 10;</code>
-       * @param value The endTime to set.
+       * <code>uint32 begin_time = 13;</code>
+       * @param value The beginTime to set.
        * @return This builder for chaining.
        */
-      public Builder setEndTime(int value) {
+      public Builder setBeginTime(int value) {
         
-        endTime_ = value;
+        beginTime_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 end_time = 10;</code>
+       * <code>uint32 begin_time = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder clearEndTime() {
+      public Builder clearBeginTime() {
         
-        endTime_ = 0;
+        beginTime_ = 0;
         onChanged();
         return this;
       }
@@ -657,8 +657,8 @@ public final class BattlePassCycleOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\025BattlePassCycle.proto\"J\n\017BattlePassCyc" +
-      "le\022\021\n\tcycle_idx\030\003 \001(\r\022\022\n\nbegin_time\030\r \001(" +
-      "\r\022\020\n\010end_time\030\n \001(\rB\033\n\031emu.grasscutter.n" +
+      "le\022\021\n\tcycle_idx\030\003 \001(\r\022\020\n\010end_time\030\n \001(\r\022" +
+      "\022\n\nbegin_time\030\r \001(\rB\033\n\031emu.grasscutter.n" +
       "et.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -670,7 +670,7 @@ public final class BattlePassCycleOuterClass {
     internal_static_BattlePassCycle_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_BattlePassCycle_descriptor,
-        new java.lang.String[] { "CycleIdx", "BeginTime", "EndTime", });
+        new java.lang.String[] { "CycleIdx", "EndTime", "BeginTime", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionDelNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionDelNotifyOuterClass.java
index 01dcd736..99a93e16 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionDelNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionDelNotifyOuterClass.java
@@ -37,9 +37,10 @@ public final class BattlePassMissionDelNotifyOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2643
+   * CmdId: 2625
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BattlePassMissionDelNotify}
@@ -346,9 +347,10 @@ public final class BattlePassMissionDelNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2643
+     * CmdId: 2625
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BattlePassMissionDelNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionOuterClass.java
index 01976fe5..bbbc6500 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionOuterClass.java
@@ -18,12 +18,6 @@ public final class BattlePassMissionOuterClass {
       // @@protoc_insertion_point(interface_extends:BattlePassMission)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 mission_id = 11;</code>
-     * @return The missionId.
-     */
-    int getMissionId();
-
     /**
      * <code>uint32 cur_progress = 13;</code>
      * @return The curProgress.
@@ -31,10 +25,21 @@ public final class BattlePassMissionOuterClass {
     int getCurProgress();
 
     /**
-     * <code>uint32 total_progress = 6;</code>
-     * @return The totalProgress.
+     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+     * @return The enum numeric value on the wire for missionStatus.
      */
-    int getTotalProgress();
+    int getMissionStatusValue();
+    /**
+     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+     * @return The missionStatus.
+     */
+    emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus getMissionStatus();
+
+    /**
+     * <code>uint32 mission_id = 11;</code>
+     * @return The missionId.
+     */
+    int getMissionId();
 
     /**
      * <code>uint32 reward_battle_pass_point = 3;</code>
@@ -49,15 +54,10 @@ public final class BattlePassMissionOuterClass {
     int getMissionType();
 
     /**
-     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-     * @return The enum numeric value on the wire for missionStatus.
-     */
-    int getMissionStatusValue();
-    /**
-     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-     * @return The missionStatus.
+     * <code>uint32 total_progress = 6;</code>
+     * @return The totalProgress.
      */
-    emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus getMissionStatus();
+    int getTotalProgress();
   }
   /**
    * Protobuf type {@code BattlePassMission}
@@ -294,17 +294,6 @@ public final class BattlePassMissionOuterClass {
       // @@protoc_insertion_point(enum_scope:BattlePassMission.MissionStatus)
     }
 
-    public static final int MISSION_ID_FIELD_NUMBER = 11;
-    private int missionId_;
-    /**
-     * <code>uint32 mission_id = 11;</code>
-     * @return The missionId.
-     */
-    @java.lang.Override
-    public int getMissionId() {
-      return missionId_;
-    }
-
     public static final int CUR_PROGRESS_FIELD_NUMBER = 13;
     private int curProgress_;
     /**
@@ -316,15 +305,34 @@ public final class BattlePassMissionOuterClass {
       return curProgress_;
     }
 
-    public static final int TOTAL_PROGRESS_FIELD_NUMBER = 6;
-    private int totalProgress_;
+    public static final int MISSION_STATUS_FIELD_NUMBER = 15;
+    private int missionStatus_;
     /**
-     * <code>uint32 total_progress = 6;</code>
-     * @return The totalProgress.
+     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+     * @return The enum numeric value on the wire for missionStatus.
+     */
+    @java.lang.Override public int getMissionStatusValue() {
+      return missionStatus_;
+    }
+    /**
+     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+     * @return The missionStatus.
+     */
+    @java.lang.Override public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus getMissionStatus() {
+      @SuppressWarnings("deprecation")
+      emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus result = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.valueOf(missionStatus_);
+      return result == null ? emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.UNRECOGNIZED : result;
+    }
+
+    public static final int MISSION_ID_FIELD_NUMBER = 11;
+    private int missionId_;
+    /**
+     * <code>uint32 mission_id = 11;</code>
+     * @return The missionId.
      */
     @java.lang.Override
-    public int getTotalProgress() {
-      return totalProgress_;
+    public int getMissionId() {
+      return missionId_;
     }
 
     public static final int REWARD_BATTLE_PASS_POINT_FIELD_NUMBER = 3;
@@ -349,23 +357,15 @@ public final class BattlePassMissionOuterClass {
       return missionType_;
     }
 
-    public static final int MISSION_STATUS_FIELD_NUMBER = 15;
-    private int missionStatus_;
-    /**
-     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-     * @return The enum numeric value on the wire for missionStatus.
-     */
-    @java.lang.Override public int getMissionStatusValue() {
-      return missionStatus_;
-    }
+    public static final int TOTAL_PROGRESS_FIELD_NUMBER = 6;
+    private int totalProgress_;
     /**
-     * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-     * @return The missionStatus.
+     * <code>uint32 total_progress = 6;</code>
+     * @return The totalProgress.
      */
-    @java.lang.Override public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus getMissionStatus() {
-      @SuppressWarnings("deprecation")
-      emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus result = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.valueOf(missionStatus_);
-      return result == null ? emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.UNRECOGNIZED : result;
+    @java.lang.Override
+    public int getTotalProgress() {
+      return totalProgress_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -448,17 +448,17 @@ public final class BattlePassMissionOuterClass {
       }
       emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission other = (emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission) obj;
 
-      if (getMissionId()
-          != other.getMissionId()) return false;
       if (getCurProgress()
           != other.getCurProgress()) return false;
-      if (getTotalProgress()
-          != other.getTotalProgress()) return false;
+      if (missionStatus_ != other.missionStatus_) return false;
+      if (getMissionId()
+          != other.getMissionId()) return false;
       if (getRewardBattlePassPoint()
           != other.getRewardBattlePassPoint()) return false;
       if (getMissionType()
           != other.getMissionType()) return false;
-      if (missionStatus_ != other.missionStatus_) return false;
+      if (getTotalProgress()
+          != other.getTotalProgress()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -470,18 +470,18 @@ public final class BattlePassMissionOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + MISSION_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getMissionId();
       hash = (37 * hash) + CUR_PROGRESS_FIELD_NUMBER;
       hash = (53 * hash) + getCurProgress();
-      hash = (37 * hash) + TOTAL_PROGRESS_FIELD_NUMBER;
-      hash = (53 * hash) + getTotalProgress();
+      hash = (37 * hash) + MISSION_STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + missionStatus_;
+      hash = (37 * hash) + MISSION_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getMissionId();
       hash = (37 * hash) + REWARD_BATTLE_PASS_POINT_FIELD_NUMBER;
       hash = (53 * hash) + getRewardBattlePassPoint();
       hash = (37 * hash) + MISSION_TYPE_FIELD_NUMBER;
       hash = (53 * hash) + getMissionType();
-      hash = (37 * hash) + MISSION_STATUS_FIELD_NUMBER;
-      hash = (53 * hash) + missionStatus_;
+      hash = (37 * hash) + TOTAL_PROGRESS_FIELD_NUMBER;
+      hash = (53 * hash) + getTotalProgress();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -615,17 +615,17 @@ public final class BattlePassMissionOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        missionId_ = 0;
-
         curProgress_ = 0;
 
-        totalProgress_ = 0;
+        missionStatus_ = 0;
+
+        missionId_ = 0;
 
         rewardBattlePassPoint_ = 0;
 
         missionType_ = 0;
 
-        missionStatus_ = 0;
+        totalProgress_ = 0;
 
         return this;
       }
@@ -653,12 +653,12 @@ public final class BattlePassMissionOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission buildPartial() {
         emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission result = new emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission(this);
-        result.missionId_ = missionId_;
         result.curProgress_ = curProgress_;
-        result.totalProgress_ = totalProgress_;
+        result.missionStatus_ = missionStatus_;
+        result.missionId_ = missionId_;
         result.rewardBattlePassPoint_ = rewardBattlePassPoint_;
         result.missionType_ = missionType_;
-        result.missionStatus_ = missionStatus_;
+        result.totalProgress_ = totalProgress_;
         onBuilt();
         return result;
       }
@@ -707,14 +707,14 @@ public final class BattlePassMissionOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission other) {
         if (other == emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.getDefaultInstance()) return this;
-        if (other.getMissionId() != 0) {
-          setMissionId(other.getMissionId());
-        }
         if (other.getCurProgress() != 0) {
           setCurProgress(other.getCurProgress());
         }
-        if (other.getTotalProgress() != 0) {
-          setTotalProgress(other.getTotalProgress());
+        if (other.missionStatus_ != 0) {
+          setMissionStatusValue(other.getMissionStatusValue());
+        }
+        if (other.getMissionId() != 0) {
+          setMissionId(other.getMissionId());
         }
         if (other.getRewardBattlePassPoint() != 0) {
           setRewardBattlePassPoint(other.getRewardBattlePassPoint());
@@ -722,8 +722,8 @@ public final class BattlePassMissionOuterClass {
         if (other.getMissionType() != 0) {
           setMissionType(other.getMissionType());
         }
-        if (other.missionStatus_ != 0) {
-          setMissionStatusValue(other.getMissionStatusValue());
+        if (other.getTotalProgress() != 0) {
+          setTotalProgress(other.getTotalProgress());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -754,95 +754,118 @@ public final class BattlePassMissionOuterClass {
         return this;
       }
 
-      private int missionId_ ;
+      private int curProgress_ ;
       /**
-       * <code>uint32 mission_id = 11;</code>
-       * @return The missionId.
+       * <code>uint32 cur_progress = 13;</code>
+       * @return The curProgress.
        */
       @java.lang.Override
-      public int getMissionId() {
-        return missionId_;
+      public int getCurProgress() {
+        return curProgress_;
       }
       /**
-       * <code>uint32 mission_id = 11;</code>
-       * @param value The missionId to set.
+       * <code>uint32 cur_progress = 13;</code>
+       * @param value The curProgress to set.
        * @return This builder for chaining.
        */
-      public Builder setMissionId(int value) {
+      public Builder setCurProgress(int value) {
         
-        missionId_ = value;
+        curProgress_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 mission_id = 11;</code>
+       * <code>uint32 cur_progress = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder clearMissionId() {
+      public Builder clearCurProgress() {
         
-        missionId_ = 0;
+        curProgress_ = 0;
         onChanged();
         return this;
       }
 
-      private int curProgress_ ;
+      private int missionStatus_ = 0;
       /**
-       * <code>uint32 cur_progress = 13;</code>
-       * @return The curProgress.
+       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+       * @return The enum numeric value on the wire for missionStatus.
+       */
+      @java.lang.Override public int getMissionStatusValue() {
+        return missionStatus_;
+      }
+      /**
+       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+       * @param value The enum numeric value on the wire for missionStatus to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMissionStatusValue(int value) {
+        
+        missionStatus_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+       * @return The missionStatus.
        */
       @java.lang.Override
-      public int getCurProgress() {
-        return curProgress_;
+      public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus getMissionStatus() {
+        @SuppressWarnings("deprecation")
+        emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus result = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.valueOf(missionStatus_);
+        return result == null ? emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.UNRECOGNIZED : result;
       }
       /**
-       * <code>uint32 cur_progress = 13;</code>
-       * @param value The curProgress to set.
+       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+       * @param value The missionStatus to set.
        * @return This builder for chaining.
        */
-      public Builder setCurProgress(int value) {
+      public Builder setMissionStatus(emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
         
-        curProgress_ = value;
+        missionStatus_ = value.getNumber();
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cur_progress = 13;</code>
+       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCurProgress() {
+      public Builder clearMissionStatus() {
         
-        curProgress_ = 0;
+        missionStatus_ = 0;
         onChanged();
         return this;
       }
 
-      private int totalProgress_ ;
+      private int missionId_ ;
       /**
-       * <code>uint32 total_progress = 6;</code>
-       * @return The totalProgress.
+       * <code>uint32 mission_id = 11;</code>
+       * @return The missionId.
        */
       @java.lang.Override
-      public int getTotalProgress() {
-        return totalProgress_;
+      public int getMissionId() {
+        return missionId_;
       }
       /**
-       * <code>uint32 total_progress = 6;</code>
-       * @param value The totalProgress to set.
+       * <code>uint32 mission_id = 11;</code>
+       * @param value The missionId to set.
        * @return This builder for chaining.
        */
-      public Builder setTotalProgress(int value) {
+      public Builder setMissionId(int value) {
         
-        totalProgress_ = value;
+        missionId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 total_progress = 6;</code>
+       * <code>uint32 mission_id = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder clearTotalProgress() {
+      public Builder clearMissionId() {
         
-        totalProgress_ = 0;
+        missionId_ = 0;
         onChanged();
         return this;
       }
@@ -909,56 +932,33 @@ public final class BattlePassMissionOuterClass {
         return this;
       }
 
-      private int missionStatus_ = 0;
-      /**
-       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-       * @return The enum numeric value on the wire for missionStatus.
-       */
-      @java.lang.Override public int getMissionStatusValue() {
-        return missionStatus_;
-      }
-      /**
-       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-       * @param value The enum numeric value on the wire for missionStatus to set.
-       * @return This builder for chaining.
-       */
-      public Builder setMissionStatusValue(int value) {
-        
-        missionStatus_ = value;
-        onChanged();
-        return this;
-      }
+      private int totalProgress_ ;
       /**
-       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-       * @return The missionStatus.
+       * <code>uint32 total_progress = 6;</code>
+       * @return The totalProgress.
        */
       @java.lang.Override
-      public emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus getMissionStatus() {
-        @SuppressWarnings("deprecation")
-        emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus result = emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.valueOf(missionStatus_);
-        return result == null ? emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus.UNRECOGNIZED : result;
+      public int getTotalProgress() {
+        return totalProgress_;
       }
       /**
-       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
-       * @param value The missionStatus to set.
+       * <code>uint32 total_progress = 6;</code>
+       * @param value The totalProgress to set.
        * @return This builder for chaining.
        */
-      public Builder setMissionStatus(emu.grasscutter.net.proto.BattlePassMissionOuterClass.BattlePassMission.MissionStatus value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
+      public Builder setTotalProgress(int value) {
         
-        missionStatus_ = value.getNumber();
+        totalProgress_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>.BattlePassMission.MissionStatus mission_status = 15;</code>
+       * <code>uint32 total_progress = 6;</code>
        * @return This builder for chaining.
        */
-      public Builder clearMissionStatus() {
+      public Builder clearTotalProgress() {
         
-        missionStatus_ = 0;
+        totalProgress_ = 0;
         onChanged();
         return this;
       }
@@ -1030,11 +1030,11 @@ public final class BattlePassMissionOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\027BattlePassMission.proto\"\321\002\n\021BattlePass" +
-      "Mission\022\022\n\nmission_id\030\013 \001(\r\022\024\n\014cur_progr" +
-      "ess\030\r \001(\r\022\026\n\016total_progress\030\006 \001(\r\022 \n\030rew" +
-      "ard_battle_pass_point\030\003 \001(\r\022\024\n\014mission_t" +
-      "ype\030\014 \001(\r\0228\n\016mission_status\030\017 \001(\0162 .Batt" +
-      "lePassMission.MissionStatus\"\207\001\n\rMissionS" +
+      "Mission\022\024\n\014cur_progress\030\r \001(\r\0228\n\016mission" +
+      "_status\030\017 \001(\0162 .BattlePassMission.Missio" +
+      "nStatus\022\022\n\nmission_id\030\013 \001(\r\022 \n\030reward_ba" +
+      "ttle_pass_point\030\003 \001(\r\022\024\n\014mission_type\030\014 " +
+      "\001(\r\022\026\n\016total_progress\030\006 \001(\r\"\207\001\n\rMissionS" +
       "tatus\022\032\n\026MISSION_STATUS_INVALID\020\000\022\035\n\031MIS" +
       "SION_STATUS_UNFINISHED\020\001\022\033\n\027MISSION_STAT" +
       "US_FINISHED\020\002\022\036\n\032MISSION_STATUS_POINT_TA" +
@@ -1050,7 +1050,7 @@ public final class BattlePassMissionOuterClass {
     internal_static_BattlePassMission_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_BattlePassMission_descriptor,
-        new java.lang.String[] { "MissionId", "CurProgress", "TotalProgress", "RewardBattlePassPoint", "MissionType", "MissionStatus", });
+        new java.lang.String[] { "CurProgress", "MissionStatus", "MissionId", "RewardBattlePassPoint", "MissionType", "TotalProgress", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionUpdateNotifyOuterClass.java
index 2a3f6943..ed7d475f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionUpdateNotifyOuterClass.java
@@ -44,9 +44,10 @@ public final class BattlePassMissionUpdateNotifyOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2609
+   * CmdId: 2618
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BattlePassMissionUpdateNotify}
@@ -338,9 +339,10 @@ public final class BattlePassMissionUpdateNotifyOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2609
+     * CmdId: 2618
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BattlePassMissionUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTagOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTagOuterClass.java
index 3fb7807d..2d71f71b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTagOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTagOuterClass.java
@@ -18,6 +18,12 @@ public final class BattlePassRewardTagOuterClass {
       // @@protoc_insertion_point(interface_extends:BattlePassRewardTag)
       com.google.protobuf.MessageOrBuilder {
 
+    /**
+     * <code>uint32 level = 4;</code>
+     * @return The level.
+     */
+    int getLevel();
+
     /**
      * <code>.BattlePassUnlockStatus unlock_status = 2;</code>
      * @return The enum numeric value on the wire for unlockStatus.
@@ -29,12 +35,6 @@ public final class BattlePassRewardTagOuterClass {
      */
     emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.BattlePassUnlockStatus getUnlockStatus();
 
-    /**
-     * <code>uint32 level = 4;</code>
-     * @return The level.
-     */
-    int getLevel();
-
     /**
      * <code>uint32 reward_id = 7;</code>
      * @return The rewardId.
@@ -135,6 +135,17 @@ public final class BattlePassRewardTagOuterClass {
               emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag.class, emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag.Builder.class);
     }
 
+    public static final int LEVEL_FIELD_NUMBER = 4;
+    private int level_;
+    /**
+     * <code>uint32 level = 4;</code>
+     * @return The level.
+     */
+    @java.lang.Override
+    public int getLevel() {
+      return level_;
+    }
+
     public static final int UNLOCK_STATUS_FIELD_NUMBER = 2;
     private int unlockStatus_;
     /**
@@ -154,17 +165,6 @@ public final class BattlePassRewardTagOuterClass {
       return result == null ? emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.BattlePassUnlockStatus.UNRECOGNIZED : result;
     }
 
-    public static final int LEVEL_FIELD_NUMBER = 4;
-    private int level_;
-    /**
-     * <code>uint32 level = 4;</code>
-     * @return The level.
-     */
-    @java.lang.Override
-    public int getLevel() {
-      return level_;
-    }
-
     public static final int REWARD_ID_FIELD_NUMBER = 7;
     private int rewardId_;
     /**
@@ -235,9 +235,9 @@ public final class BattlePassRewardTagOuterClass {
       }
       emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag other = (emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag) obj;
 
-      if (unlockStatus_ != other.unlockStatus_) return false;
       if (getLevel()
           != other.getLevel()) return false;
+      if (unlockStatus_ != other.unlockStatus_) return false;
       if (getRewardId()
           != other.getRewardId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
@@ -251,10 +251,10 @@ public final class BattlePassRewardTagOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + UNLOCK_STATUS_FIELD_NUMBER;
-      hash = (53 * hash) + unlockStatus_;
       hash = (37 * hash) + LEVEL_FIELD_NUMBER;
       hash = (53 * hash) + getLevel();
+      hash = (37 * hash) + UNLOCK_STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + unlockStatus_;
       hash = (37 * hash) + REWARD_ID_FIELD_NUMBER;
       hash = (53 * hash) + getRewardId();
       hash = (29 * hash) + unknownFields.hashCode();
@@ -390,10 +390,10 @@ public final class BattlePassRewardTagOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        unlockStatus_ = 0;
-
         level_ = 0;
 
+        unlockStatus_ = 0;
+
         rewardId_ = 0;
 
         return this;
@@ -422,8 +422,8 @@ public final class BattlePassRewardTagOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag buildPartial() {
         emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag result = new emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag(this);
-        result.unlockStatus_ = unlockStatus_;
         result.level_ = level_;
+        result.unlockStatus_ = unlockStatus_;
         result.rewardId_ = rewardId_;
         onBuilt();
         return result;
@@ -473,12 +473,12 @@ public final class BattlePassRewardTagOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag other) {
         if (other == emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.BattlePassRewardTag.getDefaultInstance()) return this;
-        if (other.unlockStatus_ != 0) {
-          setUnlockStatusValue(other.getUnlockStatusValue());
-        }
         if (other.getLevel() != 0) {
           setLevel(other.getLevel());
         }
+        if (other.unlockStatus_ != 0) {
+          setUnlockStatusValue(other.getUnlockStatusValue());
+        }
         if (other.getRewardId() != 0) {
           setRewardId(other.getRewardId());
         }
@@ -511,6 +511,37 @@ public final class BattlePassRewardTagOuterClass {
         return this;
       }
 
+      private int level_ ;
+      /**
+       * <code>uint32 level = 4;</code>
+       * @return The level.
+       */
+      @java.lang.Override
+      public int getLevel() {
+        return level_;
+      }
+      /**
+       * <code>uint32 level = 4;</code>
+       * @param value The level to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLevel(int value) {
+        
+        level_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 level = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLevel() {
+        
+        level_ = 0;
+        onChanged();
+        return this;
+      }
+
       private int unlockStatus_ = 0;
       /**
        * <code>.BattlePassUnlockStatus unlock_status = 2;</code>
@@ -565,37 +596,6 @@ public final class BattlePassRewardTagOuterClass {
         return this;
       }
 
-      private int level_ ;
-      /**
-       * <code>uint32 level = 4;</code>
-       * @return The level.
-       */
-      @java.lang.Override
-      public int getLevel() {
-        return level_;
-      }
-      /**
-       * <code>uint32 level = 4;</code>
-       * @param value The level to set.
-       * @return This builder for chaining.
-       */
-      public Builder setLevel(int value) {
-        
-        level_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 level = 4;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearLevel() {
-        
-        level_ = 0;
-        onChanged();
-        return this;
-      }
-
       private int rewardId_ ;
       /**
        * <code>uint32 reward_id = 7;</code>
@@ -695,8 +695,8 @@ public final class BattlePassRewardTagOuterClass {
     java.lang.String[] descriptorData = {
       "\n\031BattlePassRewardTag.proto\032\034BattlePassU" +
       "nlockStatus.proto\"g\n\023BattlePassRewardTag" +
-      "\022.\n\runlock_status\030\002 \001(\0162\027.BattlePassUnlo" +
-      "ckStatus\022\r\n\005level\030\004 \001(\r\022\021\n\treward_id\030\007 \001" +
+      "\022\r\n\005level\030\004 \001(\r\022.\n\runlock_status\030\002 \001(\0162\027" +
+      ".BattlePassUnlockStatus\022\021\n\treward_id\030\007 \001" +
       "(\rB\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -709,7 +709,7 @@ public final class BattlePassRewardTagOuterClass {
     internal_static_BattlePassRewardTag_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_BattlePassRewardTag_descriptor,
-        new java.lang.String[] { "UnlockStatus", "Level", "RewardId", });
+        new java.lang.String[] { "Level", "UnlockStatus", "RewardId", });
     emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassScheduleOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassScheduleOuterClass.java
index 5d3334f8..643f2547 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BattlePassScheduleOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BattlePassScheduleOuterClass.java
@@ -18,24 +18,45 @@ public final class BattlePassScheduleOuterClass {
       // @@protoc_insertion_point(interface_extends:BattlePassSchedule)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 schedule_id = 9;</code>
-     * @return The scheduleId.
-     */
-    int getScheduleId();
-
     /**
      * <code>uint32 level = 14;</code>
      * @return The level.
      */
     int getLevel();
 
+    /**
+     * <code>uint32 begin_time = 2;</code>
+     * @return The beginTime.
+     */
+    int getBeginTime();
+
+    /**
+     * <code>uint32 end_time = 15;</code>
+     * @return The endTime.
+     */
+    int getEndTime();
+
     /**
      * <code>uint32 point = 1;</code>
      * @return The point.
      */
     int getPoint();
 
+    /**
+     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     * @return Whether the curCycle field is set.
+     */
+    boolean hasCurCycle();
+    /**
+     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     * @return The curCycle.
+     */
+    emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle getCurCycle();
+    /**
+     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     */
+    emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder getCurCycleOrBuilder();
+
     /**
      * <code>.BattlePassUnlockStatus unlock_status = 7;</code>
      * @return The enum numeric value on the wire for unlockStatus.
@@ -72,37 +93,16 @@ public final class BattlePassScheduleOuterClass {
         int index);
 
     /**
-     * <code>uint32 begin_time = 2;</code>
-     * @return The beginTime.
-     */
-    int getBeginTime();
-
-    /**
-     * <code>uint32 end_time = 15;</code>
-     * @return The endTime.
-     */
-    int getEndTime();
-
-    /**
-     * <code>.BattlePassCycle cur_cycle = 4;</code>
-     * @return Whether the curCycle field is set.
-     */
-    boolean hasCurCycle();
-    /**
-     * <code>.BattlePassCycle cur_cycle = 4;</code>
-     * @return The curCycle.
-     */
-    emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle getCurCycle();
-    /**
-     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     * <code>uint32 cur_cycle_points = 10;</code>
+     * @return The curCyclePoints.
      */
-    emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder getCurCycleOrBuilder();
+    int getCurCyclePoints();
 
     /**
-     * <code>bool is_extra_paid_reward_taken = 6;</code>
-     * @return The isExtraPaidRewardTaken.
+     * <code>uint32 Unk2700_ODHAAHEPFAG = 12;</code>
+     * @return The unk2700ODHAAHEPFAG.
      */
-    boolean getIsExtraPaidRewardTaken();
+    int getUnk2700ODHAAHEPFAG();
 
     /**
      * <code>.BattlePassProduct product_info = 13;</code>
@@ -120,22 +120,22 @@ public final class BattlePassScheduleOuterClass {
     emu.grasscutter.net.proto.BattlePassProductOuterClass.BattlePassProductOrBuilder getProductInfoOrBuilder();
 
     /**
-     * <code>bool is_viewed = 3;</code>
-     * @return The isViewed.
+     * <code>bool is_extra_paid_reward_taken = 6;</code>
+     * @return The isExtraPaidRewardTaken.
      */
-    boolean getIsViewed();
+    boolean getIsExtraPaidRewardTaken();
 
     /**
-     * <code>uint32 cur_cycle_points = 10;</code>
-     * @return The curCyclePoints.
+     * <code>bool is_viewed = 3;</code>
+     * @return The isViewed.
      */
-    int getCurCyclePoints();
+    boolean getIsViewed();
 
     /**
-     * <code>uint32 JPFMGBEBBBJ = 12;</code>
-     * @return The jPFMGBEBBBJ.
+     * <code>uint32 schedule_id = 9;</code>
+     * @return The scheduleId.
      */
-    int getJPFMGBEBBBJ();
+    int getScheduleId();
   }
   /**
    * Protobuf type {@code BattlePassSchedule}
@@ -245,7 +245,7 @@ public final class BattlePassScheduleOuterClass {
             }
             case 96: {
 
-              jPFMGBEBBBJ_ = input.readUInt32();
+              unk2700ODHAAHEPFAG_ = input.readUInt32();
               break;
             }
             case 106: {
@@ -306,17 +306,6 @@ public final class BattlePassScheduleOuterClass {
               emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.class, emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.Builder.class);
     }
 
-    public static final int SCHEDULE_ID_FIELD_NUMBER = 9;
-    private int scheduleId_;
-    /**
-     * <code>uint32 schedule_id = 9;</code>
-     * @return The scheduleId.
-     */
-    @java.lang.Override
-    public int getScheduleId() {
-      return scheduleId_;
-    }
-
     public static final int LEVEL_FIELD_NUMBER = 14;
     private int level_;
     /**
@@ -328,6 +317,28 @@ public final class BattlePassScheduleOuterClass {
       return level_;
     }
 
+    public static final int BEGIN_TIME_FIELD_NUMBER = 2;
+    private int beginTime_;
+    /**
+     * <code>uint32 begin_time = 2;</code>
+     * @return The beginTime.
+     */
+    @java.lang.Override
+    public int getBeginTime() {
+      return beginTime_;
+    }
+
+    public static final int END_TIME_FIELD_NUMBER = 15;
+    private int endTime_;
+    /**
+     * <code>uint32 end_time = 15;</code>
+     * @return The endTime.
+     */
+    @java.lang.Override
+    public int getEndTime() {
+      return endTime_;
+    }
+
     public static final int POINT_FIELD_NUMBER = 1;
     private int point_;
     /**
@@ -339,6 +350,32 @@ public final class BattlePassScheduleOuterClass {
       return point_;
     }
 
+    public static final int CUR_CYCLE_FIELD_NUMBER = 4;
+    private emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle curCycle_;
+    /**
+     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     * @return Whether the curCycle field is set.
+     */
+    @java.lang.Override
+    public boolean hasCurCycle() {
+      return curCycle_ != null;
+    }
+    /**
+     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     * @return The curCycle.
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle getCurCycle() {
+      return curCycle_ == null ? emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.getDefaultInstance() : curCycle_;
+    }
+    /**
+     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder getCurCycleOrBuilder() {
+      return getCurCycle();
+    }
+
     public static final int UNLOCK_STATUS_FIELD_NUMBER = 7;
     private int unlockStatus_;
     /**
@@ -398,63 +435,26 @@ public final class BattlePassScheduleOuterClass {
       return rewardTakenList_.get(index);
     }
 
-    public static final int BEGIN_TIME_FIELD_NUMBER = 2;
-    private int beginTime_;
-    /**
-     * <code>uint32 begin_time = 2;</code>
-     * @return The beginTime.
-     */
-    @java.lang.Override
-    public int getBeginTime() {
-      return beginTime_;
-    }
-
-    public static final int END_TIME_FIELD_NUMBER = 15;
-    private int endTime_;
-    /**
-     * <code>uint32 end_time = 15;</code>
-     * @return The endTime.
-     */
-    @java.lang.Override
-    public int getEndTime() {
-      return endTime_;
-    }
-
-    public static final int CUR_CYCLE_FIELD_NUMBER = 4;
-    private emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle curCycle_;
-    /**
-     * <code>.BattlePassCycle cur_cycle = 4;</code>
-     * @return Whether the curCycle field is set.
-     */
-    @java.lang.Override
-    public boolean hasCurCycle() {
-      return curCycle_ != null;
-    }
-    /**
-     * <code>.BattlePassCycle cur_cycle = 4;</code>
-     * @return The curCycle.
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle getCurCycle() {
-      return curCycle_ == null ? emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.getDefaultInstance() : curCycle_;
-    }
+    public static final int CUR_CYCLE_POINTS_FIELD_NUMBER = 10;
+    private int curCyclePoints_;
     /**
-     * <code>.BattlePassCycle cur_cycle = 4;</code>
+     * <code>uint32 cur_cycle_points = 10;</code>
+     * @return The curCyclePoints.
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder getCurCycleOrBuilder() {
-      return getCurCycle();
+    public int getCurCyclePoints() {
+      return curCyclePoints_;
     }
 
-    public static final int IS_EXTRA_PAID_REWARD_TAKEN_FIELD_NUMBER = 6;
-    private boolean isExtraPaidRewardTaken_;
+    public static final int UNK2700_ODHAAHEPFAG_FIELD_NUMBER = 12;
+    private int unk2700ODHAAHEPFAG_;
     /**
-     * <code>bool is_extra_paid_reward_taken = 6;</code>
-     * @return The isExtraPaidRewardTaken.
+     * <code>uint32 Unk2700_ODHAAHEPFAG = 12;</code>
+     * @return The unk2700ODHAAHEPFAG.
      */
     @java.lang.Override
-    public boolean getIsExtraPaidRewardTaken() {
-      return isExtraPaidRewardTaken_;
+    public int getUnk2700ODHAAHEPFAG() {
+      return unk2700ODHAAHEPFAG_;
     }
 
     public static final int PRODUCT_INFO_FIELD_NUMBER = 13;
@@ -483,6 +483,17 @@ public final class BattlePassScheduleOuterClass {
       return getProductInfo();
     }
 
+    public static final int IS_EXTRA_PAID_REWARD_TAKEN_FIELD_NUMBER = 6;
+    private boolean isExtraPaidRewardTaken_;
+    /**
+     * <code>bool is_extra_paid_reward_taken = 6;</code>
+     * @return The isExtraPaidRewardTaken.
+     */
+    @java.lang.Override
+    public boolean getIsExtraPaidRewardTaken() {
+      return isExtraPaidRewardTaken_;
+    }
+
     public static final int IS_VIEWED_FIELD_NUMBER = 3;
     private boolean isViewed_;
     /**
@@ -494,26 +505,15 @@ public final class BattlePassScheduleOuterClass {
       return isViewed_;
     }
 
-    public static final int CUR_CYCLE_POINTS_FIELD_NUMBER = 10;
-    private int curCyclePoints_;
-    /**
-     * <code>uint32 cur_cycle_points = 10;</code>
-     * @return The curCyclePoints.
-     */
-    @java.lang.Override
-    public int getCurCyclePoints() {
-      return curCyclePoints_;
-    }
-
-    public static final int JPFMGBEBBBJ_FIELD_NUMBER = 12;
-    private int jPFMGBEBBBJ_;
+    public static final int SCHEDULE_ID_FIELD_NUMBER = 9;
+    private int scheduleId_;
     /**
-     * <code>uint32 JPFMGBEBBBJ = 12;</code>
-     * @return The jPFMGBEBBBJ.
+     * <code>uint32 schedule_id = 9;</code>
+     * @return The scheduleId.
      */
     @java.lang.Override
-    public int getJPFMGBEBBBJ() {
-      return jPFMGBEBBBJ_;
+    public int getScheduleId() {
+      return scheduleId_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -557,8 +557,8 @@ public final class BattlePassScheduleOuterClass {
       for (int i = 0; i < rewardTakenList_.size(); i++) {
         output.writeMessage(11, rewardTakenList_.get(i));
       }
-      if (jPFMGBEBBBJ_ != 0) {
-        output.writeUInt32(12, jPFMGBEBBBJ_);
+      if (unk2700ODHAAHEPFAG_ != 0) {
+        output.writeUInt32(12, unk2700ODHAAHEPFAG_);
       }
       if (productInfo_ != null) {
         output.writeMessage(13, getProductInfo());
@@ -614,9 +614,9 @@ public final class BattlePassScheduleOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(11, rewardTakenList_.get(i));
       }
-      if (jPFMGBEBBBJ_ != 0) {
+      if (unk2700ODHAAHEPFAG_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(12, jPFMGBEBBBJ_);
+          .computeUInt32Size(12, unk2700ODHAAHEPFAG_);
       }
       if (productInfo_ != null) {
         size += com.google.protobuf.CodedOutputStream
@@ -645,37 +645,37 @@ public final class BattlePassScheduleOuterClass {
       }
       emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule other = (emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule) obj;
 
-      if (getScheduleId()
-          != other.getScheduleId()) return false;
       if (getLevel()
           != other.getLevel()) return false;
-      if (getPoint()
-          != other.getPoint()) return false;
-      if (unlockStatus_ != other.unlockStatus_) return false;
-      if (!getRewardTakenListList()
-          .equals(other.getRewardTakenListList())) return false;
       if (getBeginTime()
           != other.getBeginTime()) return false;
       if (getEndTime()
           != other.getEndTime()) return false;
+      if (getPoint()
+          != other.getPoint()) return false;
       if (hasCurCycle() != other.hasCurCycle()) return false;
       if (hasCurCycle()) {
         if (!getCurCycle()
             .equals(other.getCurCycle())) return false;
       }
-      if (getIsExtraPaidRewardTaken()
-          != other.getIsExtraPaidRewardTaken()) return false;
+      if (unlockStatus_ != other.unlockStatus_) return false;
+      if (!getRewardTakenListList()
+          .equals(other.getRewardTakenListList())) return false;
+      if (getCurCyclePoints()
+          != other.getCurCyclePoints()) return false;
+      if (getUnk2700ODHAAHEPFAG()
+          != other.getUnk2700ODHAAHEPFAG()) return false;
       if (hasProductInfo() != other.hasProductInfo()) return false;
       if (hasProductInfo()) {
         if (!getProductInfo()
             .equals(other.getProductInfo())) return false;
       }
+      if (getIsExtraPaidRewardTaken()
+          != other.getIsExtraPaidRewardTaken()) return false;
       if (getIsViewed()
           != other.getIsViewed()) return false;
-      if (getCurCyclePoints()
-          != other.getCurCyclePoints()) return false;
-      if (getJPFMGBEBBBJ()
-          != other.getJPFMGBEBBBJ()) return false;
+      if (getScheduleId()
+          != other.getScheduleId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -687,40 +687,40 @@ public final class BattlePassScheduleOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getScheduleId();
       hash = (37 * hash) + LEVEL_FIELD_NUMBER;
       hash = (53 * hash) + getLevel();
-      hash = (37 * hash) + POINT_FIELD_NUMBER;
-      hash = (53 * hash) + getPoint();
-      hash = (37 * hash) + UNLOCK_STATUS_FIELD_NUMBER;
-      hash = (53 * hash) + unlockStatus_;
-      if (getRewardTakenListCount() > 0) {
-        hash = (37 * hash) + REWARD_TAKEN_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getRewardTakenListList().hashCode();
-      }
       hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getBeginTime();
       hash = (37 * hash) + END_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getEndTime();
+      hash = (37 * hash) + POINT_FIELD_NUMBER;
+      hash = (53 * hash) + getPoint();
       if (hasCurCycle()) {
         hash = (37 * hash) + CUR_CYCLE_FIELD_NUMBER;
         hash = (53 * hash) + getCurCycle().hashCode();
       }
-      hash = (37 * hash) + IS_EXTRA_PAID_REWARD_TAKEN_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getIsExtraPaidRewardTaken());
+      hash = (37 * hash) + UNLOCK_STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + unlockStatus_;
+      if (getRewardTakenListCount() > 0) {
+        hash = (37 * hash) + REWARD_TAKEN_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getRewardTakenListList().hashCode();
+      }
+      hash = (37 * hash) + CUR_CYCLE_POINTS_FIELD_NUMBER;
+      hash = (53 * hash) + getCurCyclePoints();
+      hash = (37 * hash) + UNK2700_ODHAAHEPFAG_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700ODHAAHEPFAG();
       if (hasProductInfo()) {
         hash = (37 * hash) + PRODUCT_INFO_FIELD_NUMBER;
         hash = (53 * hash) + getProductInfo().hashCode();
       }
+      hash = (37 * hash) + IS_EXTRA_PAID_REWARD_TAKEN_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsExtraPaidRewardTaken());
       hash = (37 * hash) + IS_VIEWED_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getIsViewed());
-      hash = (37 * hash) + CUR_CYCLE_POINTS_FIELD_NUMBER;
-      hash = (53 * hash) + getCurCyclePoints();
-      hash = (37 * hash) + JPFMGBEBBBJ_FIELD_NUMBER;
-      hash = (53 * hash) + getJPFMGBEBBBJ();
+      hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getScheduleId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -855,12 +855,20 @@ public final class BattlePassScheduleOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        scheduleId_ = 0;
-
         level_ = 0;
 
+        beginTime_ = 0;
+
+        endTime_ = 0;
+
         point_ = 0;
 
+        if (curCycleBuilder_ == null) {
+          curCycle_ = null;
+        } else {
+          curCycle_ = null;
+          curCycleBuilder_ = null;
+        }
         unlockStatus_ = 0;
 
         if (rewardTakenListBuilder_ == null) {
@@ -869,17 +877,9 @@ public final class BattlePassScheduleOuterClass {
         } else {
           rewardTakenListBuilder_.clear();
         }
-        beginTime_ = 0;
-
-        endTime_ = 0;
+        curCyclePoints_ = 0;
 
-        if (curCycleBuilder_ == null) {
-          curCycle_ = null;
-        } else {
-          curCycle_ = null;
-          curCycleBuilder_ = null;
-        }
-        isExtraPaidRewardTaken_ = false;
+        unk2700ODHAAHEPFAG_ = 0;
 
         if (productInfoBuilder_ == null) {
           productInfo_ = null;
@@ -887,11 +887,11 @@ public final class BattlePassScheduleOuterClass {
           productInfo_ = null;
           productInfoBuilder_ = null;
         }
-        isViewed_ = false;
+        isExtraPaidRewardTaken_ = false;
 
-        curCyclePoints_ = 0;
+        isViewed_ = false;
 
-        jPFMGBEBBBJ_ = 0;
+        scheduleId_ = 0;
 
         return this;
       }
@@ -920,9 +920,15 @@ public final class BattlePassScheduleOuterClass {
       public emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule buildPartial() {
         emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule result = new emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule(this);
         int from_bitField0_ = bitField0_;
-        result.scheduleId_ = scheduleId_;
         result.level_ = level_;
+        result.beginTime_ = beginTime_;
+        result.endTime_ = endTime_;
         result.point_ = point_;
+        if (curCycleBuilder_ == null) {
+          result.curCycle_ = curCycle_;
+        } else {
+          result.curCycle_ = curCycleBuilder_.build();
+        }
         result.unlockStatus_ = unlockStatus_;
         if (rewardTakenListBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
@@ -933,22 +939,16 @@ public final class BattlePassScheduleOuterClass {
         } else {
           result.rewardTakenList_ = rewardTakenListBuilder_.build();
         }
-        result.beginTime_ = beginTime_;
-        result.endTime_ = endTime_;
-        if (curCycleBuilder_ == null) {
-          result.curCycle_ = curCycle_;
-        } else {
-          result.curCycle_ = curCycleBuilder_.build();
-        }
-        result.isExtraPaidRewardTaken_ = isExtraPaidRewardTaken_;
+        result.curCyclePoints_ = curCyclePoints_;
+        result.unk2700ODHAAHEPFAG_ = unk2700ODHAAHEPFAG_;
         if (productInfoBuilder_ == null) {
           result.productInfo_ = productInfo_;
         } else {
           result.productInfo_ = productInfoBuilder_.build();
         }
+        result.isExtraPaidRewardTaken_ = isExtraPaidRewardTaken_;
         result.isViewed_ = isViewed_;
-        result.curCyclePoints_ = curCyclePoints_;
-        result.jPFMGBEBBBJ_ = jPFMGBEBBBJ_;
+        result.scheduleId_ = scheduleId_;
         onBuilt();
         return result;
       }
@@ -997,15 +997,21 @@ public final class BattlePassScheduleOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule other) {
         if (other == emu.grasscutter.net.proto.BattlePassScheduleOuterClass.BattlePassSchedule.getDefaultInstance()) return this;
-        if (other.getScheduleId() != 0) {
-          setScheduleId(other.getScheduleId());
-        }
         if (other.getLevel() != 0) {
           setLevel(other.getLevel());
         }
+        if (other.getBeginTime() != 0) {
+          setBeginTime(other.getBeginTime());
+        }
+        if (other.getEndTime() != 0) {
+          setEndTime(other.getEndTime());
+        }
         if (other.getPoint() != 0) {
           setPoint(other.getPoint());
         }
+        if (other.hasCurCycle()) {
+          mergeCurCycle(other.getCurCycle());
+        }
         if (other.unlockStatus_ != 0) {
           setUnlockStatusValue(other.getUnlockStatusValue());
         }
@@ -1035,29 +1041,23 @@ public final class BattlePassScheduleOuterClass {
             }
           }
         }
-        if (other.getBeginTime() != 0) {
-          setBeginTime(other.getBeginTime());
+        if (other.getCurCyclePoints() != 0) {
+          setCurCyclePoints(other.getCurCyclePoints());
         }
-        if (other.getEndTime() != 0) {
-          setEndTime(other.getEndTime());
+        if (other.getUnk2700ODHAAHEPFAG() != 0) {
+          setUnk2700ODHAAHEPFAG(other.getUnk2700ODHAAHEPFAG());
         }
-        if (other.hasCurCycle()) {
-          mergeCurCycle(other.getCurCycle());
+        if (other.hasProductInfo()) {
+          mergeProductInfo(other.getProductInfo());
         }
         if (other.getIsExtraPaidRewardTaken() != false) {
           setIsExtraPaidRewardTaken(other.getIsExtraPaidRewardTaken());
         }
-        if (other.hasProductInfo()) {
-          mergeProductInfo(other.getProductInfo());
-        }
         if (other.getIsViewed() != false) {
           setIsViewed(other.getIsViewed());
         }
-        if (other.getCurCyclePoints() != 0) {
-          setCurCyclePoints(other.getCurCyclePoints());
-        }
-        if (other.getJPFMGBEBBBJ() != 0) {
-          setJPFMGBEBBBJ(other.getJPFMGBEBBBJ());
+        if (other.getScheduleId() != 0) {
+          setScheduleId(other.getScheduleId());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -1089,64 +1089,95 @@ public final class BattlePassScheduleOuterClass {
       }
       private int bitField0_;
 
-      private int scheduleId_ ;
+      private int level_ ;
       /**
-       * <code>uint32 schedule_id = 9;</code>
-       * @return The scheduleId.
+       * <code>uint32 level = 14;</code>
+       * @return The level.
        */
       @java.lang.Override
-      public int getScheduleId() {
-        return scheduleId_;
+      public int getLevel() {
+        return level_;
       }
       /**
-       * <code>uint32 schedule_id = 9;</code>
-       * @param value The scheduleId to set.
+       * <code>uint32 level = 14;</code>
+       * @param value The level to set.
        * @return This builder for chaining.
        */
-      public Builder setScheduleId(int value) {
+      public Builder setLevel(int value) {
         
-        scheduleId_ = value;
+        level_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 schedule_id = 9;</code>
+       * <code>uint32 level = 14;</code>
        * @return This builder for chaining.
        */
-      public Builder clearScheduleId() {
+      public Builder clearLevel() {
         
-        scheduleId_ = 0;
+        level_ = 0;
         onChanged();
         return this;
       }
 
-      private int level_ ;
+      private int beginTime_ ;
       /**
-       * <code>uint32 level = 14;</code>
-       * @return The level.
+       * <code>uint32 begin_time = 2;</code>
+       * @return The beginTime.
        */
       @java.lang.Override
-      public int getLevel() {
-        return level_;
+      public int getBeginTime() {
+        return beginTime_;
       }
       /**
-       * <code>uint32 level = 14;</code>
-       * @param value The level to set.
+       * <code>uint32 begin_time = 2;</code>
+       * @param value The beginTime to set.
        * @return This builder for chaining.
        */
-      public Builder setLevel(int value) {
+      public Builder setBeginTime(int value) {
         
-        level_ = value;
+        beginTime_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 level = 14;</code>
+       * <code>uint32 begin_time = 2;</code>
        * @return This builder for chaining.
        */
-      public Builder clearLevel() {
+      public Builder clearBeginTime() {
         
-        level_ = 0;
+        beginTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int endTime_ ;
+      /**
+       * <code>uint32 end_time = 15;</code>
+       * @return The endTime.
+       */
+      @java.lang.Override
+      public int getEndTime() {
+        return endTime_;
+      }
+      /**
+       * <code>uint32 end_time = 15;</code>
+       * @param value The endTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEndTime(int value) {
+        
+        endTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 end_time = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearEndTime() {
+        
+        endTime_ = 0;
         onChanged();
         return this;
       }
@@ -1182,6 +1213,125 @@ public final class BattlePassScheduleOuterClass {
         return this;
       }
 
+      private emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle curCycle_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder> curCycleBuilder_;
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       * @return Whether the curCycle field is set.
+       */
+      public boolean hasCurCycle() {
+        return curCycleBuilder_ != null || curCycle_ != null;
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       * @return The curCycle.
+       */
+      public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle getCurCycle() {
+        if (curCycleBuilder_ == null) {
+          return curCycle_ == null ? emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.getDefaultInstance() : curCycle_;
+        } else {
+          return curCycleBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      public Builder setCurCycle(emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle value) {
+        if (curCycleBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          curCycle_ = value;
+          onChanged();
+        } else {
+          curCycleBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      public Builder setCurCycle(
+          emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder builderForValue) {
+        if (curCycleBuilder_ == null) {
+          curCycle_ = builderForValue.build();
+          onChanged();
+        } else {
+          curCycleBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      public Builder mergeCurCycle(emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle value) {
+        if (curCycleBuilder_ == null) {
+          if (curCycle_ != null) {
+            curCycle_ =
+              emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.newBuilder(curCycle_).mergeFrom(value).buildPartial();
+          } else {
+            curCycle_ = value;
+          }
+          onChanged();
+        } else {
+          curCycleBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      public Builder clearCurCycle() {
+        if (curCycleBuilder_ == null) {
+          curCycle_ = null;
+          onChanged();
+        } else {
+          curCycle_ = null;
+          curCycleBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder getCurCycleBuilder() {
+        
+        onChanged();
+        return getCurCycleFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder getCurCycleOrBuilder() {
+        if (curCycleBuilder_ != null) {
+          return curCycleBuilder_.getMessageOrBuilder();
+        } else {
+          return curCycle_ == null ?
+              emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.getDefaultInstance() : curCycle_;
+        }
+      }
+      /**
+       * <code>.BattlePassCycle cur_cycle = 4;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder> 
+          getCurCycleFieldBuilder() {
+        if (curCycleBuilder_ == null) {
+          curCycleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder>(
+                  getCurCycle(),
+                  getParentForChildren(),
+                  isClean());
+          curCycle_ = null;
+        }
+        return curCycleBuilder_;
+      }
+
       private int unlockStatus_ = 0;
       /**
        * <code>.BattlePassUnlockStatus unlock_status = 7;</code>
@@ -1476,214 +1626,64 @@ public final class BattlePassScheduleOuterClass {
         return rewardTakenListBuilder_;
       }
 
-      private int beginTime_ ;
-      /**
-       * <code>uint32 begin_time = 2;</code>
-       * @return The beginTime.
-       */
-      @java.lang.Override
-      public int getBeginTime() {
-        return beginTime_;
-      }
-      /**
-       * <code>uint32 begin_time = 2;</code>
-       * @param value The beginTime to set.
-       * @return This builder for chaining.
-       */
-      public Builder setBeginTime(int value) {
-        
-        beginTime_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 begin_time = 2;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearBeginTime() {
-        
-        beginTime_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private int endTime_ ;
+      private int curCyclePoints_ ;
       /**
-       * <code>uint32 end_time = 15;</code>
-       * @return The endTime.
+       * <code>uint32 cur_cycle_points = 10;</code>
+       * @return The curCyclePoints.
        */
       @java.lang.Override
-      public int getEndTime() {
-        return endTime_;
+      public int getCurCyclePoints() {
+        return curCyclePoints_;
       }
       /**
-       * <code>uint32 end_time = 15;</code>
-       * @param value The endTime to set.
+       * <code>uint32 cur_cycle_points = 10;</code>
+       * @param value The curCyclePoints to set.
        * @return This builder for chaining.
        */
-      public Builder setEndTime(int value) {
+      public Builder setCurCyclePoints(int value) {
         
-        endTime_ = value;
+        curCyclePoints_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 end_time = 15;</code>
+       * <code>uint32 cur_cycle_points = 10;</code>
        * @return This builder for chaining.
        */
-      public Builder clearEndTime() {
+      public Builder clearCurCyclePoints() {
         
-        endTime_ = 0;
+        curCyclePoints_ = 0;
         onChanged();
         return this;
       }
 
-      private emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle curCycle_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder> curCycleBuilder_;
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       * @return Whether the curCycle field is set.
-       */
-      public boolean hasCurCycle() {
-        return curCycleBuilder_ != null || curCycle_ != null;
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       * @return The curCycle.
-       */
-      public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle getCurCycle() {
-        if (curCycleBuilder_ == null) {
-          return curCycle_ == null ? emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.getDefaultInstance() : curCycle_;
-        } else {
-          return curCycleBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      public Builder setCurCycle(emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle value) {
-        if (curCycleBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          curCycle_ = value;
-          onChanged();
-        } else {
-          curCycleBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      public Builder setCurCycle(
-          emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder builderForValue) {
-        if (curCycleBuilder_ == null) {
-          curCycle_ = builderForValue.build();
-          onChanged();
-        } else {
-          curCycleBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      public Builder mergeCurCycle(emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle value) {
-        if (curCycleBuilder_ == null) {
-          if (curCycle_ != null) {
-            curCycle_ =
-              emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.newBuilder(curCycle_).mergeFrom(value).buildPartial();
-          } else {
-            curCycle_ = value;
-          }
-          onChanged();
-        } else {
-          curCycleBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      public Builder clearCurCycle() {
-        if (curCycleBuilder_ == null) {
-          curCycle_ = null;
-          onChanged();
-        } else {
-          curCycle_ = null;
-          curCycleBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder getCurCycleBuilder() {
-        
-        onChanged();
-        return getCurCycleFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      public emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder getCurCycleOrBuilder() {
-        if (curCycleBuilder_ != null) {
-          return curCycleBuilder_.getMessageOrBuilder();
-        } else {
-          return curCycle_ == null ?
-              emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.getDefaultInstance() : curCycle_;
-        }
-      }
-      /**
-       * <code>.BattlePassCycle cur_cycle = 4;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder> 
-          getCurCycleFieldBuilder() {
-        if (curCycleBuilder_ == null) {
-          curCycleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycle.Builder, emu.grasscutter.net.proto.BattlePassCycleOuterClass.BattlePassCycleOrBuilder>(
-                  getCurCycle(),
-                  getParentForChildren(),
-                  isClean());
-          curCycle_ = null;
-        }
-        return curCycleBuilder_;
-      }
-
-      private boolean isExtraPaidRewardTaken_ ;
+      private int unk2700ODHAAHEPFAG_ ;
       /**
-       * <code>bool is_extra_paid_reward_taken = 6;</code>
-       * @return The isExtraPaidRewardTaken.
+       * <code>uint32 Unk2700_ODHAAHEPFAG = 12;</code>
+       * @return The unk2700ODHAAHEPFAG.
        */
       @java.lang.Override
-      public boolean getIsExtraPaidRewardTaken() {
-        return isExtraPaidRewardTaken_;
+      public int getUnk2700ODHAAHEPFAG() {
+        return unk2700ODHAAHEPFAG_;
       }
       /**
-       * <code>bool is_extra_paid_reward_taken = 6;</code>
-       * @param value The isExtraPaidRewardTaken to set.
+       * <code>uint32 Unk2700_ODHAAHEPFAG = 12;</code>
+       * @param value The unk2700ODHAAHEPFAG to set.
        * @return This builder for chaining.
        */
-      public Builder setIsExtraPaidRewardTaken(boolean value) {
+      public Builder setUnk2700ODHAAHEPFAG(int value) {
         
-        isExtraPaidRewardTaken_ = value;
+        unk2700ODHAAHEPFAG_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_extra_paid_reward_taken = 6;</code>
+       * <code>uint32 Unk2700_ODHAAHEPFAG = 12;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsExtraPaidRewardTaken() {
+      public Builder clearUnk2700ODHAAHEPFAG() {
         
-        isExtraPaidRewardTaken_ = false;
+        unk2700ODHAAHEPFAG_ = 0;
         onChanged();
         return this;
       }
@@ -1807,95 +1807,95 @@ public final class BattlePassScheduleOuterClass {
         return productInfoBuilder_;
       }
 
-      private boolean isViewed_ ;
+      private boolean isExtraPaidRewardTaken_ ;
       /**
-       * <code>bool is_viewed = 3;</code>
-       * @return The isViewed.
+       * <code>bool is_extra_paid_reward_taken = 6;</code>
+       * @return The isExtraPaidRewardTaken.
        */
       @java.lang.Override
-      public boolean getIsViewed() {
-        return isViewed_;
+      public boolean getIsExtraPaidRewardTaken() {
+        return isExtraPaidRewardTaken_;
       }
       /**
-       * <code>bool is_viewed = 3;</code>
-       * @param value The isViewed to set.
+       * <code>bool is_extra_paid_reward_taken = 6;</code>
+       * @param value The isExtraPaidRewardTaken to set.
        * @return This builder for chaining.
        */
-      public Builder setIsViewed(boolean value) {
+      public Builder setIsExtraPaidRewardTaken(boolean value) {
         
-        isViewed_ = value;
+        isExtraPaidRewardTaken_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_viewed = 3;</code>
+       * <code>bool is_extra_paid_reward_taken = 6;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsViewed() {
+      public Builder clearIsExtraPaidRewardTaken() {
         
-        isViewed_ = false;
+        isExtraPaidRewardTaken_ = false;
         onChanged();
         return this;
       }
 
-      private int curCyclePoints_ ;
+      private boolean isViewed_ ;
       /**
-       * <code>uint32 cur_cycle_points = 10;</code>
-       * @return The curCyclePoints.
+       * <code>bool is_viewed = 3;</code>
+       * @return The isViewed.
        */
       @java.lang.Override
-      public int getCurCyclePoints() {
-        return curCyclePoints_;
+      public boolean getIsViewed() {
+        return isViewed_;
       }
       /**
-       * <code>uint32 cur_cycle_points = 10;</code>
-       * @param value The curCyclePoints to set.
+       * <code>bool is_viewed = 3;</code>
+       * @param value The isViewed to set.
        * @return This builder for chaining.
        */
-      public Builder setCurCyclePoints(int value) {
+      public Builder setIsViewed(boolean value) {
         
-        curCyclePoints_ = value;
+        isViewed_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cur_cycle_points = 10;</code>
+       * <code>bool is_viewed = 3;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCurCyclePoints() {
+      public Builder clearIsViewed() {
         
-        curCyclePoints_ = 0;
+        isViewed_ = false;
         onChanged();
         return this;
       }
 
-      private int jPFMGBEBBBJ_ ;
+      private int scheduleId_ ;
       /**
-       * <code>uint32 JPFMGBEBBBJ = 12;</code>
-       * @return The jPFMGBEBBBJ.
+       * <code>uint32 schedule_id = 9;</code>
+       * @return The scheduleId.
        */
       @java.lang.Override
-      public int getJPFMGBEBBBJ() {
-        return jPFMGBEBBBJ_;
+      public int getScheduleId() {
+        return scheduleId_;
       }
       /**
-       * <code>uint32 JPFMGBEBBBJ = 12;</code>
-       * @param value The jPFMGBEBBBJ to set.
+       * <code>uint32 schedule_id = 9;</code>
+       * @param value The scheduleId to set.
        * @return This builder for chaining.
        */
-      public Builder setJPFMGBEBBBJ(int value) {
+      public Builder setScheduleId(int value) {
         
-        jPFMGBEBBBJ_ = value;
+        scheduleId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 JPFMGBEBBBJ = 12;</code>
+       * <code>uint32 schedule_id = 9;</code>
        * @return This builder for chaining.
        */
-      public Builder clearJPFMGBEBBBJ() {
+      public Builder clearScheduleId() {
         
-        jPFMGBEBBBJ_ = 0;
+        scheduleId_ = 0;
         onChanged();
         return this;
       }
@@ -1966,39 +1966,40 @@ public final class BattlePassScheduleOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\030BattlePassSchedule.proto\032\034BattlePassUn" +
-      "lockStatus.proto\032\025BattlePassCycle.proto\032" +
-      "\027BattlePassProduct.proto\032\031BattlePassRewa" +
-      "rdTag.proto\"\203\003\n\022BattlePassSchedule\022\023\n\013sc" +
-      "hedule_id\030\t \001(\r\022\r\n\005level\030\016 \001(\r\022\r\n\005point\030" +
-      "\001 \001(\r\022.\n\runlock_status\030\007 \001(\0162\027.BattlePas" +
-      "sUnlockStatus\022/\n\021reward_taken_list\030\013 \003(\013" +
-      "2\024.BattlePassRewardTag\022\022\n\nbegin_time\030\002 \001" +
-      "(\r\022\020\n\010end_time\030\017 \001(\r\022#\n\tcur_cycle\030\004 \001(\0132" +
-      "\020.BattlePassCycle\022\"\n\032is_extra_paid_rewar" +
-      "d_taken\030\006 \001(\010\022(\n\014product_info\030\r \001(\0132\022.Ba" +
-      "ttlePassProduct\022\021\n\tis_viewed\030\003 \001(\010\022\030\n\020cu" +
-      "r_cycle_points\030\n \001(\r\022\023\n\013JPFMGBEBBBJ\030\014 \001(" +
-      "\rB\033\n\031emu.grasscutter.net.protob\006proto3"
+      "\n\030BattlePassSchedule.proto\032\025BattlePassCy" +
+      "cle.proto\032\027BattlePassProduct.proto\032\031Batt" +
+      "lePassRewardTag.proto\032\034BattlePassUnlockS" +
+      "tatus.proto\"\213\003\n\022BattlePassSchedule\022\r\n\005le" +
+      "vel\030\016 \001(\r\022\022\n\nbegin_time\030\002 \001(\r\022\020\n\010end_tim" +
+      "e\030\017 \001(\r\022\r\n\005point\030\001 \001(\r\022#\n\tcur_cycle\030\004 \001(" +
+      "\0132\020.BattlePassCycle\022.\n\runlock_status\030\007 \001" +
+      "(\0162\027.BattlePassUnlockStatus\022/\n\021reward_ta" +
+      "ken_list\030\013 \003(\0132\024.BattlePassRewardTag\022\030\n\020" +
+      "cur_cycle_points\030\n \001(\r\022\033\n\023Unk2700_ODHAAH" +
+      "EPFAG\030\014 \001(\r\022(\n\014product_info\030\r \001(\0132\022.Batt" +
+      "lePassProduct\022\"\n\032is_extra_paid_reward_ta" +
+      "ken\030\006 \001(\010\022\021\n\tis_viewed\030\003 \001(\010\022\023\n\013schedule" +
+      "_id\030\t \001(\rB\033\n\031emu.grasscutter.net.protob\006" +
+      "proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
-          emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.BattlePassCycleOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.BattlePassProductOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.getDescriptor(),
+          emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.getDescriptor(),
         });
     internal_static_BattlePassSchedule_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_BattlePassSchedule_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_BattlePassSchedule_descriptor,
-        new java.lang.String[] { "ScheduleId", "Level", "Point", "UnlockStatus", "RewardTakenList", "BeginTime", "EndTime", "CurCycle", "IsExtraPaidRewardTaken", "ProductInfo", "IsViewed", "CurCyclePoints", "JPFMGBEBBBJ", });
-    emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.getDescriptor();
+        new java.lang.String[] { "Level", "BeginTime", "EndTime", "Point", "CurCycle", "UnlockStatus", "RewardTakenList", "CurCyclePoints", "Unk2700ODHAAHEPFAG", "ProductInfo", "IsExtraPaidRewardTaken", "IsViewed", "ScheduleId", });
     emu.grasscutter.net.proto.BattlePassCycleOuterClass.getDescriptor();
     emu.grasscutter.net.proto.BattlePassProductOuterClass.getDescriptor();
     emu.grasscutter.net.proto.BattlePassRewardTagOuterClass.getDescriptor();
+    emu.grasscutter.net.proto.BattlePassUnlockStatusOuterClass.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoNotifyOuterClass.java
index 69fcce06..782e26fa 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoNotifyOuterClass.java
@@ -46,7 +46,7 @@ public final class BlossomBriefInfoNotifyOuterClass {
    * <pre>
    * CmdId: 2712
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class BlossomBriefInfoNotifyOuterClass {
      * <pre>
      * CmdId: 2712
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelReqOuterClass.java
index c622e463..c2538984 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelReqOuterClass.java
@@ -28,7 +28,7 @@ public final class BuyBattlePassLevelReqOuterClass {
    * <pre>
    * CmdId: 2647
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class BuyBattlePassLevelReqOuterClass {
      * <pre>
      * CmdId: 2647
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelRspOuterClass.java
index e0b32819..7a7e4679 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelRspOuterClass.java
@@ -34,7 +34,8 @@ public final class BuyBattlePassLevelRspOuterClass {
    * <pre>
    * CmdId: 2637
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BuyBattlePassLevelRsp}
@@ -315,7 +316,8 @@ public final class BuyBattlePassLevelRspOuterClass {
      * <pre>
      * CmdId: 2637
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BuyBattlePassLevelRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsReqOuterClass.java
index f72457f5..d31097f4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsReqOuterClass.java
@@ -49,7 +49,7 @@ public final class BuyGoodsReqOuterClass {
    * <pre>
    * CmdId: 712
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -386,7 +386,7 @@ public final class BuyGoodsReqOuterClass {
      * <pre>
      * CmdId: 712
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsRspOuterClass.java
index 533efdb1..41023bca 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsRspOuterClass.java
@@ -79,7 +79,8 @@ public final class BuyGoodsRspOuterClass {
    * <pre>
    * CmdId: 735
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code BuyGoodsRsp}
@@ -509,7 +510,8 @@ public final class BuyGoodsRspOuterClass {
      * <pre>
      * CmdId: 735
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code BuyGoodsRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsReqOuterClass.java
index 370f9931..016dc89b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsReqOuterClass.java
@@ -69,7 +69,7 @@ public final class CalcWeaponUpgradeReturnItemsReqOuterClass {
    * <pre>
    * CmdId: 633
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -473,7 +473,7 @@ public final class CalcWeaponUpgradeReturnItemsReqOuterClass {
      * <pre>
      * CmdId: 633
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsRspOuterClass.java
index d1a92b25..e9a5be6f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsRspOuterClass.java
@@ -58,7 +58,8 @@ public final class CalcWeaponUpgradeReturnItemsRspOuterClass {
    * <pre>
    * CmdId: 684
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CalcWeaponUpgradeReturnItemsRsp}
@@ -407,7 +408,8 @@ public final class CalcWeaponUpgradeReturnItemsRspOuterClass {
      * <pre>
      * CmdId: 684
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CalcWeaponUpgradeReturnItemsRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CanUseSkillNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CanUseSkillNotifyOuterClass.java
index 42a01992..431b701e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CanUseSkillNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CanUseSkillNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class CanUseSkillNotifyOuterClass {
    * <pre>
    * CmdId: 1005
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CanUseSkillNotify}
@@ -283,7 +284,8 @@ public final class CanUseSkillNotifyOuterClass {
      * <pre>
      * CmdId: 1005
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CanUseSkillNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CardProductRewardNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CardProductRewardNotifyOuterClass.java
index 89f088ea..31fdbab6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CardProductRewardNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CardProductRewardNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class CardProductRewardNotifyOuterClass {
    * <pre>
    * CmdId: 4107
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CardProductRewardNotify}
@@ -382,7 +383,8 @@ public final class CardProductRewardNotifyOuterClass {
      * <pre>
      * CmdId: 4107
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CardProductRewardNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChallengeDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChallengeDataNotifyOuterClass.java
index 38333459..4a6b61f4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChallengeDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChallengeDataNotifyOuterClass.java
@@ -40,7 +40,8 @@ public final class ChallengeDataNotifyOuterClass {
    * <pre>
    * CmdId: 953
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChallengeDataNotify}
@@ -348,7 +349,8 @@ public final class ChallengeDataNotifyOuterClass {
      * <pre>
      * CmdId: 953
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChallengeDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarReqOuterClass.java
index e76bee73..c7929653 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarReqOuterClass.java
@@ -55,7 +55,7 @@ public final class ChangeAvatarReqOuterClass {
    * <pre>
    * CmdId: 1640
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -421,7 +421,7 @@ public final class ChangeAvatarReqOuterClass {
      * <pre>
      * CmdId: 1640
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarRspOuterClass.java
index fef26e30..e4cd3a9b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarRspOuterClass.java
@@ -40,7 +40,8 @@ public final class ChangeAvatarRspOuterClass {
    * <pre>
    * CmdId: 1607
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChangeAvatarRsp}
@@ -349,7 +350,8 @@ public final class ChangeAvatarRspOuterClass {
      * <pre>
      * CmdId: 1607
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChangeAvatarRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeReqOuterClass.java
index 28f58b51..f92234ce 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeReqOuterClass.java
@@ -40,7 +40,7 @@ public final class ChangeGameTimeReqOuterClass {
    * <pre>
    * CmdId: 173
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class ChangeGameTimeReqOuterClass {
      * <pre>
      * CmdId: 173
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeRspOuterClass.java
index c82bcfbf..2b403c05 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeRspOuterClass.java
@@ -40,7 +40,8 @@ public final class ChangeGameTimeRspOuterClass {
    * <pre>
    * CmdId: 199
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChangeGameTimeRsp}
@@ -348,7 +349,8 @@ public final class ChangeGameTimeRspOuterClass {
      * <pre>
      * CmdId: 199
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChangeGameTimeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java
index b1638e8e..88036e88 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java
@@ -45,7 +45,7 @@ public final class ChangeMailStarNotifyOuterClass {
    * <pre>
    * CmdId: 1448
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -383,7 +383,7 @@ public final class ChangeMailStarNotifyOuterClass {
      * <pre>
      * CmdId: 1448
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarReqOuterClass.java
index 1576d711..8fea8318 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarReqOuterClass.java
@@ -45,7 +45,7 @@ public final class ChangeMpTeamAvatarReqOuterClass {
    * <pre>
    * CmdId: 1708
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -383,7 +383,7 @@ public final class ChangeMpTeamAvatarReqOuterClass {
      * <pre>
      * CmdId: 1708
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarRspOuterClass.java
index ba2e07eb..c34b8252 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarRspOuterClass.java
@@ -51,7 +51,8 @@ public final class ChangeMpTeamAvatarRspOuterClass {
    * <pre>
    * CmdId: 1753
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChangeMpTeamAvatarRsp}
@@ -415,7 +416,8 @@ public final class ChangeMpTeamAvatarRspOuterClass {
      * <pre>
      * CmdId: 1753
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChangeMpTeamAvatarRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameReqOuterClass.java
index 261fd2c6..1707a677 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameReqOuterClass.java
@@ -40,7 +40,7 @@ public final class ChangeTeamNameReqOuterClass {
    * <pre>
    * CmdId: 1603
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class ChangeTeamNameReqOuterClass {
      * <pre>
      * CmdId: 1603
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameRspOuterClass.java
index 591f799b..75472070 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameRspOuterClass.java
@@ -46,7 +46,8 @@ public final class ChangeTeamNameRspOuterClass {
    * <pre>
    * CmdId: 1666
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChangeTeamNameRsp}
@@ -382,7 +383,8 @@ public final class ChangeTeamNameRspOuterClass {
      * <pre>
      * CmdId: 1666
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChangeTeamNameRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChapterStateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChapterStateNotifyOuterClass.java
index 40cebdbc..b2c1f84c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChapterStateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChapterStateNotifyOuterClass.java
@@ -18,12 +18,6 @@ public final class ChapterStateNotifyOuterClass {
       // @@protoc_insertion_point(interface_extends:ChapterStateNotify)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 chapter_id = 2;</code>
-     * @return The chapterId.
-     */
-    int getChapterId();
-
     /**
      * <code>.ChapterState chapter_state = 9;</code>
      * @return The enum numeric value on the wire for chapterState.
@@ -64,12 +58,19 @@ public final class ChapterStateNotifyOuterClass {
      * <code>.ChapterStateNotify.NeedBeginTime need_begin_time = 1;</code>
      */
     emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTimeOrBuilder getNeedBeginTimeOrBuilder();
+
+    /**
+     * <code>uint32 chapter_id = 2;</code>
+     * @return The chapterId.
+     */
+    int getChapterId();
   }
   /**
    * <pre>
    * CmdId: 405
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChapterStateNotify}
@@ -749,17 +750,17 @@ public final class ChapterStateNotifyOuterClass {
         // @@protoc_insertion_point(interface_extends:ChapterStateNotify.NeedBeginTime)
         com.google.protobuf.MessageOrBuilder {
 
-      /**
-       * <code>bool is_limit = 7;</code>
-       * @return The isLimit.
-       */
-      boolean getIsLimit();
-
       /**
        * <code>uint32 config_need_begin_time = 3;</code>
        * @return The configNeedBeginTime.
        */
       int getConfigNeedBeginTime();
+
+      /**
+       * <code>bool is_limit = 7;</code>
+       * @return The isLimit.
+       */
+      boolean getIsLimit();
     }
     /**
      * Protobuf type {@code ChapterStateNotify.NeedBeginTime}
@@ -848,17 +849,6 @@ public final class ChapterStateNotifyOuterClass {
                 emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.class, emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.Builder.class);
       }
 
-      public static final int IS_LIMIT_FIELD_NUMBER = 7;
-      private boolean isLimit_;
-      /**
-       * <code>bool is_limit = 7;</code>
-       * @return The isLimit.
-       */
-      @java.lang.Override
-      public boolean getIsLimit() {
-        return isLimit_;
-      }
-
       public static final int CONFIG_NEED_BEGIN_TIME_FIELD_NUMBER = 3;
       private int configNeedBeginTime_;
       /**
@@ -870,6 +860,17 @@ public final class ChapterStateNotifyOuterClass {
         return configNeedBeginTime_;
       }
 
+      public static final int IS_LIMIT_FIELD_NUMBER = 7;
+      private boolean isLimit_;
+      /**
+       * <code>bool is_limit = 7;</code>
+       * @return The isLimit.
+       */
+      @java.lang.Override
+      public boolean getIsLimit() {
+        return isLimit_;
+      }
+
       private byte memoizedIsInitialized = -1;
       @java.lang.Override
       public final boolean isInitialized() {
@@ -922,10 +923,10 @@ public final class ChapterStateNotifyOuterClass {
         }
         emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime other = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime) obj;
 
-        if (getIsLimit()
-            != other.getIsLimit()) return false;
         if (getConfigNeedBeginTime()
             != other.getConfigNeedBeginTime()) return false;
+        if (getIsLimit()
+            != other.getIsLimit()) return false;
         if (!unknownFields.equals(other.unknownFields)) return false;
         return true;
       }
@@ -937,11 +938,11 @@ public final class ChapterStateNotifyOuterClass {
         }
         int hash = 41;
         hash = (19 * hash) + getDescriptor().hashCode();
+        hash = (37 * hash) + CONFIG_NEED_BEGIN_TIME_FIELD_NUMBER;
+        hash = (53 * hash) + getConfigNeedBeginTime();
         hash = (37 * hash) + IS_LIMIT_FIELD_NUMBER;
         hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
             getIsLimit());
-        hash = (37 * hash) + CONFIG_NEED_BEGIN_TIME_FIELD_NUMBER;
-        hash = (53 * hash) + getConfigNeedBeginTime();
         hash = (29 * hash) + unknownFields.hashCode();
         memoizedHashCode = hash;
         return hash;
@@ -1075,10 +1076,10 @@ public final class ChapterStateNotifyOuterClass {
         @java.lang.Override
         public Builder clear() {
           super.clear();
-          isLimit_ = false;
-
           configNeedBeginTime_ = 0;
 
+          isLimit_ = false;
+
           return this;
         }
 
@@ -1105,8 +1106,8 @@ public final class ChapterStateNotifyOuterClass {
         @java.lang.Override
         public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime buildPartial() {
           emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime result = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime(this);
-          result.isLimit_ = isLimit_;
           result.configNeedBeginTime_ = configNeedBeginTime_;
+          result.isLimit_ = isLimit_;
           onBuilt();
           return result;
         }
@@ -1155,12 +1156,12 @@ public final class ChapterStateNotifyOuterClass {
 
         public Builder mergeFrom(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime other) {
           if (other == emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.NeedBeginTime.getDefaultInstance()) return this;
-          if (other.getIsLimit() != false) {
-            setIsLimit(other.getIsLimit());
-          }
           if (other.getConfigNeedBeginTime() != 0) {
             setConfigNeedBeginTime(other.getConfigNeedBeginTime());
           }
+          if (other.getIsLimit() != false) {
+            setIsLimit(other.getIsLimit());
+          }
           this.mergeUnknownFields(other.unknownFields);
           onChanged();
           return this;
@@ -1190,64 +1191,64 @@ public final class ChapterStateNotifyOuterClass {
           return this;
         }
 
-        private boolean isLimit_ ;
+        private int configNeedBeginTime_ ;
         /**
-         * <code>bool is_limit = 7;</code>
-         * @return The isLimit.
+         * <code>uint32 config_need_begin_time = 3;</code>
+         * @return The configNeedBeginTime.
          */
         @java.lang.Override
-        public boolean getIsLimit() {
-          return isLimit_;
+        public int getConfigNeedBeginTime() {
+          return configNeedBeginTime_;
         }
         /**
-         * <code>bool is_limit = 7;</code>
-         * @param value The isLimit to set.
+         * <code>uint32 config_need_begin_time = 3;</code>
+         * @param value The configNeedBeginTime to set.
          * @return This builder for chaining.
          */
-        public Builder setIsLimit(boolean value) {
+        public Builder setConfigNeedBeginTime(int value) {
           
-          isLimit_ = value;
+          configNeedBeginTime_ = value;
           onChanged();
           return this;
         }
         /**
-         * <code>bool is_limit = 7;</code>
+         * <code>uint32 config_need_begin_time = 3;</code>
          * @return This builder for chaining.
          */
-        public Builder clearIsLimit() {
+        public Builder clearConfigNeedBeginTime() {
           
-          isLimit_ = false;
+          configNeedBeginTime_ = 0;
           onChanged();
           return this;
         }
 
-        private int configNeedBeginTime_ ;
+        private boolean isLimit_ ;
         /**
-         * <code>uint32 config_need_begin_time = 3;</code>
-         * @return The configNeedBeginTime.
+         * <code>bool is_limit = 7;</code>
+         * @return The isLimit.
          */
         @java.lang.Override
-        public int getConfigNeedBeginTime() {
-          return configNeedBeginTime_;
+        public boolean getIsLimit() {
+          return isLimit_;
         }
         /**
-         * <code>uint32 config_need_begin_time = 3;</code>
-         * @param value The configNeedBeginTime to set.
+         * <code>bool is_limit = 7;</code>
+         * @param value The isLimit to set.
          * @return This builder for chaining.
          */
-        public Builder setConfigNeedBeginTime(int value) {
+        public Builder setIsLimit(boolean value) {
           
-          configNeedBeginTime_ = value;
+          isLimit_ = value;
           onChanged();
           return this;
         }
         /**
-         * <code>uint32 config_need_begin_time = 3;</code>
+         * <code>bool is_limit = 7;</code>
          * @return This builder for chaining.
          */
-        public Builder clearConfigNeedBeginTime() {
+        public Builder clearIsLimit() {
           
-          configNeedBeginTime_ = 0;
+          isLimit_ = false;
           onChanged();
           return this;
         }
@@ -1304,17 +1305,6 @@ public final class ChapterStateNotifyOuterClass {
 
     }
 
-    public static final int CHAPTER_ID_FIELD_NUMBER = 2;
-    private int chapterId_;
-    /**
-     * <code>uint32 chapter_id = 2;</code>
-     * @return The chapterId.
-     */
-    @java.lang.Override
-    public int getChapterId() {
-      return chapterId_;
-    }
-
     public static final int CHAPTER_STATE_FIELD_NUMBER = 9;
     private int chapterState_;
     /**
@@ -1386,6 +1376,17 @@ public final class ChapterStateNotifyOuterClass {
       return getNeedBeginTime();
     }
 
+    public static final int CHAPTER_ID_FIELD_NUMBER = 2;
+    private int chapterId_;
+    /**
+     * <code>uint32 chapter_id = 2;</code>
+     * @return The chapterId.
+     */
+    @java.lang.Override
+    public int getChapterId() {
+      return chapterId_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -1452,8 +1453,6 @@ public final class ChapterStateNotifyOuterClass {
       }
       emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify other = (emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify) obj;
 
-      if (getChapterId()
-          != other.getChapterId()) return false;
       if (chapterState_ != other.chapterState_) return false;
       if (hasNeedPlayerLevel() != other.hasNeedPlayerLevel()) return false;
       if (hasNeedPlayerLevel()) {
@@ -1465,6 +1464,8 @@ public final class ChapterStateNotifyOuterClass {
         if (!getNeedBeginTime()
             .equals(other.getNeedBeginTime())) return false;
       }
+      if (getChapterId()
+          != other.getChapterId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -1476,8 +1477,6 @@ public final class ChapterStateNotifyOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + CHAPTER_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getChapterId();
       hash = (37 * hash) + CHAPTER_STATE_FIELD_NUMBER;
       hash = (53 * hash) + chapterState_;
       if (hasNeedPlayerLevel()) {
@@ -1488,6 +1487,8 @@ public final class ChapterStateNotifyOuterClass {
         hash = (37 * hash) + NEED_BEGIN_TIME_FIELD_NUMBER;
         hash = (53 * hash) + getNeedBeginTime().hashCode();
       }
+      hash = (37 * hash) + CHAPTER_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getChapterId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -1587,7 +1588,8 @@ public final class ChapterStateNotifyOuterClass {
      * <pre>
      * CmdId: 405
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChapterStateNotify}
@@ -1627,8 +1629,6 @@ public final class ChapterStateNotifyOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        chapterId_ = 0;
-
         chapterState_ = 0;
 
         if (needPlayerLevelBuilder_ == null) {
@@ -1643,6 +1643,8 @@ public final class ChapterStateNotifyOuterClass {
           needBeginTime_ = null;
           needBeginTimeBuilder_ = null;
         }
+        chapterId_ = 0;
+
         return this;
       }
 
@@ -1669,7 +1671,6 @@ public final class ChapterStateNotifyOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify buildPartial() {
         emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify result = new emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify(this);
-        result.chapterId_ = chapterId_;
         result.chapterState_ = chapterState_;
         if (needPlayerLevelBuilder_ == null) {
           result.needPlayerLevel_ = needPlayerLevel_;
@@ -1681,6 +1682,7 @@ public final class ChapterStateNotifyOuterClass {
         } else {
           result.needBeginTime_ = needBeginTimeBuilder_.build();
         }
+        result.chapterId_ = chapterId_;
         onBuilt();
         return result;
       }
@@ -1729,9 +1731,6 @@ public final class ChapterStateNotifyOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify other) {
         if (other == emu.grasscutter.net.proto.ChapterStateNotifyOuterClass.ChapterStateNotify.getDefaultInstance()) return this;
-        if (other.getChapterId() != 0) {
-          setChapterId(other.getChapterId());
-        }
         if (other.chapterState_ != 0) {
           setChapterStateValue(other.getChapterStateValue());
         }
@@ -1741,6 +1740,9 @@ public final class ChapterStateNotifyOuterClass {
         if (other.hasNeedBeginTime()) {
           mergeNeedBeginTime(other.getNeedBeginTime());
         }
+        if (other.getChapterId() != 0) {
+          setChapterId(other.getChapterId());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -1770,37 +1772,6 @@ public final class ChapterStateNotifyOuterClass {
         return this;
       }
 
-      private int chapterId_ ;
-      /**
-       * <code>uint32 chapter_id = 2;</code>
-       * @return The chapterId.
-       */
-      @java.lang.Override
-      public int getChapterId() {
-        return chapterId_;
-      }
-      /**
-       * <code>uint32 chapter_id = 2;</code>
-       * @param value The chapterId to set.
-       * @return This builder for chaining.
-       */
-      public Builder setChapterId(int value) {
-        
-        chapterId_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 chapter_id = 2;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearChapterId() {
-        
-        chapterId_ = 0;
-        onChanged();
-        return this;
-      }
-
       private int chapterState_ = 0;
       /**
        * <code>.ChapterState chapter_state = 9;</code>
@@ -2092,6 +2063,37 @@ public final class ChapterStateNotifyOuterClass {
         }
         return needBeginTimeBuilder_;
       }
+
+      private int chapterId_ ;
+      /**
+       * <code>uint32 chapter_id = 2;</code>
+       * @return The chapterId.
+       */
+      @java.lang.Override
+      public int getChapterId() {
+        return chapterId_;
+      }
+      /**
+       * <code>uint32 chapter_id = 2;</code>
+       * @param value The chapterId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setChapterId(int value) {
+        
+        chapterId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 chapter_id = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearChapterId() {
+        
+        chapterId_ = 0;
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -2170,15 +2172,15 @@ public final class ChapterStateNotifyOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\030ChapterStateNotify.proto\032\022ChapterState" +
-      ".proto\"\324\002\n\022ChapterStateNotify\022\022\n\nchapter" +
-      "_id\030\002 \001(\r\022$\n\rchapter_state\030\t \001(\0162\r.Chapt" +
-      "erState\022>\n\021need_player_level\030\n \001(\0132#.Cha" +
-      "pterStateNotify.NeedPlayerLevel\022:\n\017need_" +
-      "begin_time\030\001 \001(\0132!.ChapterStateNotify.Ne" +
-      "edBeginTime\032E\n\017NeedPlayerLevel\022\020\n\010is_lim" +
+      ".proto\"\324\002\n\022ChapterStateNotify\022$\n\rchapter" +
+      "_state\030\t \001(\0162\r.ChapterState\022>\n\021need_play" +
+      "er_level\030\n \001(\0132#.ChapterStateNotify.Need" +
+      "PlayerLevel\022:\n\017need_begin_time\030\001 \001(\0132!.C" +
+      "hapterStateNotify.NeedBeginTime\022\022\n\nchapt" +
+      "er_id\030\002 \001(\r\032E\n\017NeedPlayerLevel\022\020\n\010is_lim" +
       "it\030\002 \001(\010\022 \n\030config_need_player_level\030\013 \001" +
-      "(\r\032A\n\rNeedBeginTime\022\020\n\010is_limit\030\007 \001(\010\022\036\n" +
-      "\026config_need_begin_time\030\003 \001(\rB\033\n\031emu.gra" +
+      "(\r\032A\n\rNeedBeginTime\022\036\n\026config_need_begin" +
+      "_time\030\003 \001(\r\022\020\n\010is_limit\030\007 \001(\010B\033\n\031emu.gra" +
       "sscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -2191,7 +2193,7 @@ public final class ChapterStateNotifyOuterClass {
     internal_static_ChapterStateNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ChapterStateNotify_descriptor,
-        new java.lang.String[] { "ChapterId", "ChapterState", "NeedPlayerLevel", "NeedBeginTime", });
+        new java.lang.String[] { "ChapterState", "NeedPlayerLevel", "NeedBeginTime", "ChapterId", });
     internal_static_ChapterStateNotify_NeedPlayerLevel_descriptor =
       internal_static_ChapterStateNotify_descriptor.getNestedTypes().get(0);
     internal_static_ChapterStateNotify_NeedPlayerLevel_fieldAccessorTable = new
@@ -2203,7 +2205,7 @@ public final class ChapterStateNotifyOuterClass {
     internal_static_ChapterStateNotify_NeedBeginTime_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ChapterStateNotify_NeedBeginTime_descriptor,
-        new java.lang.String[] { "IsLimit", "ConfigNeedBeginTime", });
+        new java.lang.String[] { "ConfigNeedBeginTime", "IsLimit", });
     emu.grasscutter.net.proto.ChapterStateOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CheckAddItemExceedLimitNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CheckAddItemExceedLimitNotifyOuterClass.java
index 333407d7..60b9faa2 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CheckAddItemExceedLimitNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CheckAddItemExceedLimitNotifyOuterClass.java
@@ -73,7 +73,8 @@ public final class CheckAddItemExceedLimitNotifyOuterClass {
    * <pre>
    * CmdId: 692
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CheckAddItemExceedLimitNotify}
@@ -652,7 +653,8 @@ public final class CheckAddItemExceedLimitNotifyOuterClass {
      * <pre>
      * CmdId: 692
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CheckAddItemExceedLimitNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamReqOuterClass.java
index c15fd727..b82b710c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamReqOuterClass.java
@@ -28,7 +28,7 @@ public final class ChooseCurAvatarTeamReqOuterClass {
    * <pre>
    * CmdId: 1796
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class ChooseCurAvatarTeamReqOuterClass {
      * <pre>
      * CmdId: 1796
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamRspOuterClass.java
index 691b87d2..b3587b86 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamRspOuterClass.java
@@ -34,7 +34,8 @@ public final class ChooseCurAvatarTeamRspOuterClass {
    * <pre>
    * CmdId: 1661
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ChooseCurAvatarTeamRsp}
@@ -315,7 +316,8 @@ public final class ChooseCurAvatarTeamRspOuterClass {
      * <pre>
      * CmdId: 1661
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ChooseCurAvatarTeamRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityChangeNotifyOuterClass.java
index dd526d7f..96a66227 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityChangeNotifyOuterClass.java
@@ -58,7 +58,7 @@ public final class ClientAbilityChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1175
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -408,7 +408,7 @@ public final class ClientAbilityChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1175
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitBeginNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitBeginNotifyOuterClass.java
index 1c8142c2..f73b0e53 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitBeginNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitBeginNotifyOuterClass.java
@@ -28,7 +28,7 @@ public final class ClientAbilityInitBeginNotifyOuterClass {
    * <pre>
    * CmdId: 1112
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class ClientAbilityInitBeginNotifyOuterClass {
      * <pre>
      * CmdId: 1112
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitFinishNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitFinishNotifyOuterClass.java
index 48c961e1..ee351ac3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitFinishNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitFinishNotifyOuterClass.java
@@ -52,7 +52,7 @@ public final class ClientAbilityInitFinishNotifyOuterClass {
    * <pre>
    * CmdId: 1135
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -374,7 +374,7 @@ public final class ClientAbilityInitFinishNotifyOuterClass {
      * <pre>
      * CmdId: 1135
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ClientCollectorDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ClientCollectorDataNotifyOuterClass.java
index 42638f66..26cf06c7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ClientCollectorDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ClientCollectorDataNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class ClientCollectorDataNotifyOuterClass {
    * <pre>
    * CmdId: 4264
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ClientCollectorDataNotify}
@@ -340,7 +341,8 @@ public final class ClientCollectorDataNotifyOuterClass {
      * <pre>
      * CmdId: 4264
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ClientCollectorDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CodexDataFullNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CodexDataFullNotifyOuterClass.java
index 62ca3dda..7b1f8e60 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CodexDataFullNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CodexDataFullNotifyOuterClass.java
@@ -75,7 +75,8 @@ public final class CodexDataFullNotifyOuterClass {
    * <pre>
    * CmdId: 4205
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CodexDataFullNotify}
@@ -504,7 +505,8 @@ public final class CodexDataFullNotifyOuterClass {
      * <pre>
      * CmdId: 4205
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CodexDataFullNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CodexDataUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CodexDataUpdateNotifyOuterClass.java
index 136987bb..b4edba05 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CodexDataUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CodexDataUpdateNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class CodexDataUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 4207
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CodexDataUpdateNotify}
@@ -362,7 +363,8 @@ public final class CodexDataUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 4207
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CodexDataUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CombatInvocationsNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CombatInvocationsNotifyOuterClass.java
index e1608c53..d850cc49 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CombatInvocationsNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CombatInvocationsNotifyOuterClass.java
@@ -46,7 +46,7 @@ public final class CombatInvocationsNotifyOuterClass {
    * <pre>
    * CmdId: 319
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class CombatInvocationsNotifyOuterClass {
      * <pre>
      * CmdId: 319
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CombatTypeArgumentOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CombatTypeArgumentOuterClass.java
index 2e74c309..e23be452 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CombatTypeArgumentOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CombatTypeArgumentOuterClass.java
@@ -91,6 +91,10 @@ public final class CombatTypeArgumentOuterClass {
      * <code>COMBAT_TYPE_ARGUMENT_Unk2700_KPLOMOIALGF = 17;</code>
      */
     COMBAT_TYPE_ARGUMENT_Unk2700_KPLOMOIALGF(17),
+    /**
+     * <code>COMBAT_TYPE_ARGUMENT_Unk3000_BJEHMPLCFHN = 18;</code>
+     */
+    COMBAT_TYPE_ARGUMENT_Unk3000_BJEHMPLCFHN(18),
     UNRECOGNIZED(-1),
     ;
 
@@ -166,6 +170,10 @@ public final class CombatTypeArgumentOuterClass {
      * <code>COMBAT_TYPE_ARGUMENT_Unk2700_KPLOMOIALGF = 17;</code>
      */
     public static final int COMBAT_TYPE_ARGUMENT_Unk2700_KPLOMOIALGF_VALUE = 17;
+    /**
+     * <code>COMBAT_TYPE_ARGUMENT_Unk3000_BJEHMPLCFHN = 18;</code>
+     */
+    public static final int COMBAT_TYPE_ARGUMENT_Unk3000_BJEHMPLCFHN_VALUE = 18;
 
 
     public final int getNumber() {
@@ -210,6 +218,7 @@ public final class CombatTypeArgumentOuterClass {
         case 15: return COMBAT_TYPE_ARGUMENT_LIGHT_CORE_MOVE;
         case 16: return COMBAT_TYPE_ARGUMENT_Unk2700_KPDNFKCMKPG;
         case 17: return COMBAT_TYPE_ARGUMENT_Unk2700_KPLOMOIALGF;
+        case 18: return COMBAT_TYPE_ARGUMENT_Unk3000_BJEHMPLCFHN;
         default: return null;
       }
     }
@@ -275,7 +284,7 @@ public final class CombatTypeArgumentOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\030CombatTypeArgument.proto*\227\006\n\022CombatTyp" +
+      "\n\030CombatTypeArgument.proto*\305\006\n\022CombatTyp" +
       "eArgument\022\035\n\031COMBAT_TYPE_ARGUMENT_NONE\020\000" +
       "\022&\n\"COMBAT_TYPE_ARGUMENT_EVT_BEING_HIT\020\001" +
       "\022/\n+COMBAT_TYPE_ARGUMENT_ANIMATOR_STATE_" +
@@ -295,8 +304,9 @@ public final class CombatTypeArgumentOuterClass {
       "FORM\020\016\022(\n$COMBAT_TYPE_ARGUMENT_LIGHT_COR" +
       "E_MOVE\020\017\022,\n(COMBAT_TYPE_ARGUMENT_Unk2700" +
       "_KPDNFKCMKPG\020\020\022,\n(COMBAT_TYPE_ARGUMENT_U" +
-      "nk2700_KPLOMOIALGF\020\021B\033\n\031emu.grasscutter." +
-      "net.protob\006proto3"
+      "nk2700_KPLOMOIALGF\020\021\022,\n(COMBAT_TYPE_ARGU" +
+      "MENT_Unk3000_BJEHMPLCFHN\020\022B\033\n\031emu.grassc" +
+      "utter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CombineDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CombineDataNotifyOuterClass.java
index 9b5afcfb..ecb3dd9c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CombineDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CombineDataNotifyOuterClass.java
@@ -39,7 +39,8 @@ public final class CombineDataNotifyOuterClass {
    * <pre>
    * CmdId: 659
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CombineDataNotify}
@@ -348,7 +349,8 @@ public final class CombineDataNotifyOuterClass {
      * <pre>
      * CmdId: 659
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CombineDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CombineFormulaDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CombineFormulaDataNotifyOuterClass.java
index ce2097c3..648d5628 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CombineFormulaDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CombineFormulaDataNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class CombineFormulaDataNotifyOuterClass {
    * <pre>
    * CmdId: 632
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CombineFormulaDataNotify}
@@ -316,7 +317,8 @@ public final class CombineFormulaDataNotifyOuterClass {
      * <pre>
      * CmdId: 632
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CombineFormulaDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CombineReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CombineReqOuterClass.java
index cda20d28..1b5abcfa 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CombineReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CombineReqOuterClass.java
@@ -40,7 +40,7 @@ public final class CombineReqOuterClass {
    * <pre>
    * CmdId: 643
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class CombineReqOuterClass {
      * <pre>
      * CmdId: 643
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CombineRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CombineRspOuterClass.java
index 91e99e4f..89900555 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CombineRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CombineRspOuterClass.java
@@ -166,7 +166,8 @@ public final class CombineRspOuterClass {
    * <pre>
    * CmdId: 674
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CombineRsp}
@@ -833,7 +834,8 @@ public final class CombineRspOuterClass {
      * <pre>
      * CmdId: 674
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CombineRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CookDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CookDataNotifyOuterClass.java
index bc176aa3..e4d331a8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CookDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CookDataNotifyOuterClass.java
@@ -18,12 +18,6 @@ public final class CookDataNotifyOuterClass {
       // @@protoc_insertion_point(interface_extends:CookDataNotify)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 grade = 11;</code>
-     * @return The grade.
-     */
-    int getGrade();
-
     /**
      * <code>repeated .CookRecipeData recipe_data_list = 2;</code>
      */
@@ -47,12 +41,19 @@ public final class CookDataNotifyOuterClass {
      */
     emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataListOrBuilder(
         int index);
+
+    /**
+     * <code>uint32 grade = 11;</code>
+     * @return The grade.
+     */
+    int getGrade();
   }
   /**
    * <pre>
    * CmdId: 195
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CookDataNotify}
@@ -150,17 +151,6 @@ public final class CookDataNotifyOuterClass {
               emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify.class, emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify.Builder.class);
     }
 
-    public static final int GRADE_FIELD_NUMBER = 11;
-    private int grade_;
-    /**
-     * <code>uint32 grade = 11;</code>
-     * @return The grade.
-     */
-    @java.lang.Override
-    public int getGrade() {
-      return grade_;
-    }
-
     public static final int RECIPE_DATA_LIST_FIELD_NUMBER = 2;
     private java.util.List<emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData> recipeDataList_;
     /**
@@ -201,6 +191,17 @@ public final class CookDataNotifyOuterClass {
       return recipeDataList_.get(index);
     }
 
+    public static final int GRADE_FIELD_NUMBER = 11;
+    private int grade_;
+    /**
+     * <code>uint32 grade = 11;</code>
+     * @return The grade.
+     */
+    @java.lang.Override
+    public int getGrade() {
+      return grade_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -253,10 +254,10 @@ public final class CookDataNotifyOuterClass {
       }
       emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify other = (emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify) obj;
 
-      if (getGrade()
-          != other.getGrade()) return false;
       if (!getRecipeDataListList()
           .equals(other.getRecipeDataListList())) return false;
+      if (getGrade()
+          != other.getGrade()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -268,12 +269,12 @@ public final class CookDataNotifyOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + GRADE_FIELD_NUMBER;
-      hash = (53 * hash) + getGrade();
       if (getRecipeDataListCount() > 0) {
         hash = (37 * hash) + RECIPE_DATA_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getRecipeDataListList().hashCode();
       }
+      hash = (37 * hash) + GRADE_FIELD_NUMBER;
+      hash = (53 * hash) + getGrade();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -373,7 +374,8 @@ public final class CookDataNotifyOuterClass {
      * <pre>
      * CmdId: 195
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CookDataNotify}
@@ -414,14 +416,14 @@ public final class CookDataNotifyOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        grade_ = 0;
-
         if (recipeDataListBuilder_ == null) {
           recipeDataList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000001);
         } else {
           recipeDataListBuilder_.clear();
         }
+        grade_ = 0;
+
         return this;
       }
 
@@ -449,7 +451,6 @@ public final class CookDataNotifyOuterClass {
       public emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify buildPartial() {
         emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify result = new emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify(this);
         int from_bitField0_ = bitField0_;
-        result.grade_ = grade_;
         if (recipeDataListBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             recipeDataList_ = java.util.Collections.unmodifiableList(recipeDataList_);
@@ -459,6 +460,7 @@ public final class CookDataNotifyOuterClass {
         } else {
           result.recipeDataList_ = recipeDataListBuilder_.build();
         }
+        result.grade_ = grade_;
         onBuilt();
         return result;
       }
@@ -507,9 +509,6 @@ public final class CookDataNotifyOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify other) {
         if (other == emu.grasscutter.net.proto.CookDataNotifyOuterClass.CookDataNotify.getDefaultInstance()) return this;
-        if (other.getGrade() != 0) {
-          setGrade(other.getGrade());
-        }
         if (recipeDataListBuilder_ == null) {
           if (!other.recipeDataList_.isEmpty()) {
             if (recipeDataList_.isEmpty()) {
@@ -536,6 +535,9 @@ public final class CookDataNotifyOuterClass {
             }
           }
         }
+        if (other.getGrade() != 0) {
+          setGrade(other.getGrade());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -566,37 +568,6 @@ public final class CookDataNotifyOuterClass {
       }
       private int bitField0_;
 
-      private int grade_ ;
-      /**
-       * <code>uint32 grade = 11;</code>
-       * @return The grade.
-       */
-      @java.lang.Override
-      public int getGrade() {
-        return grade_;
-      }
-      /**
-       * <code>uint32 grade = 11;</code>
-       * @param value The grade to set.
-       * @return This builder for chaining.
-       */
-      public Builder setGrade(int value) {
-        
-        grade_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 grade = 11;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearGrade() {
-        
-        grade_ = 0;
-        onChanged();
-        return this;
-      }
-
       private java.util.List<emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData> recipeDataList_ =
         java.util.Collections.emptyList();
       private void ensureRecipeDataListIsMutable() {
@@ -836,6 +807,37 @@ public final class CookDataNotifyOuterClass {
         }
         return recipeDataListBuilder_;
       }
+
+      private int grade_ ;
+      /**
+       * <code>uint32 grade = 11;</code>
+       * @return The grade.
+       */
+      @java.lang.Override
+      public int getGrade() {
+        return grade_;
+      }
+      /**
+       * <code>uint32 grade = 11;</code>
+       * @param value The grade to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGrade(int value) {
+        
+        grade_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 grade = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearGrade() {
+        
+        grade_ = 0;
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -904,8 +906,8 @@ public final class CookDataNotifyOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\024CookDataNotify.proto\032\024CookRecipeData.p" +
-      "roto\"J\n\016CookDataNotify\022\r\n\005grade\030\013 \001(\r\022)\n" +
-      "\020recipe_data_list\030\002 \003(\0132\017.CookRecipeData" +
+      "roto\"J\n\016CookDataNotify\022)\n\020recipe_data_li" +
+      "st\030\002 \003(\0132\017.CookRecipeData\022\r\n\005grade\030\013 \001(\r" +
       "B\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -918,7 +920,7 @@ public final class CookDataNotifyOuterClass {
     internal_static_CookDataNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_CookDataNotify_descriptor,
-        new java.lang.String[] { "Grade", "RecipeDataList", });
+        new java.lang.String[] { "RecipeDataList", "Grade", });
     emu.grasscutter.net.proto.CookRecipeDataOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CookGradeDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CookGradeDataNotifyOuterClass.java
index fb72b91e..0f853969 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CookGradeDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CookGradeDataNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class CookGradeDataNotifyOuterClass {
    * <pre>
    * CmdId: 134
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CookGradeDataNotify}
@@ -282,7 +283,8 @@ public final class CookGradeDataNotifyOuterClass {
      * <pre>
      * CmdId: 134
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CookGradeDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataNotifyOuterClass.java
index 7636027d..53410fc7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class CookRecipeDataNotifyOuterClass {
    * <pre>
    * CmdId: 106
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CookRecipeDataNotify}
@@ -319,7 +320,8 @@ public final class CookRecipeDataNotifyOuterClass {
      * <pre>
      * CmdId: 106
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CookRecipeDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataOuterClass.java
index a343a73f..0139f58a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataOuterClass.java
@@ -18,17 +18,17 @@ public final class CookRecipeDataOuterClass {
       // @@protoc_insertion_point(interface_extends:CookRecipeData)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 recipe_id = 9;</code>
-     * @return The recipeId.
-     */
-    int getRecipeId();
-
     /**
      * <code>uint32 proficiency = 13;</code>
      * @return The proficiency.
      */
     int getProficiency();
+
+    /**
+     * <code>uint32 recipe_id = 9;</code>
+     * @return The recipeId.
+     */
+    int getRecipeId();
   }
   /**
    * Protobuf type {@code CookRecipeData}
@@ -117,17 +117,6 @@ public final class CookRecipeDataOuterClass {
               emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.class, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder.class);
     }
 
-    public static final int RECIPE_ID_FIELD_NUMBER = 9;
-    private int recipeId_;
-    /**
-     * <code>uint32 recipe_id = 9;</code>
-     * @return The recipeId.
-     */
-    @java.lang.Override
-    public int getRecipeId() {
-      return recipeId_;
-    }
-
     public static final int PROFICIENCY_FIELD_NUMBER = 13;
     private int proficiency_;
     /**
@@ -139,6 +128,17 @@ public final class CookRecipeDataOuterClass {
       return proficiency_;
     }
 
+    public static final int RECIPE_ID_FIELD_NUMBER = 9;
+    private int recipeId_;
+    /**
+     * <code>uint32 recipe_id = 9;</code>
+     * @return The recipeId.
+     */
+    @java.lang.Override
+    public int getRecipeId() {
+      return recipeId_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -191,10 +191,10 @@ public final class CookRecipeDataOuterClass {
       }
       emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData other = (emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData) obj;
 
-      if (getRecipeId()
-          != other.getRecipeId()) return false;
       if (getProficiency()
           != other.getProficiency()) return false;
+      if (getRecipeId()
+          != other.getRecipeId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -206,10 +206,10 @@ public final class CookRecipeDataOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RECIPE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getRecipeId();
       hash = (37 * hash) + PROFICIENCY_FIELD_NUMBER;
       hash = (53 * hash) + getProficiency();
+      hash = (37 * hash) + RECIPE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getRecipeId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -343,10 +343,10 @@ public final class CookRecipeDataOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        recipeId_ = 0;
-
         proficiency_ = 0;
 
+        recipeId_ = 0;
+
         return this;
       }
 
@@ -373,8 +373,8 @@ public final class CookRecipeDataOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData buildPartial() {
         emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData result = new emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData(this);
-        result.recipeId_ = recipeId_;
         result.proficiency_ = proficiency_;
+        result.recipeId_ = recipeId_;
         onBuilt();
         return result;
       }
@@ -423,12 +423,12 @@ public final class CookRecipeDataOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData other) {
         if (other == emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance()) return this;
-        if (other.getRecipeId() != 0) {
-          setRecipeId(other.getRecipeId());
-        }
         if (other.getProficiency() != 0) {
           setProficiency(other.getProficiency());
         }
+        if (other.getRecipeId() != 0) {
+          setRecipeId(other.getRecipeId());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -458,64 +458,64 @@ public final class CookRecipeDataOuterClass {
         return this;
       }
 
-      private int recipeId_ ;
+      private int proficiency_ ;
       /**
-       * <code>uint32 recipe_id = 9;</code>
-       * @return The recipeId.
+       * <code>uint32 proficiency = 13;</code>
+       * @return The proficiency.
        */
       @java.lang.Override
-      public int getRecipeId() {
-        return recipeId_;
+      public int getProficiency() {
+        return proficiency_;
       }
       /**
-       * <code>uint32 recipe_id = 9;</code>
-       * @param value The recipeId to set.
+       * <code>uint32 proficiency = 13;</code>
+       * @param value The proficiency to set.
        * @return This builder for chaining.
        */
-      public Builder setRecipeId(int value) {
+      public Builder setProficiency(int value) {
         
-        recipeId_ = value;
+        proficiency_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 recipe_id = 9;</code>
+       * <code>uint32 proficiency = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder clearRecipeId() {
+      public Builder clearProficiency() {
         
-        recipeId_ = 0;
+        proficiency_ = 0;
         onChanged();
         return this;
       }
 
-      private int proficiency_ ;
+      private int recipeId_ ;
       /**
-       * <code>uint32 proficiency = 13;</code>
-       * @return The proficiency.
+       * <code>uint32 recipe_id = 9;</code>
+       * @return The recipeId.
        */
       @java.lang.Override
-      public int getProficiency() {
-        return proficiency_;
+      public int getRecipeId() {
+        return recipeId_;
       }
       /**
-       * <code>uint32 proficiency = 13;</code>
-       * @param value The proficiency to set.
+       * <code>uint32 recipe_id = 9;</code>
+       * @param value The recipeId to set.
        * @return This builder for chaining.
        */
-      public Builder setProficiency(int value) {
+      public Builder setRecipeId(int value) {
         
-        proficiency_ = value;
+        recipeId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 proficiency = 13;</code>
+       * <code>uint32 recipe_id = 9;</code>
        * @return This builder for chaining.
        */
-      public Builder clearProficiency() {
+      public Builder clearRecipeId() {
         
-        proficiency_ = 0;
+        recipeId_ = 0;
         onChanged();
         return this;
       }
@@ -587,7 +587,7 @@ public final class CookRecipeDataOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\024CookRecipeData.proto\"8\n\016CookRecipeData" +
-      "\022\021\n\trecipe_id\030\t \001(\r\022\023\n\013proficiency\030\r \001(\r" +
+      "\022\023\n\013proficiency\030\r \001(\r\022\021\n\trecipe_id\030\t \001(\r" +
       "B\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -599,7 +599,7 @@ public final class CookRecipeDataOuterClass {
     internal_static_CookRecipeData_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_CookRecipeData_descriptor,
-        new java.lang.String[] { "RecipeId", "Proficiency", });
+        new java.lang.String[] { "Proficiency", "RecipeId", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CoopDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CoopDataNotifyOuterClass.java
index 34c8d2e9..36fc304b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CoopDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CoopDataNotifyOuterClass.java
@@ -75,7 +75,8 @@ public final class CoopDataNotifyOuterClass {
    * <pre>
    * CmdId: 1979
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CoopDataNotify}
@@ -505,7 +506,8 @@ public final class CoopDataNotifyOuterClass {
      * <pre>
      * CmdId: 1979
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CoopDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleReqOuterClass.java
index ec3d534f..5ae88791 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleReqOuterClass.java
@@ -64,7 +64,7 @@ public final class CreateVehicleReqOuterClass {
    * <pre>
    * CmdId: 893
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -456,7 +456,7 @@ public final class CreateVehicleReqOuterClass {
      * <pre>
      * CmdId: 893
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleRspOuterClass.java
index 8d819033..6fedc9df 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleRspOuterClass.java
@@ -40,7 +40,8 @@ public final class CreateVehicleRspOuterClass {
    * <pre>
    * CmdId: 827
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CreateVehicleRsp}
@@ -348,7 +349,8 @@ public final class CreateVehicleRspOuterClass {
      * <pre>
      * CmdId: 827
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CreateVehicleRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CutSceneBeginNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CutSceneBeginNotifyOuterClass.java
index bbfd9e3e..183024c1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CutSceneBeginNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CutSceneBeginNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class CutSceneBeginNotifyOuterClass {
    * <pre>
    * CmdId: 296
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CutSceneBeginNotify}
@@ -316,7 +317,8 @@ public final class CutSceneBeginNotifyOuterClass {
      * <pre>
      * CmdId: 296
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CutSceneBeginNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CutSceneEndNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CutSceneEndNotifyOuterClass.java
index 25eb9df2..f5a54655 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CutSceneEndNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CutSceneEndNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class CutSceneEndNotifyOuterClass {
    * <pre>
    * CmdId: 215
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code CutSceneEndNotify}
@@ -315,7 +316,8 @@ public final class CutSceneEndNotifyOuterClass {
      * <pre>
      * CmdId: 215
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code CutSceneEndNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/CutSceneFinishNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/CutSceneFinishNotifyOuterClass.java
index e44c0c57..f7df5d9f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/CutSceneFinishNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/CutSceneFinishNotifyOuterClass.java
@@ -28,7 +28,7 @@ public final class CutSceneFinishNotifyOuterClass {
    * <pre>
    * CmdId: 262
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class CutSceneFinishNotifyOuterClass {
      * <pre>
      * CmdId: 262
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendReqOuterClass.java
index 436cd9f5..1a407136 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendReqOuterClass.java
@@ -39,7 +39,7 @@ public final class DealAddFriendReqOuterClass {
    * <pre>
    * CmdId: 4003
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -330,7 +330,7 @@ public final class DealAddFriendReqOuterClass {
      * <pre>
      * CmdId: 4003
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendRspOuterClass.java
index 8161519a..0d4909e6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendRspOuterClass.java
@@ -45,7 +45,7 @@ public final class DealAddFriendRspOuterClass {
    * <pre>
    * CmdId: 4090
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -363,7 +363,7 @@ public final class DealAddFriendRspOuterClass {
      * <pre>
      * CmdId: 4090
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java
index cb1156d8..b6b44093 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java
@@ -39,7 +39,7 @@ public final class DelMailReqOuterClass {
    * <pre>
    * CmdId: 1421
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class DelMailReqOuterClass {
      * <pre>
      * CmdId: 1421
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java
index b109d270..3d70840c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java
@@ -45,7 +45,8 @@ public final class DelMailRspOuterClass {
    * <pre>
    * CmdId: 1403
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DelMailRsp}
@@ -381,7 +382,8 @@ public final class DelMailRspOuterClass {
      * <pre>
      * CmdId: 1403
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DelMailRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DelTeamEntityNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DelTeamEntityNotifyOuterClass.java
index 3da2071c..c1c8d0ca 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DelTeamEntityNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DelTeamEntityNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class DelTeamEntityNotifyOuterClass {
    * <pre>
    * CmdId: 302
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DelTeamEntityNotify}
@@ -381,7 +382,8 @@ public final class DelTeamEntityNotifyOuterClass {
      * <pre>
      * CmdId: 302
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DelTeamEntityNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendNotifyOuterClass.java
index 02c72af4..09e40bbf 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class DeleteFriendNotifyOuterClass {
    * <pre>
    * CmdId: 4053
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DeleteFriendNotify}
@@ -282,7 +283,8 @@ public final class DeleteFriendNotifyOuterClass {
      * <pre>
      * CmdId: 4053
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DeleteFriendNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendReqOuterClass.java
index fa5d9336..f72eef89 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendReqOuterClass.java
@@ -28,7 +28,7 @@ public final class DeleteFriendReqOuterClass {
    * <pre>
    * CmdId: 4031
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class DeleteFriendReqOuterClass {
      * <pre>
      * CmdId: 4031
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendRspOuterClass.java
index 8a086906..caaf4eaa 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendRspOuterClass.java
@@ -34,7 +34,8 @@ public final class DeleteFriendRspOuterClass {
    * <pre>
    * CmdId: 4075
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DeleteFriendRsp}
@@ -315,7 +316,8 @@ public final class DeleteFriendRspOuterClass {
      * <pre>
      * CmdId: 4075
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DeleteFriendRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialReqOuterClass.java
index 508e036d..aaaa024c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialReqOuterClass.java
@@ -46,7 +46,7 @@ public final class DestroyMaterialReqOuterClass {
    * <pre>
    * CmdId: 640
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class DestroyMaterialReqOuterClass {
      * <pre>
      * CmdId: 640
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialRspOuterClass.java
index e849454e..18c5de81 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialRspOuterClass.java
@@ -62,7 +62,8 @@ public final class DestroyMaterialRspOuterClass {
    * <pre>
    * CmdId: 618
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DestroyMaterialRsp}
@@ -478,7 +479,8 @@ public final class DestroyMaterialRspOuterClass {
      * <pre>
      * CmdId: 618
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DestroyMaterialRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DoGachaReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DoGachaReqOuterClass.java
index bad838ed..fcd0f991 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DoGachaReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DoGachaReqOuterClass.java
@@ -58,7 +58,7 @@ public final class DoGachaReqOuterClass {
    * <pre>
    * CmdId: 1512
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -449,7 +449,7 @@ public final class DoGachaReqOuterClass {
      * <pre>
      * CmdId: 1512
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DoGachaRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DoGachaRspOuterClass.java
index d4470c51..0147831f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DoGachaRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DoGachaRspOuterClass.java
@@ -142,7 +142,8 @@ public final class DoGachaRspOuterClass {
    * <pre>
    * CmdId: 1535
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DoGachaRsp}
@@ -869,7 +870,8 @@ public final class DoGachaRspOuterClass {
      * <pre>
      * CmdId: 1535
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DoGachaRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DropHintNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DropHintNotifyOuterClass.java
index 34a7cccb..7b068949 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DropHintNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DropHintNotifyOuterClass.java
@@ -54,7 +54,8 @@ public final class DropHintNotifyOuterClass {
    * <pre>
    * CmdId: 650
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DropHintNotify}
@@ -418,7 +419,8 @@ public final class DropHintNotifyOuterClass {
      * <pre>
      * CmdId: 650
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DropHintNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeBeginNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeBeginNotifyOuterClass.java
index af715da9..47c5e77a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeBeginNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeBeginNotifyOuterClass.java
@@ -80,7 +80,8 @@ public final class DungeonChallengeBeginNotifyOuterClass {
    * <pre>
    * CmdId: 947
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonChallengeBeginNotify}
@@ -577,7 +578,8 @@ public final class DungeonChallengeBeginNotifyOuterClass {
      * <pre>
      * CmdId: 947
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonChallengeBeginNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeFinishNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeFinishNotifyOuterClass.java
index bb2e0c98..f33ecb3c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeFinishNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeFinishNotifyOuterClass.java
@@ -165,7 +165,8 @@ public final class DungeonChallengeFinishNotifyOuterClass {
    * <pre>
    * CmdId: 939
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonChallengeFinishNotify}
@@ -1015,7 +1016,8 @@ public final class DungeonChallengeFinishNotifyOuterClass {
      * <pre>
      * CmdId: 939
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonChallengeFinishNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonDataNotifyOuterClass.java
index 47cec5d0..a0be85be 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonDataNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class DungeonDataNotifyOuterClass {
    * <pre>
    * CmdId: 982
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonDataNotify}
@@ -412,7 +413,8 @@ public final class DungeonDataNotifyOuterClass {
      * <pre>
      * CmdId: 982
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoReqOuterClass.java
index 45925bc1..c79f0085 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoReqOuterClass.java
@@ -58,7 +58,7 @@ public final class DungeonEntryInfoReqOuterClass {
    * <pre>
    * CmdId: 972
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -407,7 +407,7 @@ public final class DungeonEntryInfoReqOuterClass {
      * <pre>
      * CmdId: 972
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoRspOuterClass.java
index 897cd3dd..e1a683c5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoRspOuterClass.java
@@ -88,7 +88,8 @@ public final class DungeonEntryInfoRspOuterClass {
    * <pre>
    * CmdId: 998
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonEntryInfoRsp}
@@ -529,7 +530,8 @@ public final class DungeonEntryInfoRspOuterClass {
      * <pre>
      * CmdId: 998
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonEntryInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonGetStatueDropRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonGetStatueDropRspOuterClass.java
index 32563b69..17e343a0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonGetStatueDropRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonGetStatueDropRspOuterClass.java
@@ -28,7 +28,8 @@ public final class DungeonGetStatueDropRspOuterClass {
    * <pre>
    * CmdId: 904
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonGetStatueDropRsp}
@@ -282,7 +283,8 @@ public final class DungeonGetStatueDropRspOuterClass {
      * <pre>
      * CmdId: 904
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonGetStatueDropRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleNotifyOuterClass.java
index 1a930774..4f4d0142 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleNotifyOuterClass.java
@@ -248,27 +248,43 @@ public final class DungeonSettleNotifyOuterClass {
     emu.grasscutter.net.proto.CrystalLinkSettleInfoOuterClass.CrystalLinkSettleInfoOrBuilder getCrystalLinkSettleInfoOrBuilder();
 
     /**
-     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
      * @return Whether the summerTimeV2DungeonSettleInfo field is set.
      */
     boolean hasSummerTimeV2DungeonSettleInfo();
     /**
-     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
      * @return The summerTimeV2DungeonSettleInfo.
      */
     emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo getSummerTimeV2DungeonSettleInfo();
     /**
-     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
      */
     emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfoOrBuilder getSummerTimeV2DungeonSettleInfoOrBuilder();
 
+    /**
+     * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+     * @return Whether the instableSpraySettleInfo field is set.
+     */
+    boolean hasInstableSpraySettleInfo();
+    /**
+     * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+     * @return The instableSpraySettleInfo.
+     */
+    emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB getInstableSpraySettleInfo();
+    /**
+     * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder getInstableSpraySettleInfoOrBuilder();
+
     public emu.grasscutter.net.proto.DungeonSettleNotifyOuterClass.DungeonSettleNotify.DetailCase getDetailCase();
   }
   /**
    * <pre>
    * CmdId: 999
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonSettleNotify}
@@ -413,6 +429,20 @@ public final class DungeonSettleNotifyOuterClass {
               detailCase_ = 112;
               break;
             }
+            case 1546: {
+              emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder subBuilder = null;
+              if (detailCase_ == 193) {
+                subBuilder = ((emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_).toBuilder();
+              }
+              detail_ =
+                  input.readMessage(emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_);
+                detail_ = subBuilder.buildPartial();
+              }
+              detailCase_ = 193;
+              break;
+            }
             case 2626: {
               emu.grasscutter.net.proto.EffigyChallengeDungeonResultInfoOuterClass.EffigyChallengeDungeonResultInfo.Builder subBuilder = null;
               if (detailCase_ == 328) {
@@ -560,7 +590,8 @@ public final class DungeonSettleNotifyOuterClass {
       EFFIGY_CHALLENGE_DUNGEON_RESULT_INFO(328),
       ROGUELIKE_DUNGEON_SETTLE_INFO(1482),
       CRYSTAL_LINK_SETTLE_INFO(112),
-      SUMMER_TIME_V_2_DUNGEON_SETTLE_INFO(1882),
+      SUMMER_TIME_V2_DUNGEON_SETTLE_INFO(1882),
+      INSTABLE_SPRAY_SETTLE_INFO(193),
       DETAIL_NOT_SET(0);
       private final int value;
       private DetailCase(int value) {
@@ -584,7 +615,8 @@ public final class DungeonSettleNotifyOuterClass {
           case 328: return EFFIGY_CHALLENGE_DUNGEON_RESULT_INFO;
           case 1482: return ROGUELIKE_DUNGEON_SETTLE_INFO;
           case 112: return CRYSTAL_LINK_SETTLE_INFO;
-          case 1882: return SUMMER_TIME_V_2_DUNGEON_SETTLE_INFO;
+          case 1882: return SUMMER_TIME_V2_DUNGEON_SETTLE_INFO;
+          case 193: return INSTABLE_SPRAY_SETTLE_INFO;
           case 0: return DETAIL_NOT_SET;
           default: return null;
         }
@@ -1071,9 +1103,9 @@ public final class DungeonSettleNotifyOuterClass {
       return emu.grasscutter.net.proto.CrystalLinkSettleInfoOuterClass.CrystalLinkSettleInfo.getDefaultInstance();
     }
 
-    public static final int SUMMER_TIME_V_2_DUNGEON_SETTLE_INFO_FIELD_NUMBER = 1882;
+    public static final int SUMMER_TIME_V2_DUNGEON_SETTLE_INFO_FIELD_NUMBER = 1882;
     /**
-     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
      * @return Whether the summerTimeV2DungeonSettleInfo field is set.
      */
     @java.lang.Override
@@ -1081,7 +1113,7 @@ public final class DungeonSettleNotifyOuterClass {
       return detailCase_ == 1882;
     }
     /**
-     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
      * @return The summerTimeV2DungeonSettleInfo.
      */
     @java.lang.Override
@@ -1092,7 +1124,7 @@ public final class DungeonSettleNotifyOuterClass {
       return emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo.getDefaultInstance();
     }
     /**
-     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+     * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
      */
     @java.lang.Override
     public emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfoOrBuilder getSummerTimeV2DungeonSettleInfoOrBuilder() {
@@ -1102,6 +1134,37 @@ public final class DungeonSettleNotifyOuterClass {
       return emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo.getDefaultInstance();
     }
 
+    public static final int INSTABLE_SPRAY_SETTLE_INFO_FIELD_NUMBER = 193;
+    /**
+     * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+     * @return Whether the instableSpraySettleInfo field is set.
+     */
+    @java.lang.Override
+    public boolean hasInstableSpraySettleInfo() {
+      return detailCase_ == 193;
+    }
+    /**
+     * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+     * @return The instableSpraySettleInfo.
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB getInstableSpraySettleInfo() {
+      if (detailCase_ == 193) {
+         return (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_;
+      }
+      return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+    }
+    /**
+     * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder getInstableSpraySettleInfoOrBuilder() {
+      if (detailCase_ == 193) {
+         return (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_;
+      }
+      return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -1157,6 +1220,9 @@ public final class DungeonSettleNotifyOuterClass {
       if (detailCase_ == 112) {
         output.writeMessage(112, (emu.grasscutter.net.proto.CrystalLinkSettleInfoOuterClass.CrystalLinkSettleInfo) detail_);
       }
+      if (detailCase_ == 193) {
+        output.writeMessage(193, (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_);
+      }
       if (detailCase_ == 328) {
         output.writeMessage(328, (emu.grasscutter.net.proto.EffigyChallengeDungeonResultInfoOuterClass.EffigyChallengeDungeonResultInfo) detail_);
       }
@@ -1246,6 +1312,10 @@ public final class DungeonSettleNotifyOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(112, (emu.grasscutter.net.proto.CrystalLinkSettleInfoOuterClass.CrystalLinkSettleInfo) detail_);
       }
+      if (detailCase_ == 193) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(193, (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_);
+      }
       if (detailCase_ == 328) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(328, (emu.grasscutter.net.proto.EffigyChallengeDungeonResultInfoOuterClass.EffigyChallengeDungeonResultInfo) detail_);
@@ -1333,6 +1403,10 @@ public final class DungeonSettleNotifyOuterClass {
           if (!getSummerTimeV2DungeonSettleInfo()
               .equals(other.getSummerTimeV2DungeonSettleInfo())) return false;
           break;
+        case 193:
+          if (!getInstableSpraySettleInfo()
+              .equals(other.getInstableSpraySettleInfo())) return false;
+          break;
         case 0:
         default:
       }
@@ -1400,9 +1474,13 @@ public final class DungeonSettleNotifyOuterClass {
           hash = (53 * hash) + getCrystalLinkSettleInfo().hashCode();
           break;
         case 1882:
-          hash = (37 * hash) + SUMMER_TIME_V_2_DUNGEON_SETTLE_INFO_FIELD_NUMBER;
+          hash = (37 * hash) + SUMMER_TIME_V2_DUNGEON_SETTLE_INFO_FIELD_NUMBER;
           hash = (53 * hash) + getSummerTimeV2DungeonSettleInfo().hashCode();
           break;
+        case 193:
+          hash = (37 * hash) + INSTABLE_SPRAY_SETTLE_INFO_FIELD_NUMBER;
+          hash = (53 * hash) + getInstableSpraySettleInfo().hashCode();
+          break;
         case 0:
         default:
       }
@@ -1505,7 +1583,8 @@ public final class DungeonSettleNotifyOuterClass {
      * <pre>
      * CmdId: 999
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonSettleNotify}
@@ -1693,6 +1772,13 @@ public final class DungeonSettleNotifyOuterClass {
             result.detail_ = summerTimeV2DungeonSettleInfoBuilder_.build();
           }
         }
+        if (detailCase_ == 193) {
+          if (instableSpraySettleInfoBuilder_ == null) {
+            result.detail_ = detail_;
+          } else {
+            result.detail_ = instableSpraySettleInfoBuilder_.build();
+          }
+        }
         result.detailCase_ = detailCase_;
         onBuilt();
         return result;
@@ -1822,10 +1908,14 @@ public final class DungeonSettleNotifyOuterClass {
             mergeCrystalLinkSettleInfo(other.getCrystalLinkSettleInfo());
             break;
           }
-          case SUMMER_TIME_V_2_DUNGEON_SETTLE_INFO: {
+          case SUMMER_TIME_V2_DUNGEON_SETTLE_INFO: {
             mergeSummerTimeV2DungeonSettleInfo(other.getSummerTimeV2DungeonSettleInfo());
             break;
           }
+          case INSTABLE_SPRAY_SETTLE_INFO: {
+            mergeInstableSpraySettleInfo(other.getInstableSpraySettleInfo());
+            break;
+          }
           case DETAIL_NOT_SET: {
             break;
           }
@@ -3454,7 +3544,7 @@ public final class DungeonSettleNotifyOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo, emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo.Builder, emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfoOrBuilder> summerTimeV2DungeonSettleInfoBuilder_;
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        * @return Whether the summerTimeV2DungeonSettleInfo field is set.
        */
       @java.lang.Override
@@ -3462,7 +3552,7 @@ public final class DungeonSettleNotifyOuterClass {
         return detailCase_ == 1882;
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        * @return The summerTimeV2DungeonSettleInfo.
        */
       @java.lang.Override
@@ -3480,7 +3570,7 @@ public final class DungeonSettleNotifyOuterClass {
         }
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       public Builder setSummerTimeV2DungeonSettleInfo(emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo value) {
         if (summerTimeV2DungeonSettleInfoBuilder_ == null) {
@@ -3496,7 +3586,7 @@ public final class DungeonSettleNotifyOuterClass {
         return this;
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       public Builder setSummerTimeV2DungeonSettleInfo(
           emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo.Builder builderForValue) {
@@ -3510,7 +3600,7 @@ public final class DungeonSettleNotifyOuterClass {
         return this;
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       public Builder mergeSummerTimeV2DungeonSettleInfo(emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo value) {
         if (summerTimeV2DungeonSettleInfoBuilder_ == null) {
@@ -3532,7 +3622,7 @@ public final class DungeonSettleNotifyOuterClass {
         return this;
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       public Builder clearSummerTimeV2DungeonSettleInfo() {
         if (summerTimeV2DungeonSettleInfoBuilder_ == null) {
@@ -3551,13 +3641,13 @@ public final class DungeonSettleNotifyOuterClass {
         return this;
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       public emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo.Builder getSummerTimeV2DungeonSettleInfoBuilder() {
         return getSummerTimeV2DungeonSettleInfoFieldBuilder().getBuilder();
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       @java.lang.Override
       public emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfoOrBuilder getSummerTimeV2DungeonSettleInfoOrBuilder() {
@@ -3571,7 +3661,7 @@ public final class DungeonSettleNotifyOuterClass {
         }
       }
       /**
-       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v_2_dungeon_settle_info = 1882;</code>
+       * <code>.SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo, emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfo.Builder, emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.SummerTimeV2DungeonSettleInfoOrBuilder> 
@@ -3591,6 +3681,147 @@ public final class DungeonSettleNotifyOuterClass {
         onChanged();;
         return summerTimeV2DungeonSettleInfoBuilder_;
       }
+
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder> instableSpraySettleInfoBuilder_;
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       * @return Whether the instableSpraySettleInfo field is set.
+       */
+      @java.lang.Override
+      public boolean hasInstableSpraySettleInfo() {
+        return detailCase_ == 193;
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       * @return The instableSpraySettleInfo.
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB getInstableSpraySettleInfo() {
+        if (instableSpraySettleInfoBuilder_ == null) {
+          if (detailCase_ == 193) {
+            return (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_;
+          }
+          return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+        } else {
+          if (detailCase_ == 193) {
+            return instableSpraySettleInfoBuilder_.getMessage();
+          }
+          return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+        }
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      public Builder setInstableSpraySettleInfo(emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB value) {
+        if (instableSpraySettleInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          detail_ = value;
+          onChanged();
+        } else {
+          instableSpraySettleInfoBuilder_.setMessage(value);
+        }
+        detailCase_ = 193;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      public Builder setInstableSpraySettleInfo(
+          emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder builderForValue) {
+        if (instableSpraySettleInfoBuilder_ == null) {
+          detail_ = builderForValue.build();
+          onChanged();
+        } else {
+          instableSpraySettleInfoBuilder_.setMessage(builderForValue.build());
+        }
+        detailCase_ = 193;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      public Builder mergeInstableSpraySettleInfo(emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB value) {
+        if (instableSpraySettleInfoBuilder_ == null) {
+          if (detailCase_ == 193 &&
+              detail_ != emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance()) {
+            detail_ = emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.newBuilder((emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_)
+                .mergeFrom(value).buildPartial();
+          } else {
+            detail_ = value;
+          }
+          onChanged();
+        } else {
+          if (detailCase_ == 193) {
+            instableSpraySettleInfoBuilder_.mergeFrom(value);
+          }
+          instableSpraySettleInfoBuilder_.setMessage(value);
+        }
+        detailCase_ = 193;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      public Builder clearInstableSpraySettleInfo() {
+        if (instableSpraySettleInfoBuilder_ == null) {
+          if (detailCase_ == 193) {
+            detailCase_ = 0;
+            detail_ = null;
+            onChanged();
+          }
+        } else {
+          if (detailCase_ == 193) {
+            detailCase_ = 0;
+            detail_ = null;
+          }
+          instableSpraySettleInfoBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder getInstableSpraySettleInfoBuilder() {
+        return getInstableSpraySettleInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder getInstableSpraySettleInfoOrBuilder() {
+        if ((detailCase_ == 193) && (instableSpraySettleInfoBuilder_ != null)) {
+          return instableSpraySettleInfoBuilder_.getMessageOrBuilder();
+        } else {
+          if (detailCase_ == 193) {
+            return (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_;
+          }
+          return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+        }
+      }
+      /**
+       * <code>.Unk3000_CCCOFNABDMB instable_spray_settle_info = 193;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder> 
+          getInstableSpraySettleInfoFieldBuilder() {
+        if (instableSpraySettleInfoBuilder_ == null) {
+          if (!(detailCase_ == 193)) {
+            detail_ = emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+          }
+          instableSpraySettleInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder>(
+                  (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) detail_,
+                  getParentForChildren(),
+                  isClean());
+          detail_ = null;
+        }
+        detailCase_ = 193;
+        onChanged();;
+        return instableSpraySettleInfoBuilder_;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -3676,34 +3907,37 @@ public final class DungeonSettleNotifyOuterClass {
       "eDungeonSettleInfo.proto\032\031StrengthenPoin" +
       "tData.proto\032#SummerTimeV2DungeonSettleIn" +
       "fo.proto\032\031TowerLevelEndNotify.proto\032\'Tri" +
-      "alAvatarFirstPassDungeonNotify.proto\"\221\010\n" +
-      "\023DungeonSettleNotify\022S\n\031strengthen_point" +
-      "_data_map\030\016 \003(\01320.DungeonSettleNotify.St" +
-      "rengthenPointDataMapEntry\022\022\n\nis_success\030" +
-      "\007 \001(\010\022\022\n\nclose_time\030\004 \001(\r\022\033\n\023Unk2700_OMC" +
-      "CFBBDJMI\030\001 \001(\r\0229\n\013settle_show\030\005 \003(\0132$.Du" +
-      "ngeonSettleNotify.SettleShowEntry\022:\n\024exh" +
-      "ibition_info_list\030\010 \003(\0132\034.DungeonSettleE" +
-      "xhibitionInfo\022\026\n\016fail_cond_list\030\013 \003(\r\022\022\n" +
-      "\ndungeon_id\030\r \001(\r\022\016\n\006result\030\n \001(\r\0227\n\026tow" +
-      "er_level_end_notify\030\337\002 \001(\0132\024.TowerLevelE" +
-      "ndNotifyH\000\022U\n&trial_avatar_first_pass_du" +
-      "ngeon_notify\030\373\004 \001(\0132\".TrialAvatarFirstPa" +
-      "ssDungeonNotifyH\000\022X\n(channeller_slab_loo" +
-      "p_dungeon_result_info\030\256\005 \001(\0132#.Channeler" +
-      "SlabLoopDungeonResultInfoH\000\022R\n$effigy_ch" +
-      "allenge_dungeon_result_info\030\310\002 \001(\0132!.Eff" +
-      "igyChallengeDungeonResultInfoH\000\022E\n\035rogue" +
-      "like_dungeon_settle_info\030\312\013 \001(\0132\033.Roguel" +
-      "ikeDungeonSettleInfoH\000\022:\n\030crystal_link_s" +
-      "ettle_info\030p \001(\0132\026.CrystalLinkSettleInfo" +
-      "H\000\022N\n#summer_time_v_2_dungeon_settle_inf" +
-      "o\030\332\016 \001(\0132\036.SummerTimeV2DungeonSettleInfo" +
-      "H\000\032S\n\033StrengthenPointDataMapEntry\022\013\n\003key" +
-      "\030\001 \001(\r\022#\n\005value\030\002 \001(\0132\024.StrengthenPointD" +
-      "ata:\0028\001\032=\n\017SettleShowEntry\022\013\n\003key\030\001 \001(\r\022" +
-      "\031\n\005value\030\002 \001(\0132\n.ParamList:\0028\001B\010\n\006detail" +
-      "B\033\n\031emu.grasscutter.net.protob\006proto3"
+      "alAvatarFirstPassDungeonNotify.proto\032\031Un" +
+      "k3000_CCCOFNABDMB.proto\"\315\010\n\023DungeonSettl" +
+      "eNotify\022S\n\031strengthen_point_data_map\030\016 \003" +
+      "(\01320.DungeonSettleNotify.StrengthenPoint" +
+      "DataMapEntry\022\022\n\nis_success\030\007 \001(\010\022\022\n\nclos" +
+      "e_time\030\004 \001(\r\022\033\n\023Unk2700_OMCCFBBDJMI\030\001 \001(" +
+      "\r\0229\n\013settle_show\030\005 \003(\0132$.DungeonSettleNo" +
+      "tify.SettleShowEntry\022:\n\024exhibition_info_" +
+      "list\030\010 \003(\0132\034.DungeonSettleExhibitionInfo" +
+      "\022\026\n\016fail_cond_list\030\013 \003(\r\022\022\n\ndungeon_id\030\r" +
+      " \001(\r\022\016\n\006result\030\n \001(\r\0227\n\026tower_level_end_" +
+      "notify\030\337\002 \001(\0132\024.TowerLevelEndNotifyH\000\022U\n" +
+      "&trial_avatar_first_pass_dungeon_notify\030" +
+      "\373\004 \001(\0132\".TrialAvatarFirstPassDungeonNoti" +
+      "fyH\000\022X\n(channeller_slab_loop_dungeon_res" +
+      "ult_info\030\256\005 \001(\0132#.ChannelerSlabLoopDunge" +
+      "onResultInfoH\000\022R\n$effigy_challenge_dunge" +
+      "on_result_info\030\310\002 \001(\0132!.EffigyChallengeD" +
+      "ungeonResultInfoH\000\022E\n\035roguelike_dungeon_" +
+      "settle_info\030\312\013 \001(\0132\033.RoguelikeDungeonSet" +
+      "tleInfoH\000\022:\n\030crystal_link_settle_info\030p " +
+      "\001(\0132\026.CrystalLinkSettleInfoH\000\022M\n\"summer_" +
+      "time_v2_dungeon_settle_info\030\332\016 \001(\0132\036.Sum" +
+      "merTimeV2DungeonSettleInfoH\000\022;\n\032instable" +
+      "_spray_settle_info\030\301\001 \001(\0132\024.Unk3000_CCCO" +
+      "FNABDMBH\000\032S\n\033StrengthenPointDataMapEntry" +
+      "\022\013\n\003key\030\001 \001(\r\022#\n\005value\030\002 \001(\0132\024.Strengthe" +
+      "nPointData:\0028\001\032=\n\017SettleShowEntry\022\013\n\003key" +
+      "\030\001 \001(\r\022\031\n\005value\030\002 \001(\0132\n.ParamList:\0028\001B\010\n" +
+      "\006detailB\033\n\031emu.grasscutter.net.protob\006pr" +
+      "oto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -3718,13 +3952,14 @@ public final class DungeonSettleNotifyOuterClass {
           emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.TowerLevelEndNotifyOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.TrialAvatarFirstPassDungeonNotifyOuterClass.getDescriptor(),
+          emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.getDescriptor(),
         });
     internal_static_DungeonSettleNotify_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_DungeonSettleNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_DungeonSettleNotify_descriptor,
-        new java.lang.String[] { "StrengthenPointDataMap", "IsSuccess", "CloseTime", "Unk2700OMCCFBBDJMI", "SettleShow", "ExhibitionInfoList", "FailCondList", "DungeonId", "Result", "TowerLevelEndNotify", "TrialAvatarFirstPassDungeonNotify", "ChannellerSlabLoopDungeonResultInfo", "EffigyChallengeDungeonResultInfo", "RoguelikeDungeonSettleInfo", "CrystalLinkSettleInfo", "SummerTimeV2DungeonSettleInfo", "Detail", });
+        new java.lang.String[] { "StrengthenPointDataMap", "IsSuccess", "CloseTime", "Unk2700OMCCFBBDJMI", "SettleShow", "ExhibitionInfoList", "FailCondList", "DungeonId", "Result", "TowerLevelEndNotify", "TrialAvatarFirstPassDungeonNotify", "ChannellerSlabLoopDungeonResultInfo", "EffigyChallengeDungeonResultInfo", "RoguelikeDungeonSettleInfo", "CrystalLinkSettleInfo", "SummerTimeV2DungeonSettleInfo", "InstableSpraySettleInfo", "Detail", });
     internal_static_DungeonSettleNotify_StrengthenPointDataMapEntry_descriptor =
       internal_static_DungeonSettleNotify_descriptor.getNestedTypes().get(0);
     internal_static_DungeonSettleNotify_StrengthenPointDataMapEntry_fieldAccessorTable = new
@@ -3747,6 +3982,7 @@ public final class DungeonSettleNotifyOuterClass {
     emu.grasscutter.net.proto.SummerTimeV2DungeonSettleInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.TowerLevelEndNotifyOuterClass.getDescriptor();
     emu.grasscutter.net.proto.TrialAvatarFirstPassDungeonNotifyOuterClass.getDescriptor();
+    emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/DungeonShowReminderNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/DungeonShowReminderNotifyOuterClass.java
index 103d3503..49086842 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/DungeonShowReminderNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/DungeonShowReminderNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class DungeonShowReminderNotifyOuterClass {
    * <pre>
    * CmdId: 997
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code DungeonShowReminderNotify}
@@ -282,7 +283,8 @@ public final class DungeonShowReminderNotifyOuterClass {
      * <pre>
      * CmdId: 997
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code DungeonShowReminderNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneRspOuterClass.java
index 443e273c..0d51fbd3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneRspOuterClass.java
@@ -34,7 +34,8 @@ public final class EnterSceneDoneRspOuterClass {
    * <pre>
    * CmdId: 237
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EnterSceneDoneRsp}
@@ -315,7 +316,8 @@ public final class EnterSceneDoneRspOuterClass {
      * <pre>
      * CmdId: 237
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EnterSceneDoneRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EnterScenePeerNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EnterScenePeerNotifyOuterClass.java
index 74b29c50..0dd8cf10 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EnterScenePeerNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EnterScenePeerNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class EnterScenePeerNotifyOuterClass {
    * <pre>
    * CmdId: 252
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EnterScenePeerNotify}
@@ -381,7 +382,8 @@ public final class EnterScenePeerNotifyOuterClass {
      * <pre>
      * CmdId: 252
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EnterScenePeerNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyRspOuterClass.java
index fe3b7b14..94a8abc1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyRspOuterClass.java
@@ -34,7 +34,8 @@ public final class EnterSceneReadyRspOuterClass {
    * <pre>
    * CmdId: 209
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EnterSceneReadyRsp}
@@ -315,7 +316,8 @@ public final class EnterSceneReadyRspOuterClass {
      * <pre>
      * CmdId: 209
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EnterSceneReadyRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EnterTransPointRegionNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EnterTransPointRegionNotifyOuterClass.java
index af84e3c2..ffed988b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EnterTransPointRegionNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EnterTransPointRegionNotifyOuterClass.java
@@ -34,7 +34,7 @@ public final class EnterTransPointRegionNotifyOuterClass {
    * <pre>
    * CmdId: 205
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class EnterTransPointRegionNotifyOuterClass {
      * <pre>
      * CmdId: 205
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaReqOuterClass.java
index c57b30dc..c25072da 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaReqOuterClass.java
@@ -34,7 +34,7 @@ public final class EnterWorldAreaReqOuterClass {
    * <pre>
    * CmdId: 250
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class EnterWorldAreaReqOuterClass {
      * <pre>
      * CmdId: 250
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaRspOuterClass.java
index 0736ee5f..74002ea2 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaRspOuterClass.java
@@ -40,7 +40,8 @@ public final class EnterWorldAreaRspOuterClass {
    * <pre>
    * CmdId: 243
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EnterWorldAreaRsp}
@@ -348,7 +349,8 @@ public final class EnterWorldAreaRspOuterClass {
      * <pre>
      * CmdId: 243
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EnterWorldAreaRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EntityAiSyncNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EntityAiSyncNotifyOuterClass.java
index 711e9599..02fa7e33 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EntityAiSyncNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EntityAiSyncNotifyOuterClass.java
@@ -63,7 +63,7 @@ public final class EntityAiSyncNotifyOuterClass {
    * <pre>
    * CmdId: 400
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -439,7 +439,7 @@ public final class EntityAiSyncNotifyOuterClass {
      * <pre>
      * CmdId: 400
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropChangeReasonNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropChangeReasonNotifyOuterClass.java
index be0759c5..c3aec969 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropChangeReasonNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropChangeReasonNotifyOuterClass.java
@@ -90,7 +90,8 @@ public final class EntityFightPropChangeReasonNotifyOuterClass {
    * <pre>
    * CmdId: 1203
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EntityFightPropChangeReasonNotify}
@@ -590,7 +591,8 @@ public final class EntityFightPropChangeReasonNotifyOuterClass {
      * <pre>
      * CmdId: 1203
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EntityFightPropChangeReasonNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropUpdateNotifyOuterClass.java
index c6ea95c4..328ab2df 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropUpdateNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class EntityFightPropUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 1235
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EntityFightPropUpdateNotify}
@@ -445,7 +446,8 @@ public final class EntityFightPropUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 1235
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EntityFightPropUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EntityPropNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EntityPropNotifyOuterClass.java
index 2711c442..cb2be7d7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EntityPropNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EntityPropNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class EntityPropNotifyOuterClass {
    * <pre>
    * CmdId: 1272
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EntityPropNotify}
@@ -445,7 +446,8 @@ public final class EntityPropNotifyOuterClass {
      * <pre>
      * CmdId: 1272
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EntityPropNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncCombatThreatInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncCombatThreatInfoNotifyOuterClass.java
index e946f8f7..3153f923 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncCombatThreatInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncCombatThreatInfoNotifyOuterClass.java
@@ -56,7 +56,7 @@ public final class EvtAiSyncCombatThreatInfoNotifyOuterClass {
    * <pre>
    * CmdId: 329
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -413,7 +413,7 @@ public final class EvtAiSyncCombatThreatInfoNotifyOuterClass {
      * <pre>
      * CmdId: 329
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncSkillCdNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncSkillCdNotifyOuterClass.java
index ff41e1e8..38f3dd61 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncSkillCdNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncSkillCdNotifyOuterClass.java
@@ -56,7 +56,7 @@ public final class EvtAiSyncSkillCdNotifyOuterClass {
    * <pre>
    * CmdId: 376
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -413,7 +413,7 @@ public final class EvtAiSyncSkillCdNotifyOuterClass {
      * <pre>
      * CmdId: 376
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairReqOuterClass.java
index 51afb726..4d8e24a6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairReqOuterClass.java
@@ -43,7 +43,7 @@ public final class EvtAvatarLockChairReqOuterClass {
    * <pre>
    * CmdId: 318
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -354,7 +354,7 @@ public final class EvtAvatarLockChairReqOuterClass {
      * <pre>
      * CmdId: 318
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairRspOuterClass.java
index de8c8992..e6979863 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairRspOuterClass.java
@@ -55,7 +55,8 @@ public final class EvtAvatarLockChairRspOuterClass {
    * <pre>
    * CmdId: 366
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code EvtAvatarLockChairRsp}
@@ -419,7 +420,8 @@ public final class EvtAvatarLockChairRspOuterClass {
      * <pre>
      * CmdId: 366
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code EvtAvatarLockChairRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarSitDownNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarSitDownNotifyOuterClass.java
index 901fc529..774dd0dc 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarSitDownNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarSitDownNotifyOuterClass.java
@@ -49,7 +49,7 @@ public final class EvtAvatarSitDownNotifyOuterClass {
    * <pre>
    * CmdId: 324
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -387,7 +387,7 @@ public final class EvtAvatarSitDownNotifyOuterClass {
      * <pre>
      * CmdId: 324
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarStandUpNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarStandUpNotifyOuterClass.java
index 0a378c7b..fb438cfa 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarStandUpNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarStandUpNotifyOuterClass.java
@@ -46,7 +46,7 @@ public final class EvtAvatarStandUpNotifyOuterClass {
    * <pre>
    * CmdId: 356
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -383,7 +383,7 @@ public final class EvtAvatarStandUpNotifyOuterClass {
      * <pre>
      * CmdId: 356
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitNotifyOuterClass.java
index dd85de4e..bc6b2f79 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitNotifyOuterClass.java
@@ -48,7 +48,7 @@ public final class EvtBeingHitNotifyOuterClass {
    * <pre>
    * CmdId: 372
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -367,7 +367,7 @@ public final class EvtBeingHitNotifyOuterClass {
      * <pre>
      * CmdId: 372
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitsCombineNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitsCombineNotifyOuterClass.java
index 33865a1f..83dfaa49 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitsCombineNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitsCombineNotifyOuterClass.java
@@ -57,7 +57,7 @@ public final class EvtBeingHitsCombineNotifyOuterClass {
    * <pre>
    * CmdId: 346
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -388,7 +388,7 @@ public final class EvtBeingHitsCombineNotifyOuterClass {
      * <pre>
      * CmdId: 346
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtCreateGadgetNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtCreateGadgetNotifyOuterClass.java
index b06789b1..702136f9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtCreateGadgetNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtCreateGadgetNotifyOuterClass.java
@@ -181,7 +181,7 @@ public final class EvtCreateGadgetNotifyOuterClass {
    * <pre>
    * CmdId: 307
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -1100,7 +1100,7 @@ public final class EvtCreateGadgetNotifyOuterClass {
      * <pre>
      * CmdId: 307
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtDestroyGadgetNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtDestroyGadgetNotifyOuterClass.java
index 9411473c..ebd4ec82 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtDestroyGadgetNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtDestroyGadgetNotifyOuterClass.java
@@ -39,7 +39,7 @@ public final class EvtDestroyGadgetNotifyOuterClass {
    * <pre>
    * CmdId: 321
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -330,7 +330,7 @@ public final class EvtDestroyGadgetNotifyOuterClass {
      * <pre>
      * CmdId: 321
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtDoSkillSuccNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtDoSkillSuccNotifyOuterClass.java
index 60141b59..2164fb77 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtDoSkillSuccNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtDoSkillSuccNotifyOuterClass.java
@@ -60,7 +60,7 @@ public final class EvtDoSkillSuccNotifyOuterClass {
    * <pre>
    * CmdId: 335
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -433,7 +433,7 @@ public final class EvtDoSkillSuccNotifyOuterClass {
      * <pre>
      * CmdId: 335
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/EvtEntityRenderersChangedNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/EvtEntityRenderersChangedNotifyOuterClass.java
index 06b0527d..98cba2dc 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/EvtEntityRenderersChangedNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/EvtEntityRenderersChangedNotifyOuterClass.java
@@ -29,12 +29,6 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
      */
     emu.grasscutter.net.proto.ForwardTypeOuterClass.ForwardType getForwardType();
 
-    /**
-     * <code>uint32 entity_id = 15;</code>
-     * @return The entityId.
-     */
-    int getEntityId();
-
     /**
      * <code>bool is_server_cache = 3;</code>
      * @return The isServerCache.
@@ -55,12 +49,18 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
      * <code>.EntityRendererChangedInfo renderer_changed_info = 5;</code>
      */
     emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.EntityRendererChangedInfoOrBuilder getRendererChangedInfoOrBuilder();
+
+    /**
+     * <code>uint32 entity_id = 15;</code>
+     * @return The entityId.
+     */
+    int getEntityId();
   }
   /**
    * <pre>
    * CmdId: 343
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -189,17 +189,6 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
       return result == null ? emu.grasscutter.net.proto.ForwardTypeOuterClass.ForwardType.UNRECOGNIZED : result;
     }
 
-    public static final int ENTITY_ID_FIELD_NUMBER = 15;
-    private int entityId_;
-    /**
-     * <code>uint32 entity_id = 15;</code>
-     * @return The entityId.
-     */
-    @java.lang.Override
-    public int getEntityId() {
-      return entityId_;
-    }
-
     public static final int IS_SERVER_CACHE_FIELD_NUMBER = 3;
     private boolean isServerCache_;
     /**
@@ -237,6 +226,17 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
       return getRendererChangedInfo();
     }
 
+    public static final int ENTITY_ID_FIELD_NUMBER = 15;
+    private int entityId_;
+    /**
+     * <code>uint32 entity_id = 15;</code>
+     * @return The entityId.
+     */
+    @java.lang.Override
+    public int getEntityId() {
+      return entityId_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -304,8 +304,6 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
       emu.grasscutter.net.proto.EvtEntityRenderersChangedNotifyOuterClass.EvtEntityRenderersChangedNotify other = (emu.grasscutter.net.proto.EvtEntityRenderersChangedNotifyOuterClass.EvtEntityRenderersChangedNotify) obj;
 
       if (forwardType_ != other.forwardType_) return false;
-      if (getEntityId()
-          != other.getEntityId()) return false;
       if (getIsServerCache()
           != other.getIsServerCache()) return false;
       if (hasRendererChangedInfo() != other.hasRendererChangedInfo()) return false;
@@ -313,6 +311,8 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
         if (!getRendererChangedInfo()
             .equals(other.getRendererChangedInfo())) return false;
       }
+      if (getEntityId()
+          != other.getEntityId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -326,8 +326,6 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = (37 * hash) + FORWARD_TYPE_FIELD_NUMBER;
       hash = (53 * hash) + forwardType_;
-      hash = (37 * hash) + ENTITY_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getEntityId();
       hash = (37 * hash) + IS_SERVER_CACHE_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getIsServerCache());
@@ -335,6 +333,8 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
         hash = (37 * hash) + RENDERER_CHANGED_INFO_FIELD_NUMBER;
         hash = (53 * hash) + getRendererChangedInfo().hashCode();
       }
+      hash = (37 * hash) + ENTITY_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getEntityId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -434,7 +434,7 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
      * <pre>
      * CmdId: 343
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -477,8 +477,6 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
         super.clear();
         forwardType_ = 0;
 
-        entityId_ = 0;
-
         isServerCache_ = false;
 
         if (rendererChangedInfoBuilder_ == null) {
@@ -487,6 +485,8 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
           rendererChangedInfo_ = null;
           rendererChangedInfoBuilder_ = null;
         }
+        entityId_ = 0;
+
         return this;
       }
 
@@ -514,13 +514,13 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
       public emu.grasscutter.net.proto.EvtEntityRenderersChangedNotifyOuterClass.EvtEntityRenderersChangedNotify buildPartial() {
         emu.grasscutter.net.proto.EvtEntityRenderersChangedNotifyOuterClass.EvtEntityRenderersChangedNotify result = new emu.grasscutter.net.proto.EvtEntityRenderersChangedNotifyOuterClass.EvtEntityRenderersChangedNotify(this);
         result.forwardType_ = forwardType_;
-        result.entityId_ = entityId_;
         result.isServerCache_ = isServerCache_;
         if (rendererChangedInfoBuilder_ == null) {
           result.rendererChangedInfo_ = rendererChangedInfo_;
         } else {
           result.rendererChangedInfo_ = rendererChangedInfoBuilder_.build();
         }
+        result.entityId_ = entityId_;
         onBuilt();
         return result;
       }
@@ -572,15 +572,15 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
         if (other.forwardType_ != 0) {
           setForwardTypeValue(other.getForwardTypeValue());
         }
-        if (other.getEntityId() != 0) {
-          setEntityId(other.getEntityId());
-        }
         if (other.getIsServerCache() != false) {
           setIsServerCache(other.getIsServerCache());
         }
         if (other.hasRendererChangedInfo()) {
           mergeRendererChangedInfo(other.getRendererChangedInfo());
         }
+        if (other.getEntityId() != 0) {
+          setEntityId(other.getEntityId());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -664,37 +664,6 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
         return this;
       }
 
-      private int entityId_ ;
-      /**
-       * <code>uint32 entity_id = 15;</code>
-       * @return The entityId.
-       */
-      @java.lang.Override
-      public int getEntityId() {
-        return entityId_;
-      }
-      /**
-       * <code>uint32 entity_id = 15;</code>
-       * @param value The entityId to set.
-       * @return This builder for chaining.
-       */
-      public Builder setEntityId(int value) {
-        
-        entityId_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 entity_id = 15;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearEntityId() {
-        
-        entityId_ = 0;
-        onChanged();
-        return this;
-      }
-
       private boolean isServerCache_ ;
       /**
        * <code>bool is_server_cache = 3;</code>
@@ -844,6 +813,37 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
         }
         return rendererChangedInfoBuilder_;
       }
+
+      private int entityId_ ;
+      /**
+       * <code>uint32 entity_id = 15;</code>
+       * @return The entityId.
+       */
+      @java.lang.Override
+      public int getEntityId() {
+        return entityId_;
+      }
+      /**
+       * <code>uint32 entity_id = 15;</code>
+       * @param value The entityId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEntityId(int value) {
+        
+        entityId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 entity_id = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearEntityId() {
+        
+        entityId_ = 0;
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -915,9 +915,9 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
       "\037EntityRendererChangedInfo.proto\032\021Forwar" +
       "dType.proto\"\254\001\n\037EvtEntityRenderersChange" +
       "dNotify\022\"\n\014forward_type\030\010 \001(\0162\014.ForwardT" +
-      "ype\022\021\n\tentity_id\030\017 \001(\r\022\027\n\017is_server_cach" +
-      "e\030\003 \001(\010\0229\n\025renderer_changed_info\030\005 \001(\0132\032" +
-      ".EntityRendererChangedInfoB\033\n\031emu.grassc" +
+      "ype\022\027\n\017is_server_cache\030\003 \001(\010\0229\n\025renderer" +
+      "_changed_info\030\005 \001(\0132\032.EntityRendererChan" +
+      "gedInfo\022\021\n\tentity_id\030\017 \001(\rB\033\n\031emu.grassc" +
       "utter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -931,7 +931,7 @@ public final class EvtEntityRenderersChangedNotifyOuterClass {
     internal_static_EvtEntityRenderersChangedNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_EvtEntityRenderersChangedNotify_descriptor,
-        new java.lang.String[] { "ForwardType", "EntityId", "IsServerCache", "RendererChangedInfo", });
+        new java.lang.String[] { "ForwardType", "IsServerCache", "RendererChangedInfo", "EntityId", });
     emu.grasscutter.net.proto.EntityRendererChangedInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.ForwardTypeOuterClass.getDescriptor();
   }
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestNotifyOuterClass.java
index 950598cd..2aabc044 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class FinishedParentQuestNotifyOuterClass {
    * <pre>
    * CmdId: 435
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code FinishedParentQuestNotify}
@@ -340,7 +341,8 @@ public final class FinishedParentQuestNotifyOuterClass {
      * <pre>
      * CmdId: 435
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code FinishedParentQuestNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestUpdateNotifyOuterClass.java
index 978bd4bf..c8b52456 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestUpdateNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class FinishedParentQuestUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 407
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code FinishedParentQuestUpdateNotify}
@@ -340,7 +341,8 @@ public final class FinishedParentQuestUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 407
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code FinishedParentQuestUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeDataNotifyOuterClass.java
index ea0abf94..04868fe9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeDataNotifyOuterClass.java
@@ -79,7 +79,8 @@ public final class ForgeDataNotifyOuterClass {
    * <pre>
    * CmdId: 680
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ForgeDataNotify}
@@ -543,7 +544,8 @@ public final class ForgeDataNotifyOuterClass {
      * <pre>
      * CmdId: 680
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ForgeDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeFormulaDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeFormulaDataNotifyOuterClass.java
index 1420c342..e09cce5f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeFormulaDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeFormulaDataNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class ForgeFormulaDataNotifyOuterClass {
    * <pre>
    * CmdId: 689
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ForgeFormulaDataNotify}
@@ -316,7 +317,8 @@ public final class ForgeFormulaDataNotifyOuterClass {
      * <pre>
      * CmdId: 689
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ForgeFormulaDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataRspOuterClass.java
index 705e70f4..bf5e481f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataRspOuterClass.java
@@ -68,7 +68,8 @@ public final class ForgeGetQueueDataRspOuterClass {
    * <pre>
    * CmdId: 641
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ForgeGetQueueDataRsp}
@@ -478,7 +479,8 @@ public final class ForgeGetQueueDataRspOuterClass {
      * <pre>
      * CmdId: 641
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ForgeGetQueueDataRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataNotifyOuterClass.java
index 209fe6e3..8b59ac85 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataNotifyOuterClass.java
@@ -73,7 +73,7 @@ public final class ForgeQueueDataNotifyOuterClass {
    * <pre>
    * CmdId: 676
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -511,7 +511,7 @@ public final class ForgeQueueDataNotifyOuterClass {
      * <pre>
      * CmdId: 676
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateReqOuterClass.java
index 38b7021e..086fe27d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateReqOuterClass.java
@@ -39,7 +39,7 @@ public final class ForgeQueueManipulateReqOuterClass {
    * <pre>
    * CmdId: 624
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -330,7 +330,7 @@ public final class ForgeQueueManipulateReqOuterClass {
      * <pre>
      * CmdId: 624
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateRspOuterClass.java
index f246358a..b6e42cfb 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateRspOuterClass.java
@@ -111,7 +111,8 @@ public final class ForgeQueueManipulateRspOuterClass {
    * <pre>
    * CmdId: 656
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ForgeQueueManipulateRsp}
@@ -600,7 +601,8 @@ public final class ForgeQueueManipulateRspOuterClass {
      * <pre>
      * CmdId: 656
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ForgeQueueManipulateRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartReqOuterClass.java
index 6322ccf5..769abd80 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartReqOuterClass.java
@@ -40,7 +40,7 @@ public final class ForgeStartReqOuterClass {
    * <pre>
    * CmdId: 649
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class ForgeStartReqOuterClass {
      * <pre>
      * CmdId: 649
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartRspOuterClass.java
index c965244b..9d25e67b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ForgeStartRspOuterClass.java
@@ -28,7 +28,8 @@ public final class ForgeStartRspOuterClass {
    * <pre>
    * CmdId: 691
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ForgeStartRsp}
@@ -282,7 +283,8 @@ public final class ForgeStartRspOuterClass {
      * <pre>
      * CmdId: 691
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ForgeStartRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureCurModuleArrangeCountNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureCurModuleArrangeCountNotifyOuterClass.java
index 93fc3ed4..50a44d45 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureCurModuleArrangeCountNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureCurModuleArrangeCountNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class FurnitureCurModuleArrangeCountNotifyOuterClass {
    * <pre>
    * CmdId: 4498
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code FurnitureCurModuleArrangeCountNotify}
@@ -340,7 +341,8 @@ public final class FurnitureCurModuleArrangeCountNotifyOuterClass {
      * <pre>
      * CmdId: 4498
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code FurnitureCurModuleArrangeCountNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeReqOuterClass.java
index 61b54a90..8e962419 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeReqOuterClass.java
@@ -22,7 +22,7 @@ public final class FurnitureMakeReqOuterClass {
    * <pre>
    * CmdId: 4477
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class FurnitureMakeReqOuterClass {
      * <pre>
      * CmdId: 4477
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeRspOuterClass.java
index 525b96b2..d5f85abf 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeRspOuterClass.java
@@ -115,7 +115,8 @@ public final class FurnitureMakeRspOuterClass {
    * <pre>
    * CmdId: 4782
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code FurnitureMakeRsp}
@@ -623,7 +624,8 @@ public final class FurnitureMakeRspOuterClass {
      * <pre>
      * CmdId: 4782
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code FurnitureMakeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartReqOuterClass.java
index d787ff5c..38da3232 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartReqOuterClass.java
@@ -34,7 +34,7 @@ public final class FurnitureMakeStartReqOuterClass {
    * <pre>
    * CmdId: 4633
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class FurnitureMakeStartReqOuterClass {
      * <pre>
      * CmdId: 4633
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartRspOuterClass.java
index 19dca372..ffb3858c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartRspOuterClass.java
@@ -43,7 +43,8 @@ public final class FurnitureMakeStartRspOuterClass {
    * <pre>
    * CmdId: 4729
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code FurnitureMakeStartRsp}
@@ -352,7 +353,8 @@ public final class FurnitureMakeStartRspOuterClass {
      * <pre>
      * CmdId: 4729
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code FurnitureMakeStartRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GachaInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GachaInfoOuterClass.java
index 5fc2d398..7234e475 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GachaInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GachaInfoOuterClass.java
@@ -19,16 +19,28 @@ public final class GachaInfoOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>string gacha_preview_prefab_path = 4;</code>
-     * @return The gachaPreviewPrefabPath.
+     * <code>uint32 gacha_type = 13;</code>
+     * @return The gachaType.
      */
-    java.lang.String getGachaPreviewPrefabPath();
+    int getGachaType();
+
     /**
-     * <code>string gacha_preview_prefab_path = 4;</code>
-     * @return The bytes for gachaPreviewPrefabPath.
+     * <code>uint32 schedule_id = 10;</code>
+     * @return The scheduleId.
      */
-    com.google.protobuf.ByteString
-        getGachaPreviewPrefabPathBytes();
+    int getScheduleId();
+
+    /**
+     * <code>uint32 begin_time = 1;</code>
+     * @return The beginTime.
+     */
+    int getBeginTime();
+
+    /**
+     * <code>uint32 end_time = 14;</code>
+     * @return The endTime.
+     */
+    int getEndTime();
 
     /**
      * <code>uint32 cost_item_id = 9;</code>
@@ -37,10 +49,22 @@ public final class GachaInfoOuterClass {
     int getCostItemId();
 
     /**
-     * <code>bool is_new_wish = 733;</code>
-     * @return The isNewWish.
+     * <code>uint32 cost_item_num = 3;</code>
+     * @return The costItemNum.
      */
-    boolean getIsNewWish();
+    int getCostItemNum();
+
+    /**
+     * <code>string gacha_prefab_path = 15;</code>
+     * @return The gachaPrefabPath.
+     */
+    java.lang.String getGachaPrefabPath();
+    /**
+     * <code>string gacha_prefab_path = 15;</code>
+     * @return The bytes for gachaPrefabPath.
+     */
+    com.google.protobuf.ByteString
+        getGachaPrefabPathBytes();
 
     /**
      * <code>string gacha_prob_url = 8;</code>
@@ -55,99 +79,106 @@ public final class GachaInfoOuterClass {
         getGachaProbUrlBytes();
 
     /**
-     * <code>string gacha_record_url_oversea = 1854;</code>
-     * @return The gachaRecordUrlOversea.
+     * <code>string gacha_record_url = 12;</code>
+     * @return The gachaRecordUrl.
      */
-    java.lang.String getGachaRecordUrlOversea();
+    java.lang.String getGachaRecordUrl();
     /**
-     * <code>string gacha_record_url_oversea = 1854;</code>
-     * @return The bytes for gachaRecordUrlOversea.
+     * <code>string gacha_record_url = 12;</code>
+     * @return The bytes for gachaRecordUrl.
      */
     com.google.protobuf.ByteString
-        getGachaRecordUrlOverseaBytes();
+        getGachaRecordUrlBytes();
 
     /**
-     * <code>uint32 cost_item_num = 3;</code>
-     * @return The costItemNum.
+     * <code>string gacha_preview_prefab_path = 4;</code>
+     * @return The gachaPreviewPrefabPath.
      */
-    int getCostItemNum();
-
+    java.lang.String getGachaPreviewPrefabPath();
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>string gacha_preview_prefab_path = 4;</code>
+     * @return The bytes for gachaPreviewPrefabPath.
      */
-    java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> 
-        getGachaUpInfoListList();
+    com.google.protobuf.ByteString
+        getGachaPreviewPrefabPathBytes();
+
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 ten_cost_item_id = 2;</code>
+     * @return The tenCostItemId.
      */
-    emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo getGachaUpInfoList(int index);
+    int getTenCostItemId();
+
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 ten_cost_item_num = 6;</code>
+     * @return The tenCostItemNum.
      */
-    int getGachaUpInfoListCount();
+    int getTenCostItemNum();
+
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 left_gacha_times = 5;</code>
+     * @return The leftGachaTimes.
      */
-    java.util.List<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
-        getGachaUpInfoListOrBuilderList();
+    int getLeftGachaTimes();
+
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 gacha_times_limit = 11;</code>
+     * @return The gachaTimesLimit.
      */
-    emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder getGachaUpInfoListOrBuilder(
-        int index);
+    int getGachaTimesLimit();
 
     /**
-     * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-     * @return A list containing the displayUp4ItemList.
+     * <code>uint32 gacha_sort_id = 7;</code>
+     * @return The gachaSortId.
      */
-    java.util.List<java.lang.Integer> getDisplayUp4ItemListList();
+    int getGachaSortId();
+
     /**
-     * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-     * @return The count of displayUp4ItemList.
+     * <code>string gacha_prob_url_oversea = 1481;</code>
+     * @return The gachaProbUrlOversea.
      */
-    int getDisplayUp4ItemListCount();
+    java.lang.String getGachaProbUrlOversea();
     /**
-     * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-     * @param index The index of the element to return.
-     * @return The displayUp4ItemList at the given index.
+     * <code>string gacha_prob_url_oversea = 1481;</code>
+     * @return The bytes for gachaProbUrlOversea.
      */
-    int getDisplayUp4ItemList(int index);
+    com.google.protobuf.ByteString
+        getGachaProbUrlOverseaBytes();
 
     /**
-     * <code>uint32 wish_progress = 1819;</code>
-     * @return The wishProgress.
+     * <code>string gacha_record_url_oversea = 1854;</code>
+     * @return The gachaRecordUrlOversea.
      */
-    int getWishProgress();
-
+    java.lang.String getGachaRecordUrlOversea();
     /**
-     * <code>uint32 schedule_id = 10;</code>
-     * @return The scheduleId.
+     * <code>string gacha_record_url_oversea = 1854;</code>
+     * @return The bytes for gachaRecordUrlOversea.
      */
-    int getScheduleId();
+    com.google.protobuf.ByteString
+        getGachaRecordUrlOverseaBytes();
 
     /**
-     * <code>uint32 gacha_sort_id = 7;</code>
-     * @return The gachaSortId.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
-    int getGachaSortId();
-
+    java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> 
+        getGachaUpInfoListList();
     /**
-     * <code>uint32 left_gacha_times = 5;</code>
-     * @return The leftGachaTimes.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
-    int getLeftGachaTimes();
-
+    emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo getGachaUpInfoList(int index);
     /**
-     * <code>string gacha_prefab_path = 15;</code>
-     * @return The gachaPrefabPath.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
-    java.lang.String getGachaPrefabPath();
+    int getGachaUpInfoListCount();
     /**
-     * <code>string gacha_prefab_path = 15;</code>
-     * @return The bytes for gachaPrefabPath.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
-    com.google.protobuf.ByteString
-        getGachaPrefabPathBytes();
+    java.util.List<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
+        getGachaUpInfoListOrBuilderList();
+    /**
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     */
+    emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder getGachaUpInfoListOrBuilder(
+        int index);
 
     /**
      * <code>string title_textmap = 736;</code>
@@ -162,46 +193,38 @@ public final class GachaInfoOuterClass {
         getTitleTextmapBytes();
 
     /**
-     * <code>uint32 ten_cost_item_num = 6;</code>
-     * @return The tenCostItemNum.
-     */
-    int getTenCostItemNum();
-
-    /**
-     * <code>uint32 gacha_type = 13;</code>
-     * @return The gachaType.
+     * <code>repeated uint32 display_up5_item_list = 2006;</code>
+     * @return A list containing the displayUp5ItemList.
      */
-    int getGachaType();
-
+    java.util.List<java.lang.Integer> getDisplayUp5ItemListList();
     /**
-     * <code>uint32 wish_max_progress = 1222;</code>
-     * @return The wishMaxProgress.
+     * <code>repeated uint32 display_up5_item_list = 2006;</code>
+     * @return The count of displayUp5ItemList.
      */
-    int getWishMaxProgress();
-
+    int getDisplayUp5ItemListCount();
     /**
-     * <code>uint32 end_time = 14;</code>
-     * @return The endTime.
+     * <code>repeated uint32 display_up5_item_list = 2006;</code>
+     * @param index The index of the element to return.
+     * @return The displayUp5ItemList at the given index.
      */
-    int getEndTime();
+    int getDisplayUp5ItemList(int index);
 
     /**
-     * <code>uint32 ten_cost_item_id = 2;</code>
-     * @return The tenCostItemId.
+     * <code>repeated uint32 display_up4_item_list = 1875;</code>
+     * @return A list containing the displayUp4ItemList.
      */
-    int getTenCostItemId();
-
+    java.util.List<java.lang.Integer> getDisplayUp4ItemListList();
     /**
-     * <code>string gacha_record_url = 12;</code>
-     * @return The gachaRecordUrl.
+     * <code>repeated uint32 display_up4_item_list = 1875;</code>
+     * @return The count of displayUp4ItemList.
      */
-    java.lang.String getGachaRecordUrl();
+    int getDisplayUp4ItemListCount();
     /**
-     * <code>string gacha_record_url = 12;</code>
-     * @return The bytes for gachaRecordUrl.
+     * <code>repeated uint32 display_up4_item_list = 1875;</code>
+     * @param index The index of the element to return.
+     * @return The displayUp4ItemList at the given index.
      */
-    com.google.protobuf.ByteString
-        getGachaRecordUrlBytes();
+    int getDisplayUp4ItemList(int index);
 
     /**
      * <code>uint32 wish_item_id = 1637;</code>
@@ -210,45 +233,22 @@ public final class GachaInfoOuterClass {
     int getWishItemId();
 
     /**
-     * <code>uint32 begin_time = 1;</code>
-     * @return The beginTime.
-     */
-    int getBeginTime();
-
-    /**
-     * <code>string gacha_prob_url_oversea = 1481;</code>
-     * @return The gachaProbUrlOversea.
-     */
-    java.lang.String getGachaProbUrlOversea();
-    /**
-     * <code>string gacha_prob_url_oversea = 1481;</code>
-     * @return The bytes for gachaProbUrlOversea.
+     * <code>uint32 wish_progress = 1819;</code>
+     * @return The wishProgress.
      */
-    com.google.protobuf.ByteString
-        getGachaProbUrlOverseaBytes();
+    int getWishProgress();
 
     /**
-     * <code>uint32 gacha_times_limit = 11;</code>
-     * @return The gachaTimesLimit.
+     * <code>uint32 wish_max_progress = 1222;</code>
+     * @return The wishMaxProgress.
      */
-    int getGachaTimesLimit();
+    int getWishMaxProgress();
 
     /**
-     * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-     * @return A list containing the displayUp5ItemList.
-     */
-    java.util.List<java.lang.Integer> getDisplayUp5ItemListList();
-    /**
-     * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-     * @return The count of displayUp5ItemList.
-     */
-    int getDisplayUp5ItemListCount();
-    /**
-     * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-     * @param index The index of the element to return.
-     * @return The displayUp5ItemList at the given index.
+     * <code>bool is_new_wish = 733;</code>
+     * @return The isNewWish.
      */
-    int getDisplayUp5ItemList(int index);
+    boolean getIsNewWish();
   }
   /**
    * Protobuf type {@code GachaInfo}
@@ -263,16 +263,16 @@ public final class GachaInfoOuterClass {
       super(builder);
     }
     private GachaInfo() {
-      gachaPreviewPrefabPath_ = "";
+      gachaPrefabPath_ = "";
       gachaProbUrl_ = "";
+      gachaRecordUrl_ = "";
+      gachaPreviewPrefabPath_ = "";
+      gachaProbUrlOversea_ = "";
       gachaRecordUrlOversea_ = "";
       gachaUpInfoList_ = java.util.Collections.emptyList();
-      displayUp4ItemList_ = emptyIntList();
-      gachaPrefabPath_ = "";
       titleTextmap_ = "";
-      gachaRecordUrl_ = "";
-      gachaProbUrlOversea_ = "";
       displayUp5ItemList_ = emptyIntList();
+      displayUp4ItemList_ = emptyIntList();
     }
 
     @java.lang.Override
@@ -433,9 +433,9 @@ public final class GachaInfoOuterClass {
               break;
             }
             case 15000: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                 displayUp4ItemList_ = newIntList();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000004;
               }
               displayUp4ItemList_.addInt(input.readUInt32());
               break;
@@ -443,9 +443,9 @@ public final class GachaInfoOuterClass {
             case 15002: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
                 displayUp4ItemList_ = newIntList();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000004;
               }
               while (input.getBytesUntilLimit() > 0) {
                 displayUp4ItemList_.addInt(input.readUInt32());
@@ -454,9 +454,9 @@ public final class GachaInfoOuterClass {
               break;
             }
             case 16048: {
-              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                 displayUp5ItemList_ = newIntList();
-                mutable_bitField0_ |= 0x00000004;
+                mutable_bitField0_ |= 0x00000002;
               }
               displayUp5ItemList_.addInt(input.readUInt32());
               break;
@@ -464,9 +464,9 @@ public final class GachaInfoOuterClass {
             case 16050: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                 displayUp5ItemList_ = newIntList();
-                mutable_bitField0_ |= 0x00000004;
+                mutable_bitField0_ |= 0x00000002;
               }
               while (input.getBytesUntilLimit() > 0) {
                 displayUp5ItemList_.addInt(input.readUInt32());
@@ -492,10 +492,10 @@ public final class GachaInfoOuterClass {
         if (((mutable_bitField0_ & 0x00000001) != 0)) {
           gachaUpInfoList_ = java.util.Collections.unmodifiableList(gachaUpInfoList_);
         }
-        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
           displayUp4ItemList_.makeImmutable(); // C
         }
-        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
           displayUp5ItemList_.makeImmutable(); // C
         }
         this.unknownFields = unknownFields.build();
@@ -515,66 +515,110 @@ public final class GachaInfoOuterClass {
               emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo.class, emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo.Builder.class);
     }
 
-    public static final int GACHA_PREVIEW_PREFAB_PATH_FIELD_NUMBER = 4;
-    private volatile java.lang.Object gachaPreviewPrefabPath_;
+    public static final int GACHA_TYPE_FIELD_NUMBER = 13;
+    private int gachaType_;
     /**
-     * <code>string gacha_preview_prefab_path = 4;</code>
-     * @return The gachaPreviewPrefabPath.
+     * <code>uint32 gacha_type = 13;</code>
+     * @return The gachaType.
      */
     @java.lang.Override
-    public java.lang.String getGachaPreviewPrefabPath() {
-      java.lang.Object ref = gachaPreviewPrefabPath_;
+    public int getGachaType() {
+      return gachaType_;
+    }
+
+    public static final int SCHEDULE_ID_FIELD_NUMBER = 10;
+    private int scheduleId_;
+    /**
+     * <code>uint32 schedule_id = 10;</code>
+     * @return The scheduleId.
+     */
+    @java.lang.Override
+    public int getScheduleId() {
+      return scheduleId_;
+    }
+
+    public static final int BEGIN_TIME_FIELD_NUMBER = 1;
+    private int beginTime_;
+    /**
+     * <code>uint32 begin_time = 1;</code>
+     * @return The beginTime.
+     */
+    @java.lang.Override
+    public int getBeginTime() {
+      return beginTime_;
+    }
+
+    public static final int END_TIME_FIELD_NUMBER = 14;
+    private int endTime_;
+    /**
+     * <code>uint32 end_time = 14;</code>
+     * @return The endTime.
+     */
+    @java.lang.Override
+    public int getEndTime() {
+      return endTime_;
+    }
+
+    public static final int COST_ITEM_ID_FIELD_NUMBER = 9;
+    private int costItemId_;
+    /**
+     * <code>uint32 cost_item_id = 9;</code>
+     * @return The costItemId.
+     */
+    @java.lang.Override
+    public int getCostItemId() {
+      return costItemId_;
+    }
+
+    public static final int COST_ITEM_NUM_FIELD_NUMBER = 3;
+    private int costItemNum_;
+    /**
+     * <code>uint32 cost_item_num = 3;</code>
+     * @return The costItemNum.
+     */
+    @java.lang.Override
+    public int getCostItemNum() {
+      return costItemNum_;
+    }
+
+    public static final int GACHA_PREFAB_PATH_FIELD_NUMBER = 15;
+    private volatile java.lang.Object gachaPrefabPath_;
+    /**
+     * <code>string gacha_prefab_path = 15;</code>
+     * @return The gachaPrefabPath.
+     */
+    @java.lang.Override
+    public java.lang.String getGachaPrefabPath() {
+      java.lang.Object ref = gachaPrefabPath_;
       if (ref instanceof java.lang.String) {
         return (java.lang.String) ref;
       } else {
         com.google.protobuf.ByteString bs = 
             (com.google.protobuf.ByteString) ref;
         java.lang.String s = bs.toStringUtf8();
-        gachaPreviewPrefabPath_ = s;
+        gachaPrefabPath_ = s;
         return s;
       }
     }
     /**
-     * <code>string gacha_preview_prefab_path = 4;</code>
-     * @return The bytes for gachaPreviewPrefabPath.
+     * <code>string gacha_prefab_path = 15;</code>
+     * @return The bytes for gachaPrefabPath.
      */
     @java.lang.Override
     public com.google.protobuf.ByteString
-        getGachaPreviewPrefabPathBytes() {
-      java.lang.Object ref = gachaPreviewPrefabPath_;
+        getGachaPrefabPathBytes() {
+      java.lang.Object ref = gachaPrefabPath_;
       if (ref instanceof java.lang.String) {
         com.google.protobuf.ByteString b = 
             com.google.protobuf.ByteString.copyFromUtf8(
                 (java.lang.String) ref);
-        gachaPreviewPrefabPath_ = b;
+        gachaPrefabPath_ = b;
         return b;
       } else {
         return (com.google.protobuf.ByteString) ref;
       }
     }
 
-    public static final int COST_ITEM_ID_FIELD_NUMBER = 9;
-    private int costItemId_;
-    /**
-     * <code>uint32 cost_item_id = 9;</code>
-     * @return The costItemId.
-     */
-    @java.lang.Override
-    public int getCostItemId() {
-      return costItemId_;
-    }
-
-    public static final int IS_NEW_WISH_FIELD_NUMBER = 733;
-    private boolean isNewWish_;
-    /**
-     * <code>bool is_new_wish = 733;</code>
-     * @return The isNewWish.
-     */
-    @java.lang.Override
-    public boolean getIsNewWish() {
-      return isNewWish_;
-    }
-
     public static final int GACHA_PROB_URL_FIELD_NUMBER = 8;
     private volatile java.lang.Object gachaProbUrl_;
     /**
@@ -613,411 +657,295 @@ public final class GachaInfoOuterClass {
       }
     }
 
-    public static final int GACHA_RECORD_URL_OVERSEA_FIELD_NUMBER = 1854;
-    private volatile java.lang.Object gachaRecordUrlOversea_;
+    public static final int GACHA_RECORD_URL_FIELD_NUMBER = 12;
+    private volatile java.lang.Object gachaRecordUrl_;
     /**
-     * <code>string gacha_record_url_oversea = 1854;</code>
-     * @return The gachaRecordUrlOversea.
+     * <code>string gacha_record_url = 12;</code>
+     * @return The gachaRecordUrl.
      */
     @java.lang.Override
-    public java.lang.String getGachaRecordUrlOversea() {
-      java.lang.Object ref = gachaRecordUrlOversea_;
+    public java.lang.String getGachaRecordUrl() {
+      java.lang.Object ref = gachaRecordUrl_;
       if (ref instanceof java.lang.String) {
         return (java.lang.String) ref;
       } else {
         com.google.protobuf.ByteString bs = 
             (com.google.protobuf.ByteString) ref;
         java.lang.String s = bs.toStringUtf8();
-        gachaRecordUrlOversea_ = s;
+        gachaRecordUrl_ = s;
         return s;
       }
     }
     /**
-     * <code>string gacha_record_url_oversea = 1854;</code>
-     * @return The bytes for gachaRecordUrlOversea.
+     * <code>string gacha_record_url = 12;</code>
+     * @return The bytes for gachaRecordUrl.
      */
     @java.lang.Override
     public com.google.protobuf.ByteString
-        getGachaRecordUrlOverseaBytes() {
-      java.lang.Object ref = gachaRecordUrlOversea_;
+        getGachaRecordUrlBytes() {
+      java.lang.Object ref = gachaRecordUrl_;
       if (ref instanceof java.lang.String) {
         com.google.protobuf.ByteString b = 
             com.google.protobuf.ByteString.copyFromUtf8(
                 (java.lang.String) ref);
-        gachaRecordUrlOversea_ = b;
+        gachaRecordUrl_ = b;
         return b;
       } else {
         return (com.google.protobuf.ByteString) ref;
       }
     }
 
-    public static final int COST_ITEM_NUM_FIELD_NUMBER = 3;
-    private int costItemNum_;
+    public static final int GACHA_PREVIEW_PREFAB_PATH_FIELD_NUMBER = 4;
+    private volatile java.lang.Object gachaPreviewPrefabPath_;
     /**
-     * <code>uint32 cost_item_num = 3;</code>
-     * @return The costItemNum.
+     * <code>string gacha_preview_prefab_path = 4;</code>
+     * @return The gachaPreviewPrefabPath.
      */
     @java.lang.Override
-    public int getCostItemNum() {
-      return costItemNum_;
+    public java.lang.String getGachaPreviewPrefabPath() {
+      java.lang.Object ref = gachaPreviewPrefabPath_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        gachaPreviewPrefabPath_ = s;
+        return s;
+      }
     }
-
-    public static final int GACHA_UP_INFO_LIST_FIELD_NUMBER = 1233;
-    private java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> gachaUpInfoList_;
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>string gacha_preview_prefab_path = 4;</code>
+     * @return The bytes for gachaPreviewPrefabPath.
      */
     @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> getGachaUpInfoListList() {
-      return gachaUpInfoList_;
+    public com.google.protobuf.ByteString
+        getGachaPreviewPrefabPathBytes() {
+      java.lang.Object ref = gachaPreviewPrefabPath_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        gachaPreviewPrefabPath_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
+
+    public static final int TEN_COST_ITEM_ID_FIELD_NUMBER = 2;
+    private int tenCostItemId_;
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 ten_cost_item_id = 2;</code>
+     * @return The tenCostItemId.
      */
     @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
-        getGachaUpInfoListOrBuilderList() {
-      return gachaUpInfoList_;
+    public int getTenCostItemId() {
+      return tenCostItemId_;
     }
+
+    public static final int TEN_COST_ITEM_NUM_FIELD_NUMBER = 6;
+    private int tenCostItemNum_;
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 ten_cost_item_num = 6;</code>
+     * @return The tenCostItemNum.
      */
     @java.lang.Override
-    public int getGachaUpInfoListCount() {
-      return gachaUpInfoList_.size();
+    public int getTenCostItemNum() {
+      return tenCostItemNum_;
     }
+
+    public static final int LEFT_GACHA_TIMES_FIELD_NUMBER = 5;
+    private int leftGachaTimes_;
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 left_gacha_times = 5;</code>
+     * @return The leftGachaTimes.
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo getGachaUpInfoList(int index) {
-      return gachaUpInfoList_.get(index);
+    public int getLeftGachaTimes() {
+      return leftGachaTimes_;
     }
+
+    public static final int GACHA_TIMES_LIMIT_FIELD_NUMBER = 11;
+    private int gachaTimesLimit_;
     /**
-     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+     * <code>uint32 gacha_times_limit = 11;</code>
+     * @return The gachaTimesLimit.
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder getGachaUpInfoListOrBuilder(
-        int index) {
-      return gachaUpInfoList_.get(index);
+    public int getGachaTimesLimit() {
+      return gachaTimesLimit_;
     }
 
-    public static final int DISPLAY_UP_4_ITEM_LIST_FIELD_NUMBER = 1875;
-    private com.google.protobuf.Internal.IntList displayUp4ItemList_;
+    public static final int GACHA_SORT_ID_FIELD_NUMBER = 7;
+    private int gachaSortId_;
     /**
-     * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-     * @return A list containing the displayUp4ItemList.
+     * <code>uint32 gacha_sort_id = 7;</code>
+     * @return The gachaSortId.
      */
     @java.lang.Override
-    public java.util.List<java.lang.Integer>
-        getDisplayUp4ItemListList() {
-      return displayUp4ItemList_;
-    }
-    /**
-     * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-     * @return The count of displayUp4ItemList.
-     */
-    public int getDisplayUp4ItemListCount() {
-      return displayUp4ItemList_.size();
+    public int getGachaSortId() {
+      return gachaSortId_;
     }
+
+    public static final int GACHA_PROB_URL_OVERSEA_FIELD_NUMBER = 1481;
+    private volatile java.lang.Object gachaProbUrlOversea_;
     /**
-     * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-     * @param index The index of the element to return.
-     * @return The displayUp4ItemList at the given index.
-     */
-    public int getDisplayUp4ItemList(int index) {
-      return displayUp4ItemList_.getInt(index);
-    }
-    private int displayUp4ItemListMemoizedSerializedSize = -1;
-
-    public static final int WISH_PROGRESS_FIELD_NUMBER = 1819;
-    private int wishProgress_;
-    /**
-     * <code>uint32 wish_progress = 1819;</code>
-     * @return The wishProgress.
-     */
-    @java.lang.Override
-    public int getWishProgress() {
-      return wishProgress_;
-    }
-
-    public static final int SCHEDULE_ID_FIELD_NUMBER = 10;
-    private int scheduleId_;
-    /**
-     * <code>uint32 schedule_id = 10;</code>
-     * @return The scheduleId.
-     */
-    @java.lang.Override
-    public int getScheduleId() {
-      return scheduleId_;
-    }
-
-    public static final int GACHA_SORT_ID_FIELD_NUMBER = 7;
-    private int gachaSortId_;
-    /**
-     * <code>uint32 gacha_sort_id = 7;</code>
-     * @return The gachaSortId.
+     * <code>string gacha_prob_url_oversea = 1481;</code>
+     * @return The gachaProbUrlOversea.
      */
     @java.lang.Override
-    public int getGachaSortId() {
-      return gachaSortId_;
-    }
-
-    public static final int LEFT_GACHA_TIMES_FIELD_NUMBER = 5;
-    private int leftGachaTimes_;
-    /**
-     * <code>uint32 left_gacha_times = 5;</code>
-     * @return The leftGachaTimes.
-     */
-    @java.lang.Override
-    public int getLeftGachaTimes() {
-      return leftGachaTimes_;
-    }
-
-    public static final int GACHA_PREFAB_PATH_FIELD_NUMBER = 15;
-    private volatile java.lang.Object gachaPrefabPath_;
-    /**
-     * <code>string gacha_prefab_path = 15;</code>
-     * @return The gachaPrefabPath.
-     */
-    @java.lang.Override
-    public java.lang.String getGachaPrefabPath() {
-      java.lang.Object ref = gachaPrefabPath_;
+    public java.lang.String getGachaProbUrlOversea() {
+      java.lang.Object ref = gachaProbUrlOversea_;
       if (ref instanceof java.lang.String) {
         return (java.lang.String) ref;
       } else {
         com.google.protobuf.ByteString bs = 
             (com.google.protobuf.ByteString) ref;
         java.lang.String s = bs.toStringUtf8();
-        gachaPrefabPath_ = s;
+        gachaProbUrlOversea_ = s;
         return s;
       }
     }
     /**
-     * <code>string gacha_prefab_path = 15;</code>
-     * @return The bytes for gachaPrefabPath.
+     * <code>string gacha_prob_url_oversea = 1481;</code>
+     * @return The bytes for gachaProbUrlOversea.
      */
     @java.lang.Override
     public com.google.protobuf.ByteString
-        getGachaPrefabPathBytes() {
-      java.lang.Object ref = gachaPrefabPath_;
+        getGachaProbUrlOverseaBytes() {
+      java.lang.Object ref = gachaProbUrlOversea_;
       if (ref instanceof java.lang.String) {
         com.google.protobuf.ByteString b = 
             com.google.protobuf.ByteString.copyFromUtf8(
                 (java.lang.String) ref);
-        gachaPrefabPath_ = b;
+        gachaProbUrlOversea_ = b;
         return b;
       } else {
         return (com.google.protobuf.ByteString) ref;
       }
     }
 
-    public static final int TITLE_TEXTMAP_FIELD_NUMBER = 736;
-    private volatile java.lang.Object titleTextmap_;
+    public static final int GACHA_RECORD_URL_OVERSEA_FIELD_NUMBER = 1854;
+    private volatile java.lang.Object gachaRecordUrlOversea_;
     /**
-     * <code>string title_textmap = 736;</code>
-     * @return The titleTextmap.
+     * <code>string gacha_record_url_oversea = 1854;</code>
+     * @return The gachaRecordUrlOversea.
      */
     @java.lang.Override
-    public java.lang.String getTitleTextmap() {
-      java.lang.Object ref = titleTextmap_;
+    public java.lang.String getGachaRecordUrlOversea() {
+      java.lang.Object ref = gachaRecordUrlOversea_;
       if (ref instanceof java.lang.String) {
         return (java.lang.String) ref;
       } else {
         com.google.protobuf.ByteString bs = 
             (com.google.protobuf.ByteString) ref;
         java.lang.String s = bs.toStringUtf8();
-        titleTextmap_ = s;
+        gachaRecordUrlOversea_ = s;
         return s;
       }
     }
     /**
-     * <code>string title_textmap = 736;</code>
-     * @return The bytes for titleTextmap.
+     * <code>string gacha_record_url_oversea = 1854;</code>
+     * @return The bytes for gachaRecordUrlOversea.
      */
     @java.lang.Override
     public com.google.protobuf.ByteString
-        getTitleTextmapBytes() {
-      java.lang.Object ref = titleTextmap_;
+        getGachaRecordUrlOverseaBytes() {
+      java.lang.Object ref = gachaRecordUrlOversea_;
       if (ref instanceof java.lang.String) {
         com.google.protobuf.ByteString b = 
             com.google.protobuf.ByteString.copyFromUtf8(
                 (java.lang.String) ref);
-        titleTextmap_ = b;
+        gachaRecordUrlOversea_ = b;
         return b;
       } else {
         return (com.google.protobuf.ByteString) ref;
       }
     }
 
-    public static final int TEN_COST_ITEM_NUM_FIELD_NUMBER = 6;
-    private int tenCostItemNum_;
-    /**
-     * <code>uint32 ten_cost_item_num = 6;</code>
-     * @return The tenCostItemNum.
-     */
-    @java.lang.Override
-    public int getTenCostItemNum() {
-      return tenCostItemNum_;
-    }
-
-    public static final int GACHA_TYPE_FIELD_NUMBER = 13;
-    private int gachaType_;
-    /**
-     * <code>uint32 gacha_type = 13;</code>
-     * @return The gachaType.
-     */
-    @java.lang.Override
-    public int getGachaType() {
-      return gachaType_;
-    }
-
-    public static final int WISH_MAX_PROGRESS_FIELD_NUMBER = 1222;
-    private int wishMaxProgress_;
-    /**
-     * <code>uint32 wish_max_progress = 1222;</code>
-     * @return The wishMaxProgress.
-     */
-    @java.lang.Override
-    public int getWishMaxProgress() {
-      return wishMaxProgress_;
-    }
-
-    public static final int END_TIME_FIELD_NUMBER = 14;
-    private int endTime_;
-    /**
-     * <code>uint32 end_time = 14;</code>
-     * @return The endTime.
-     */
-    @java.lang.Override
-    public int getEndTime() {
-      return endTime_;
-    }
-
-    public static final int TEN_COST_ITEM_ID_FIELD_NUMBER = 2;
-    private int tenCostItemId_;
+    public static final int GACHA_UP_INFO_LIST_FIELD_NUMBER = 1233;
+    private java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> gachaUpInfoList_;
     /**
-     * <code>uint32 ten_cost_item_id = 2;</code>
-     * @return The tenCostItemId.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
     @java.lang.Override
-    public int getTenCostItemId() {
-      return tenCostItemId_;
+    public java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> getGachaUpInfoListList() {
+      return gachaUpInfoList_;
     }
-
-    public static final int GACHA_RECORD_URL_FIELD_NUMBER = 12;
-    private volatile java.lang.Object gachaRecordUrl_;
     /**
-     * <code>string gacha_record_url = 12;</code>
-     * @return The gachaRecordUrl.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
     @java.lang.Override
-    public java.lang.String getGachaRecordUrl() {
-      java.lang.Object ref = gachaRecordUrl_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        gachaRecordUrl_ = s;
-        return s;
-      }
+    public java.util.List<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
+        getGachaUpInfoListOrBuilderList() {
+      return gachaUpInfoList_;
     }
     /**
-     * <code>string gacha_record_url = 12;</code>
-     * @return The bytes for gachaRecordUrl.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
     @java.lang.Override
-    public com.google.protobuf.ByteString
-        getGachaRecordUrlBytes() {
-      java.lang.Object ref = gachaRecordUrl_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        gachaRecordUrl_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
+    public int getGachaUpInfoListCount() {
+      return gachaUpInfoList_.size();
     }
-
-    public static final int WISH_ITEM_ID_FIELD_NUMBER = 1637;
-    private int wishItemId_;
     /**
-     * <code>uint32 wish_item_id = 1637;</code>
-     * @return The wishItemId.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
     @java.lang.Override
-    public int getWishItemId() {
-      return wishItemId_;
+    public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo getGachaUpInfoList(int index) {
+      return gachaUpInfoList_.get(index);
     }
-
-    public static final int BEGIN_TIME_FIELD_NUMBER = 1;
-    private int beginTime_;
     /**
-     * <code>uint32 begin_time = 1;</code>
-     * @return The beginTime.
+     * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
      */
     @java.lang.Override
-    public int getBeginTime() {
-      return beginTime_;
+    public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder getGachaUpInfoListOrBuilder(
+        int index) {
+      return gachaUpInfoList_.get(index);
     }
 
-    public static final int GACHA_PROB_URL_OVERSEA_FIELD_NUMBER = 1481;
-    private volatile java.lang.Object gachaProbUrlOversea_;
+    public static final int TITLE_TEXTMAP_FIELD_NUMBER = 736;
+    private volatile java.lang.Object titleTextmap_;
     /**
-     * <code>string gacha_prob_url_oversea = 1481;</code>
-     * @return The gachaProbUrlOversea.
+     * <code>string title_textmap = 736;</code>
+     * @return The titleTextmap.
      */
     @java.lang.Override
-    public java.lang.String getGachaProbUrlOversea() {
-      java.lang.Object ref = gachaProbUrlOversea_;
+    public java.lang.String getTitleTextmap() {
+      java.lang.Object ref = titleTextmap_;
       if (ref instanceof java.lang.String) {
         return (java.lang.String) ref;
       } else {
         com.google.protobuf.ByteString bs = 
             (com.google.protobuf.ByteString) ref;
         java.lang.String s = bs.toStringUtf8();
-        gachaProbUrlOversea_ = s;
+        titleTextmap_ = s;
         return s;
       }
     }
     /**
-     * <code>string gacha_prob_url_oversea = 1481;</code>
-     * @return The bytes for gachaProbUrlOversea.
+     * <code>string title_textmap = 736;</code>
+     * @return The bytes for titleTextmap.
      */
     @java.lang.Override
     public com.google.protobuf.ByteString
-        getGachaProbUrlOverseaBytes() {
-      java.lang.Object ref = gachaProbUrlOversea_;
+        getTitleTextmapBytes() {
+      java.lang.Object ref = titleTextmap_;
       if (ref instanceof java.lang.String) {
         com.google.protobuf.ByteString b = 
             com.google.protobuf.ByteString.copyFromUtf8(
                 (java.lang.String) ref);
-        gachaProbUrlOversea_ = b;
+        titleTextmap_ = b;
         return b;
       } else {
         return (com.google.protobuf.ByteString) ref;
       }
     }
 
-    public static final int GACHA_TIMES_LIMIT_FIELD_NUMBER = 11;
-    private int gachaTimesLimit_;
-    /**
-     * <code>uint32 gacha_times_limit = 11;</code>
-     * @return The gachaTimesLimit.
-     */
-    @java.lang.Override
-    public int getGachaTimesLimit() {
-      return gachaTimesLimit_;
-    }
-
-    public static final int DISPLAY_UP_5_ITEM_LIST_FIELD_NUMBER = 2006;
+    public static final int DISPLAY_UP5_ITEM_LIST_FIELD_NUMBER = 2006;
     private com.google.protobuf.Internal.IntList displayUp5ItemList_;
     /**
-     * <code>repeated uint32 display_up_5_item_list = 2006;</code>
+     * <code>repeated uint32 display_up5_item_list = 2006;</code>
      * @return A list containing the displayUp5ItemList.
      */
     @java.lang.Override
@@ -1026,14 +954,14 @@ public final class GachaInfoOuterClass {
       return displayUp5ItemList_;
     }
     /**
-     * <code>repeated uint32 display_up_5_item_list = 2006;</code>
+     * <code>repeated uint32 display_up5_item_list = 2006;</code>
      * @return The count of displayUp5ItemList.
      */
     public int getDisplayUp5ItemListCount() {
       return displayUp5ItemList_.size();
     }
     /**
-     * <code>repeated uint32 display_up_5_item_list = 2006;</code>
+     * <code>repeated uint32 display_up5_item_list = 2006;</code>
      * @param index The index of the element to return.
      * @return The displayUp5ItemList at the given index.
      */
@@ -1042,17 +970,89 @@ public final class GachaInfoOuterClass {
     }
     private int displayUp5ItemListMemoizedSerializedSize = -1;
 
-    private byte memoizedIsInitialized = -1;
+    public static final int DISPLAY_UP4_ITEM_LIST_FIELD_NUMBER = 1875;
+    private com.google.protobuf.Internal.IntList displayUp4ItemList_;
+    /**
+     * <code>repeated uint32 display_up4_item_list = 1875;</code>
+     * @return A list containing the displayUp4ItemList.
+     */
     @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
-    }
-
+    public java.util.List<java.lang.Integer>
+        getDisplayUp4ItemListList() {
+      return displayUp4ItemList_;
+    }
+    /**
+     * <code>repeated uint32 display_up4_item_list = 1875;</code>
+     * @return The count of displayUp4ItemList.
+     */
+    public int getDisplayUp4ItemListCount() {
+      return displayUp4ItemList_.size();
+    }
+    /**
+     * <code>repeated uint32 display_up4_item_list = 1875;</code>
+     * @param index The index of the element to return.
+     * @return The displayUp4ItemList at the given index.
+     */
+    public int getDisplayUp4ItemList(int index) {
+      return displayUp4ItemList_.getInt(index);
+    }
+    private int displayUp4ItemListMemoizedSerializedSize = -1;
+
+    public static final int WISH_ITEM_ID_FIELD_NUMBER = 1637;
+    private int wishItemId_;
+    /**
+     * <code>uint32 wish_item_id = 1637;</code>
+     * @return The wishItemId.
+     */
+    @java.lang.Override
+    public int getWishItemId() {
+      return wishItemId_;
+    }
+
+    public static final int WISH_PROGRESS_FIELD_NUMBER = 1819;
+    private int wishProgress_;
+    /**
+     * <code>uint32 wish_progress = 1819;</code>
+     * @return The wishProgress.
+     */
+    @java.lang.Override
+    public int getWishProgress() {
+      return wishProgress_;
+    }
+
+    public static final int WISH_MAX_PROGRESS_FIELD_NUMBER = 1222;
+    private int wishMaxProgress_;
+    /**
+     * <code>uint32 wish_max_progress = 1222;</code>
+     * @return The wishMaxProgress.
+     */
+    @java.lang.Override
+    public int getWishMaxProgress() {
+      return wishMaxProgress_;
+    }
+
+    public static final int IS_NEW_WISH_FIELD_NUMBER = 733;
+    private boolean isNewWish_;
+    /**
+     * <code>bool is_new_wish = 733;</code>
+     * @return The isNewWish.
+     */
+    @java.lang.Override
+    public boolean getIsNewWish() {
+      return isNewWish_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
@@ -1277,56 +1277,56 @@ public final class GachaInfoOuterClass {
       }
       emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo other = (emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo) obj;
 
-      if (!getGachaPreviewPrefabPath()
-          .equals(other.getGachaPreviewPrefabPath())) return false;
+      if (getGachaType()
+          != other.getGachaType()) return false;
+      if (getScheduleId()
+          != other.getScheduleId()) return false;
+      if (getBeginTime()
+          != other.getBeginTime()) return false;
+      if (getEndTime()
+          != other.getEndTime()) return false;
       if (getCostItemId()
           != other.getCostItemId()) return false;
-      if (getIsNewWish()
-          != other.getIsNewWish()) return false;
+      if (getCostItemNum()
+          != other.getCostItemNum()) return false;
+      if (!getGachaPrefabPath()
+          .equals(other.getGachaPrefabPath())) return false;
       if (!getGachaProbUrl()
           .equals(other.getGachaProbUrl())) return false;
+      if (!getGachaRecordUrl()
+          .equals(other.getGachaRecordUrl())) return false;
+      if (!getGachaPreviewPrefabPath()
+          .equals(other.getGachaPreviewPrefabPath())) return false;
+      if (getTenCostItemId()
+          != other.getTenCostItemId()) return false;
+      if (getTenCostItemNum()
+          != other.getTenCostItemNum()) return false;
+      if (getLeftGachaTimes()
+          != other.getLeftGachaTimes()) return false;
+      if (getGachaTimesLimit()
+          != other.getGachaTimesLimit()) return false;
+      if (getGachaSortId()
+          != other.getGachaSortId()) return false;
+      if (!getGachaProbUrlOversea()
+          .equals(other.getGachaProbUrlOversea())) return false;
       if (!getGachaRecordUrlOversea()
           .equals(other.getGachaRecordUrlOversea())) return false;
-      if (getCostItemNum()
-          != other.getCostItemNum()) return false;
       if (!getGachaUpInfoListList()
           .equals(other.getGachaUpInfoListList())) return false;
+      if (!getTitleTextmap()
+          .equals(other.getTitleTextmap())) return false;
+      if (!getDisplayUp5ItemListList()
+          .equals(other.getDisplayUp5ItemListList())) return false;
       if (!getDisplayUp4ItemListList()
           .equals(other.getDisplayUp4ItemListList())) return false;
+      if (getWishItemId()
+          != other.getWishItemId()) return false;
       if (getWishProgress()
           != other.getWishProgress()) return false;
-      if (getScheduleId()
-          != other.getScheduleId()) return false;
-      if (getGachaSortId()
-          != other.getGachaSortId()) return false;
-      if (getLeftGachaTimes()
-          != other.getLeftGachaTimes()) return false;
-      if (!getGachaPrefabPath()
-          .equals(other.getGachaPrefabPath())) return false;
-      if (!getTitleTextmap()
-          .equals(other.getTitleTextmap())) return false;
-      if (getTenCostItemNum()
-          != other.getTenCostItemNum()) return false;
-      if (getGachaType()
-          != other.getGachaType()) return false;
       if (getWishMaxProgress()
           != other.getWishMaxProgress()) return false;
-      if (getEndTime()
-          != other.getEndTime()) return false;
-      if (getTenCostItemId()
-          != other.getTenCostItemId()) return false;
-      if (!getGachaRecordUrl()
-          .equals(other.getGachaRecordUrl())) return false;
-      if (getWishItemId()
-          != other.getWishItemId()) return false;
-      if (getBeginTime()
-          != other.getBeginTime()) return false;
-      if (!getGachaProbUrlOversea()
-          .equals(other.getGachaProbUrlOversea())) return false;
-      if (getGachaTimesLimit()
-          != other.getGachaTimesLimit()) return false;
-      if (!getDisplayUp5ItemListList()
-          .equals(other.getDisplayUp5ItemListList())) return false;
+      if (getIsNewWish()
+          != other.getIsNewWish()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -1338,63 +1338,63 @@ public final class GachaInfoOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + GACHA_PREVIEW_PREFAB_PATH_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaPreviewPrefabPath().hashCode();
+      hash = (37 * hash) + GACHA_TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaType();
+      hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getScheduleId();
+      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getBeginTime();
+      hash = (37 * hash) + END_TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getEndTime();
       hash = (37 * hash) + COST_ITEM_ID_FIELD_NUMBER;
       hash = (53 * hash) + getCostItemId();
-      hash = (37 * hash) + IS_NEW_WISH_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getIsNewWish());
+      hash = (37 * hash) + COST_ITEM_NUM_FIELD_NUMBER;
+      hash = (53 * hash) + getCostItemNum();
+      hash = (37 * hash) + GACHA_PREFAB_PATH_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaPrefabPath().hashCode();
       hash = (37 * hash) + GACHA_PROB_URL_FIELD_NUMBER;
       hash = (53 * hash) + getGachaProbUrl().hashCode();
+      hash = (37 * hash) + GACHA_RECORD_URL_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaRecordUrl().hashCode();
+      hash = (37 * hash) + GACHA_PREVIEW_PREFAB_PATH_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaPreviewPrefabPath().hashCode();
+      hash = (37 * hash) + TEN_COST_ITEM_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getTenCostItemId();
+      hash = (37 * hash) + TEN_COST_ITEM_NUM_FIELD_NUMBER;
+      hash = (53 * hash) + getTenCostItemNum();
+      hash = (37 * hash) + LEFT_GACHA_TIMES_FIELD_NUMBER;
+      hash = (53 * hash) + getLeftGachaTimes();
+      hash = (37 * hash) + GACHA_TIMES_LIMIT_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaTimesLimit();
+      hash = (37 * hash) + GACHA_SORT_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaSortId();
+      hash = (37 * hash) + GACHA_PROB_URL_OVERSEA_FIELD_NUMBER;
+      hash = (53 * hash) + getGachaProbUrlOversea().hashCode();
       hash = (37 * hash) + GACHA_RECORD_URL_OVERSEA_FIELD_NUMBER;
       hash = (53 * hash) + getGachaRecordUrlOversea().hashCode();
-      hash = (37 * hash) + COST_ITEM_NUM_FIELD_NUMBER;
-      hash = (53 * hash) + getCostItemNum();
       if (getGachaUpInfoListCount() > 0) {
         hash = (37 * hash) + GACHA_UP_INFO_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getGachaUpInfoListList().hashCode();
       }
+      hash = (37 * hash) + TITLE_TEXTMAP_FIELD_NUMBER;
+      hash = (53 * hash) + getTitleTextmap().hashCode();
+      if (getDisplayUp5ItemListCount() > 0) {
+        hash = (37 * hash) + DISPLAY_UP5_ITEM_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getDisplayUp5ItemListList().hashCode();
+      }
       if (getDisplayUp4ItemListCount() > 0) {
-        hash = (37 * hash) + DISPLAY_UP_4_ITEM_LIST_FIELD_NUMBER;
+        hash = (37 * hash) + DISPLAY_UP4_ITEM_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getDisplayUp4ItemListList().hashCode();
       }
+      hash = (37 * hash) + WISH_ITEM_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getWishItemId();
       hash = (37 * hash) + WISH_PROGRESS_FIELD_NUMBER;
       hash = (53 * hash) + getWishProgress();
-      hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getScheduleId();
-      hash = (37 * hash) + GACHA_SORT_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaSortId();
-      hash = (37 * hash) + LEFT_GACHA_TIMES_FIELD_NUMBER;
-      hash = (53 * hash) + getLeftGachaTimes();
-      hash = (37 * hash) + GACHA_PREFAB_PATH_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaPrefabPath().hashCode();
-      hash = (37 * hash) + TITLE_TEXTMAP_FIELD_NUMBER;
-      hash = (53 * hash) + getTitleTextmap().hashCode();
-      hash = (37 * hash) + TEN_COST_ITEM_NUM_FIELD_NUMBER;
-      hash = (53 * hash) + getTenCostItemNum();
-      hash = (37 * hash) + GACHA_TYPE_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaType();
       hash = (37 * hash) + WISH_MAX_PROGRESS_FIELD_NUMBER;
       hash = (53 * hash) + getWishMaxProgress();
-      hash = (37 * hash) + END_TIME_FIELD_NUMBER;
-      hash = (53 * hash) + getEndTime();
-      hash = (37 * hash) + TEN_COST_ITEM_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getTenCostItemId();
-      hash = (37 * hash) + GACHA_RECORD_URL_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaRecordUrl().hashCode();
-      hash = (37 * hash) + WISH_ITEM_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getWishItemId();
-      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
-      hash = (53 * hash) + getBeginTime();
-      hash = (37 * hash) + GACHA_PROB_URL_OVERSEA_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaProbUrlOversea().hashCode();
-      hash = (37 * hash) + GACHA_TIMES_LIMIT_FIELD_NUMBER;
-      hash = (53 * hash) + getGachaTimesLimit();
-      if (getDisplayUp5ItemListCount() > 0) {
-        hash = (37 * hash) + DISPLAY_UP_5_ITEM_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getDisplayUp5ItemListList().hashCode();
-      }
+      hash = (37 * hash) + IS_NEW_WISH_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsNewWish());
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -1529,60 +1529,60 @@ public final class GachaInfoOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        gachaPreviewPrefabPath_ = "";
+        gachaType_ = 0;
 
-        costItemId_ = 0;
+        scheduleId_ = 0;
 
-        isNewWish_ = false;
+        beginTime_ = 0;
 
-        gachaProbUrl_ = "";
+        endTime_ = 0;
 
-        gachaRecordUrlOversea_ = "";
+        costItemId_ = 0;
 
         costItemNum_ = 0;
 
-        if (gachaUpInfoListBuilder_ == null) {
-          gachaUpInfoList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-        } else {
-          gachaUpInfoListBuilder_.clear();
-        }
-        displayUp4ItemList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        wishProgress_ = 0;
-
-        scheduleId_ = 0;
+        gachaPrefabPath_ = "";
 
-        gachaSortId_ = 0;
+        gachaProbUrl_ = "";
 
-        leftGachaTimes_ = 0;
+        gachaRecordUrl_ = "";
 
-        gachaPrefabPath_ = "";
+        gachaPreviewPrefabPath_ = "";
 
-        titleTextmap_ = "";
+        tenCostItemId_ = 0;
 
         tenCostItemNum_ = 0;
 
-        gachaType_ = 0;
+        leftGachaTimes_ = 0;
 
-        wishMaxProgress_ = 0;
+        gachaTimesLimit_ = 0;
 
-        endTime_ = 0;
+        gachaSortId_ = 0;
 
-        tenCostItemId_ = 0;
+        gachaProbUrlOversea_ = "";
 
-        gachaRecordUrl_ = "";
+        gachaRecordUrlOversea_ = "";
+
+        if (gachaUpInfoListBuilder_ == null) {
+          gachaUpInfoList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          gachaUpInfoListBuilder_.clear();
+        }
+        titleTextmap_ = "";
 
+        displayUp5ItemList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        displayUp4ItemList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000004);
         wishItemId_ = 0;
 
-        beginTime_ = 0;
+        wishProgress_ = 0;
 
-        gachaProbUrlOversea_ = "";
+        wishMaxProgress_ = 0;
 
-        gachaTimesLimit_ = 0;
+        isNewWish_ = false;
 
-        displayUp5ItemList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
 
@@ -1610,12 +1610,23 @@ public final class GachaInfoOuterClass {
       public emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo buildPartial() {
         emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo result = new emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo(this);
         int from_bitField0_ = bitField0_;
-        result.gachaPreviewPrefabPath_ = gachaPreviewPrefabPath_;
+        result.gachaType_ = gachaType_;
+        result.scheduleId_ = scheduleId_;
+        result.beginTime_ = beginTime_;
+        result.endTime_ = endTime_;
         result.costItemId_ = costItemId_;
-        result.isNewWish_ = isNewWish_;
+        result.costItemNum_ = costItemNum_;
+        result.gachaPrefabPath_ = gachaPrefabPath_;
         result.gachaProbUrl_ = gachaProbUrl_;
+        result.gachaRecordUrl_ = gachaRecordUrl_;
+        result.gachaPreviewPrefabPath_ = gachaPreviewPrefabPath_;
+        result.tenCostItemId_ = tenCostItemId_;
+        result.tenCostItemNum_ = tenCostItemNum_;
+        result.leftGachaTimes_ = leftGachaTimes_;
+        result.gachaTimesLimit_ = gachaTimesLimit_;
+        result.gachaSortId_ = gachaSortId_;
+        result.gachaProbUrlOversea_ = gachaProbUrlOversea_;
         result.gachaRecordUrlOversea_ = gachaRecordUrlOversea_;
-        result.costItemNum_ = costItemNum_;
         if (gachaUpInfoListBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             gachaUpInfoList_ = java.util.Collections.unmodifiableList(gachaUpInfoList_);
@@ -1625,32 +1636,21 @@ public final class GachaInfoOuterClass {
         } else {
           result.gachaUpInfoList_ = gachaUpInfoListBuilder_.build();
         }
+        result.titleTextmap_ = titleTextmap_;
         if (((bitField0_ & 0x00000002) != 0)) {
-          displayUp4ItemList_.makeImmutable();
+          displayUp5ItemList_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000002);
         }
-        result.displayUp4ItemList_ = displayUp4ItemList_;
-        result.wishProgress_ = wishProgress_;
-        result.scheduleId_ = scheduleId_;
-        result.gachaSortId_ = gachaSortId_;
-        result.leftGachaTimes_ = leftGachaTimes_;
-        result.gachaPrefabPath_ = gachaPrefabPath_;
-        result.titleTextmap_ = titleTextmap_;
-        result.tenCostItemNum_ = tenCostItemNum_;
-        result.gachaType_ = gachaType_;
-        result.wishMaxProgress_ = wishMaxProgress_;
-        result.endTime_ = endTime_;
-        result.tenCostItemId_ = tenCostItemId_;
-        result.gachaRecordUrl_ = gachaRecordUrl_;
-        result.wishItemId_ = wishItemId_;
-        result.beginTime_ = beginTime_;
-        result.gachaProbUrlOversea_ = gachaProbUrlOversea_;
-        result.gachaTimesLimit_ = gachaTimesLimit_;
+        result.displayUp5ItemList_ = displayUp5ItemList_;
         if (((bitField0_ & 0x00000004) != 0)) {
-          displayUp5ItemList_.makeImmutable();
+          displayUp4ItemList_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000004);
         }
-        result.displayUp5ItemList_ = displayUp5ItemList_;
+        result.displayUp4ItemList_ = displayUp4ItemList_;
+        result.wishItemId_ = wishItemId_;
+        result.wishProgress_ = wishProgress_;
+        result.wishMaxProgress_ = wishMaxProgress_;
+        result.isNewWish_ = isNewWish_;
         onBuilt();
         return result;
       }
@@ -1699,27 +1699,63 @@ public final class GachaInfoOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo other) {
         if (other == emu.grasscutter.net.proto.GachaInfoOuterClass.GachaInfo.getDefaultInstance()) return this;
-        if (!other.getGachaPreviewPrefabPath().isEmpty()) {
-          gachaPreviewPrefabPath_ = other.gachaPreviewPrefabPath_;
-          onChanged();
+        if (other.getGachaType() != 0) {
+          setGachaType(other.getGachaType());
+        }
+        if (other.getScheduleId() != 0) {
+          setScheduleId(other.getScheduleId());
+        }
+        if (other.getBeginTime() != 0) {
+          setBeginTime(other.getBeginTime());
+        }
+        if (other.getEndTime() != 0) {
+          setEndTime(other.getEndTime());
         }
         if (other.getCostItemId() != 0) {
           setCostItemId(other.getCostItemId());
         }
-        if (other.getIsNewWish() != false) {
-          setIsNewWish(other.getIsNewWish());
+        if (other.getCostItemNum() != 0) {
+          setCostItemNum(other.getCostItemNum());
+        }
+        if (!other.getGachaPrefabPath().isEmpty()) {
+          gachaPrefabPath_ = other.gachaPrefabPath_;
+          onChanged();
         }
         if (!other.getGachaProbUrl().isEmpty()) {
           gachaProbUrl_ = other.gachaProbUrl_;
           onChanged();
         }
+        if (!other.getGachaRecordUrl().isEmpty()) {
+          gachaRecordUrl_ = other.gachaRecordUrl_;
+          onChanged();
+        }
+        if (!other.getGachaPreviewPrefabPath().isEmpty()) {
+          gachaPreviewPrefabPath_ = other.gachaPreviewPrefabPath_;
+          onChanged();
+        }
+        if (other.getTenCostItemId() != 0) {
+          setTenCostItemId(other.getTenCostItemId());
+        }
+        if (other.getTenCostItemNum() != 0) {
+          setTenCostItemNum(other.getTenCostItemNum());
+        }
+        if (other.getLeftGachaTimes() != 0) {
+          setLeftGachaTimes(other.getLeftGachaTimes());
+        }
+        if (other.getGachaTimesLimit() != 0) {
+          setGachaTimesLimit(other.getGachaTimesLimit());
+        }
+        if (other.getGachaSortId() != 0) {
+          setGachaSortId(other.getGachaSortId());
+        }
+        if (!other.getGachaProbUrlOversea().isEmpty()) {
+          gachaProbUrlOversea_ = other.gachaProbUrlOversea_;
+          onChanged();
+        }
         if (!other.getGachaRecordUrlOversea().isEmpty()) {
           gachaRecordUrlOversea_ = other.gachaRecordUrlOversea_;
           onChanged();
         }
-        if (other.getCostItemNum() != 0) {
-          setCostItemNum(other.getCostItemNum());
-        }
         if (gachaUpInfoListBuilder_ == null) {
           if (!other.gachaUpInfoList_.isEmpty()) {
             if (gachaUpInfoList_.isEmpty()) {
@@ -1746,77 +1782,41 @@ public final class GachaInfoOuterClass {
             }
           }
         }
+        if (!other.getTitleTextmap().isEmpty()) {
+          titleTextmap_ = other.titleTextmap_;
+          onChanged();
+        }
+        if (!other.displayUp5ItemList_.isEmpty()) {
+          if (displayUp5ItemList_.isEmpty()) {
+            displayUp5ItemList_ = other.displayUp5ItemList_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureDisplayUp5ItemListIsMutable();
+            displayUp5ItemList_.addAll(other.displayUp5ItemList_);
+          }
+          onChanged();
+        }
         if (!other.displayUp4ItemList_.isEmpty()) {
           if (displayUp4ItemList_.isEmpty()) {
             displayUp4ItemList_ = other.displayUp4ItemList_;
-            bitField0_ = (bitField0_ & ~0x00000002);
+            bitField0_ = (bitField0_ & ~0x00000004);
           } else {
             ensureDisplayUp4ItemListIsMutable();
             displayUp4ItemList_.addAll(other.displayUp4ItemList_);
           }
           onChanged();
         }
+        if (other.getWishItemId() != 0) {
+          setWishItemId(other.getWishItemId());
+        }
         if (other.getWishProgress() != 0) {
           setWishProgress(other.getWishProgress());
         }
-        if (other.getScheduleId() != 0) {
-          setScheduleId(other.getScheduleId());
-        }
-        if (other.getGachaSortId() != 0) {
-          setGachaSortId(other.getGachaSortId());
-        }
-        if (other.getLeftGachaTimes() != 0) {
-          setLeftGachaTimes(other.getLeftGachaTimes());
-        }
-        if (!other.getGachaPrefabPath().isEmpty()) {
-          gachaPrefabPath_ = other.gachaPrefabPath_;
-          onChanged();
-        }
-        if (!other.getTitleTextmap().isEmpty()) {
-          titleTextmap_ = other.titleTextmap_;
-          onChanged();
-        }
-        if (other.getTenCostItemNum() != 0) {
-          setTenCostItemNum(other.getTenCostItemNum());
-        }
-        if (other.getGachaType() != 0) {
-          setGachaType(other.getGachaType());
-        }
         if (other.getWishMaxProgress() != 0) {
           setWishMaxProgress(other.getWishMaxProgress());
         }
-        if (other.getEndTime() != 0) {
-          setEndTime(other.getEndTime());
-        }
-        if (other.getTenCostItemId() != 0) {
-          setTenCostItemId(other.getTenCostItemId());
-        }
-        if (!other.getGachaRecordUrl().isEmpty()) {
-          gachaRecordUrl_ = other.gachaRecordUrl_;
-          onChanged();
-        }
-        if (other.getWishItemId() != 0) {
-          setWishItemId(other.getWishItemId());
-        }
-        if (other.getBeginTime() != 0) {
-          setBeginTime(other.getBeginTime());
-        }
-        if (!other.getGachaProbUrlOversea().isEmpty()) {
-          gachaProbUrlOversea_ = other.gachaProbUrlOversea_;
-          onChanged();
-        }
-        if (other.getGachaTimesLimit() != 0) {
-          setGachaTimesLimit(other.getGachaTimesLimit());
-        }
-        if (!other.displayUp5ItemList_.isEmpty()) {
-          if (displayUp5ItemList_.isEmpty()) {
-            displayUp5ItemList_ = other.displayUp5ItemList_;
-            bitField0_ = (bitField0_ & ~0x00000004);
-          } else {
-            ensureDisplayUp5ItemListIsMutable();
-            displayUp5ItemList_.addAll(other.displayUp5ItemList_);
-          }
-          onChanged();
+        if (other.getIsNewWish() != false) {
+          setIsNewWish(other.getIsNewWish());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -1848,78 +1848,126 @@ public final class GachaInfoOuterClass {
       }
       private int bitField0_;
 
-      private java.lang.Object gachaPreviewPrefabPath_ = "";
-      /**
-       * <code>string gacha_preview_prefab_path = 4;</code>
-       * @return The gachaPreviewPrefabPath.
-       */
-      public java.lang.String getGachaPreviewPrefabPath() {
-        java.lang.Object ref = gachaPreviewPrefabPath_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          gachaPreviewPrefabPath_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
+      private int gachaType_ ;
       /**
-       * <code>string gacha_preview_prefab_path = 4;</code>
-       * @return The bytes for gachaPreviewPrefabPath.
+       * <code>uint32 gacha_type = 13;</code>
+       * @return The gachaType.
        */
-      public com.google.protobuf.ByteString
-          getGachaPreviewPrefabPathBytes() {
-        java.lang.Object ref = gachaPreviewPrefabPath_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          gachaPreviewPrefabPath_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
+      @java.lang.Override
+      public int getGachaType() {
+        return gachaType_;
       }
       /**
-       * <code>string gacha_preview_prefab_path = 4;</code>
-       * @param value The gachaPreviewPrefabPath to set.
+       * <code>uint32 gacha_type = 13;</code>
+       * @param value The gachaType to set.
        * @return This builder for chaining.
        */
-      public Builder setGachaPreviewPrefabPath(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        gachaPreviewPrefabPath_ = value;
+      public Builder setGachaType(int value) {
+        
+        gachaType_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>string gacha_preview_prefab_path = 4;</code>
+       * <code>uint32 gacha_type = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder clearGachaPreviewPrefabPath() {
+      public Builder clearGachaType() {
         
-        gachaPreviewPrefabPath_ = getDefaultInstance().getGachaPreviewPrefabPath();
+        gachaType_ = 0;
         onChanged();
         return this;
       }
+
+      private int scheduleId_ ;
       /**
-       * <code>string gacha_preview_prefab_path = 4;</code>
-       * @param value The bytes for gachaPreviewPrefabPath to set.
+       * <code>uint32 schedule_id = 10;</code>
+       * @return The scheduleId.
+       */
+      @java.lang.Override
+      public int getScheduleId() {
+        return scheduleId_;
+      }
+      /**
+       * <code>uint32 schedule_id = 10;</code>
+       * @param value The scheduleId to set.
        * @return This builder for chaining.
        */
-      public Builder setGachaPreviewPrefabPathBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      public Builder setScheduleId(int value) {
         
-        gachaPreviewPrefabPath_ = value;
+        scheduleId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 schedule_id = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearScheduleId() {
+        
+        scheduleId_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int beginTime_ ;
+      /**
+       * <code>uint32 begin_time = 1;</code>
+       * @return The beginTime.
+       */
+      @java.lang.Override
+      public int getBeginTime() {
+        return beginTime_;
+      }
+      /**
+       * <code>uint32 begin_time = 1;</code>
+       * @param value The beginTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setBeginTime(int value) {
+        
+        beginTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 begin_time = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearBeginTime() {
+        
+        beginTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int endTime_ ;
+      /**
+       * <code>uint32 end_time = 14;</code>
+       * @return The endTime.
+       */
+      @java.lang.Override
+      public int getEndTime() {
+        return endTime_;
+      }
+      /**
+       * <code>uint32 end_time = 14;</code>
+       * @param value The endTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEndTime(int value) {
+        
+        endTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 end_time = 14;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearEndTime() {
+        
+        endTime_ = 0;
         onChanged();
         return this;
       }
@@ -1955,33 +2003,109 @@ public final class GachaInfoOuterClass {
         return this;
       }
 
-      private boolean isNewWish_ ;
+      private int costItemNum_ ;
       /**
-       * <code>bool is_new_wish = 733;</code>
-       * @return The isNewWish.
+       * <code>uint32 cost_item_num = 3;</code>
+       * @return The costItemNum.
        */
       @java.lang.Override
-      public boolean getIsNewWish() {
-        return isNewWish_;
+      public int getCostItemNum() {
+        return costItemNum_;
       }
       /**
-       * <code>bool is_new_wish = 733;</code>
-       * @param value The isNewWish to set.
+       * <code>uint32 cost_item_num = 3;</code>
+       * @param value The costItemNum to set.
        * @return This builder for chaining.
        */
-      public Builder setIsNewWish(boolean value) {
+      public Builder setCostItemNum(int value) {
         
-        isNewWish_ = value;
+        costItemNum_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_new_wish = 733;</code>
+       * <code>uint32 cost_item_num = 3;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsNewWish() {
+      public Builder clearCostItemNum() {
         
-        isNewWish_ = false;
+        costItemNum_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object gachaPrefabPath_ = "";
+      /**
+       * <code>string gacha_prefab_path = 15;</code>
+       * @return The gachaPrefabPath.
+       */
+      public java.lang.String getGachaPrefabPath() {
+        java.lang.Object ref = gachaPrefabPath_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          gachaPrefabPath_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string gacha_prefab_path = 15;</code>
+       * @return The bytes for gachaPrefabPath.
+       */
+      public com.google.protobuf.ByteString
+          getGachaPrefabPathBytes() {
+        java.lang.Object ref = gachaPrefabPath_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          gachaPrefabPath_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string gacha_prefab_path = 15;</code>
+       * @param value The gachaPrefabPath to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGachaPrefabPath(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        gachaPrefabPath_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string gacha_prefab_path = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearGachaPrefabPath() {
+        
+        gachaPrefabPath_ = getDefaultInstance().getGachaPrefabPath();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string gacha_prefab_path = 15;</code>
+       * @param value The bytes for gachaPrefabPath to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGachaPrefabPathBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        gachaPrefabPath_ = value;
         onChanged();
         return this;
       }
@@ -2062,630 +2186,703 @@ public final class GachaInfoOuterClass {
         return this;
       }
 
-      private java.lang.Object gachaRecordUrlOversea_ = "";
+      private java.lang.Object gachaRecordUrl_ = "";
       /**
-       * <code>string gacha_record_url_oversea = 1854;</code>
-       * @return The gachaRecordUrlOversea.
+       * <code>string gacha_record_url = 12;</code>
+       * @return The gachaRecordUrl.
        */
-      public java.lang.String getGachaRecordUrlOversea() {
-        java.lang.Object ref = gachaRecordUrlOversea_;
+      public java.lang.String getGachaRecordUrl() {
+        java.lang.Object ref = gachaRecordUrl_;
         if (!(ref instanceof java.lang.String)) {
           com.google.protobuf.ByteString bs =
               (com.google.protobuf.ByteString) ref;
           java.lang.String s = bs.toStringUtf8();
-          gachaRecordUrlOversea_ = s;
+          gachaRecordUrl_ = s;
           return s;
         } else {
           return (java.lang.String) ref;
         }
       }
       /**
-       * <code>string gacha_record_url_oversea = 1854;</code>
-       * @return The bytes for gachaRecordUrlOversea.
+       * <code>string gacha_record_url = 12;</code>
+       * @return The bytes for gachaRecordUrl.
        */
       public com.google.protobuf.ByteString
-          getGachaRecordUrlOverseaBytes() {
-        java.lang.Object ref = gachaRecordUrlOversea_;
+          getGachaRecordUrlBytes() {
+        java.lang.Object ref = gachaRecordUrl_;
         if (ref instanceof String) {
           com.google.protobuf.ByteString b = 
               com.google.protobuf.ByteString.copyFromUtf8(
                   (java.lang.String) ref);
-          gachaRecordUrlOversea_ = b;
+          gachaRecordUrl_ = b;
           return b;
         } else {
           return (com.google.protobuf.ByteString) ref;
         }
       }
       /**
-       * <code>string gacha_record_url_oversea = 1854;</code>
-       * @param value The gachaRecordUrlOversea to set.
+       * <code>string gacha_record_url = 12;</code>
+       * @param value The gachaRecordUrl to set.
        * @return This builder for chaining.
        */
-      public Builder setGachaRecordUrlOversea(
+      public Builder setGachaRecordUrl(
           java.lang.String value) {
         if (value == null) {
     throw new NullPointerException();
   }
   
-        gachaRecordUrlOversea_ = value;
+        gachaRecordUrl_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>string gacha_record_url_oversea = 1854;</code>
+       * <code>string gacha_record_url = 12;</code>
        * @return This builder for chaining.
        */
-      public Builder clearGachaRecordUrlOversea() {
+      public Builder clearGachaRecordUrl() {
         
-        gachaRecordUrlOversea_ = getDefaultInstance().getGachaRecordUrlOversea();
+        gachaRecordUrl_ = getDefaultInstance().getGachaRecordUrl();
         onChanged();
         return this;
       }
       /**
-       * <code>string gacha_record_url_oversea = 1854;</code>
-       * @param value The bytes for gachaRecordUrlOversea to set.
+       * <code>string gacha_record_url = 12;</code>
+       * @param value The bytes for gachaRecordUrl to set.
        * @return This builder for chaining.
        */
-      public Builder setGachaRecordUrlOverseaBytes(
+      public Builder setGachaRecordUrlBytes(
           com.google.protobuf.ByteString value) {
         if (value == null) {
     throw new NullPointerException();
   }
   checkByteStringIsUtf8(value);
         
-        gachaRecordUrlOversea_ = value;
+        gachaRecordUrl_ = value;
         onChanged();
         return this;
       }
 
-      private int costItemNum_ ;
-      /**
-       * <code>uint32 cost_item_num = 3;</code>
-       * @return The costItemNum.
-       */
-      @java.lang.Override
-      public int getCostItemNum() {
-        return costItemNum_;
-      }
+      private java.lang.Object gachaPreviewPrefabPath_ = "";
       /**
-       * <code>uint32 cost_item_num = 3;</code>
-       * @param value The costItemNum to set.
-       * @return This builder for chaining.
+       * <code>string gacha_preview_prefab_path = 4;</code>
+       * @return The gachaPreviewPrefabPath.
        */
-      public Builder setCostItemNum(int value) {
-        
-        costItemNum_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 cost_item_num = 3;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearCostItemNum() {
-        
-        costItemNum_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> gachaUpInfoList_ =
-        java.util.Collections.emptyList();
-      private void ensureGachaUpInfoListIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
-          gachaUpInfoList_ = new java.util.ArrayList<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo>(gachaUpInfoList_);
-          bitField0_ |= 0x00000001;
-         }
-      }
-
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> gachaUpInfoListBuilder_;
-
-      /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
-       */
-      public java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> getGachaUpInfoListList() {
-        if (gachaUpInfoListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(gachaUpInfoList_);
+      public java.lang.String getGachaPreviewPrefabPath() {
+        java.lang.Object ref = gachaPreviewPrefabPath_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          gachaPreviewPrefabPath_ = s;
+          return s;
         } else {
-          return gachaUpInfoListBuilder_.getMessageList();
+          return (java.lang.String) ref;
         }
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>string gacha_preview_prefab_path = 4;</code>
+       * @return The bytes for gachaPreviewPrefabPath.
        */
-      public int getGachaUpInfoListCount() {
-        if (gachaUpInfoListBuilder_ == null) {
-          return gachaUpInfoList_.size();
+      public com.google.protobuf.ByteString
+          getGachaPreviewPrefabPathBytes() {
+        java.lang.Object ref = gachaPreviewPrefabPath_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          gachaPreviewPrefabPath_ = b;
+          return b;
         } else {
-          return gachaUpInfoListBuilder_.getCount();
+          return (com.google.protobuf.ByteString) ref;
         }
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>string gacha_preview_prefab_path = 4;</code>
+       * @param value The gachaPreviewPrefabPath to set.
+       * @return This builder for chaining.
        */
-      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo getGachaUpInfoList(int index) {
-        if (gachaUpInfoListBuilder_ == null) {
-          return gachaUpInfoList_.get(index);
-        } else {
-          return gachaUpInfoListBuilder_.getMessage(index);
-        }
+      public Builder setGachaPreviewPrefabPath(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        gachaPreviewPrefabPath_ = value;
+        onChanged();
+        return this;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>string gacha_preview_prefab_path = 4;</code>
+       * @return This builder for chaining.
        */
-      public Builder setGachaUpInfoList(
-          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo value) {
-        if (gachaUpInfoListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.set(index, value);
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.setMessage(index, value);
-        }
+      public Builder clearGachaPreviewPrefabPath() {
+        
+        gachaPreviewPrefabPath_ = getDefaultInstance().getGachaPreviewPrefabPath();
+        onChanged();
         return this;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>string gacha_preview_prefab_path = 4;</code>
+       * @param value The bytes for gachaPreviewPrefabPath to set.
+       * @return This builder for chaining.
        */
-      public Builder setGachaUpInfoList(
-          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder builderForValue) {
-        if (gachaUpInfoListBuilder_ == null) {
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.setMessage(index, builderForValue.build());
-        }
+      public Builder setGachaPreviewPrefabPathBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        gachaPreviewPrefabPath_ = value;
+        onChanged();
         return this;
       }
+
+      private int tenCostItemId_ ;
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 ten_cost_item_id = 2;</code>
+       * @return The tenCostItemId.
        */
-      public Builder addGachaUpInfoList(emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo value) {
-        if (gachaUpInfoListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.add(value);
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.addMessage(value);
-        }
-        return this;
+      @java.lang.Override
+      public int getTenCostItemId() {
+        return tenCostItemId_;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 ten_cost_item_id = 2;</code>
+       * @param value The tenCostItemId to set.
+       * @return This builder for chaining.
        */
-      public Builder addGachaUpInfoList(
-          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo value) {
-        if (gachaUpInfoListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.add(index, value);
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.addMessage(index, value);
-        }
+      public Builder setTenCostItemId(int value) {
+        
+        tenCostItemId_ = value;
+        onChanged();
         return this;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 ten_cost_item_id = 2;</code>
+       * @return This builder for chaining.
        */
-      public Builder addGachaUpInfoList(
-          emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder builderForValue) {
-        if (gachaUpInfoListBuilder_ == null) {
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.add(builderForValue.build());
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.addMessage(builderForValue.build());
-        }
+      public Builder clearTenCostItemId() {
+        
+        tenCostItemId_ = 0;
+        onChanged();
         return this;
       }
+
+      private int tenCostItemNum_ ;
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 ten_cost_item_num = 6;</code>
+       * @return The tenCostItemNum.
        */
-      public Builder addGachaUpInfoList(
-          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder builderForValue) {
-        if (gachaUpInfoListBuilder_ == null) {
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
+      @java.lang.Override
+      public int getTenCostItemNum() {
+        return tenCostItemNum_;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 ten_cost_item_num = 6;</code>
+       * @param value The tenCostItemNum to set.
+       * @return This builder for chaining.
        */
-      public Builder addAllGachaUpInfoList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> values) {
-        if (gachaUpInfoListBuilder_ == null) {
-          ensureGachaUpInfoListIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, gachaUpInfoList_);
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.addAllMessages(values);
-        }
+      public Builder setTenCostItemNum(int value) {
+        
+        tenCostItemNum_ = value;
+        onChanged();
         return this;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 ten_cost_item_num = 6;</code>
+       * @return This builder for chaining.
        */
-      public Builder clearGachaUpInfoList() {
-        if (gachaUpInfoListBuilder_ == null) {
-          gachaUpInfoList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.clear();
-        }
+      public Builder clearTenCostItemNum() {
+        
+        tenCostItemNum_ = 0;
+        onChanged();
         return this;
       }
+
+      private int leftGachaTimes_ ;
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 left_gacha_times = 5;</code>
+       * @return The leftGachaTimes.
        */
-      public Builder removeGachaUpInfoList(int index) {
-        if (gachaUpInfoListBuilder_ == null) {
-          ensureGachaUpInfoListIsMutable();
-          gachaUpInfoList_.remove(index);
-          onChanged();
-        } else {
-          gachaUpInfoListBuilder_.remove(index);
-        }
-        return this;
+      @java.lang.Override
+      public int getLeftGachaTimes() {
+        return leftGachaTimes_;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 left_gacha_times = 5;</code>
+       * @param value The leftGachaTimes to set.
+       * @return This builder for chaining.
        */
-      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder getGachaUpInfoListBuilder(
-          int index) {
-        return getGachaUpInfoListFieldBuilder().getBuilder(index);
+      public Builder setLeftGachaTimes(int value) {
+        
+        leftGachaTimes_ = value;
+        onChanged();
+        return this;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 left_gacha_times = 5;</code>
+       * @return This builder for chaining.
        */
-      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder getGachaUpInfoListOrBuilder(
-          int index) {
-        if (gachaUpInfoListBuilder_ == null) {
-          return gachaUpInfoList_.get(index);  } else {
-          return gachaUpInfoListBuilder_.getMessageOrBuilder(index);
-        }
+      public Builder clearLeftGachaTimes() {
+        
+        leftGachaTimes_ = 0;
+        onChanged();
+        return this;
       }
+
+      private int gachaTimesLimit_ ;
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 gacha_times_limit = 11;</code>
+       * @return The gachaTimesLimit.
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
-           getGachaUpInfoListOrBuilderList() {
-        if (gachaUpInfoListBuilder_ != null) {
-          return gachaUpInfoListBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(gachaUpInfoList_);
-        }
+      @java.lang.Override
+      public int getGachaTimesLimit() {
+        return gachaTimesLimit_;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 gacha_times_limit = 11;</code>
+       * @param value The gachaTimesLimit to set.
+       * @return This builder for chaining.
        */
-      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder addGachaUpInfoListBuilder() {
-        return getGachaUpInfoListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.getDefaultInstance());
+      public Builder setGachaTimesLimit(int value) {
+        
+        gachaTimesLimit_ = value;
+        onChanged();
+        return this;
       }
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 gacha_times_limit = 11;</code>
+       * @return This builder for chaining.
        */
-      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder addGachaUpInfoListBuilder(
-          int index) {
-        return getGachaUpInfoListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.getDefaultInstance());
+      public Builder clearGachaTimesLimit() {
+        
+        gachaTimesLimit_ = 0;
+        onChanged();
+        return this;
       }
+
+      private int gachaSortId_ ;
       /**
-       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       * <code>uint32 gacha_sort_id = 7;</code>
+       * @return The gachaSortId.
        */
-      public java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder> 
-           getGachaUpInfoListBuilderList() {
-        return getGachaUpInfoListFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
-          getGachaUpInfoListFieldBuilder() {
-        if (gachaUpInfoListBuilder_ == null) {
-          gachaUpInfoListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder>(
-                  gachaUpInfoList_,
-                  ((bitField0_ & 0x00000001) != 0),
-                  getParentForChildren(),
-                  isClean());
-          gachaUpInfoList_ = null;
-        }
-        return gachaUpInfoListBuilder_;
+      @java.lang.Override
+      public int getGachaSortId() {
+        return gachaSortId_;
       }
-
-      private com.google.protobuf.Internal.IntList displayUp4ItemList_ = emptyIntList();
-      private void ensureDisplayUp4ItemListIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
-          displayUp4ItemList_ = mutableCopy(displayUp4ItemList_);
-          bitField0_ |= 0x00000002;
-         }
+      /**
+       * <code>uint32 gacha_sort_id = 7;</code>
+       * @param value The gachaSortId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGachaSortId(int value) {
+        
+        gachaSortId_ = value;
+        onChanged();
+        return this;
       }
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-       * @return A list containing the displayUp4ItemList.
+       * <code>uint32 gacha_sort_id = 7;</code>
+       * @return This builder for chaining.
        */
-      public java.util.List<java.lang.Integer>
-          getDisplayUp4ItemListList() {
-        return ((bitField0_ & 0x00000002) != 0) ?
-                 java.util.Collections.unmodifiableList(displayUp4ItemList_) : displayUp4ItemList_;
+      public Builder clearGachaSortId() {
+        
+        gachaSortId_ = 0;
+        onChanged();
+        return this;
       }
+
+      private java.lang.Object gachaProbUrlOversea_ = "";
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-       * @return The count of displayUp4ItemList.
+       * <code>string gacha_prob_url_oversea = 1481;</code>
+       * @return The gachaProbUrlOversea.
        */
-      public int getDisplayUp4ItemListCount() {
-        return displayUp4ItemList_.size();
+      public java.lang.String getGachaProbUrlOversea() {
+        java.lang.Object ref = gachaProbUrlOversea_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          gachaProbUrlOversea_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
       }
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-       * @param index The index of the element to return.
-       * @return The displayUp4ItemList at the given index.
+       * <code>string gacha_prob_url_oversea = 1481;</code>
+       * @return The bytes for gachaProbUrlOversea.
        */
-      public int getDisplayUp4ItemList(int index) {
-        return displayUp4ItemList_.getInt(index);
+      public com.google.protobuf.ByteString
+          getGachaProbUrlOverseaBytes() {
+        java.lang.Object ref = gachaProbUrlOversea_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          gachaProbUrlOversea_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
       }
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-       * @param index The index to set the value at.
-       * @param value The displayUp4ItemList to set.
+       * <code>string gacha_prob_url_oversea = 1481;</code>
+       * @param value The gachaProbUrlOversea to set.
        * @return This builder for chaining.
        */
-      public Builder setDisplayUp4ItemList(
-          int index, int value) {
-        ensureDisplayUp4ItemListIsMutable();
-        displayUp4ItemList_.setInt(index, value);
+      public Builder setGachaProbUrlOversea(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        gachaProbUrlOversea_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-       * @param value The displayUp4ItemList to add.
+       * <code>string gacha_prob_url_oversea = 1481;</code>
        * @return This builder for chaining.
        */
-      public Builder addDisplayUp4ItemList(int value) {
-        ensureDisplayUp4ItemListIsMutable();
-        displayUp4ItemList_.addInt(value);
+      public Builder clearGachaProbUrlOversea() {
+        
+        gachaProbUrlOversea_ = getDefaultInstance().getGachaProbUrlOversea();
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
-       * @param values The displayUp4ItemList to add.
+       * <code>string gacha_prob_url_oversea = 1481;</code>
+       * @param value The bytes for gachaProbUrlOversea to set.
        * @return This builder for chaining.
        */
-      public Builder addAllDisplayUp4ItemList(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureDisplayUp4ItemListIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, displayUp4ItemList_);
+      public Builder setGachaProbUrlOverseaBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        gachaProbUrlOversea_ = value;
         onChanged();
         return this;
       }
+
+      private java.lang.Object gachaRecordUrlOversea_ = "";
+      /**
+       * <code>string gacha_record_url_oversea = 1854;</code>
+       * @return The gachaRecordUrlOversea.
+       */
+      public java.lang.String getGachaRecordUrlOversea() {
+        java.lang.Object ref = gachaRecordUrlOversea_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          gachaRecordUrlOversea_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string gacha_record_url_oversea = 1854;</code>
+       * @return The bytes for gachaRecordUrlOversea.
+       */
+      public com.google.protobuf.ByteString
+          getGachaRecordUrlOverseaBytes() {
+        java.lang.Object ref = gachaRecordUrlOversea_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          gachaRecordUrlOversea_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
       /**
-       * <code>repeated uint32 display_up_4_item_list = 1875;</code>
+       * <code>string gacha_record_url_oversea = 1854;</code>
+       * @param value The gachaRecordUrlOversea to set.
        * @return This builder for chaining.
        */
-      public Builder clearDisplayUp4ItemList() {
-        displayUp4ItemList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000002);
+      public Builder setGachaRecordUrlOversea(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        gachaRecordUrlOversea_ = value;
         onChanged();
         return this;
       }
-
-      private int wishProgress_ ;
-      /**
-       * <code>uint32 wish_progress = 1819;</code>
-       * @return The wishProgress.
-       */
-      @java.lang.Override
-      public int getWishProgress() {
-        return wishProgress_;
-      }
       /**
-       * <code>uint32 wish_progress = 1819;</code>
-       * @param value The wishProgress to set.
+       * <code>string gacha_record_url_oversea = 1854;</code>
        * @return This builder for chaining.
        */
-      public Builder setWishProgress(int value) {
+      public Builder clearGachaRecordUrlOversea() {
         
-        wishProgress_ = value;
+        gachaRecordUrlOversea_ = getDefaultInstance().getGachaRecordUrlOversea();
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 wish_progress = 1819;</code>
+       * <code>string gacha_record_url_oversea = 1854;</code>
+       * @param value The bytes for gachaRecordUrlOversea to set.
        * @return This builder for chaining.
        */
-      public Builder clearWishProgress() {
+      public Builder setGachaRecordUrlOverseaBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
         
-        wishProgress_ = 0;
+        gachaRecordUrlOversea_ = value;
         onChanged();
         return this;
       }
 
-      private int scheduleId_ ;
+      private java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> gachaUpInfoList_ =
+        java.util.Collections.emptyList();
+      private void ensureGachaUpInfoListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          gachaUpInfoList_ = new java.util.ArrayList<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo>(gachaUpInfoList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> gachaUpInfoListBuilder_;
+
       /**
-       * <code>uint32 schedule_id = 10;</code>
-       * @return The scheduleId.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      @java.lang.Override
-      public int getScheduleId() {
-        return scheduleId_;
+      public java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> getGachaUpInfoListList() {
+        if (gachaUpInfoListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(gachaUpInfoList_);
+        } else {
+          return gachaUpInfoListBuilder_.getMessageList();
+        }
       }
       /**
-       * <code>uint32 schedule_id = 10;</code>
-       * @param value The scheduleId to set.
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder setScheduleId(int value) {
-        
-        scheduleId_ = value;
-        onChanged();
+      public int getGachaUpInfoListCount() {
+        if (gachaUpInfoListBuilder_ == null) {
+          return gachaUpInfoList_.size();
+        } else {
+          return gachaUpInfoListBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       */
+      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo getGachaUpInfoList(int index) {
+        if (gachaUpInfoListBuilder_ == null) {
+          return gachaUpInfoList_.get(index);
+        } else {
+          return gachaUpInfoListBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       */
+      public Builder setGachaUpInfoList(
+          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo value) {
+        if (gachaUpInfoListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.set(index, value);
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.setMessage(index, value);
+        }
         return this;
       }
       /**
-       * <code>uint32 schedule_id = 10;</code>
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder clearScheduleId() {
-        
-        scheduleId_ = 0;
-        onChanged();
+      public Builder setGachaUpInfoList(
+          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder builderForValue) {
+        if (gachaUpInfoListBuilder_ == null) {
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.setMessage(index, builderForValue.build());
+        }
         return this;
       }
-
-      private int gachaSortId_ ;
       /**
-       * <code>uint32 gacha_sort_id = 7;</code>
-       * @return The gachaSortId.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      @java.lang.Override
-      public int getGachaSortId() {
-        return gachaSortId_;
+      public Builder addGachaUpInfoList(emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo value) {
+        if (gachaUpInfoListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.add(value);
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.addMessage(value);
+        }
+        return this;
       }
       /**
-       * <code>uint32 gacha_sort_id = 7;</code>
-       * @param value The gachaSortId to set.
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder setGachaSortId(int value) {
-        
-        gachaSortId_ = value;
-        onChanged();
+      public Builder addGachaUpInfoList(
+          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo value) {
+        if (gachaUpInfoListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.add(index, value);
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.addMessage(index, value);
+        }
         return this;
       }
       /**
-       * <code>uint32 gacha_sort_id = 7;</code>
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder clearGachaSortId() {
-        
-        gachaSortId_ = 0;
-        onChanged();
+      public Builder addGachaUpInfoList(
+          emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder builderForValue) {
+        if (gachaUpInfoListBuilder_ == null) {
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.addMessage(builderForValue.build());
+        }
         return this;
       }
-
-      private int leftGachaTimes_ ;
       /**
-       * <code>uint32 left_gacha_times = 5;</code>
-       * @return The leftGachaTimes.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      @java.lang.Override
-      public int getLeftGachaTimes() {
-        return leftGachaTimes_;
+      public Builder addGachaUpInfoList(
+          int index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder builderForValue) {
+        if (gachaUpInfoListBuilder_ == null) {
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
       }
       /**
-       * <code>uint32 left_gacha_times = 5;</code>
-       * @param value The leftGachaTimes to set.
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder setLeftGachaTimes(int value) {
-        
-        leftGachaTimes_ = value;
-        onChanged();
+      public Builder addAllGachaUpInfoList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo> values) {
+        if (gachaUpInfoListBuilder_ == null) {
+          ensureGachaUpInfoListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, gachaUpInfoList_);
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.addAllMessages(values);
+        }
         return this;
       }
       /**
-       * <code>uint32 left_gacha_times = 5;</code>
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder clearLeftGachaTimes() {
-        
-        leftGachaTimes_ = 0;
-        onChanged();
+      public Builder clearGachaUpInfoList() {
+        if (gachaUpInfoListBuilder_ == null) {
+          gachaUpInfoList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          gachaUpInfoListBuilder_.clear();
+        }
         return this;
       }
-
-      private java.lang.Object gachaPrefabPath_ = "";
       /**
-       * <code>string gacha_prefab_path = 15;</code>
-       * @return The gachaPrefabPath.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public java.lang.String getGachaPrefabPath() {
-        java.lang.Object ref = gachaPrefabPath_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          gachaPrefabPath_ = s;
-          return s;
+      public Builder removeGachaUpInfoList(int index) {
+        if (gachaUpInfoListBuilder_ == null) {
+          ensureGachaUpInfoListIsMutable();
+          gachaUpInfoList_.remove(index);
+          onChanged();
         } else {
-          return (java.lang.String) ref;
+          gachaUpInfoListBuilder_.remove(index);
         }
+        return this;
       }
       /**
-       * <code>string gacha_prefab_path = 15;</code>
-       * @return The bytes for gachaPrefabPath.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       */
+      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder getGachaUpInfoListBuilder(
+          int index) {
+        return getGachaUpInfoListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
+       */
+      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder getGachaUpInfoListOrBuilder(
+          int index) {
+        if (gachaUpInfoListBuilder_ == null) {
+          return gachaUpInfoList_.get(index);  } else {
+          return gachaUpInfoListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public com.google.protobuf.ByteString
-          getGachaPrefabPathBytes() {
-        java.lang.Object ref = gachaPrefabPath_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          gachaPrefabPath_ = b;
-          return b;
+      public java.util.List<? extends emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
+           getGachaUpInfoListOrBuilderList() {
+        if (gachaUpInfoListBuilder_ != null) {
+          return gachaUpInfoListBuilder_.getMessageOrBuilderList();
         } else {
-          return (com.google.protobuf.ByteString) ref;
+          return java.util.Collections.unmodifiableList(gachaUpInfoList_);
         }
       }
       /**
-       * <code>string gacha_prefab_path = 15;</code>
-       * @param value The gachaPrefabPath to set.
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder setGachaPrefabPath(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        gachaPrefabPath_ = value;
-        onChanged();
-        return this;
+      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder addGachaUpInfoListBuilder() {
+        return getGachaUpInfoListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.getDefaultInstance());
       }
       /**
-       * <code>string gacha_prefab_path = 15;</code>
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder clearGachaPrefabPath() {
-        
-        gachaPrefabPath_ = getDefaultInstance().getGachaPrefabPath();
-        onChanged();
-        return this;
+      public emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder addGachaUpInfoListBuilder(
+          int index) {
+        return getGachaUpInfoListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.getDefaultInstance());
       }
       /**
-       * <code>string gacha_prefab_path = 15;</code>
-       * @param value The bytes for gachaPrefabPath to set.
-       * @return This builder for chaining.
+       * <code>repeated .GachaUpInfo gacha_up_info_list = 1233;</code>
        */
-      public Builder setGachaPrefabPathBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        gachaPrefabPath_ = value;
-        onChanged();
-        return this;
+      public java.util.List<emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder> 
+           getGachaUpInfoListBuilderList() {
+        return getGachaUpInfoListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder> 
+          getGachaUpInfoListFieldBuilder() {
+        if (gachaUpInfoListBuilder_ == null) {
+          gachaUpInfoListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfo.Builder, emu.grasscutter.net.proto.GachaUpInfoOuterClass.GachaUpInfoOrBuilder>(
+                  gachaUpInfoList_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          gachaUpInfoList_ = null;
+        }
+        return gachaUpInfoListBuilder_;
       }
 
       private java.lang.Object titleTextmap_ = "";
@@ -2764,233 +2961,160 @@ public final class GachaInfoOuterClass {
         return this;
       }
 
-      private int tenCostItemNum_ ;
-      /**
-       * <code>uint32 ten_cost_item_num = 6;</code>
-       * @return The tenCostItemNum.
-       */
-      @java.lang.Override
-      public int getTenCostItemNum() {
-        return tenCostItemNum_;
-      }
-      /**
-       * <code>uint32 ten_cost_item_num = 6;</code>
-       * @param value The tenCostItemNum to set.
-       * @return This builder for chaining.
-       */
-      public Builder setTenCostItemNum(int value) {
-        
-        tenCostItemNum_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 ten_cost_item_num = 6;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearTenCostItemNum() {
-        
-        tenCostItemNum_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private int gachaType_ ;
-      /**
-       * <code>uint32 gacha_type = 13;</code>
-       * @return The gachaType.
-       */
-      @java.lang.Override
-      public int getGachaType() {
-        return gachaType_;
+      private com.google.protobuf.Internal.IntList displayUp5ItemList_ = emptyIntList();
+      private void ensureDisplayUp5ItemListIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          displayUp5ItemList_ = mutableCopy(displayUp5ItemList_);
+          bitField0_ |= 0x00000002;
+         }
       }
       /**
-       * <code>uint32 gacha_type = 13;</code>
-       * @param value The gachaType to set.
-       * @return This builder for chaining.
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
+       * @return A list containing the displayUp5ItemList.
        */
-      public Builder setGachaType(int value) {
-        
-        gachaType_ = value;
-        onChanged();
-        return this;
+      public java.util.List<java.lang.Integer>
+          getDisplayUp5ItemListList() {
+        return ((bitField0_ & 0x00000002) != 0) ?
+                 java.util.Collections.unmodifiableList(displayUp5ItemList_) : displayUp5ItemList_;
       }
       /**
-       * <code>uint32 gacha_type = 13;</code>
-       * @return This builder for chaining.
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
+       * @return The count of displayUp5ItemList.
        */
-      public Builder clearGachaType() {
-        
-        gachaType_ = 0;
-        onChanged();
-        return this;
+      public int getDisplayUp5ItemListCount() {
+        return displayUp5ItemList_.size();
       }
-
-      private int wishMaxProgress_ ;
       /**
-       * <code>uint32 wish_max_progress = 1222;</code>
-       * @return The wishMaxProgress.
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
+       * @param index The index of the element to return.
+       * @return The displayUp5ItemList at the given index.
        */
-      @java.lang.Override
-      public int getWishMaxProgress() {
-        return wishMaxProgress_;
+      public int getDisplayUp5ItemList(int index) {
+        return displayUp5ItemList_.getInt(index);
       }
       /**
-       * <code>uint32 wish_max_progress = 1222;</code>
-       * @param value The wishMaxProgress to set.
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
+       * @param index The index to set the value at.
+       * @param value The displayUp5ItemList to set.
        * @return This builder for chaining.
        */
-      public Builder setWishMaxProgress(int value) {
-        
-        wishMaxProgress_ = value;
+      public Builder setDisplayUp5ItemList(
+          int index, int value) {
+        ensureDisplayUp5ItemListIsMutable();
+        displayUp5ItemList_.setInt(index, value);
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 wish_max_progress = 1222;</code>
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
+       * @param value The displayUp5ItemList to add.
        * @return This builder for chaining.
        */
-      public Builder clearWishMaxProgress() {
-        
-        wishMaxProgress_ = 0;
+      public Builder addDisplayUp5ItemList(int value) {
+        ensureDisplayUp5ItemListIsMutable();
+        displayUp5ItemList_.addInt(value);
         onChanged();
         return this;
       }
-
-      private int endTime_ ;
-      /**
-       * <code>uint32 end_time = 14;</code>
-       * @return The endTime.
-       */
-      @java.lang.Override
-      public int getEndTime() {
-        return endTime_;
-      }
       /**
-       * <code>uint32 end_time = 14;</code>
-       * @param value The endTime to set.
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
+       * @param values The displayUp5ItemList to add.
        * @return This builder for chaining.
        */
-      public Builder setEndTime(int value) {
-        
-        endTime_ = value;
+      public Builder addAllDisplayUp5ItemList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureDisplayUp5ItemListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, displayUp5ItemList_);
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 end_time = 14;</code>
+       * <code>repeated uint32 display_up5_item_list = 2006;</code>
        * @return This builder for chaining.
        */
-      public Builder clearEndTime() {
-        
-        endTime_ = 0;
+      public Builder clearDisplayUp5ItemList() {
+        displayUp5ItemList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
         return this;
       }
 
-      private int tenCostItemId_ ;
-      /**
-       * <code>uint32 ten_cost_item_id = 2;</code>
-       * @return The tenCostItemId.
-       */
-      @java.lang.Override
-      public int getTenCostItemId() {
-        return tenCostItemId_;
+      private com.google.protobuf.Internal.IntList displayUp4ItemList_ = emptyIntList();
+      private void ensureDisplayUp4ItemListIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          displayUp4ItemList_ = mutableCopy(displayUp4ItemList_);
+          bitField0_ |= 0x00000004;
+         }
       }
       /**
-       * <code>uint32 ten_cost_item_id = 2;</code>
-       * @param value The tenCostItemId to set.
-       * @return This builder for chaining.
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
+       * @return A list containing the displayUp4ItemList.
        */
-      public Builder setTenCostItemId(int value) {
-        
-        tenCostItemId_ = value;
-        onChanged();
-        return this;
+      public java.util.List<java.lang.Integer>
+          getDisplayUp4ItemListList() {
+        return ((bitField0_ & 0x00000004) != 0) ?
+                 java.util.Collections.unmodifiableList(displayUp4ItemList_) : displayUp4ItemList_;
       }
       /**
-       * <code>uint32 ten_cost_item_id = 2;</code>
-       * @return This builder for chaining.
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
+       * @return The count of displayUp4ItemList.
        */
-      public Builder clearTenCostItemId() {
-        
-        tenCostItemId_ = 0;
-        onChanged();
-        return this;
+      public int getDisplayUp4ItemListCount() {
+        return displayUp4ItemList_.size();
       }
-
-      private java.lang.Object gachaRecordUrl_ = "";
-      /**
-       * <code>string gacha_record_url = 12;</code>
-       * @return The gachaRecordUrl.
-       */
-      public java.lang.String getGachaRecordUrl() {
-        java.lang.Object ref = gachaRecordUrl_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          gachaRecordUrl_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
+      /**
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
+       * @param index The index of the element to return.
+       * @return The displayUp4ItemList at the given index.
+       */
+      public int getDisplayUp4ItemList(int index) {
+        return displayUp4ItemList_.getInt(index);
       }
       /**
-       * <code>string gacha_record_url = 12;</code>
-       * @return The bytes for gachaRecordUrl.
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
+       * @param index The index to set the value at.
+       * @param value The displayUp4ItemList to set.
+       * @return This builder for chaining.
        */
-      public com.google.protobuf.ByteString
-          getGachaRecordUrlBytes() {
-        java.lang.Object ref = gachaRecordUrl_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          gachaRecordUrl_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
+      public Builder setDisplayUp4ItemList(
+          int index, int value) {
+        ensureDisplayUp4ItemListIsMutable();
+        displayUp4ItemList_.setInt(index, value);
+        onChanged();
+        return this;
       }
       /**
-       * <code>string gacha_record_url = 12;</code>
-       * @param value The gachaRecordUrl to set.
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
+       * @param value The displayUp4ItemList to add.
        * @return This builder for chaining.
        */
-      public Builder setGachaRecordUrl(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        gachaRecordUrl_ = value;
+      public Builder addDisplayUp4ItemList(int value) {
+        ensureDisplayUp4ItemListIsMutable();
+        displayUp4ItemList_.addInt(value);
         onChanged();
         return this;
       }
       /**
-       * <code>string gacha_record_url = 12;</code>
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
+       * @param values The displayUp4ItemList to add.
        * @return This builder for chaining.
        */
-      public Builder clearGachaRecordUrl() {
-        
-        gachaRecordUrl_ = getDefaultInstance().getGachaRecordUrl();
+      public Builder addAllDisplayUp4ItemList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureDisplayUp4ItemListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, displayUp4ItemList_);
         onChanged();
         return this;
       }
       /**
-       * <code>string gacha_record_url = 12;</code>
-       * @param value The bytes for gachaRecordUrl to set.
+       * <code>repeated uint32 display_up4_item_list = 1875;</code>
        * @return This builder for chaining.
        */
-      public Builder setGachaRecordUrlBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        gachaRecordUrl_ = value;
+      public Builder clearDisplayUp4ItemList() {
+        displayUp4ItemList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000004);
         onChanged();
         return this;
       }
@@ -3026,219 +3150,95 @@ public final class GachaInfoOuterClass {
         return this;
       }
 
-      private int beginTime_ ;
+      private int wishProgress_ ;
       /**
-       * <code>uint32 begin_time = 1;</code>
-       * @return The beginTime.
+       * <code>uint32 wish_progress = 1819;</code>
+       * @return The wishProgress.
        */
       @java.lang.Override
-      public int getBeginTime() {
-        return beginTime_;
+      public int getWishProgress() {
+        return wishProgress_;
       }
       /**
-       * <code>uint32 begin_time = 1;</code>
-       * @param value The beginTime to set.
+       * <code>uint32 wish_progress = 1819;</code>
+       * @param value The wishProgress to set.
        * @return This builder for chaining.
        */
-      public Builder setBeginTime(int value) {
+      public Builder setWishProgress(int value) {
         
-        beginTime_ = value;
+        wishProgress_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 begin_time = 1;</code>
+       * <code>uint32 wish_progress = 1819;</code>
        * @return This builder for chaining.
        */
-      public Builder clearBeginTime() {
+      public Builder clearWishProgress() {
         
-        beginTime_ = 0;
+        wishProgress_ = 0;
         onChanged();
         return this;
       }
 
-      private java.lang.Object gachaProbUrlOversea_ = "";
-      /**
-       * <code>string gacha_prob_url_oversea = 1481;</code>
-       * @return The gachaProbUrlOversea.
-       */
-      public java.lang.String getGachaProbUrlOversea() {
-        java.lang.Object ref = gachaProbUrlOversea_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          gachaProbUrlOversea_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <code>string gacha_prob_url_oversea = 1481;</code>
-       * @return The bytes for gachaProbUrlOversea.
-       */
-      public com.google.protobuf.ByteString
-          getGachaProbUrlOverseaBytes() {
-        java.lang.Object ref = gachaProbUrlOversea_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          gachaProbUrlOversea_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
+      private int wishMaxProgress_ ;
       /**
-       * <code>string gacha_prob_url_oversea = 1481;</code>
-       * @param value The gachaProbUrlOversea to set.
-       * @return This builder for chaining.
+       * <code>uint32 wish_max_progress = 1222;</code>
+       * @return The wishMaxProgress.
        */
-      public Builder setGachaProbUrlOversea(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        gachaProbUrlOversea_ = value;
-        onChanged();
-        return this;
+      @java.lang.Override
+      public int getWishMaxProgress() {
+        return wishMaxProgress_;
       }
       /**
-       * <code>string gacha_prob_url_oversea = 1481;</code>
+       * <code>uint32 wish_max_progress = 1222;</code>
+       * @param value The wishMaxProgress to set.
        * @return This builder for chaining.
        */
-      public Builder clearGachaProbUrlOversea() {
+      public Builder setWishMaxProgress(int value) {
         
-        gachaProbUrlOversea_ = getDefaultInstance().getGachaProbUrlOversea();
+        wishMaxProgress_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>string gacha_prob_url_oversea = 1481;</code>
-       * @param value The bytes for gachaProbUrlOversea to set.
+       * <code>uint32 wish_max_progress = 1222;</code>
        * @return This builder for chaining.
        */
-      public Builder setGachaProbUrlOverseaBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      public Builder clearWishMaxProgress() {
         
-        gachaProbUrlOversea_ = value;
+        wishMaxProgress_ = 0;
         onChanged();
         return this;
       }
 
-      private int gachaTimesLimit_ ;
+      private boolean isNewWish_ ;
       /**
-       * <code>uint32 gacha_times_limit = 11;</code>
-       * @return The gachaTimesLimit.
+       * <code>bool is_new_wish = 733;</code>
+       * @return The isNewWish.
        */
       @java.lang.Override
-      public int getGachaTimesLimit() {
-        return gachaTimesLimit_;
+      public boolean getIsNewWish() {
+        return isNewWish_;
       }
       /**
-       * <code>uint32 gacha_times_limit = 11;</code>
-       * @param value The gachaTimesLimit to set.
+       * <code>bool is_new_wish = 733;</code>
+       * @param value The isNewWish to set.
        * @return This builder for chaining.
        */
-      public Builder setGachaTimesLimit(int value) {
+      public Builder setIsNewWish(boolean value) {
         
-        gachaTimesLimit_ = value;
+        isNewWish_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 gacha_times_limit = 11;</code>
+       * <code>bool is_new_wish = 733;</code>
        * @return This builder for chaining.
        */
-      public Builder clearGachaTimesLimit() {
+      public Builder clearIsNewWish() {
         
-        gachaTimesLimit_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private com.google.protobuf.Internal.IntList displayUp5ItemList_ = emptyIntList();
-      private void ensureDisplayUp5ItemListIsMutable() {
-        if (!((bitField0_ & 0x00000004) != 0)) {
-          displayUp5ItemList_ = mutableCopy(displayUp5ItemList_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @return A list containing the displayUp5ItemList.
-       */
-      public java.util.List<java.lang.Integer>
-          getDisplayUp5ItemListList() {
-        return ((bitField0_ & 0x00000004) != 0) ?
-                 java.util.Collections.unmodifiableList(displayUp5ItemList_) : displayUp5ItemList_;
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @return The count of displayUp5ItemList.
-       */
-      public int getDisplayUp5ItemListCount() {
-        return displayUp5ItemList_.size();
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @param index The index of the element to return.
-       * @return The displayUp5ItemList at the given index.
-       */
-      public int getDisplayUp5ItemList(int index) {
-        return displayUp5ItemList_.getInt(index);
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @param index The index to set the value at.
-       * @param value The displayUp5ItemList to set.
-       * @return This builder for chaining.
-       */
-      public Builder setDisplayUp5ItemList(
-          int index, int value) {
-        ensureDisplayUp5ItemListIsMutable();
-        displayUp5ItemList_.setInt(index, value);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @param value The displayUp5ItemList to add.
-       * @return This builder for chaining.
-       */
-      public Builder addDisplayUp5ItemList(int value) {
-        ensureDisplayUp5ItemListIsMutable();
-        displayUp5ItemList_.addInt(value);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @param values The displayUp5ItemList to add.
-       * @return This builder for chaining.
-       */
-      public Builder addAllDisplayUp5ItemList(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureDisplayUp5ItemListIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, displayUp5ItemList_);
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>repeated uint32 display_up_5_item_list = 2006;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearDisplayUp5ItemList() {
-        displayUp5ItemList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000004);
+        isNewWish_ = false;
         onChanged();
         return this;
       }
@@ -3309,25 +3309,25 @@ public final class GachaInfoOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\017GachaInfo.proto\032\021GachaUpInfo.proto\"\242\005\n" +
-      "\tGachaInfo\022!\n\031gacha_preview_prefab_path\030" +
-      "\004 \001(\t\022\024\n\014cost_item_id\030\t \001(\r\022\024\n\013is_new_wi" +
-      "sh\030\335\005 \001(\010\022\026\n\016gacha_prob_url\030\010 \001(\t\022!\n\030gac" +
-      "ha_record_url_oversea\030\276\016 \001(\t\022\025\n\rcost_ite" +
-      "m_num\030\003 \001(\r\022)\n\022gacha_up_info_list\030\321\t \003(\013" +
-      "2\014.GachaUpInfo\022\037\n\026display_up_4_item_list" +
-      "\030\323\016 \003(\r\022\026\n\rwish_progress\030\233\016 \001(\r\022\023\n\013sched" +
-      "ule_id\030\n \001(\r\022\025\n\rgacha_sort_id\030\007 \001(\r\022\030\n\020l" +
-      "eft_gacha_times\030\005 \001(\r\022\031\n\021gacha_prefab_pa" +
-      "th\030\017 \001(\t\022\026\n\rtitle_textmap\030\340\005 \001(\t\022\031\n\021ten_" +
-      "cost_item_num\030\006 \001(\r\022\022\n\ngacha_type\030\r \001(\r\022" +
-      "\032\n\021wish_max_progress\030\306\t \001(\r\022\020\n\010end_time\030" +
-      "\016 \001(\r\022\030\n\020ten_cost_item_id\030\002 \001(\r\022\030\n\020gacha" +
-      "_record_url\030\014 \001(\t\022\025\n\014wish_item_id\030\345\014 \001(\r" +
-      "\022\022\n\nbegin_time\030\001 \001(\r\022\037\n\026gacha_prob_url_o" +
-      "versea\030\311\013 \001(\t\022\031\n\021gacha_times_limit\030\013 \001(\r" +
-      "\022\037\n\026display_up_5_item_list\030\326\017 \003(\rB\033\n\031emu" +
-      ".grasscutter.net.protob\006proto3"
+      "\n\017GachaInfo.proto\032\021GachaUpInfo.proto\"\240\005\n" +
+      "\tGachaInfo\022\022\n\ngacha_type\030\r \001(\r\022\023\n\013schedu" +
+      "le_id\030\n \001(\r\022\022\n\nbegin_time\030\001 \001(\r\022\020\n\010end_t" +
+      "ime\030\016 \001(\r\022\024\n\014cost_item_id\030\t \001(\r\022\025\n\rcost_" +
+      "item_num\030\003 \001(\r\022\031\n\021gacha_prefab_path\030\017 \001(" +
+      "\t\022\026\n\016gacha_prob_url\030\010 \001(\t\022\030\n\020gacha_recor" +
+      "d_url\030\014 \001(\t\022!\n\031gacha_preview_prefab_path" +
+      "\030\004 \001(\t\022\030\n\020ten_cost_item_id\030\002 \001(\r\022\031\n\021ten_" +
+      "cost_item_num\030\006 \001(\r\022\030\n\020left_gacha_times\030" +
+      "\005 \001(\r\022\031\n\021gacha_times_limit\030\013 \001(\r\022\025\n\rgach" +
+      "a_sort_id\030\007 \001(\r\022\037\n\026gacha_prob_url_overse" +
+      "a\030\311\013 \001(\t\022!\n\030gacha_record_url_oversea\030\276\016 " +
+      "\001(\t\022)\n\022gacha_up_info_list\030\321\t \003(\0132\014.Gacha" +
+      "UpInfo\022\026\n\rtitle_textmap\030\340\005 \001(\t\022\036\n\025displa" +
+      "y_up5_item_list\030\326\017 \003(\r\022\036\n\025display_up4_it" +
+      "em_list\030\323\016 \003(\r\022\025\n\014wish_item_id\030\345\014 \001(\r\022\026\n" +
+      "\rwish_progress\030\233\016 \001(\r\022\032\n\021wish_max_progre" +
+      "ss\030\306\t \001(\r\022\024\n\013is_new_wish\030\335\005 \001(\010B\033\n\031emu.g" +
+      "rasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -3339,7 +3339,7 @@ public final class GachaInfoOuterClass {
     internal_static_GachaInfo_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_GachaInfo_descriptor,
-        new java.lang.String[] { "GachaPreviewPrefabPath", "CostItemId", "IsNewWish", "GachaProbUrl", "GachaRecordUrlOversea", "CostItemNum", "GachaUpInfoList", "DisplayUp4ItemList", "WishProgress", "ScheduleId", "GachaSortId", "LeftGachaTimes", "GachaPrefabPath", "TitleTextmap", "TenCostItemNum", "GachaType", "WishMaxProgress", "EndTime", "TenCostItemId", "GachaRecordUrl", "WishItemId", "BeginTime", "GachaProbUrlOversea", "GachaTimesLimit", "DisplayUp5ItemList", });
+        new java.lang.String[] { "GachaType", "ScheduleId", "BeginTime", "EndTime", "CostItemId", "CostItemNum", "GachaPrefabPath", "GachaProbUrl", "GachaRecordUrl", "GachaPreviewPrefabPath", "TenCostItemId", "TenCostItemNum", "LeftGachaTimes", "GachaTimesLimit", "GachaSortId", "GachaProbUrlOversea", "GachaRecordUrlOversea", "GachaUpInfoList", "TitleTextmap", "DisplayUp5ItemList", "DisplayUp4ItemList", "WishItemId", "WishProgress", "WishMaxProgress", "IsNewWish", });
     emu.grasscutter.net.proto.GachaUpInfoOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GachaWishReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GachaWishReqOuterClass.java
index 1af0e26a..876f5714 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GachaWishReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GachaWishReqOuterClass.java
@@ -40,7 +40,7 @@ public final class GachaWishReqOuterClass {
    * <pre>
    * CmdId: 1507
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class GachaWishReqOuterClass {
      * <pre>
      * CmdId: 1507
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GachaWishRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GachaWishRspOuterClass.java
index 1a410160..119d444b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GachaWishRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GachaWishRspOuterClass.java
@@ -58,7 +58,8 @@ public final class GachaWishRspOuterClass {
    * <pre>
    * CmdId: 1521
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GachaWishRsp}
@@ -447,7 +448,8 @@ public final class GachaWishRspOuterClass {
      * <pre>
      * CmdId: 1521
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GachaWishRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GadgetAutoPickDropInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GadgetAutoPickDropInfoNotifyOuterClass.java
index e43b83eb..aecf6580 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GadgetAutoPickDropInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GadgetAutoPickDropInfoNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class GadgetAutoPickDropInfoNotifyOuterClass {
    * <pre>
    * CmdId: 897
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GadgetAutoPickDropInfoNotify}
@@ -340,7 +341,8 @@ public final class GadgetAutoPickDropInfoNotifyOuterClass {
      * <pre>
      * CmdId: 897
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GadgetAutoPickDropInfoNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractReqOuterClass.java
index a87c63cd..0e839e7c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractReqOuterClass.java
@@ -68,7 +68,7 @@ public final class GadgetInteractReqOuterClass {
    * <pre>
    * CmdId: 872
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -477,7 +477,7 @@ public final class GadgetInteractReqOuterClass {
      * <pre>
      * CmdId: 872
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractRspOuterClass.java
index 09ef2815..cf7817be 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractRspOuterClass.java
@@ -62,7 +62,8 @@ public final class GadgetInteractRspOuterClass {
    * <pre>
    * CmdId: 898
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GadgetInteractRsp}
@@ -442,7 +443,8 @@ public final class GadgetInteractRspOuterClass {
      * <pre>
      * CmdId: 898
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GadgetInteractRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GadgetStateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GadgetStateNotifyOuterClass.java
index e18578d4..13ebf04d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GadgetStateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GadgetStateNotifyOuterClass.java
@@ -40,7 +40,8 @@ public final class GadgetStateNotifyOuterClass {
    * <pre>
    * CmdId: 812
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GadgetStateNotify}
@@ -349,7 +350,8 @@ public final class GadgetStateNotifyOuterClass {
      * <pre>
      * CmdId: 812
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GadgetStateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoReqOuterClass.java
index 088adc10..3522b212 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoReqOuterClass.java
@@ -37,9 +37,9 @@ public final class GetActivityInfoReqOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 2067
+   * CmdId: 2095
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -347,9 +347,9 @@ public final class GetActivityInfoReqOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2067
+     * CmdId: 2095
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoRspOuterClass.java
index 18b4f389..f2e758f1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoRspOuterClass.java
@@ -93,7 +93,8 @@ public final class GetActivityInfoRspOuterClass {
    * <pre>
    * CmdId: 2041
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetActivityInfoRsp}
@@ -561,7 +562,8 @@ public final class GetActivityInfoRspOuterClass {
      * <pre>
      * CmdId: 2041
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetActivityInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java
index bd445135..4f96d776 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java
@@ -28,7 +28,7 @@ public final class GetAllMailReqOuterClass {
    * <pre>
    * CmdId: 1431
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class GetAllMailReqOuterClass {
      * <pre>
      * CmdId: 1431
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java
index c7f57a02..cec98b70 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java
@@ -64,7 +64,8 @@ public final class GetAllMailRspOuterClass {
    * <pre>
    * CmdId: 1475
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetAllMailRsp}
@@ -441,7 +442,8 @@ public final class GetAllMailRspOuterClass {
      * <pre>
      * CmdId: 1475
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetAllMailRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardRspOuterClass.java
index d08a3a1a..dd4686ec 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardRspOuterClass.java
@@ -45,7 +45,7 @@ public final class GetAllUnlockNameCardRspOuterClass {
    * <pre>
    * CmdId: 4094
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -382,7 +382,7 @@ public final class GetAllUnlockNameCardRspOuterClass {
      * <pre>
      * CmdId: 4094
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyReqOuterClass.java
index c48f92b7..1ac59b1e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyReqOuterClass.java
@@ -46,7 +46,7 @@ public final class GetAuthkeyReqOuterClass {
    * <pre>
    * CmdId: 1490
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -383,7 +383,7 @@ public final class GetAuthkeyReqOuterClass {
      * <pre>
      * CmdId: 1490
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyRspOuterClass.java
index dfa4d01d..5425f166 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyRspOuterClass.java
@@ -76,7 +76,8 @@ public final class GetAuthkeyRspOuterClass {
    * <pre>
    * CmdId: 1473
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetAuthkeyRsp}
@@ -549,7 +550,8 @@ public final class GetAuthkeyRspOuterClass {
      * <pre>
      * CmdId: 1473
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetAuthkeyRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductReqOuterClass.java
index bbc15cb7..0e044562 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductReqOuterClass.java
@@ -28,7 +28,7 @@ public final class GetBattlePassProductReqOuterClass {
    * <pre>
    * CmdId: 2644
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class GetBattlePassProductReqOuterClass {
      * <pre>
      * CmdId: 2644
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductRspOuterClass.java
index 643e0daa..cf15d8c1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetBattlePassProductRspOuterClass.java
@@ -25,16 +25,22 @@ public final class GetBattlePassProductRspOuterClass {
     int getRetcode();
 
     /**
-     * <code>uint32 battle_pass_product_play_type = 2;</code>
-     * @return The battlePassProductPlayType.
+     * <code>string price_tier = 6;</code>
+     * @return The priceTier.
      */
-    int getBattlePassProductPlayType();
+    java.lang.String getPriceTier();
+    /**
+     * <code>string price_tier = 6;</code>
+     * @return The bytes for priceTier.
+     */
+    com.google.protobuf.ByteString
+        getPriceTierBytes();
 
     /**
-     * <code>uint32 cur_schedule_id = 11;</code>
-     * @return The curScheduleId.
+     * <code>uint32 battle_pass_product_play_type = 2;</code>
+     * @return The battlePassProductPlayType.
      */
-    int getCurScheduleId();
+    int getBattlePassProductPlayType();
 
     /**
      * <code>string product_id = 1;</code>
@@ -49,22 +55,17 @@ public final class GetBattlePassProductRspOuterClass {
         getProductIdBytes();
 
     /**
-     * <code>string price_tier = 6;</code>
-     * @return The priceTier.
-     */
-    java.lang.String getPriceTier();
-    /**
-     * <code>string price_tier = 6;</code>
-     * @return The bytes for priceTier.
+     * <code>uint32 cur_schedule_id = 11;</code>
+     * @return The curScheduleId.
      */
-    com.google.protobuf.ByteString
-        getPriceTierBytes();
+    int getCurScheduleId();
   }
   /**
    * <pre>
    * CmdId: 2649
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetBattlePassProductRsp}
@@ -79,8 +80,8 @@ public final class GetBattlePassProductRspOuterClass {
       super(builder);
     }
     private GetBattlePassProductRsp() {
-      productId_ = "";
       priceTier_ = "";
+      productId_ = "";
     }
 
     @java.lang.Override
@@ -183,6 +184,44 @@ public final class GetBattlePassProductRspOuterClass {
       return retcode_;
     }
 
+    public static final int PRICE_TIER_FIELD_NUMBER = 6;
+    private volatile java.lang.Object priceTier_;
+    /**
+     * <code>string price_tier = 6;</code>
+     * @return The priceTier.
+     */
+    @java.lang.Override
+    public java.lang.String getPriceTier() {
+      java.lang.Object ref = priceTier_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        priceTier_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string price_tier = 6;</code>
+     * @return The bytes for priceTier.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString
+        getPriceTierBytes() {
+      java.lang.Object ref = priceTier_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        priceTier_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
     public static final int BATTLE_PASS_PRODUCT_PLAY_TYPE_FIELD_NUMBER = 2;
     private int battlePassProductPlayType_;
     /**
@@ -194,17 +233,6 @@ public final class GetBattlePassProductRspOuterClass {
       return battlePassProductPlayType_;
     }
 
-    public static final int CUR_SCHEDULE_ID_FIELD_NUMBER = 11;
-    private int curScheduleId_;
-    /**
-     * <code>uint32 cur_schedule_id = 11;</code>
-     * @return The curScheduleId.
-     */
-    @java.lang.Override
-    public int getCurScheduleId() {
-      return curScheduleId_;
-    }
-
     public static final int PRODUCT_ID_FIELD_NUMBER = 1;
     private volatile java.lang.Object productId_;
     /**
@@ -243,42 +271,15 @@ public final class GetBattlePassProductRspOuterClass {
       }
     }
 
-    public static final int PRICE_TIER_FIELD_NUMBER = 6;
-    private volatile java.lang.Object priceTier_;
-    /**
-     * <code>string price_tier = 6;</code>
-     * @return The priceTier.
-     */
-    @java.lang.Override
-    public java.lang.String getPriceTier() {
-      java.lang.Object ref = priceTier_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        priceTier_ = s;
-        return s;
-      }
-    }
+    public static final int CUR_SCHEDULE_ID_FIELD_NUMBER = 11;
+    private int curScheduleId_;
     /**
-     * <code>string price_tier = 6;</code>
-     * @return The bytes for priceTier.
+     * <code>uint32 cur_schedule_id = 11;</code>
+     * @return The curScheduleId.
      */
     @java.lang.Override
-    public com.google.protobuf.ByteString
-        getPriceTierBytes() {
-      java.lang.Object ref = priceTier_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        priceTier_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
+    public int getCurScheduleId() {
+      return curScheduleId_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -354,14 +355,14 @@ public final class GetBattlePassProductRspOuterClass {
 
       if (getRetcode()
           != other.getRetcode()) return false;
+      if (!getPriceTier()
+          .equals(other.getPriceTier())) return false;
       if (getBattlePassProductPlayType()
           != other.getBattlePassProductPlayType()) return false;
-      if (getCurScheduleId()
-          != other.getCurScheduleId()) return false;
       if (!getProductId()
           .equals(other.getProductId())) return false;
-      if (!getPriceTier()
-          .equals(other.getPriceTier())) return false;
+      if (getCurScheduleId()
+          != other.getCurScheduleId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -375,14 +376,14 @@ public final class GetBattlePassProductRspOuterClass {
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = (37 * hash) + RETCODE_FIELD_NUMBER;
       hash = (53 * hash) + getRetcode();
+      hash = (37 * hash) + PRICE_TIER_FIELD_NUMBER;
+      hash = (53 * hash) + getPriceTier().hashCode();
       hash = (37 * hash) + BATTLE_PASS_PRODUCT_PLAY_TYPE_FIELD_NUMBER;
       hash = (53 * hash) + getBattlePassProductPlayType();
-      hash = (37 * hash) + CUR_SCHEDULE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getCurScheduleId();
       hash = (37 * hash) + PRODUCT_ID_FIELD_NUMBER;
       hash = (53 * hash) + getProductId().hashCode();
-      hash = (37 * hash) + PRICE_TIER_FIELD_NUMBER;
-      hash = (53 * hash) + getPriceTier().hashCode();
+      hash = (37 * hash) + CUR_SCHEDULE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getCurScheduleId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -482,7 +483,8 @@ public final class GetBattlePassProductRspOuterClass {
      * <pre>
      * CmdId: 2649
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetBattlePassProductRsp}
@@ -524,13 +526,13 @@ public final class GetBattlePassProductRspOuterClass {
         super.clear();
         retcode_ = 0;
 
-        battlePassProductPlayType_ = 0;
+        priceTier_ = "";
 
-        curScheduleId_ = 0;
+        battlePassProductPlayType_ = 0;
 
         productId_ = "";
 
-        priceTier_ = "";
+        curScheduleId_ = 0;
 
         return this;
       }
@@ -559,10 +561,10 @@ public final class GetBattlePassProductRspOuterClass {
       public emu.grasscutter.net.proto.GetBattlePassProductRspOuterClass.GetBattlePassProductRsp buildPartial() {
         emu.grasscutter.net.proto.GetBattlePassProductRspOuterClass.GetBattlePassProductRsp result = new emu.grasscutter.net.proto.GetBattlePassProductRspOuterClass.GetBattlePassProductRsp(this);
         result.retcode_ = retcode_;
+        result.priceTier_ = priceTier_;
         result.battlePassProductPlayType_ = battlePassProductPlayType_;
-        result.curScheduleId_ = curScheduleId_;
         result.productId_ = productId_;
-        result.priceTier_ = priceTier_;
+        result.curScheduleId_ = curScheduleId_;
         onBuilt();
         return result;
       }
@@ -614,19 +616,19 @@ public final class GetBattlePassProductRspOuterClass {
         if (other.getRetcode() != 0) {
           setRetcode(other.getRetcode());
         }
+        if (!other.getPriceTier().isEmpty()) {
+          priceTier_ = other.priceTier_;
+          onChanged();
+        }
         if (other.getBattlePassProductPlayType() != 0) {
           setBattlePassProductPlayType(other.getBattlePassProductPlayType());
         }
-        if (other.getCurScheduleId() != 0) {
-          setCurScheduleId(other.getCurScheduleId());
-        }
         if (!other.getProductId().isEmpty()) {
           productId_ = other.productId_;
           onChanged();
         }
-        if (!other.getPriceTier().isEmpty()) {
-          priceTier_ = other.priceTier_;
-          onChanged();
+        if (other.getCurScheduleId() != 0) {
+          setCurScheduleId(other.getCurScheduleId());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -688,64 +690,109 @@ public final class GetBattlePassProductRspOuterClass {
         return this;
       }
 
-      private int battlePassProductPlayType_ ;
+      private java.lang.Object priceTier_ = "";
       /**
-       * <code>uint32 battle_pass_product_play_type = 2;</code>
-       * @return The battlePassProductPlayType.
+       * <code>string price_tier = 6;</code>
+       * @return The priceTier.
        */
-      @java.lang.Override
-      public int getBattlePassProductPlayType() {
-        return battlePassProductPlayType_;
+      public java.lang.String getPriceTier() {
+        java.lang.Object ref = priceTier_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          priceTier_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
       }
       /**
-       * <code>uint32 battle_pass_product_play_type = 2;</code>
-       * @param value The battlePassProductPlayType to set.
+       * <code>string price_tier = 6;</code>
+       * @return The bytes for priceTier.
+       */
+      public com.google.protobuf.ByteString
+          getPriceTierBytes() {
+        java.lang.Object ref = priceTier_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          priceTier_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string price_tier = 6;</code>
+       * @param value The priceTier to set.
        * @return This builder for chaining.
        */
-      public Builder setBattlePassProductPlayType(int value) {
+      public Builder setPriceTier(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        priceTier_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string price_tier = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPriceTier() {
         
-        battlePassProductPlayType_ = value;
+        priceTier_ = getDefaultInstance().getPriceTier();
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 battle_pass_product_play_type = 2;</code>
+       * <code>string price_tier = 6;</code>
+       * @param value The bytes for priceTier to set.
        * @return This builder for chaining.
        */
-      public Builder clearBattlePassProductPlayType() {
+      public Builder setPriceTierBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
         
-        battlePassProductPlayType_ = 0;
+        priceTier_ = value;
         onChanged();
         return this;
       }
 
-      private int curScheduleId_ ;
+      private int battlePassProductPlayType_ ;
       /**
-       * <code>uint32 cur_schedule_id = 11;</code>
-       * @return The curScheduleId.
+       * <code>uint32 battle_pass_product_play_type = 2;</code>
+       * @return The battlePassProductPlayType.
        */
       @java.lang.Override
-      public int getCurScheduleId() {
-        return curScheduleId_;
+      public int getBattlePassProductPlayType() {
+        return battlePassProductPlayType_;
       }
       /**
-       * <code>uint32 cur_schedule_id = 11;</code>
-       * @param value The curScheduleId to set.
+       * <code>uint32 battle_pass_product_play_type = 2;</code>
+       * @param value The battlePassProductPlayType to set.
        * @return This builder for chaining.
        */
-      public Builder setCurScheduleId(int value) {
+      public Builder setBattlePassProductPlayType(int value) {
         
-        curScheduleId_ = value;
+        battlePassProductPlayType_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cur_schedule_id = 11;</code>
+       * <code>uint32 battle_pass_product_play_type = 2;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCurScheduleId() {
+      public Builder clearBattlePassProductPlayType() {
         
-        curScheduleId_ = 0;
+        battlePassProductPlayType_ = 0;
         onChanged();
         return this;
       }
@@ -826,78 +873,33 @@ public final class GetBattlePassProductRspOuterClass {
         return this;
       }
 
-      private java.lang.Object priceTier_ = "";
-      /**
-       * <code>string price_tier = 6;</code>
-       * @return The priceTier.
-       */
-      public java.lang.String getPriceTier() {
-        java.lang.Object ref = priceTier_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          priceTier_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <code>string price_tier = 6;</code>
-       * @return The bytes for priceTier.
-       */
-      public com.google.protobuf.ByteString
-          getPriceTierBytes() {
-        java.lang.Object ref = priceTier_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          priceTier_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
+      private int curScheduleId_ ;
       /**
-       * <code>string price_tier = 6;</code>
-       * @param value The priceTier to set.
-       * @return This builder for chaining.
+       * <code>uint32 cur_schedule_id = 11;</code>
+       * @return The curScheduleId.
        */
-      public Builder setPriceTier(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        priceTier_ = value;
-        onChanged();
-        return this;
+      @java.lang.Override
+      public int getCurScheduleId() {
+        return curScheduleId_;
       }
       /**
-       * <code>string price_tier = 6;</code>
+       * <code>uint32 cur_schedule_id = 11;</code>
+       * @param value The curScheduleId to set.
        * @return This builder for chaining.
        */
-      public Builder clearPriceTier() {
+      public Builder setCurScheduleId(int value) {
         
-        priceTier_ = getDefaultInstance().getPriceTier();
+        curScheduleId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>string price_tier = 6;</code>
-       * @param value The bytes for priceTier to set.
+       * <code>uint32 cur_schedule_id = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder setPriceTierBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      public Builder clearCurScheduleId() {
         
-        priceTier_ = value;
+        curScheduleId_ = 0;
         onChanged();
         return this;
       }
@@ -969,10 +971,10 @@ public final class GetBattlePassProductRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\035GetBattlePassProductRsp.proto\"\222\001\n\027GetB" +
-      "attlePassProductRsp\022\017\n\007retcode\030\016 \001(\005\022%\n\035" +
-      "battle_pass_product_play_type\030\002 \001(\r\022\027\n\017c" +
-      "ur_schedule_id\030\013 \001(\r\022\022\n\nproduct_id\030\001 \001(\t" +
-      "\022\022\n\nprice_tier\030\006 \001(\tB\033\n\031emu.grasscutter." +
+      "attlePassProductRsp\022\017\n\007retcode\030\016 \001(\005\022\022\n\n" +
+      "price_tier\030\006 \001(\t\022%\n\035battle_pass_product_" +
+      "play_type\030\002 \001(\r\022\022\n\nproduct_id\030\001 \001(\t\022\027\n\017c" +
+      "ur_schedule_id\030\013 \001(\rB\033\n\031emu.grasscutter." +
       "net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -984,7 +986,7 @@ public final class GetBattlePassProductRspOuterClass {
     internal_static_GetBattlePassProductRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_GetBattlePassProductRsp_descriptor,
-        new java.lang.String[] { "Retcode", "BattlePassProductPlayType", "CurScheduleId", "ProductId", "PriceTier", });
+        new java.lang.String[] { "Retcode", "PriceTier", "BattlePassProductPlayType", "ProductId", "CurScheduleId", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoReqOuterClass.java
index f63eaf44..d6d29e34 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoReqOuterClass.java
@@ -28,7 +28,7 @@ public final class GetDailyDungeonEntryInfoReqOuterClass {
    * <pre>
    * CmdId: 930
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class GetDailyDungeonEntryInfoReqOuterClass {
      * <pre>
      * CmdId: 930
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoRspOuterClass.java
index cfc4fc82..ad68f5e4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoRspOuterClass.java
@@ -52,7 +52,8 @@ public final class GetDailyDungeonEntryInfoRspOuterClass {
    * <pre>
    * CmdId: 967
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetDailyDungeonEntryInfoRsp}
@@ -373,7 +374,8 @@ public final class GetDailyDungeonEntryInfoRspOuterClass {
      * <pre>
      * CmdId: 967
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetDailyDungeonEntryInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoReqOuterClass.java
index bc67dd0a..03bec6bf 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoReqOuterClass.java
@@ -28,7 +28,7 @@ public final class GetFriendShowAvatarInfoReqOuterClass {
    * <pre>
    * CmdId: 4070
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class GetFriendShowAvatarInfoReqOuterClass {
      * <pre>
      * CmdId: 4070
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoRspOuterClass.java
index 3446c894..ccd95b0c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoRspOuterClass.java
@@ -58,7 +58,8 @@ public final class GetFriendShowAvatarInfoRspOuterClass {
    * <pre>
    * CmdId: 4017
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetFriendShowAvatarInfoRsp}
@@ -406,7 +407,8 @@ public final class GetFriendShowAvatarInfoRspOuterClass {
      * <pre>
      * CmdId: 4017
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetFriendShowAvatarInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetFurnitureCurModuleArrangeCountReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetFurnitureCurModuleArrangeCountReqOuterClass.java
index fbfeab7f..03a72d0a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetFurnitureCurModuleArrangeCountReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetFurnitureCurModuleArrangeCountReqOuterClass.java
@@ -22,7 +22,7 @@ public final class GetFurnitureCurModuleArrangeCountReqOuterClass {
    * <pre>
    * CmdId: 4711
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class GetFurnitureCurModuleArrangeCountReqOuterClass {
      * <pre>
      * CmdId: 4711
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoRspOuterClass.java
index ebbffd32..d3522235 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoRspOuterClass.java
@@ -70,7 +70,8 @@ public final class GetGachaInfoRspOuterClass {
    * <pre>
    * CmdId: 1598
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetGachaInfoRsp}
@@ -473,7 +474,8 @@ public final class GetGachaInfoRspOuterClass {
      * <pre>
      * CmdId: 1598
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetGachaInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterReqOuterClass.java
index 2ddcb5d9..2719d725 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterReqOuterClass.java
@@ -45,7 +45,7 @@ public final class GetInvestigationMonsterReqOuterClass {
    * <pre>
    * CmdId: 1901
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -383,7 +383,7 @@ public final class GetInvestigationMonsterReqOuterClass {
      * <pre>
      * CmdId: 1901
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterRspOuterClass.java
index 67ca2b59..4d492cae 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterRspOuterClass.java
@@ -58,7 +58,7 @@ public final class GetInvestigationMonsterRspOuterClass {
    * <pre>
    * CmdId: 1910
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -408,7 +408,7 @@ public final class GetInvestigationMonsterRspOuterClass {
      * <pre>
      * CmdId: 1910
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java
index 37217f22..6d09f819 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java
@@ -39,7 +39,7 @@ public final class GetMailItemReqOuterClass {
    * <pre>
    * CmdId: 1435
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class GetMailItemReqOuterClass {
      * <pre>
      * CmdId: 1435
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java
index 5d4af6cc..33cb62f7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java
@@ -69,7 +69,8 @@ public final class GetMailItemRspOuterClass {
    * <pre>
    * CmdId: 1407
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetMailItemRsp}
@@ -471,7 +472,8 @@ public final class GetMailItemRspOuterClass {
      * <pre>
      * CmdId: 1407
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetMailItemRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListReqOuterClass.java
index 783391b6..b9f78fae 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListReqOuterClass.java
@@ -22,7 +22,7 @@ public final class GetOnlinePlayerListReqOuterClass {
    * <pre>
    * CmdId: 90
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class GetOnlinePlayerListReqOuterClass {
      * <pre>
      * CmdId: 90
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListRspOuterClass.java
index 01c6cf44..1c7e1280 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListRspOuterClass.java
@@ -58,7 +58,8 @@ public final class GetOnlinePlayerListRspOuterClass {
    * <pre>
    * CmdId: 73
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetOnlinePlayerListRsp}
@@ -406,7 +407,8 @@ public final class GetOnlinePlayerListRspOuterClass {
      * <pre>
      * CmdId: 73
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetOnlinePlayerListRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListRspOuterClass.java
index cfe08afc..d6f1de4b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListRspOuterClass.java
@@ -52,7 +52,8 @@ public final class GetPlayerAskFriendListRspOuterClass {
    * <pre>
    * CmdId: 4066
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetPlayerAskFriendListRsp}
@@ -373,7 +374,8 @@ public final class GetPlayerAskFriendListRspOuterClass {
      * <pre>
      * CmdId: 4066
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetPlayerAskFriendListRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerBlacklistRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerBlacklistRspOuterClass.java
index 41a93fae..27ddc201 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerBlacklistRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerBlacklistRspOuterClass.java
@@ -52,7 +52,8 @@ public final class GetPlayerBlacklistRspOuterClass {
    * <pre>
    * CmdId: 4091
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetPlayerBlacklistRsp}
@@ -373,7 +374,8 @@ public final class GetPlayerBlacklistRspOuterClass {
      * <pre>
      * CmdId: 4091
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetPlayerBlacklistRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListRspOuterClass.java
index d35ba081..b791bb13 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListRspOuterClass.java
@@ -76,7 +76,7 @@ public final class GetPlayerFriendListRspOuterClass {
    * <pre>
    * CmdId: 4098
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -464,7 +464,7 @@ public final class GetPlayerFriendListRspOuterClass {
      * <pre>
      * CmdId: 4098
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerHomeCompInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerHomeCompInfoReqOuterClass.java
index a0a5e8ba..36d6aa0d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerHomeCompInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerHomeCompInfoReqOuterClass.java
@@ -22,7 +22,7 @@ public final class GetPlayerHomeCompInfoReqOuterClass {
    * <pre>
    * CmdId: 4597
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class GetPlayerHomeCompInfoReqOuterClass {
      * <pre>
      * CmdId: 4597
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailReqOuterClass.java
index 4932a435..2eabf67e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailReqOuterClass.java
@@ -28,7 +28,7 @@ public final class GetPlayerSocialDetailReqOuterClass {
    * <pre>
    * CmdId: 4073
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class GetPlayerSocialDetailReqOuterClass {
      * <pre>
      * CmdId: 4073
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailRspOuterClass.java
index 06aa7d6f..893da366 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailRspOuterClass.java
@@ -43,7 +43,8 @@ public final class GetPlayerSocialDetailRspOuterClass {
    * <pre>
    * CmdId: 4099
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetPlayerSocialDetailRsp}
@@ -352,7 +353,8 @@ public final class GetPlayerSocialDetailRspOuterClass {
      * <pre>
      * CmdId: 4099
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetPlayerSocialDetailRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenReqOuterClass.java
index fb262e51..45398b05 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenReqOuterClass.java
@@ -196,7 +196,7 @@ public final class GetPlayerTokenReqOuterClass {
    * <pre>
    * CmdId: 172
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -1218,7 +1218,7 @@ public final class GetPlayerTokenReqOuterClass {
      * <pre>
      * CmdId: 172
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenRspOuterClass.java
index 879b1d9d..bd7f6f07 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenRspOuterClass.java
@@ -285,7 +285,8 @@ public final class GetPlayerTokenRspOuterClass {
    * <pre>
    * CmdId: 198
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetPlayerTokenRsp}
@@ -1719,7 +1720,8 @@ public final class GetPlayerTokenRspOuterClass {
      * <pre>
      * CmdId: 198
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetPlayerTokenRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaReqOuterClass.java
index ced41779..1b779242 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaReqOuterClass.java
@@ -34,7 +34,7 @@ public final class GetSceneAreaReqOuterClass {
    * <pre>
    * CmdId: 265
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class GetSceneAreaReqOuterClass {
      * <pre>
      * CmdId: 265
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaRspOuterClass.java
index 5412940c..aefb7243 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaRspOuterClass.java
@@ -75,7 +75,8 @@ public final class GetSceneAreaRspOuterClass {
    * <pre>
    * CmdId: 204
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetSceneAreaRsp}
@@ -504,7 +505,8 @@ public final class GetSceneAreaRspOuterClass {
      * <pre>
      * CmdId: 204
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetSceneAreaRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointReqOuterClass.java
index c0665e3b..405a1347 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointReqOuterClass.java
@@ -34,7 +34,7 @@ public final class GetScenePointReqOuterClass {
    * <pre>
    * CmdId: 297
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class GetScenePointReqOuterClass {
      * <pre>
      * CmdId: 297
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointRspOuterClass.java
index c6e82497..99cd7ef6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetScenePointRspOuterClass.java
@@ -193,7 +193,8 @@ public final class GetScenePointRspOuterClass {
    * <pre>
    * CmdId: 281
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetScenePointRsp}
@@ -1223,7 +1224,8 @@ public final class GetScenePointRspOuterClass {
      * <pre>
      * CmdId: 281
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetScenePointRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetShopReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetShopReqOuterClass.java
index 1e9c8c1a..e44070bc 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetShopReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetShopReqOuterClass.java
@@ -28,7 +28,7 @@ public final class GetShopReqOuterClass {
    * <pre>
    * CmdId: 772
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class GetShopReqOuterClass {
      * <pre>
      * CmdId: 772
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetShopRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetShopRspOuterClass.java
index ec38b3ac..a9810bb5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetShopRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetShopRspOuterClass.java
@@ -43,7 +43,8 @@ public final class GetShopRspOuterClass {
    * <pre>
    * CmdId: 798
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetShopRsp}
@@ -352,7 +353,8 @@ public final class GetShopRspOuterClass {
      * <pre>
      * CmdId: 798
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetShopRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataRspOuterClass.java
index 5ee5986b..974ddc0a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataRspOuterClass.java
@@ -45,7 +45,8 @@ public final class GetShopmallDataRspOuterClass {
    * <pre>
    * CmdId: 721
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetShopmallDataRsp}
@@ -381,7 +382,8 @@ public final class GetShopmallDataRspOuterClass {
      * <pre>
      * CmdId: 721
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetShopmallDataRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotReqOuterClass.java
index 220f0e95..b4e8054c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotReqOuterClass.java
@@ -22,7 +22,7 @@ public final class GetWidgetSlotReqOuterClass {
    * <pre>
    * CmdId: 4253
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class GetWidgetSlotReqOuterClass {
      * <pre>
      * CmdId: 4253
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotRspOuterClass.java
index 7687b7a6..47d0dd7d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotRspOuterClass.java
@@ -52,7 +52,8 @@ public final class GetWidgetSlotRspOuterClass {
    * <pre>
    * CmdId: 4254
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetWidgetSlotRsp}
@@ -373,7 +374,8 @@ public final class GetWidgetSlotRspOuterClass {
      * <pre>
      * CmdId: 4254
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetWidgetSlotRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoRspOuterClass.java
index c68311c9..a64a7fe9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoRspOuterClass.java
@@ -40,7 +40,8 @@ public final class GetWorldMpInfoRspOuterClass {
    * <pre>
    * CmdId: 3320
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GetWorldMpInfoRsp}
@@ -349,7 +350,8 @@ public final class GetWorldMpInfoRspOuterClass {
      * <pre>
      * CmdId: 3320
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GetWorldMpInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GroupSuiteNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GroupSuiteNotifyOuterClass.java
index aa473c82..2b276cbd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GroupSuiteNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GroupSuiteNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class GroupSuiteNotifyOuterClass {
    * <pre>
    * CmdId: 3257
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GroupSuiteNotify}
@@ -412,7 +413,8 @@ public final class GroupSuiteNotifyOuterClass {
      * <pre>
      * CmdId: 3257
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GroupSuiteNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/GroupUnloadNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/GroupUnloadNotifyOuterClass.java
index 955a4585..a6e81192 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/GroupUnloadNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/GroupUnloadNotifyOuterClass.java
@@ -39,7 +39,8 @@ public final class GroupUnloadNotifyOuterClass {
    * <pre>
    * CmdId: 3344
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code GroupUnloadNotify}
@@ -348,7 +349,8 @@ public final class GroupUnloadNotifyOuterClass {
      * <pre>
      * CmdId: 3344
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code GroupUnloadNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/H5ActivityIdsNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/H5ActivityIdsNotifyOuterClass.java
index dc949f45..247bd340 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/H5ActivityIdsNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/H5ActivityIdsNotifyOuterClass.java
@@ -25,11 +25,11 @@ public final class H5ActivityIdsNotifyOuterClass {
     int getClientRedDotTimestamp();
 
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
     int getH5ActivityMapCount();
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
     boolean containsH5ActivityMap(
         int key);
@@ -40,19 +40,19 @@ public final class H5ActivityIdsNotifyOuterClass {
     java.util.Map<java.lang.Integer, java.lang.Integer>
     getH5ActivityMap();
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
     java.util.Map<java.lang.Integer, java.lang.Integer>
     getH5ActivityMapMap();
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
 
     int getH5ActivityMapOrDefault(
         int key,
         int defaultValue);
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
 
     int getH5ActivityMapOrThrow(
@@ -62,7 +62,8 @@ public final class H5ActivityIdsNotifyOuterClass {
    * <pre>
    * CmdId: 5675
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code H5ActivityIdsNotify}
@@ -183,7 +184,7 @@ public final class H5ActivityIdsNotifyOuterClass {
       return clientRedDotTimestamp_;
     }
 
-    public static final int H_5_ACTIVITY_MAP_FIELD_NUMBER = 12;
+    public static final int H5_ACTIVITY_MAP_FIELD_NUMBER = 12;
     private static final class H5ActivityMapDefaultEntryHolder {
       static final com.google.protobuf.MapEntry<
           java.lang.Integer, java.lang.Integer> defaultEntry =
@@ -210,7 +211,7 @@ public final class H5ActivityIdsNotifyOuterClass {
       return internalGetH5ActivityMap().getMap().size();
     }
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
 
     @java.lang.Override
@@ -228,7 +229,7 @@ public final class H5ActivityIdsNotifyOuterClass {
       return getH5ActivityMapMap();
     }
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
     @java.lang.Override
 
@@ -236,7 +237,7 @@ public final class H5ActivityIdsNotifyOuterClass {
       return internalGetH5ActivityMap().getMap();
     }
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
     @java.lang.Override
 
@@ -249,7 +250,7 @@ public final class H5ActivityIdsNotifyOuterClass {
       return map.containsKey(key) ? map.get(key) : defaultValue;
     }
     /**
-     * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+     * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
      */
     @java.lang.Override
 
@@ -343,7 +344,7 @@ public final class H5ActivityIdsNotifyOuterClass {
       hash = (37 * hash) + CLIENT_RED_DOT_TIMESTAMP_FIELD_NUMBER;
       hash = (53 * hash) + getClientRedDotTimestamp();
       if (!internalGetH5ActivityMap().getMap().isEmpty()) {
-        hash = (37 * hash) + H_5_ACTIVITY_MAP_FIELD_NUMBER;
+        hash = (37 * hash) + H5_ACTIVITY_MAP_FIELD_NUMBER;
         hash = (53 * hash) + internalGetH5ActivityMap().hashCode();
       }
       hash = (29 * hash) + unknownFields.hashCode();
@@ -445,7 +446,8 @@ public final class H5ActivityIdsNotifyOuterClass {
      * <pre>
      * CmdId: 5675
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code H5ActivityIdsNotify}
@@ -681,7 +683,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return internalGetH5ActivityMap().getMap().size();
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
 
       @java.lang.Override
@@ -699,7 +701,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return getH5ActivityMapMap();
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
       @java.lang.Override
 
@@ -707,7 +709,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return internalGetH5ActivityMap().getMap();
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
       @java.lang.Override
 
@@ -720,7 +722,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return map.containsKey(key) ? map.get(key) : defaultValue;
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
       @java.lang.Override
 
@@ -741,7 +743,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return this;
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
 
       public Builder removeH5ActivityMap(
@@ -760,7 +762,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return internalGetMutableH5ActivityMap().getMutableMap();
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
       public Builder putH5ActivityMap(
           int key,
@@ -772,7 +774,7 @@ public final class H5ActivityIdsNotifyOuterClass {
         return this;
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; h_5_activity_map = 12;</code>
+       * <code>map&lt;uint32, uint32&gt; h5_activity_map = 12;</code>
        */
 
       public Builder putAllH5ActivityMap(
@@ -853,13 +855,13 @@ public final class H5ActivityIdsNotifyOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\031H5ActivityIdsNotify.proto\"\260\001\n\023H5Activi" +
+      "\n\031H5ActivityIdsNotify.proto\"\257\001\n\023H5Activi" +
       "tyIdsNotify\022 \n\030client_red_dot_timestamp\030" +
-      "\001 \001(\r\022A\n\020h_5_activity_map\030\014 \003(\0132\'.H5Acti" +
-      "vityIdsNotify.H5ActivityMapEntry\0324\n\022H5Ac" +
-      "tivityMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001" +
-      "(\r:\0028\001B\033\n\031emu.grasscutter.net.protob\006pro" +
-      "to3"
+      "\001 \001(\r\022@\n\017h5_activity_map\030\014 \003(\0132\'.H5Activ" +
+      "ityIdsNotify.H5ActivityMapEntry\0324\n\022H5Act" +
+      "ivityMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(" +
+      "\r:\0028\001B\033\n\031emu.grasscutter.net.protob\006prot" +
+      "o3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HitTreeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HitTreeNotifyOuterClass.java
index 2b57b6b6..99dee6c0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HitTreeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HitTreeNotifyOuterClass.java
@@ -58,7 +58,7 @@ public final class HitTreeNotifyOuterClass {
    * <pre>
    * CmdId: 3019
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -423,7 +423,7 @@ public final class HitTreeNotifyOuterClass {
      * <pre>
      * CmdId: 3019
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoNotifyOuterClass.java
index d9869f0f..8607b162 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class HomeBasicInfoNotifyOuterClass {
    * <pre>
    * CmdId: 4885
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeBasicInfoNotify}
@@ -319,7 +320,8 @@ public final class HomeBasicInfoNotifyOuterClass {
      * <pre>
      * CmdId: 4885
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeBasicInfoNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeBlockNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeBlockNotifyOuterClass.java
index ef512343..b14c58f5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeBlockNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeBlockNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class HomeBlockNotifyOuterClass {
    * <pre>
    * CmdId: 4543
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeBlockNotify}
@@ -282,7 +283,8 @@ public final class HomeBlockNotifyOuterClass {
      * <pre>
      * CmdId: 4543
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeBlockNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeReqOuterClass.java
index b6960d85..df1a5af9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeReqOuterClass.java
@@ -28,7 +28,7 @@ public final class HomeChangeEditModeReqOuterClass {
    * <pre>
    * CmdId: 4564
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class HomeChangeEditModeReqOuterClass {
      * <pre>
      * CmdId: 4564
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeRspOuterClass.java
index 636e0f67..42325942 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeRspOuterClass.java
@@ -34,7 +34,8 @@ public final class HomeChangeEditModeRspOuterClass {
    * <pre>
    * CmdId: 4559
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeChangeEditModeRsp}
@@ -316,7 +317,8 @@ public final class HomeChangeEditModeRspOuterClass {
      * <pre>
      * CmdId: 4559
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeChangeEditModeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleReqOuterClass.java
index 449cf68e..5de3794b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleReqOuterClass.java
@@ -28,7 +28,7 @@ public final class HomeChooseModuleReqOuterClass {
    * <pre>
    * CmdId: 4524
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class HomeChooseModuleReqOuterClass {
      * <pre>
      * CmdId: 4524
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleRspOuterClass.java
index c87659eb..71770b3f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleRspOuterClass.java
@@ -34,7 +34,8 @@ public final class HomeChooseModuleRspOuterClass {
    * <pre>
    * CmdId: 4648
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeChooseModuleRsp}
@@ -315,7 +316,8 @@ public final class HomeChooseModuleRspOuterClass {
      * <pre>
      * CmdId: 4648
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeChooseModuleRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeComfortInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeComfortInfoNotifyOuterClass.java
index 7c71d350..a91db7df 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeComfortInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeComfortInfoNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class HomeComfortInfoNotifyOuterClass {
    * <pre>
    * CmdId: 4699
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeComfortInfoNotify}
@@ -340,7 +341,8 @@ public final class HomeComfortInfoNotifyOuterClass {
      * <pre>
      * CmdId: 4699
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeComfortInfoNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoReqOuterClass.java
index f18d9e95..8e6ab623 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoReqOuterClass.java
@@ -39,7 +39,7 @@ public final class HomeGetArrangementInfoReqOuterClass {
    * <pre>
    * CmdId: 4848
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class HomeGetArrangementInfoReqOuterClass {
      * <pre>
      * CmdId: 4848
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoRspOuterClass.java
index 9d62076e..0d511cd1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoRspOuterClass.java
@@ -52,7 +52,8 @@ public final class HomeGetArrangementInfoRspOuterClass {
    * <pre>
    * CmdId: 4844
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeGetArrangementInfoRsp}
@@ -373,7 +374,8 @@ public final class HomeGetArrangementInfoRspOuterClass {
      * <pre>
      * CmdId: 4844
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeGetArrangementInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeGetBasicInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeGetBasicInfoReqOuterClass.java
index 45c5547f..e91bf3df 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeGetBasicInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeGetBasicInfoReqOuterClass.java
@@ -22,7 +22,7 @@ public final class HomeGetBasicInfoReqOuterClass {
    * <pre>
    * CmdId: 4655
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class HomeGetBasicInfoReqOuterClass {
      * <pre>
      * CmdId: 4655
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNotifyOuterClass.java
index 026722f5..69dd89f3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class HomeMarkPointNotifyOuterClass {
    * <pre>
    * CmdId: 4474
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeMarkPointNotify}
@@ -340,7 +341,8 @@ public final class HomeMarkPointNotifyOuterClass {
      * <pre>
      * CmdId: 4474
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeMarkPointNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishReqOuterClass.java
index 0d26095d..9820457c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishReqOuterClass.java
@@ -22,7 +22,7 @@ public final class HomeSceneInitFinishReqOuterClass {
    * <pre>
    * CmdId: 4674
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class HomeSceneInitFinishReqOuterClass {
      * <pre>
      * CmdId: 4674
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishRspOuterClass.java
index 43853120..a75742ce 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishRspOuterClass.java
@@ -28,7 +28,8 @@ public final class HomeSceneInitFinishRspOuterClass {
    * <pre>
    * CmdId: 4505
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeSceneInitFinishRsp}
@@ -282,7 +283,8 @@ public final class HomeSceneInitFinishRspOuterClass {
      * <pre>
      * CmdId: 4505
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeSceneInitFinishRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpReqOuterClass.java
index 6ef29133..fb459fed 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpReqOuterClass.java
@@ -28,7 +28,7 @@ public final class HomeSceneJumpReqOuterClass {
    * <pre>
    * CmdId: 4528
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class HomeSceneJumpReqOuterClass {
      * <pre>
      * CmdId: 4528
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpRspOuterClass.java
index d411325e..aafac6a5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpRspOuterClass.java
@@ -34,7 +34,8 @@ public final class HomeSceneJumpRspOuterClass {
    * <pre>
    * CmdId: 4698
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeSceneJumpRsp}
@@ -316,7 +317,8 @@ public final class HomeSceneJumpRspOuterClass {
      * <pre>
      * CmdId: 4698
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeSceneJumpRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoReqOuterClass.java
index 8c7e8f65..d42ba6e5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoReqOuterClass.java
@@ -37,7 +37,7 @@ public final class HomeUpdateArrangementInfoReqOuterClass {
    * <pre>
    * CmdId: 4510
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -320,7 +320,7 @@ public final class HomeUpdateArrangementInfoReqOuterClass {
      * <pre>
      * CmdId: 4510
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoRspOuterClass.java
index 465938d1..b857ca4d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoRspOuterClass.java
@@ -28,7 +28,8 @@ public final class HomeUpdateArrangementInfoRspOuterClass {
    * <pre>
    * CmdId: 4757
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HomeUpdateArrangementInfoRsp}
@@ -282,7 +283,8 @@ public final class HomeUpdateArrangementInfoRspOuterClass {
      * <pre>
      * CmdId: 4757
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HomeUpdateArrangementInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/HostPlayerNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/HostPlayerNotifyOuterClass.java
index d5567a7a..cdb83a9a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/HostPlayerNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/HostPlayerNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class HostPlayerNotifyOuterClass {
    * <pre>
    * CmdId: 312
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code HostPlayerNotify}
@@ -315,7 +316,8 @@ public final class HostPlayerNotifyOuterClass {
      * <pre>
      * CmdId: 312
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code HostPlayerNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/InteractTypeOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/InteractTypeOuterClass.java
index 23a99999..f0617656 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/InteractTypeOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/InteractTypeOuterClass.java
@@ -83,6 +83,10 @@ public final class InteractTypeOuterClass {
      * <code>INTERACT_TYPE_Unk2700_LIEIKFDFMGF = 15;</code>
      */
     INTERACT_TYPE_Unk2700_LIEIKFDFMGF(15),
+    /**
+     * <code>INTERACT_TYPE_Unk3000_NMOCFKDNCOB = 16;</code>
+     */
+    INTERACT_TYPE_Unk3000_NMOCFKDNCOB(16),
     UNRECOGNIZED(-1),
     ;
 
@@ -150,6 +154,10 @@ public final class InteractTypeOuterClass {
      * <code>INTERACT_TYPE_Unk2700_LIEIKFDFMGF = 15;</code>
      */
     public static final int INTERACT_TYPE_Unk2700_LIEIKFDFMGF_VALUE = 15;
+    /**
+     * <code>INTERACT_TYPE_Unk3000_NMOCFKDNCOB = 16;</code>
+     */
+    public static final int INTERACT_TYPE_Unk3000_NMOCFKDNCOB_VALUE = 16;
 
 
     public final int getNumber() {
@@ -192,6 +200,7 @@ public final class InteractTypeOuterClass {
         case 13: return INTERACT_TYPE_ENV_ANIMAL;
         case 14: return INTERACT_TYPE_QUEST_GADGET;
         case 15: return INTERACT_TYPE_Unk2700_LIEIKFDFMGF;
+        case 16: return INTERACT_TYPE_Unk3000_NMOCFKDNCOB;
         default: return null;
       }
     }
@@ -257,7 +266,7 @@ public final class InteractTypeOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\022InteractType.proto*\360\003\n\014InteractType\022\026\n" +
+      "\n\022InteractType.proto*\227\004\n\014InteractType\022\026\n" +
       "\022INTERACT_TYPE_NONE\020\000\022\033\n\027INTERACT_TYPE_P" +
       "ICK_ITEM\020\001\022\030\n\024INTERACT_TYPE_GATHER\020\002\022\034\n\030" +
       "INTERACT_TYPE_OPEN_CHEST\020\003\022\035\n\031INTERACT_T" +
@@ -269,8 +278,9 @@ public final class InteractTypeOuterClass {
       "\030INTERACT_TYPE_ECHO_SHELL\020\013\022\035\n\031INTERACT_" +
       "TYPE_HOME_GATHER\020\014\022\034\n\030INTERACT_TYPE_ENV_" +
       "ANIMAL\020\r\022\036\n\032INTERACT_TYPE_QUEST_GADGET\020\016" +
-      "\022%\n!INTERACT_TYPE_Unk2700_LIEIKFDFMGF\020\017B" +
-      "\033\n\031emu.grasscutter.net.protob\006proto3"
+      "\022%\n!INTERACT_TYPE_Unk2700_LIEIKFDFMGF\020\017\022" +
+      "%\n!INTERACT_TYPE_Unk3000_NMOCFKDNCOB\020\020B\033" +
+      "\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ItemAddHintNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ItemAddHintNotifyOuterClass.java
index 44e47e5f..7a2567bd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ItemAddHintNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ItemAddHintNotifyOuterClass.java
@@ -115,7 +115,8 @@ public final class ItemAddHintNotifyOuterClass {
    * <pre>
    * CmdId: 607
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ItemAddHintNotify}
@@ -668,7 +669,8 @@ public final class ItemAddHintNotifyOuterClass {
      * <pre>
      * CmdId: 607
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ItemAddHintNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingReqOuterClass.java
index a17d1cba..5cd36383 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingReqOuterClass.java
@@ -97,7 +97,7 @@ public final class ItemGivingReqOuterClass {
    * <pre>
    * CmdId: 140
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -691,7 +691,7 @@ public final class ItemGivingReqOuterClass {
      * <pre>
      * CmdId: 140
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingRspOuterClass.java
index fc366359..7cb9c2b8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ItemGivingRspOuterClass.java
@@ -40,7 +40,8 @@ public final class ItemGivingRspOuterClass {
    * <pre>
    * CmdId: 118
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ItemGivingRsp}
@@ -348,7 +349,8 @@ public final class ItemGivingRspOuterClass {
      * <pre>
      * CmdId: 118
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ItemGivingRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/LifeStateChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/LifeStateChangeNotifyOuterClass.java
index 42bd0902..123b6fd2 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/LifeStateChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/LifeStateChangeNotifyOuterClass.java
@@ -93,7 +93,8 @@ public final class LifeStateChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1298
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code LifeStateChangeNotify}
@@ -586,7 +587,8 @@ public final class LifeStateChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1298
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code LifeStateChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/LockedPersonallineDataOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/LockedPersonallineDataOuterClass.java
index 95dcf23c..9c91dfc6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/LockedPersonallineDataOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/LockedPersonallineDataOuterClass.java
@@ -18,12 +18,6 @@ public final class LockedPersonallineDataOuterClass {
       // @@protoc_insertion_point(interface_extends:LockedPersonallineData)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 personal_line_id = 1;</code>
-     * @return The personalLineId.
-     */
-    int getPersonalLineId();
-
     /**
      * <code>.LockedPersonallineData.LockReason lock_reason = 2;</code>
      * @return The enum numeric value on the wire for lockReason.
@@ -35,6 +29,12 @@ public final class LockedPersonallineDataOuterClass {
      */
     emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData.LockReason getLockReason();
 
+    /**
+     * <code>uint32 personal_line_id = 13;</code>
+     * @return The personalLineId.
+     */
+    int getPersonalLineId();
+
     /**
      * <code>uint32 chapter_id = 3;</code>
      * @return Whether the chapterId field is set.
@@ -47,12 +47,12 @@ public final class LockedPersonallineDataOuterClass {
     int getChapterId();
 
     /**
-     * <code>uint32 level = 4;</code>
+     * <code>uint32 level = 1;</code>
      * @return Whether the level field is set.
      */
     boolean hasLevel();
     /**
-     * <code>uint32 level = 4;</code>
+     * <code>uint32 level = 1;</code>
      * @return The level.
      */
     int getLevel();
@@ -106,8 +106,8 @@ public final class LockedPersonallineDataOuterClass {
               done = true;
               break;
             case 8: {
-
-              personalLineId_ = input.readUInt32();
+              paramCase_ = 1;
+              param_ = input.readUInt32();
               break;
             }
             case 16: {
@@ -121,9 +121,9 @@ public final class LockedPersonallineDataOuterClass {
               param_ = input.readUInt32();
               break;
             }
-            case 32: {
-              paramCase_ = 4;
-              param_ = input.readUInt32();
+            case 104: {
+
+              personalLineId_ = input.readUInt32();
               break;
             }
             default: {
@@ -272,7 +272,7 @@ public final class LockedPersonallineDataOuterClass {
         implements com.google.protobuf.Internal.EnumLite,
             com.google.protobuf.AbstractMessage.InternalOneOfEnum {
       CHAPTER_ID(3),
-      LEVEL(4),
+      LEVEL(1),
       PARAM_NOT_SET(0);
       private final int value;
       private ParamCase(int value) {
@@ -291,7 +291,7 @@ public final class LockedPersonallineDataOuterClass {
       public static ParamCase forNumber(int value) {
         switch (value) {
           case 3: return CHAPTER_ID;
-          case 4: return LEVEL;
+          case 1: return LEVEL;
           case 0: return PARAM_NOT_SET;
           default: return null;
         }
@@ -307,17 +307,6 @@ public final class LockedPersonallineDataOuterClass {
           paramCase_);
     }
 
-    public static final int PERSONAL_LINE_ID_FIELD_NUMBER = 1;
-    private int personalLineId_;
-    /**
-     * <code>uint32 personal_line_id = 1;</code>
-     * @return The personalLineId.
-     */
-    @java.lang.Override
-    public int getPersonalLineId() {
-      return personalLineId_;
-    }
-
     public static final int LOCK_REASON_FIELD_NUMBER = 2;
     private int lockReason_;
     /**
@@ -337,6 +326,17 @@ public final class LockedPersonallineDataOuterClass {
       return result == null ? emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData.LockReason.UNRECOGNIZED : result;
     }
 
+    public static final int PERSONAL_LINE_ID_FIELD_NUMBER = 13;
+    private int personalLineId_;
+    /**
+     * <code>uint32 personal_line_id = 13;</code>
+     * @return The personalLineId.
+     */
+    @java.lang.Override
+    public int getPersonalLineId() {
+      return personalLineId_;
+    }
+
     public static final int CHAPTER_ID_FIELD_NUMBER = 3;
     /**
      * <code>uint32 chapter_id = 3;</code>
@@ -358,22 +358,22 @@ public final class LockedPersonallineDataOuterClass {
       return 0;
     }
 
-    public static final int LEVEL_FIELD_NUMBER = 4;
+    public static final int LEVEL_FIELD_NUMBER = 1;
     /**
-     * <code>uint32 level = 4;</code>
+     * <code>uint32 level = 1;</code>
      * @return Whether the level field is set.
      */
     @java.lang.Override
     public boolean hasLevel() {
-      return paramCase_ == 4;
+      return paramCase_ == 1;
     }
     /**
-     * <code>uint32 level = 4;</code>
+     * <code>uint32 level = 1;</code>
      * @return The level.
      */
     @java.lang.Override
     public int getLevel() {
-      if (paramCase_ == 4) {
+      if (paramCase_ == 1) {
         return (java.lang.Integer) param_;
       }
       return 0;
@@ -393,8 +393,9 @@ public final class LockedPersonallineDataOuterClass {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (personalLineId_ != 0) {
-        output.writeUInt32(1, personalLineId_);
+      if (paramCase_ == 1) {
+        output.writeUInt32(
+            1, (int)((java.lang.Integer) param_));
       }
       if (lockReason_ != emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData.LockReason.LOCK_REASON_LEVEL.getNumber()) {
         output.writeEnum(2, lockReason_);
@@ -403,9 +404,8 @@ public final class LockedPersonallineDataOuterClass {
         output.writeUInt32(
             3, (int)((java.lang.Integer) param_));
       }
-      if (paramCase_ == 4) {
-        output.writeUInt32(
-            4, (int)((java.lang.Integer) param_));
+      if (personalLineId_ != 0) {
+        output.writeUInt32(13, personalLineId_);
       }
       unknownFields.writeTo(output);
     }
@@ -416,9 +416,10 @@ public final class LockedPersonallineDataOuterClass {
       if (size != -1) return size;
 
       size = 0;
-      if (personalLineId_ != 0) {
+      if (paramCase_ == 1) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(1, personalLineId_);
+          .computeUInt32Size(
+              1, (int)((java.lang.Integer) param_));
       }
       if (lockReason_ != emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData.LockReason.LOCK_REASON_LEVEL.getNumber()) {
         size += com.google.protobuf.CodedOutputStream
@@ -429,10 +430,9 @@ public final class LockedPersonallineDataOuterClass {
           .computeUInt32Size(
               3, (int)((java.lang.Integer) param_));
       }
-      if (paramCase_ == 4) {
+      if (personalLineId_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(
-              4, (int)((java.lang.Integer) param_));
+          .computeUInt32Size(13, personalLineId_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -449,16 +449,16 @@ public final class LockedPersonallineDataOuterClass {
       }
       emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData other = (emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData) obj;
 
+      if (lockReason_ != other.lockReason_) return false;
       if (getPersonalLineId()
           != other.getPersonalLineId()) return false;
-      if (lockReason_ != other.lockReason_) return false;
       if (!getParamCase().equals(other.getParamCase())) return false;
       switch (paramCase_) {
         case 3:
           if (getChapterId()
               != other.getChapterId()) return false;
           break;
-        case 4:
+        case 1:
           if (getLevel()
               != other.getLevel()) return false;
           break;
@@ -476,16 +476,16 @@ public final class LockedPersonallineDataOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + PERSONAL_LINE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getPersonalLineId();
       hash = (37 * hash) + LOCK_REASON_FIELD_NUMBER;
       hash = (53 * hash) + lockReason_;
+      hash = (37 * hash) + PERSONAL_LINE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getPersonalLineId();
       switch (paramCase_) {
         case 3:
           hash = (37 * hash) + CHAPTER_ID_FIELD_NUMBER;
           hash = (53 * hash) + getChapterId();
           break;
-        case 4:
+        case 1:
           hash = (37 * hash) + LEVEL_FIELD_NUMBER;
           hash = (53 * hash) + getLevel();
           break;
@@ -625,10 +625,10 @@ public final class LockedPersonallineDataOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        personalLineId_ = 0;
-
         lockReason_ = 0;
 
+        personalLineId_ = 0;
+
         paramCase_ = 0;
         param_ = null;
         return this;
@@ -657,12 +657,12 @@ public final class LockedPersonallineDataOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData buildPartial() {
         emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData result = new emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData(this);
-        result.personalLineId_ = personalLineId_;
         result.lockReason_ = lockReason_;
+        result.personalLineId_ = personalLineId_;
         if (paramCase_ == 3) {
           result.param_ = param_;
         }
-        if (paramCase_ == 4) {
+        if (paramCase_ == 1) {
           result.param_ = param_;
         }
         result.paramCase_ = paramCase_;
@@ -714,12 +714,12 @@ public final class LockedPersonallineDataOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData other) {
         if (other == emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData.getDefaultInstance()) return this;
-        if (other.getPersonalLineId() != 0) {
-          setPersonalLineId(other.getPersonalLineId());
-        }
         if (other.lockReason_ != 0) {
           setLockReasonValue(other.getLockReasonValue());
         }
+        if (other.getPersonalLineId() != 0) {
+          setPersonalLineId(other.getPersonalLineId());
+        }
         switch (other.getParamCase()) {
           case CHAPTER_ID: {
             setChapterId(other.getChapterId());
@@ -777,37 +777,6 @@ public final class LockedPersonallineDataOuterClass {
       }
 
 
-      private int personalLineId_ ;
-      /**
-       * <code>uint32 personal_line_id = 1;</code>
-       * @return The personalLineId.
-       */
-      @java.lang.Override
-      public int getPersonalLineId() {
-        return personalLineId_;
-      }
-      /**
-       * <code>uint32 personal_line_id = 1;</code>
-       * @param value The personalLineId to set.
-       * @return This builder for chaining.
-       */
-      public Builder setPersonalLineId(int value) {
-        
-        personalLineId_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 personal_line_id = 1;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearPersonalLineId() {
-        
-        personalLineId_ = 0;
-        onChanged();
-        return this;
-      }
-
       private int lockReason_ = 0;
       /**
        * <code>.LockedPersonallineData.LockReason lock_reason = 2;</code>
@@ -862,6 +831,37 @@ public final class LockedPersonallineDataOuterClass {
         return this;
       }
 
+      private int personalLineId_ ;
+      /**
+       * <code>uint32 personal_line_id = 13;</code>
+       * @return The personalLineId.
+       */
+      @java.lang.Override
+      public int getPersonalLineId() {
+        return personalLineId_;
+      }
+      /**
+       * <code>uint32 personal_line_id = 13;</code>
+       * @param value The personalLineId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPersonalLineId(int value) {
+        
+        personalLineId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 personal_line_id = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPersonalLineId() {
+        
+        personalLineId_ = 0;
+        onChanged();
+        return this;
+      }
+
       /**
        * <code>uint32 chapter_id = 3;</code>
        * @return Whether the chapterId field is set.
@@ -904,39 +904,39 @@ public final class LockedPersonallineDataOuterClass {
       }
 
       /**
-       * <code>uint32 level = 4;</code>
+       * <code>uint32 level = 1;</code>
        * @return Whether the level field is set.
        */
       public boolean hasLevel() {
-        return paramCase_ == 4;
+        return paramCase_ == 1;
       }
       /**
-       * <code>uint32 level = 4;</code>
+       * <code>uint32 level = 1;</code>
        * @return The level.
        */
       public int getLevel() {
-        if (paramCase_ == 4) {
+        if (paramCase_ == 1) {
           return (java.lang.Integer) param_;
         }
         return 0;
       }
       /**
-       * <code>uint32 level = 4;</code>
+       * <code>uint32 level = 1;</code>
        * @param value The level to set.
        * @return This builder for chaining.
        */
       public Builder setLevel(int value) {
-        paramCase_ = 4;
+        paramCase_ = 1;
         param_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 level = 4;</code>
+       * <code>uint32 level = 1;</code>
        * @return This builder for chaining.
        */
       public Builder clearLevel() {
-        if (paramCase_ == 4) {
+        if (paramCase_ == 1) {
           paramCase_ = 0;
           param_ = null;
           onChanged();
@@ -1011,10 +1011,10 @@ public final class LockedPersonallineDataOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\034LockedPersonallineData.proto\"\327\001\n\026Locke" +
-      "dPersonallineData\022\030\n\020personal_line_id\030\001 " +
-      "\001(\r\0227\n\013lock_reason\030\002 \001(\0162\".LockedPersona" +
-      "llineData.LockReason\022\024\n\nchapter_id\030\003 \001(\r" +
-      "H\000\022\017\n\005level\030\004 \001(\rH\000\":\n\nLockReason\022\025\n\021LOC" +
+      "dPersonallineData\0227\n\013lock_reason\030\002 \001(\0162\"" +
+      ".LockedPersonallineData.LockReason\022\030\n\020pe" +
+      "rsonal_line_id\030\r \001(\r\022\024\n\nchapter_id\030\003 \001(\r" +
+      "H\000\022\017\n\005level\030\001 \001(\rH\000\":\n\nLockReason\022\025\n\021LOC" +
       "K_REASON_LEVEL\020\000\022\025\n\021LOCK_REASON_QUEST\020\001B" +
       "\007\n\005paramB\033\n\031emu.grasscutter.net.protob\006p" +
       "roto3"
@@ -1028,7 +1028,7 @@ public final class LockedPersonallineDataOuterClass {
     internal_static_LockedPersonallineData_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_LockedPersonallineData_descriptor,
-        new java.lang.String[] { "PersonalLineId", "LockReason", "ChapterId", "Level", "Param", });
+        new java.lang.String[] { "LockReason", "PersonalLineId", "ChapterId", "Level", "Param", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java
index e4d46843..cf8002c0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java
@@ -63,7 +63,8 @@ public final class MailChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1498
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code MailChangeNotify}
@@ -438,7 +439,8 @@ public final class MailChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1498
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code MailChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MarkEntityInMinMapNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MarkEntityInMinMapNotifyOuterClass.java
index a905d983..0978163c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MarkEntityInMinMapNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MarkEntityInMinMapNotifyOuterClass.java
@@ -49,7 +49,8 @@ public final class MarkEntityInMinMapNotifyOuterClass {
    * <pre>
    * CmdId: 202
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code MarkEntityInMinMapNotify}
@@ -385,7 +386,8 @@ public final class MarkEntityInMinMapNotifyOuterClass {
      * <pre>
      * CmdId: 202
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code MarkEntityInMinMapNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MarkMapReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MarkMapReqOuterClass.java
index 7510c113..8ddbcfe0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MarkMapReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MarkMapReqOuterClass.java
@@ -63,7 +63,7 @@ public final class MarkMapReqOuterClass {
    * <pre>
    * CmdId: 3466
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -563,7 +563,7 @@ public final class MarkMapReqOuterClass {
      * <pre>
      * CmdId: 3466
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -1099,20 +1099,18 @@ public final class MarkMapReqOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\020MarkMapReq.proto\032\022MapMarkPoint.proto\032\017" +
-      "Operation.proto\"\301\001\n\nMarkMapReq\022\033\n\004mark\030\010" +
-      " \001(\0132\r.MapMarkPoint\022\032\n\003old\030\006 \001(\0132\r.MapMa" +
-      "rkPoint\022!\n\002op\030\t \001(\0162\025.MarkMapReq.Operati" +
-      "on\"W\n\tOperation\022\021\n\rOPERATION_ADD\020\000\022\021\n\rOP" +
-      "ERATION_MOD\020\001\022\021\n\rOPERATION_DEL\020\002\022\021\n\rOPER" +
-      "ATION_GET\020\003B\033\n\031emu.grasscutter.net.proto" +
-      "b\006proto3"
+      "\n\020MarkMapReq.proto\032\022MapMarkPoint.proto\"\301" +
+      "\001\n\nMarkMapReq\022\033\n\004mark\030\010 \001(\0132\r.MapMarkPoi" +
+      "nt\022\032\n\003old\030\006 \001(\0132\r.MapMarkPoint\022!\n\002op\030\t \001" +
+      "(\0162\025.MarkMapReq.Operation\"W\n\tOperation\022\021" +
+      "\n\rOPERATION_ADD\020\000\022\021\n\rOPERATION_MOD\020\001\022\021\n\r" +
+      "OPERATION_DEL\020\002\022\021\n\rOPERATION_GET\020\003B\033\n\031em" +
+      "u.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
           emu.grasscutter.net.proto.MapMarkPointOuterClass.getDescriptor(),
-          emu.grasscutter.net.proto.OperationOuterClass.getDescriptor(),
         });
     internal_static_MarkMapReq_descriptor =
       getDescriptor().getMessageTypes().get(0);
@@ -1121,7 +1119,6 @@ public final class MarkMapReqOuterClass {
         internal_static_MarkMapReq_descriptor,
         new java.lang.String[] { "Mark", "Old", "Op", });
     emu.grasscutter.net.proto.MapMarkPointOuterClass.getDescriptor();
-    emu.grasscutter.net.proto.OperationOuterClass.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MarkMapRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MarkMapRspOuterClass.java
index 3319a438..80c337ff 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MarkMapRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MarkMapRspOuterClass.java
@@ -52,7 +52,8 @@ public final class MarkMapRspOuterClass {
    * <pre>
    * CmdId: 3079
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code MarkMapRsp}
@@ -373,7 +374,8 @@ public final class MarkMapRspOuterClass {
      * <pre>
      * CmdId: 3079
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code MarkMapRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MarkNewNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MarkNewNotifyOuterClass.java
index 258fc31a..b9208d6e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MarkNewNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MarkNewNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class MarkNewNotifyOuterClass {
    * <pre>
    * CmdId: 1275
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code MarkNewNotify}
@@ -381,7 +382,8 @@ public final class MarkNewNotifyOuterClass {
      * <pre>
      * CmdId: 1275
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code MarkNewNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteInfoOuterClass.java
index 4a289631..25188c46 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteInfoOuterClass.java
@@ -3474,36 +3474,31 @@ public final class MaterialDeleteInfoOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\030MaterialDeleteInfo.proto\032\025CountDownDel" +
-      "ete.proto\032\024DateTimeDelete.proto\032\036DelayWe" +
-      "ekCountDownDelete.proto\"\357\005\n\022MaterialDele" +
-      "teInfo\022\031\n\021has_delete_config\030\001 \001(\010\022@\n\021cou" +
-      "nt_down_delete\030\002 \001(\0132#.MaterialDeleteInf" +
-      "o.CountDownDeleteH\000\0229\n\013date_delete\030\003 \001(\013" +
-      "2\".MaterialDeleteInfo.DateTimeDeleteH\000\022T" +
-      "\n\034delay_week_count_down_delete\030\004 \001(\0132,.M" +
-      "aterialDeleteInfo.DelayWeekCountDownDele" +
-      "teH\000\032\302\001\n\017CountDownDelete\022V\n\023delete_time_" +
-      "num_map\030\001 \003(\01329.MaterialDeleteInfo.Count" +
-      "DownDelete.DeleteTimeNumMapEntry\022\036\n\026conf" +
-      "ig_count_down_time\030\002 \001(\r\0327\n\025DeleteTimeNu" +
-      "mMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\r:\0028" +
-      "\001\032%\n\016DateTimeDelete\022\023\n\013delete_time\030\001 \001(\r" +
-      "\032\357\001\n\030DelayWeekCountDownDelete\022_\n\023delete_" +
-      "time_num_map\030\001 \003(\0132B.MaterialDeleteInfo." +
-      "DelayWeekCountDownDelete.DeleteTimeNumMa" +
-      "pEntry\022\031\n\021config_delay_week\030\002 \001(\r\022\036\n\026con" +
-      "fig_count_down_time\030\003 \001(\r\0327\n\025DeleteTimeN" +
-      "umMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\r:\002" +
-      "8\001B\r\n\013delete_infoB\033\n\031emu.grasscutter.net" +
-      ".protob\006proto3"
+      "\n\030MaterialDeleteInfo.proto\"\357\005\n\022MaterialD" +
+      "eleteInfo\022\031\n\021has_delete_config\030\001 \001(\010\022@\n\021" +
+      "count_down_delete\030\002 \001(\0132#.MaterialDelete" +
+      "Info.CountDownDeleteH\000\0229\n\013date_delete\030\003 " +
+      "\001(\0132\".MaterialDeleteInfo.DateTimeDeleteH" +
+      "\000\022T\n\034delay_week_count_down_delete\030\004 \001(\0132" +
+      ",.MaterialDeleteInfo.DelayWeekCountDownD" +
+      "eleteH\000\032\302\001\n\017CountDownDelete\022V\n\023delete_ti" +
+      "me_num_map\030\001 \003(\01329.MaterialDeleteInfo.Co" +
+      "untDownDelete.DeleteTimeNumMapEntry\022\036\n\026c" +
+      "onfig_count_down_time\030\002 \001(\r\0327\n\025DeleteTim" +
+      "eNumMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\r" +
+      ":\0028\001\032%\n\016DateTimeDelete\022\023\n\013delete_time\030\001 " +
+      "\001(\r\032\357\001\n\030DelayWeekCountDownDelete\022_\n\023dele" +
+      "te_time_num_map\030\001 \003(\0132B.MaterialDeleteIn" +
+      "fo.DelayWeekCountDownDelete.DeleteTimeNu" +
+      "mMapEntry\022\031\n\021config_delay_week\030\002 \001(\r\022\036\n\026" +
+      "config_count_down_time\030\003 \001(\r\0327\n\025DeleteTi" +
+      "meNumMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(" +
+      "\r:\0028\001B\r\n\013delete_infoB\033\n\031emu.grasscutter." +
+      "net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
-          emu.grasscutter.net.proto.CountDownDeleteOuterClass.getDescriptor(),
-          emu.grasscutter.net.proto.DateTimeDeleteOuterClass.getDescriptor(),
-          emu.grasscutter.net.proto.DelayWeekCountDownDeleteOuterClass.getDescriptor(),
         });
     internal_static_MaterialDeleteInfo_descriptor =
       getDescriptor().getMessageTypes().get(0);
@@ -3541,9 +3536,6 @@ public final class MaterialDeleteInfoOuterClass {
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_MaterialDeleteInfo_DelayWeekCountDownDelete_DeleteTimeNumMapEntry_descriptor,
         new java.lang.String[] { "Key", "Value", });
-    emu.grasscutter.net.proto.CountDownDeleteOuterClass.getDescriptor();
-    emu.grasscutter.net.proto.DateTimeDeleteOuterClass.getDescriptor();
-    emu.grasscutter.net.proto.DelayWeekCountDownDeleteOuterClass.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinReqOuterClass.java
index 30b2e4be..47cd2c7f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinReqOuterClass.java
@@ -34,7 +34,7 @@ public final class McoinExchangeHcoinReqOuterClass {
    * <pre>
    * CmdId: 616
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class McoinExchangeHcoinReqOuterClass {
      * <pre>
      * CmdId: 616
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinRspOuterClass.java
index 076d7db8..619a351b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinRspOuterClass.java
@@ -40,7 +40,8 @@ public final class McoinExchangeHcoinRspOuterClass {
    * <pre>
    * CmdId: 687
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code McoinExchangeHcoinRsp}
@@ -348,7 +349,8 @@ public final class McoinExchangeHcoinRspOuterClass {
      * <pre>
      * CmdId: 687
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code McoinExchangeHcoinRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleReqOuterClass.java
index bab3b4d6..99922216 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleReqOuterClass.java
@@ -19,160 +19,140 @@ public final class MusicGameSettleReqOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>uint32 music_basic_id = 14;</code>
-     * @return The musicBasicId.
+     * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+     * @return A list containing the unk2700GDPKOANEDEB.
      */
-    int getMusicBasicId();
-
+    java.util.List<java.lang.Integer> getUnk2700GDPKOANEDEBList();
     /**
-     * <code>uint32 score = 2;</code>
-     * @return The score.
+     * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+     * @return The count of unk2700GDPKOANEDEB.
      */
-    int getScore();
-
+    int getUnk2700GDPKOANEDEBCount();
     /**
-     * <code>uint32 combo = 10;</code>
-     * @return The combo.
+     * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+     * @param index The index of the element to return.
+     * @return The unk2700GDPKOANEDEB at the given index.
      */
-    int getCombo();
+    int getUnk2700GDPKOANEDEB(int index);
 
     /**
-     * <code>uint32 correct_hit = 8;</code>
-     * @return The correctHit.
+     * <code>uint32 Unk2700_NMHGADLANMM = 795;</code>
+     * @return The unk2700NMHGADLANMM.
      */
-    int getCorrectHit();
+    int getUnk2700NMHGADLANMM();
 
     /**
-     * <code>uint64 music_share_id = 11;</code>
-     * @return The musicShareId.
+     * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+     * @return A list containing the unk2700NNHGOCJLKFH.
      */
-    long getMusicShareId();
-
+    java.util.List<java.lang.Integer> getUnk2700NNHGOCJLKFHList();
     /**
-     * <pre>
-     * is_default_beatmap
-     * </pre>
-     *
-     * <code>bool KJNDJLBOJLM = 4;</code>
-     * @return The kJNDJLBOJLM.
+     * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+     * @return The count of unk2700NNHGOCJLKFH.
      */
-    boolean getKJNDJLBOJLM();
-
+    int getUnk2700NNHGOCJLKFHCount();
     /**
-     * <code>uint32 FBELCAFFGIJ = 3;</code>
-     * @return The fBELCAFFGIJ.
+     * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+     * @param index The index of the element to return.
+     * @return The unk2700NNHGOCJLKFH at the given index.
      */
-    int getFBELCAFFGIJ();
+    int getUnk2700NNHGOCJLKFH(int index);
 
     /**
-     * <code>uint32 OOFMAKIDFOL = 15;</code>
-     * @return The oOFMAKIDFOL.
+     * <code>uint32 Unk2700_NCHHEJNFECG = 15;</code>
+     * @return The unk2700NCHHEJNFECG.
      */
-    int getOOFMAKIDFOL();
+    int getUnk2700NCHHEJNFECG();
 
     /**
-     * <pre>
-     * beatmap_difficulty_level
-     * </pre>
-     *
-     * <code>uint32 HJPDEIMECHB = 1;</code>
-     * @return The hJPDEIMECHB.
+     * <code>uint32 score = 9;</code>
+     * @return The score.
      */
-    int getHJPDEIMECHB();
+    int getScore();
 
     /**
-     * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-     * @return A list containing the mNCMGANHCFI.
+     * <code>uint64 Unk2700_CEPGMKAHHCD = 6;</code>
+     * @return The unk2700CEPGMKAHHCD.
      */
-    java.util.List<java.lang.Integer> getMNCMGANHCFIList();
+    long getUnk2700CEPGMKAHHCD();
+
     /**
-     * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-     * @return The count of mNCMGANHCFI.
+     * <code>uint32 Unk2700_MMHHGALFHGA = 13;</code>
+     * @return The unk2700MMHHGALFHGA.
      */
-    int getMNCMGANHCFICount();
+    int getUnk2700MMHHGALFHGA();
+
     /**
-     * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-     * @param index The index of the element to return.
-     * @return The mNCMGANHCFI at the given index.
+     * <code>bool Unk2700_CBLIJHDFKHA = 422;</code>
+     * @return The unk2700CBLIJHDFKHA.
      */
-    int getMNCMGANHCFI(int index);
+    boolean getUnk2700CBLIJHDFKHA();
 
     /**
-     * <code>uint32 max_combo = 9;</code>
+     * <code>uint32 max_combo = 5;</code>
      * @return The maxCombo.
      */
     int getMaxCombo();
 
     /**
-     * <code>uint32 JJADNMELLAH = 1975;</code>
-     * @return The jJADNMELLAH.
+     * <code>uint32 Unk2700_FBLBGPHMLAL = 1058;</code>
+     * @return The unk2700FBLBGPHMLAL.
      */
-    int getJJADNMELLAH();
+    int getUnk2700FBLBGPHMLAL();
 
     /**
-     * <pre>
-     * detail_score
-     * </pre>
-     *
-     * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-     * @return A list containing the eIAGEEFABPO.
+     * <code>float speed = 409;</code>
+     * @return The speed.
      */
-    java.util.List<java.lang.Integer> getEIAGEEFABPOList();
+    float getSpeed();
+
     /**
-     * <pre>
-     * detail_score
-     * </pre>
-     *
-     * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-     * @return The count of eIAGEEFABPO.
+     * <code>bool Unk2700_IOKPIKJDEHG = 3;</code>
+     * @return The unk2700IOKPIKJDEHG.
      */
-    int getEIAGEEFABPOCount();
+    boolean getUnk2700IOKPIKJDEHG();
+
     /**
-     * <pre>
-     * detail_score
-     * </pre>
-     *
-     * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-     * @param index The index of the element to return.
-     * @return The eIAGEEFABPO at the given index.
+     * <code>uint32 combo = 1;</code>
+     * @return The combo.
      */
-    int getEIAGEEFABPO(int index);
+    int getCombo();
 
     /**
-     * <code>uint32 CPIFLFBHNJP = 1104;</code>
-     * @return The cPIFLFBHNJP.
+     * <code>uint32 music_basic_id = 7;</code>
+     * @return The musicBasicId.
      */
-    int getCPIFLFBHNJP();
+    int getMusicBasicId();
 
     /**
-     * <code>bool success = 998;</code>
-     * @return The success.
+     * <code>uint32 Unk2700_DIMBABOGNEM = 2;</code>
+     * @return The unk2700DIMBABOGNEM.
      */
-    boolean getSuccess();
+    int getUnk2700DIMBABOGNEM();
 
     /**
-     * <code>uint32 GGHBOMGJGFP = 268;</code>
-     * @return The gGHBOMGJGFP.
+     * <code>uint32 Unk2700_IOMOHEKJJLJ = 1953;</code>
+     * @return The unk2700IOMOHEKJJLJ.
      */
-    int getGGHBOMGJGFP();
+    int getUnk2700IOMOHEKJJLJ();
 
     /**
-     * <code>bool PFHCIHKCJFJ = 238;</code>
-     * @return The pFHCIHKCJFJ.
+     * <code>uint32 correct_hit = 14;</code>
+     * @return The correctHit.
      */
-    boolean getPFHCIHKCJFJ();
+    int getCorrectHit();
 
     /**
-     * <code>float speed = 887;</code>
-     * @return The speed.
+     * <code>bool Unk2700_LKJNLDJAGGL = 1285;</code>
+     * @return The unk2700LKJNLDJAGGL.
      */
-    float getSpeed();
+    boolean getUnk2700LKJNLDJAGGL();
   }
   /**
    * <pre>
-   * CmdId: 8745
+   * CmdId: 8892
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -188,8 +168,8 @@ public final class MusicGameSettleReqOuterClass {
       super(builder);
     }
     private MusicGameSettleReq() {
-      mNCMGANHCFI_ = emptyIntList();
-      eIAGEEFABPO_ = emptyIntList();
+      unk2700GDPKOANEDEB_ = emptyIntList();
+      unk2700NNHGOCJLKFH_ = emptyIntList();
     }
 
     @java.lang.Override
@@ -225,124 +205,124 @@ public final class MusicGameSettleReqOuterClass {
               break;
             case 8: {
 
-              hJPDEIMECHB_ = input.readUInt32();
+              combo_ = input.readUInt32();
               break;
             }
             case 16: {
 
-              score_ = input.readUInt32();
+              unk2700DIMBABOGNEM_ = input.readUInt32();
               break;
             }
             case 24: {
 
-              fBELCAFFGIJ_ = input.readUInt32();
+              unk2700IOKPIKJDEHG_ = input.readBool();
               break;
             }
             case 32: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                unk2700NNHGOCJLKFH_ = newIntList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              unk2700NNHGOCJLKFH_.addInt(input.readUInt32());
+              break;
+            }
+            case 34: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+                unk2700NNHGOCJLKFH_ = newIntList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                unk2700NNHGOCJLKFH_.addInt(input.readUInt32());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 40: {
 
-              kJNDJLBOJLM_ = input.readBool();
+              maxCombo_ = input.readUInt32();
               break;
             }
-            case 64: {
+            case 48: {
 
-              correctHit_ = input.readUInt32();
+              unk2700CEPGMKAHHCD_ = input.readUInt64();
+              break;
+            }
+            case 56: {
+
+              musicBasicId_ = input.readUInt32();
               break;
             }
             case 72: {
 
-              maxCombo_ = input.readUInt32();
+              score_ = input.readUInt32();
               break;
             }
-            case 80: {
+            case 104: {
 
-              combo_ = input.readUInt32();
+              unk2700MMHHGALFHGA_ = input.readUInt32();
               break;
             }
-            case 88: {
+            case 112: {
 
-              musicShareId_ = input.readUInt64();
+              correctHit_ = input.readUInt32();
               break;
             }
-            case 104: {
+            case 120: {
+
+              unk2700NCHHEJNFECG_ = input.readUInt32();
+              break;
+            }
+            case 3072: {
               if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                mNCMGANHCFI_ = newIntList();
+                unk2700GDPKOANEDEB_ = newIntList();
                 mutable_bitField0_ |= 0x00000001;
               }
-              mNCMGANHCFI_.addInt(input.readUInt32());
+              unk2700GDPKOANEDEB_.addInt(input.readUInt32());
               break;
             }
-            case 106: {
+            case 3074: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
               if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
-                mNCMGANHCFI_ = newIntList();
+                unk2700GDPKOANEDEB_ = newIntList();
                 mutable_bitField0_ |= 0x00000001;
               }
               while (input.getBytesUntilLimit() > 0) {
-                mNCMGANHCFI_.addInt(input.readUInt32());
+                unk2700GDPKOANEDEB_.addInt(input.readUInt32());
               }
               input.popLimit(limit);
               break;
             }
-            case 112: {
+            case 3277: {
 
-              musicBasicId_ = input.readUInt32();
-              break;
-            }
-            case 120: {
-
-              oOFMAKIDFOL_ = input.readUInt32();
-              break;
-            }
-            case 1904: {
-
-              pFHCIHKCJFJ_ = input.readBool();
+              speed_ = input.readFloat();
               break;
             }
-            case 2144: {
+            case 3376: {
 
-              gGHBOMGJGFP_ = input.readUInt32();
+              unk2700CBLIJHDFKHA_ = input.readBool();
               break;
             }
-            case 7101: {
+            case 6360: {
 
-              speed_ = input.readFloat();
+              unk2700NMHGADLANMM_ = input.readUInt32();
               break;
             }
-            case 7984: {
+            case 8464: {
 
-              success_ = input.readBool();
+              unk2700FBLBGPHMLAL_ = input.readUInt32();
               break;
             }
-            case 8832: {
+            case 10280: {
 
-              cPIFLFBHNJP_ = input.readUInt32();
-              break;
-            }
-            case 9368: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
-                eIAGEEFABPO_ = newIntList();
-                mutable_bitField0_ |= 0x00000002;
-              }
-              eIAGEEFABPO_.addInt(input.readUInt32());
-              break;
-            }
-            case 9370: {
-              int length = input.readRawVarint32();
-              int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
-                eIAGEEFABPO_ = newIntList();
-                mutable_bitField0_ |= 0x00000002;
-              }
-              while (input.getBytesUntilLimit() > 0) {
-                eIAGEEFABPO_.addInt(input.readUInt32());
-              }
-              input.popLimit(limit);
+              unk2700LKJNLDJAGGL_ = input.readBool();
               break;
             }
-            case 15800: {
+            case 15624: {
 
-              jJADNMELLAH_ = input.readUInt32();
+              unk2700IOMOHEKJJLJ_ = input.readUInt32();
               break;
             }
             default: {
@@ -360,11 +340,11 @@ public final class MusicGameSettleReqOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          mNCMGANHCFI_.makeImmutable(); // C
-        }
         if (((mutable_bitField0_ & 0x00000002) != 0)) {
-          eIAGEEFABPO_.makeImmutable(); // C
+          unk2700NNHGOCJLKFH_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          unk2700GDPKOANEDEB_.makeImmutable(); // C
         }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
@@ -383,145 +363,132 @@ public final class MusicGameSettleReqOuterClass {
               emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq.class, emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq.Builder.class);
     }
 
-    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 14;
-    private int musicBasicId_;
+    public static final int UNK2700_GDPKOANEDEB_FIELD_NUMBER = 384;
+    private com.google.protobuf.Internal.IntList unk2700GDPKOANEDEB_;
     /**
-     * <code>uint32 music_basic_id = 14;</code>
-     * @return The musicBasicId.
+     * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+     * @return A list containing the unk2700GDPKOANEDEB.
      */
     @java.lang.Override
-    public int getMusicBasicId() {
-      return musicBasicId_;
+    public java.util.List<java.lang.Integer>
+        getUnk2700GDPKOANEDEBList() {
+      return unk2700GDPKOANEDEB_;
     }
-
-    public static final int SCORE_FIELD_NUMBER = 2;
-    private int score_;
     /**
-     * <code>uint32 score = 2;</code>
-     * @return The score.
+     * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+     * @return The count of unk2700GDPKOANEDEB.
      */
-    @java.lang.Override
-    public int getScore() {
-      return score_;
+    public int getUnk2700GDPKOANEDEBCount() {
+      return unk2700GDPKOANEDEB_.size();
     }
-
-    public static final int COMBO_FIELD_NUMBER = 10;
-    private int combo_;
     /**
-     * <code>uint32 combo = 10;</code>
-     * @return The combo.
+     * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+     * @param index The index of the element to return.
+     * @return The unk2700GDPKOANEDEB at the given index.
      */
-    @java.lang.Override
-    public int getCombo() {
-      return combo_;
+    public int getUnk2700GDPKOANEDEB(int index) {
+      return unk2700GDPKOANEDEB_.getInt(index);
     }
+    private int unk2700GDPKOANEDEBMemoizedSerializedSize = -1;
 
-    public static final int CORRECT_HIT_FIELD_NUMBER = 8;
-    private int correctHit_;
+    public static final int UNK2700_NMHGADLANMM_FIELD_NUMBER = 795;
+    private int unk2700NMHGADLANMM_;
     /**
-     * <code>uint32 correct_hit = 8;</code>
-     * @return The correctHit.
+     * <code>uint32 Unk2700_NMHGADLANMM = 795;</code>
+     * @return The unk2700NMHGADLANMM.
      */
     @java.lang.Override
-    public int getCorrectHit() {
-      return correctHit_;
+    public int getUnk2700NMHGADLANMM() {
+      return unk2700NMHGADLANMM_;
     }
 
-    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 11;
-    private long musicShareId_;
+    public static final int UNK2700_NNHGOCJLKFH_FIELD_NUMBER = 4;
+    private com.google.protobuf.Internal.IntList unk2700NNHGOCJLKFH_;
     /**
-     * <code>uint64 music_share_id = 11;</code>
-     * @return The musicShareId.
+     * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+     * @return A list containing the unk2700NNHGOCJLKFH.
      */
     @java.lang.Override
-    public long getMusicShareId() {
-      return musicShareId_;
+    public java.util.List<java.lang.Integer>
+        getUnk2700NNHGOCJLKFHList() {
+      return unk2700NNHGOCJLKFH_;
     }
-
-    public static final int KJNDJLBOJLM_FIELD_NUMBER = 4;
-    private boolean kJNDJLBOJLM_;
     /**
-     * <pre>
-     * is_default_beatmap
-     * </pre>
-     *
-     * <code>bool KJNDJLBOJLM = 4;</code>
-     * @return The kJNDJLBOJLM.
+     * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+     * @return The count of unk2700NNHGOCJLKFH.
      */
-    @java.lang.Override
-    public boolean getKJNDJLBOJLM() {
-      return kJNDJLBOJLM_;
+    public int getUnk2700NNHGOCJLKFHCount() {
+      return unk2700NNHGOCJLKFH_.size();
     }
-
-    public static final int FBELCAFFGIJ_FIELD_NUMBER = 3;
-    private int fBELCAFFGIJ_;
     /**
-     * <code>uint32 FBELCAFFGIJ = 3;</code>
-     * @return The fBELCAFFGIJ.
+     * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+     * @param index The index of the element to return.
+     * @return The unk2700NNHGOCJLKFH at the given index.
      */
-    @java.lang.Override
-    public int getFBELCAFFGIJ() {
-      return fBELCAFFGIJ_;
+    public int getUnk2700NNHGOCJLKFH(int index) {
+      return unk2700NNHGOCJLKFH_.getInt(index);
     }
+    private int unk2700NNHGOCJLKFHMemoizedSerializedSize = -1;
 
-    public static final int OOFMAKIDFOL_FIELD_NUMBER = 15;
-    private int oOFMAKIDFOL_;
+    public static final int UNK2700_NCHHEJNFECG_FIELD_NUMBER = 15;
+    private int unk2700NCHHEJNFECG_;
     /**
-     * <code>uint32 OOFMAKIDFOL = 15;</code>
-     * @return The oOFMAKIDFOL.
+     * <code>uint32 Unk2700_NCHHEJNFECG = 15;</code>
+     * @return The unk2700NCHHEJNFECG.
      */
     @java.lang.Override
-    public int getOOFMAKIDFOL() {
-      return oOFMAKIDFOL_;
+    public int getUnk2700NCHHEJNFECG() {
+      return unk2700NCHHEJNFECG_;
     }
 
-    public static final int HJPDEIMECHB_FIELD_NUMBER = 1;
-    private int hJPDEIMECHB_;
+    public static final int SCORE_FIELD_NUMBER = 9;
+    private int score_;
     /**
-     * <pre>
-     * beatmap_difficulty_level
-     * </pre>
-     *
-     * <code>uint32 HJPDEIMECHB = 1;</code>
-     * @return The hJPDEIMECHB.
+     * <code>uint32 score = 9;</code>
+     * @return The score.
      */
     @java.lang.Override
-    public int getHJPDEIMECHB() {
-      return hJPDEIMECHB_;
+    public int getScore() {
+      return score_;
     }
 
-    public static final int MNCMGANHCFI_FIELD_NUMBER = 13;
-    private com.google.protobuf.Internal.IntList mNCMGANHCFI_;
+    public static final int UNK2700_CEPGMKAHHCD_FIELD_NUMBER = 6;
+    private long unk2700CEPGMKAHHCD_;
     /**
-     * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-     * @return A list containing the mNCMGANHCFI.
+     * <code>uint64 Unk2700_CEPGMKAHHCD = 6;</code>
+     * @return The unk2700CEPGMKAHHCD.
      */
     @java.lang.Override
-    public java.util.List<java.lang.Integer>
-        getMNCMGANHCFIList() {
-      return mNCMGANHCFI_;
+    public long getUnk2700CEPGMKAHHCD() {
+      return unk2700CEPGMKAHHCD_;
     }
+
+    public static final int UNK2700_MMHHGALFHGA_FIELD_NUMBER = 13;
+    private int unk2700MMHHGALFHGA_;
     /**
-     * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-     * @return The count of mNCMGANHCFI.
+     * <code>uint32 Unk2700_MMHHGALFHGA = 13;</code>
+     * @return The unk2700MMHHGALFHGA.
      */
-    public int getMNCMGANHCFICount() {
-      return mNCMGANHCFI_.size();
+    @java.lang.Override
+    public int getUnk2700MMHHGALFHGA() {
+      return unk2700MMHHGALFHGA_;
     }
+
+    public static final int UNK2700_CBLIJHDFKHA_FIELD_NUMBER = 422;
+    private boolean unk2700CBLIJHDFKHA_;
     /**
-     * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-     * @param index The index of the element to return.
-     * @return The mNCMGANHCFI at the given index.
+     * <code>bool Unk2700_CBLIJHDFKHA = 422;</code>
+     * @return The unk2700CBLIJHDFKHA.
      */
-    public int getMNCMGANHCFI(int index) {
-      return mNCMGANHCFI_.getInt(index);
+    @java.lang.Override
+    public boolean getUnk2700CBLIJHDFKHA() {
+      return unk2700CBLIJHDFKHA_;
     }
-    private int mNCMGANHCFIMemoizedSerializedSize = -1;
 
-    public static final int MAX_COMBO_FIELD_NUMBER = 9;
+    public static final int MAX_COMBO_FIELD_NUMBER = 5;
     private int maxCombo_;
     /**
-     * <code>uint32 max_combo = 9;</code>
+     * <code>uint32 max_combo = 5;</code>
      * @return The maxCombo.
      */
     @java.lang.Override
@@ -529,110 +496,103 @@ public final class MusicGameSettleReqOuterClass {
       return maxCombo_;
     }
 
-    public static final int JJADNMELLAH_FIELD_NUMBER = 1975;
-    private int jJADNMELLAH_;
+    public static final int UNK2700_FBLBGPHMLAL_FIELD_NUMBER = 1058;
+    private int unk2700FBLBGPHMLAL_;
     /**
-     * <code>uint32 JJADNMELLAH = 1975;</code>
-     * @return The jJADNMELLAH.
+     * <code>uint32 Unk2700_FBLBGPHMLAL = 1058;</code>
+     * @return The unk2700FBLBGPHMLAL.
      */
     @java.lang.Override
-    public int getJJADNMELLAH() {
-      return jJADNMELLAH_;
+    public int getUnk2700FBLBGPHMLAL() {
+      return unk2700FBLBGPHMLAL_;
     }
 
-    public static final int EIAGEEFABPO_FIELD_NUMBER = 1171;
-    private com.google.protobuf.Internal.IntList eIAGEEFABPO_;
+    public static final int SPEED_FIELD_NUMBER = 409;
+    private float speed_;
     /**
-     * <pre>
-     * detail_score
-     * </pre>
-     *
-     * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-     * @return A list containing the eIAGEEFABPO.
+     * <code>float speed = 409;</code>
+     * @return The speed.
      */
     @java.lang.Override
-    public java.util.List<java.lang.Integer>
-        getEIAGEEFABPOList() {
-      return eIAGEEFABPO_;
+    public float getSpeed() {
+      return speed_;
     }
+
+    public static final int UNK2700_IOKPIKJDEHG_FIELD_NUMBER = 3;
+    private boolean unk2700IOKPIKJDEHG_;
     /**
-     * <pre>
-     * detail_score
-     * </pre>
-     *
-     * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-     * @return The count of eIAGEEFABPO.
+     * <code>bool Unk2700_IOKPIKJDEHG = 3;</code>
+     * @return The unk2700IOKPIKJDEHG.
      */
-    public int getEIAGEEFABPOCount() {
-      return eIAGEEFABPO_.size();
+    @java.lang.Override
+    public boolean getUnk2700IOKPIKJDEHG() {
+      return unk2700IOKPIKJDEHG_;
     }
+
+    public static final int COMBO_FIELD_NUMBER = 1;
+    private int combo_;
     /**
-     * <pre>
-     * detail_score
-     * </pre>
-     *
-     * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-     * @param index The index of the element to return.
-     * @return The eIAGEEFABPO at the given index.
+     * <code>uint32 combo = 1;</code>
+     * @return The combo.
      */
-    public int getEIAGEEFABPO(int index) {
-      return eIAGEEFABPO_.getInt(index);
+    @java.lang.Override
+    public int getCombo() {
+      return combo_;
     }
-    private int eIAGEEFABPOMemoizedSerializedSize = -1;
 
-    public static final int CPIFLFBHNJP_FIELD_NUMBER = 1104;
-    private int cPIFLFBHNJP_;
+    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 7;
+    private int musicBasicId_;
     /**
-     * <code>uint32 CPIFLFBHNJP = 1104;</code>
-     * @return The cPIFLFBHNJP.
+     * <code>uint32 music_basic_id = 7;</code>
+     * @return The musicBasicId.
      */
     @java.lang.Override
-    public int getCPIFLFBHNJP() {
-      return cPIFLFBHNJP_;
+    public int getMusicBasicId() {
+      return musicBasicId_;
     }
 
-    public static final int SUCCESS_FIELD_NUMBER = 998;
-    private boolean success_;
+    public static final int UNK2700_DIMBABOGNEM_FIELD_NUMBER = 2;
+    private int unk2700DIMBABOGNEM_;
     /**
-     * <code>bool success = 998;</code>
-     * @return The success.
+     * <code>uint32 Unk2700_DIMBABOGNEM = 2;</code>
+     * @return The unk2700DIMBABOGNEM.
      */
     @java.lang.Override
-    public boolean getSuccess() {
-      return success_;
+    public int getUnk2700DIMBABOGNEM() {
+      return unk2700DIMBABOGNEM_;
     }
 
-    public static final int GGHBOMGJGFP_FIELD_NUMBER = 268;
-    private int gGHBOMGJGFP_;
+    public static final int UNK2700_IOMOHEKJJLJ_FIELD_NUMBER = 1953;
+    private int unk2700IOMOHEKJJLJ_;
     /**
-     * <code>uint32 GGHBOMGJGFP = 268;</code>
-     * @return The gGHBOMGJGFP.
+     * <code>uint32 Unk2700_IOMOHEKJJLJ = 1953;</code>
+     * @return The unk2700IOMOHEKJJLJ.
      */
     @java.lang.Override
-    public int getGGHBOMGJGFP() {
-      return gGHBOMGJGFP_;
+    public int getUnk2700IOMOHEKJJLJ() {
+      return unk2700IOMOHEKJJLJ_;
     }
 
-    public static final int PFHCIHKCJFJ_FIELD_NUMBER = 238;
-    private boolean pFHCIHKCJFJ_;
+    public static final int CORRECT_HIT_FIELD_NUMBER = 14;
+    private int correctHit_;
     /**
-     * <code>bool PFHCIHKCJFJ = 238;</code>
-     * @return The pFHCIHKCJFJ.
+     * <code>uint32 correct_hit = 14;</code>
+     * @return The correctHit.
      */
     @java.lang.Override
-    public boolean getPFHCIHKCJFJ() {
-      return pFHCIHKCJFJ_;
+    public int getCorrectHit() {
+      return correctHit_;
     }
 
-    public static final int SPEED_FIELD_NUMBER = 887;
-    private float speed_;
+    public static final int UNK2700_LKJNLDJAGGL_FIELD_NUMBER = 1285;
+    private boolean unk2700LKJNLDJAGGL_;
     /**
-     * <code>float speed = 887;</code>
-     * @return The speed.
+     * <code>bool Unk2700_LKJNLDJAGGL = 1285;</code>
+     * @return The unk2700LKJNLDJAGGL.
      */
     @java.lang.Override
-    public float getSpeed() {
-      return speed_;
+    public boolean getUnk2700LKJNLDJAGGL() {
+      return unk2700LKJNLDJAGGL_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -650,67 +610,67 @@ public final class MusicGameSettleReqOuterClass {
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
       getSerializedSize();
-      if (hJPDEIMECHB_ != 0) {
-        output.writeUInt32(1, hJPDEIMECHB_);
+      if (combo_ != 0) {
+        output.writeUInt32(1, combo_);
       }
-      if (score_ != 0) {
-        output.writeUInt32(2, score_);
+      if (unk2700DIMBABOGNEM_ != 0) {
+        output.writeUInt32(2, unk2700DIMBABOGNEM_);
       }
-      if (fBELCAFFGIJ_ != 0) {
-        output.writeUInt32(3, fBELCAFFGIJ_);
+      if (unk2700IOKPIKJDEHG_ != false) {
+        output.writeBool(3, unk2700IOKPIKJDEHG_);
       }
-      if (kJNDJLBOJLM_ != false) {
-        output.writeBool(4, kJNDJLBOJLM_);
+      if (getUnk2700NNHGOCJLKFHList().size() > 0) {
+        output.writeUInt32NoTag(34);
+        output.writeUInt32NoTag(unk2700NNHGOCJLKFHMemoizedSerializedSize);
       }
-      if (correctHit_ != 0) {
-        output.writeUInt32(8, correctHit_);
+      for (int i = 0; i < unk2700NNHGOCJLKFH_.size(); i++) {
+        output.writeUInt32NoTag(unk2700NNHGOCJLKFH_.getInt(i));
       }
       if (maxCombo_ != 0) {
-        output.writeUInt32(9, maxCombo_);
+        output.writeUInt32(5, maxCombo_);
       }
-      if (combo_ != 0) {
-        output.writeUInt32(10, combo_);
+      if (unk2700CEPGMKAHHCD_ != 0L) {
+        output.writeUInt64(6, unk2700CEPGMKAHHCD_);
       }
-      if (musicShareId_ != 0L) {
-        output.writeUInt64(11, musicShareId_);
+      if (musicBasicId_ != 0) {
+        output.writeUInt32(7, musicBasicId_);
       }
-      if (getMNCMGANHCFIList().size() > 0) {
-        output.writeUInt32NoTag(106);
-        output.writeUInt32NoTag(mNCMGANHCFIMemoizedSerializedSize);
+      if (score_ != 0) {
+        output.writeUInt32(9, score_);
       }
-      for (int i = 0; i < mNCMGANHCFI_.size(); i++) {
-        output.writeUInt32NoTag(mNCMGANHCFI_.getInt(i));
+      if (unk2700MMHHGALFHGA_ != 0) {
+        output.writeUInt32(13, unk2700MMHHGALFHGA_);
       }
-      if (musicBasicId_ != 0) {
-        output.writeUInt32(14, musicBasicId_);
+      if (correctHit_ != 0) {
+        output.writeUInt32(14, correctHit_);
       }
-      if (oOFMAKIDFOL_ != 0) {
-        output.writeUInt32(15, oOFMAKIDFOL_);
+      if (unk2700NCHHEJNFECG_ != 0) {
+        output.writeUInt32(15, unk2700NCHHEJNFECG_);
       }
-      if (pFHCIHKCJFJ_ != false) {
-        output.writeBool(238, pFHCIHKCJFJ_);
+      if (getUnk2700GDPKOANEDEBList().size() > 0) {
+        output.writeUInt32NoTag(3074);
+        output.writeUInt32NoTag(unk2700GDPKOANEDEBMemoizedSerializedSize);
       }
-      if (gGHBOMGJGFP_ != 0) {
-        output.writeUInt32(268, gGHBOMGJGFP_);
+      for (int i = 0; i < unk2700GDPKOANEDEB_.size(); i++) {
+        output.writeUInt32NoTag(unk2700GDPKOANEDEB_.getInt(i));
       }
       if (speed_ != 0F) {
-        output.writeFloat(887, speed_);
+        output.writeFloat(409, speed_);
       }
-      if (success_ != false) {
-        output.writeBool(998, success_);
+      if (unk2700CBLIJHDFKHA_ != false) {
+        output.writeBool(422, unk2700CBLIJHDFKHA_);
       }
-      if (cPIFLFBHNJP_ != 0) {
-        output.writeUInt32(1104, cPIFLFBHNJP_);
+      if (unk2700NMHGADLANMM_ != 0) {
+        output.writeUInt32(795, unk2700NMHGADLANMM_);
       }
-      if (getEIAGEEFABPOList().size() > 0) {
-        output.writeUInt32NoTag(9370);
-        output.writeUInt32NoTag(eIAGEEFABPOMemoizedSerializedSize);
+      if (unk2700FBLBGPHMLAL_ != 0) {
+        output.writeUInt32(1058, unk2700FBLBGPHMLAL_);
       }
-      for (int i = 0; i < eIAGEEFABPO_.size(); i++) {
-        output.writeUInt32NoTag(eIAGEEFABPO_.getInt(i));
+      if (unk2700LKJNLDJAGGL_ != false) {
+        output.writeBool(1285, unk2700LKJNLDJAGGL_);
       }
-      if (jJADNMELLAH_ != 0) {
-        output.writeUInt32(1975, jJADNMELLAH_);
+      if (unk2700IOMOHEKJJLJ_ != 0) {
+        output.writeUInt32(1953, unk2700IOMOHEKJJLJ_);
       }
       unknownFields.writeTo(output);
     }
@@ -721,97 +681,97 @@ public final class MusicGameSettleReqOuterClass {
       if (size != -1) return size;
 
       size = 0;
-      if (hJPDEIMECHB_ != 0) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(1, hJPDEIMECHB_);
-      }
-      if (score_ != 0) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, score_);
-      }
-      if (fBELCAFFGIJ_ != 0) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(3, fBELCAFFGIJ_);
-      }
-      if (kJNDJLBOJLM_ != false) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(4, kJNDJLBOJLM_);
-      }
-      if (correctHit_ != 0) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(8, correctHit_);
-      }
-      if (maxCombo_ != 0) {
+      if (combo_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(9, maxCombo_);
+          .computeUInt32Size(1, combo_);
       }
-      if (combo_ != 0) {
+      if (unk2700DIMBABOGNEM_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(10, combo_);
+          .computeUInt32Size(2, unk2700DIMBABOGNEM_);
       }
-      if (musicShareId_ != 0L) {
+      if (unk2700IOKPIKJDEHG_ != false) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt64Size(11, musicShareId_);
+          .computeBoolSize(3, unk2700IOKPIKJDEHG_);
       }
       {
         int dataSize = 0;
-        for (int i = 0; i < mNCMGANHCFI_.size(); i++) {
+        for (int i = 0; i < unk2700NNHGOCJLKFH_.size(); i++) {
           dataSize += com.google.protobuf.CodedOutputStream
-            .computeUInt32SizeNoTag(mNCMGANHCFI_.getInt(i));
+            .computeUInt32SizeNoTag(unk2700NNHGOCJLKFH_.getInt(i));
         }
         size += dataSize;
-        if (!getMNCMGANHCFIList().isEmpty()) {
+        if (!getUnk2700NNHGOCJLKFHList().isEmpty()) {
           size += 1;
           size += com.google.protobuf.CodedOutputStream
               .computeInt32SizeNoTag(dataSize);
         }
-        mNCMGANHCFIMemoizedSerializedSize = dataSize;
+        unk2700NNHGOCJLKFHMemoizedSerializedSize = dataSize;
       }
-      if (musicBasicId_ != 0) {
+      if (maxCombo_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(14, musicBasicId_);
+          .computeUInt32Size(5, maxCombo_);
       }
-      if (oOFMAKIDFOL_ != 0) {
+      if (unk2700CEPGMKAHHCD_ != 0L) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(15, oOFMAKIDFOL_);
+          .computeUInt64Size(6, unk2700CEPGMKAHHCD_);
       }
-      if (pFHCIHKCJFJ_ != false) {
+      if (musicBasicId_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(238, pFHCIHKCJFJ_);
+          .computeUInt32Size(7, musicBasicId_);
       }
-      if (gGHBOMGJGFP_ != 0) {
+      if (score_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(268, gGHBOMGJGFP_);
+          .computeUInt32Size(9, score_);
       }
-      if (speed_ != 0F) {
+      if (unk2700MMHHGALFHGA_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeFloatSize(887, speed_);
+          .computeUInt32Size(13, unk2700MMHHGALFHGA_);
       }
-      if (success_ != false) {
+      if (correctHit_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(998, success_);
+          .computeUInt32Size(14, correctHit_);
       }
-      if (cPIFLFBHNJP_ != 0) {
+      if (unk2700NCHHEJNFECG_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(1104, cPIFLFBHNJP_);
+          .computeUInt32Size(15, unk2700NCHHEJNFECG_);
       }
       {
         int dataSize = 0;
-        for (int i = 0; i < eIAGEEFABPO_.size(); i++) {
+        for (int i = 0; i < unk2700GDPKOANEDEB_.size(); i++) {
           dataSize += com.google.protobuf.CodedOutputStream
-            .computeUInt32SizeNoTag(eIAGEEFABPO_.getInt(i));
+            .computeUInt32SizeNoTag(unk2700GDPKOANEDEB_.getInt(i));
         }
         size += dataSize;
-        if (!getEIAGEEFABPOList().isEmpty()) {
+        if (!getUnk2700GDPKOANEDEBList().isEmpty()) {
           size += 2;
           size += com.google.protobuf.CodedOutputStream
               .computeInt32SizeNoTag(dataSize);
         }
-        eIAGEEFABPOMemoizedSerializedSize = dataSize;
+        unk2700GDPKOANEDEBMemoizedSerializedSize = dataSize;
+      }
+      if (speed_ != 0F) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeFloatSize(409, speed_);
       }
-      if (jJADNMELLAH_ != 0) {
+      if (unk2700CBLIJHDFKHA_ != false) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(1975, jJADNMELLAH_);
+          .computeBoolSize(422, unk2700CBLIJHDFKHA_);
+      }
+      if (unk2700NMHGADLANMM_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(795, unk2700NMHGADLANMM_);
+      }
+      if (unk2700FBLBGPHMLAL_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(1058, unk2700FBLBGPHMLAL_);
+      }
+      if (unk2700LKJNLDJAGGL_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(1285, unk2700LKJNLDJAGGL_);
+      }
+      if (unk2700IOMOHEKJJLJ_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(1953, unk2700IOMOHEKJJLJ_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -828,43 +788,43 @@ public final class MusicGameSettleReqOuterClass {
       }
       emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq other = (emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq) obj;
 
-      if (getMusicBasicId()
-          != other.getMusicBasicId()) return false;
+      if (!getUnk2700GDPKOANEDEBList()
+          .equals(other.getUnk2700GDPKOANEDEBList())) return false;
+      if (getUnk2700NMHGADLANMM()
+          != other.getUnk2700NMHGADLANMM()) return false;
+      if (!getUnk2700NNHGOCJLKFHList()
+          .equals(other.getUnk2700NNHGOCJLKFHList())) return false;
+      if (getUnk2700NCHHEJNFECG()
+          != other.getUnk2700NCHHEJNFECG()) return false;
       if (getScore()
           != other.getScore()) return false;
-      if (getCombo()
-          != other.getCombo()) return false;
-      if (getCorrectHit()
-          != other.getCorrectHit()) return false;
-      if (getMusicShareId()
-          != other.getMusicShareId()) return false;
-      if (getKJNDJLBOJLM()
-          != other.getKJNDJLBOJLM()) return false;
-      if (getFBELCAFFGIJ()
-          != other.getFBELCAFFGIJ()) return false;
-      if (getOOFMAKIDFOL()
-          != other.getOOFMAKIDFOL()) return false;
-      if (getHJPDEIMECHB()
-          != other.getHJPDEIMECHB()) return false;
-      if (!getMNCMGANHCFIList()
-          .equals(other.getMNCMGANHCFIList())) return false;
+      if (getUnk2700CEPGMKAHHCD()
+          != other.getUnk2700CEPGMKAHHCD()) return false;
+      if (getUnk2700MMHHGALFHGA()
+          != other.getUnk2700MMHHGALFHGA()) return false;
+      if (getUnk2700CBLIJHDFKHA()
+          != other.getUnk2700CBLIJHDFKHA()) return false;
       if (getMaxCombo()
           != other.getMaxCombo()) return false;
-      if (getJJADNMELLAH()
-          != other.getJJADNMELLAH()) return false;
-      if (!getEIAGEEFABPOList()
-          .equals(other.getEIAGEEFABPOList())) return false;
-      if (getCPIFLFBHNJP()
-          != other.getCPIFLFBHNJP()) return false;
-      if (getSuccess()
-          != other.getSuccess()) return false;
-      if (getGGHBOMGJGFP()
-          != other.getGGHBOMGJGFP()) return false;
-      if (getPFHCIHKCJFJ()
-          != other.getPFHCIHKCJFJ()) return false;
+      if (getUnk2700FBLBGPHMLAL()
+          != other.getUnk2700FBLBGPHMLAL()) return false;
       if (java.lang.Float.floatToIntBits(getSpeed())
           != java.lang.Float.floatToIntBits(
               other.getSpeed())) return false;
+      if (getUnk2700IOKPIKJDEHG()
+          != other.getUnk2700IOKPIKJDEHG()) return false;
+      if (getCombo()
+          != other.getCombo()) return false;
+      if (getMusicBasicId()
+          != other.getMusicBasicId()) return false;
+      if (getUnk2700DIMBABOGNEM()
+          != other.getUnk2700DIMBABOGNEM()) return false;
+      if (getUnk2700IOMOHEKJJLJ()
+          != other.getUnk2700IOMOHEKJJLJ()) return false;
+      if (getCorrectHit()
+          != other.getCorrectHit()) return false;
+      if (getUnk2700LKJNLDJAGGL()
+          != other.getUnk2700LKJNLDJAGGL()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -876,51 +836,51 @@ public final class MusicGameSettleReqOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + MUSIC_BASIC_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getMusicBasicId();
+      if (getUnk2700GDPKOANEDEBCount() > 0) {
+        hash = (37 * hash) + UNK2700_GDPKOANEDEB_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk2700GDPKOANEDEBList().hashCode();
+      }
+      hash = (37 * hash) + UNK2700_NMHGADLANMM_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700NMHGADLANMM();
+      if (getUnk2700NNHGOCJLKFHCount() > 0) {
+        hash = (37 * hash) + UNK2700_NNHGOCJLKFH_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk2700NNHGOCJLKFHList().hashCode();
+      }
+      hash = (37 * hash) + UNK2700_NCHHEJNFECG_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700NCHHEJNFECG();
       hash = (37 * hash) + SCORE_FIELD_NUMBER;
       hash = (53 * hash) + getScore();
-      hash = (37 * hash) + COMBO_FIELD_NUMBER;
-      hash = (53 * hash) + getCombo();
-      hash = (37 * hash) + CORRECT_HIT_FIELD_NUMBER;
-      hash = (53 * hash) + getCorrectHit();
-      hash = (37 * hash) + MUSIC_SHARE_ID_FIELD_NUMBER;
+      hash = (37 * hash) + UNK2700_CEPGMKAHHCD_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getMusicShareId());
-      hash = (37 * hash) + KJNDJLBOJLM_FIELD_NUMBER;
+          getUnk2700CEPGMKAHHCD());
+      hash = (37 * hash) + UNK2700_MMHHGALFHGA_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700MMHHGALFHGA();
+      hash = (37 * hash) + UNK2700_CBLIJHDFKHA_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getKJNDJLBOJLM());
-      hash = (37 * hash) + FBELCAFFGIJ_FIELD_NUMBER;
-      hash = (53 * hash) + getFBELCAFFGIJ();
-      hash = (37 * hash) + OOFMAKIDFOL_FIELD_NUMBER;
-      hash = (53 * hash) + getOOFMAKIDFOL();
-      hash = (37 * hash) + HJPDEIMECHB_FIELD_NUMBER;
-      hash = (53 * hash) + getHJPDEIMECHB();
-      if (getMNCMGANHCFICount() > 0) {
-        hash = (37 * hash) + MNCMGANHCFI_FIELD_NUMBER;
-        hash = (53 * hash) + getMNCMGANHCFIList().hashCode();
-      }
+          getUnk2700CBLIJHDFKHA());
       hash = (37 * hash) + MAX_COMBO_FIELD_NUMBER;
       hash = (53 * hash) + getMaxCombo();
-      hash = (37 * hash) + JJADNMELLAH_FIELD_NUMBER;
-      hash = (53 * hash) + getJJADNMELLAH();
-      if (getEIAGEEFABPOCount() > 0) {
-        hash = (37 * hash) + EIAGEEFABPO_FIELD_NUMBER;
-        hash = (53 * hash) + getEIAGEEFABPOList().hashCode();
-      }
-      hash = (37 * hash) + CPIFLFBHNJP_FIELD_NUMBER;
-      hash = (53 * hash) + getCPIFLFBHNJP();
-      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getSuccess());
-      hash = (37 * hash) + GGHBOMGJGFP_FIELD_NUMBER;
-      hash = (53 * hash) + getGGHBOMGJGFP();
-      hash = (37 * hash) + PFHCIHKCJFJ_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getPFHCIHKCJFJ());
+      hash = (37 * hash) + UNK2700_FBLBGPHMLAL_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700FBLBGPHMLAL();
       hash = (37 * hash) + SPEED_FIELD_NUMBER;
       hash = (53 * hash) + java.lang.Float.floatToIntBits(
           getSpeed());
+      hash = (37 * hash) + UNK2700_IOKPIKJDEHG_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getUnk2700IOKPIKJDEHG());
+      hash = (37 * hash) + COMBO_FIELD_NUMBER;
+      hash = (53 * hash) + getCombo();
+      hash = (37 * hash) + MUSIC_BASIC_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getMusicBasicId();
+      hash = (37 * hash) + UNK2700_DIMBABOGNEM_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700DIMBABOGNEM();
+      hash = (37 * hash) + UNK2700_IOMOHEKJJLJ_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk2700IOMOHEKJJLJ();
+      hash = (37 * hash) + CORRECT_HIT_FIELD_NUMBER;
+      hash = (53 * hash) + getCorrectHit();
+      hash = (37 * hash) + UNK2700_LKJNLDJAGGL_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getUnk2700LKJNLDJAGGL());
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -1018,9 +978,9 @@ public final class MusicGameSettleReqOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 8745
+     * CmdId: 8892
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -1061,41 +1021,41 @@ public final class MusicGameSettleReqOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        musicBasicId_ = 0;
+        unk2700GDPKOANEDEB_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        unk2700NMHGADLANMM_ = 0;
 
-        score_ = 0;
+        unk2700NNHGOCJLKFH_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        unk2700NCHHEJNFECG_ = 0;
 
-        combo_ = 0;
+        score_ = 0;
 
-        correctHit_ = 0;
+        unk2700CEPGMKAHHCD_ = 0L;
 
-        musicShareId_ = 0L;
+        unk2700MMHHGALFHGA_ = 0;
 
-        kJNDJLBOJLM_ = false;
+        unk2700CBLIJHDFKHA_ = false;
 
-        fBELCAFFGIJ_ = 0;
+        maxCombo_ = 0;
 
-        oOFMAKIDFOL_ = 0;
+        unk2700FBLBGPHMLAL_ = 0;
 
-        hJPDEIMECHB_ = 0;
+        speed_ = 0F;
 
-        mNCMGANHCFI_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
-        maxCombo_ = 0;
+        unk2700IOKPIKJDEHG_ = false;
 
-        jJADNMELLAH_ = 0;
+        combo_ = 0;
 
-        eIAGEEFABPO_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000002);
-        cPIFLFBHNJP_ = 0;
+        musicBasicId_ = 0;
 
-        success_ = false;
+        unk2700DIMBABOGNEM_ = 0;
 
-        gGHBOMGJGFP_ = 0;
+        unk2700IOMOHEKJJLJ_ = 0;
 
-        pFHCIHKCJFJ_ = false;
+        correctHit_ = 0;
 
-        speed_ = 0F;
+        unk2700LKJNLDJAGGL_ = false;
 
         return this;
       }
@@ -1124,32 +1084,32 @@ public final class MusicGameSettleReqOuterClass {
       public emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq buildPartial() {
         emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq result = new emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq(this);
         int from_bitField0_ = bitField0_;
-        result.musicBasicId_ = musicBasicId_;
-        result.score_ = score_;
-        result.combo_ = combo_;
-        result.correctHit_ = correctHit_;
-        result.musicShareId_ = musicShareId_;
-        result.kJNDJLBOJLM_ = kJNDJLBOJLM_;
-        result.fBELCAFFGIJ_ = fBELCAFFGIJ_;
-        result.oOFMAKIDFOL_ = oOFMAKIDFOL_;
-        result.hJPDEIMECHB_ = hJPDEIMECHB_;
         if (((bitField0_ & 0x00000001) != 0)) {
-          mNCMGANHCFI_.makeImmutable();
+          unk2700GDPKOANEDEB_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000001);
         }
-        result.mNCMGANHCFI_ = mNCMGANHCFI_;
-        result.maxCombo_ = maxCombo_;
-        result.jJADNMELLAH_ = jJADNMELLAH_;
+        result.unk2700GDPKOANEDEB_ = unk2700GDPKOANEDEB_;
+        result.unk2700NMHGADLANMM_ = unk2700NMHGADLANMM_;
         if (((bitField0_ & 0x00000002) != 0)) {
-          eIAGEEFABPO_.makeImmutable();
+          unk2700NNHGOCJLKFH_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000002);
         }
-        result.eIAGEEFABPO_ = eIAGEEFABPO_;
-        result.cPIFLFBHNJP_ = cPIFLFBHNJP_;
-        result.success_ = success_;
-        result.gGHBOMGJGFP_ = gGHBOMGJGFP_;
-        result.pFHCIHKCJFJ_ = pFHCIHKCJFJ_;
+        result.unk2700NNHGOCJLKFH_ = unk2700NNHGOCJLKFH_;
+        result.unk2700NCHHEJNFECG_ = unk2700NCHHEJNFECG_;
+        result.score_ = score_;
+        result.unk2700CEPGMKAHHCD_ = unk2700CEPGMKAHHCD_;
+        result.unk2700MMHHGALFHGA_ = unk2700MMHHGALFHGA_;
+        result.unk2700CBLIJHDFKHA_ = unk2700CBLIJHDFKHA_;
+        result.maxCombo_ = maxCombo_;
+        result.unk2700FBLBGPHMLAL_ = unk2700FBLBGPHMLAL_;
         result.speed_ = speed_;
+        result.unk2700IOKPIKJDEHG_ = unk2700IOKPIKJDEHG_;
+        result.combo_ = combo_;
+        result.musicBasicId_ = musicBasicId_;
+        result.unk2700DIMBABOGNEM_ = unk2700DIMBABOGNEM_;
+        result.unk2700IOMOHEKJJLJ_ = unk2700IOMOHEKJJLJ_;
+        result.correctHit_ = correctHit_;
+        result.unk2700LKJNLDJAGGL_ = unk2700LKJNLDJAGGL_;
         onBuilt();
         return result;
       }
@@ -1198,74 +1158,74 @@ public final class MusicGameSettleReqOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq other) {
         if (other == emu.grasscutter.net.proto.MusicGameSettleReqOuterClass.MusicGameSettleReq.getDefaultInstance()) return this;
-        if (other.getMusicBasicId() != 0) {
-          setMusicBasicId(other.getMusicBasicId());
-        }
-        if (other.getScore() != 0) {
-          setScore(other.getScore());
-        }
-        if (other.getCombo() != 0) {
-          setCombo(other.getCombo());
-        }
-        if (other.getCorrectHit() != 0) {
-          setCorrectHit(other.getCorrectHit());
-        }
-        if (other.getMusicShareId() != 0L) {
-          setMusicShareId(other.getMusicShareId());
-        }
-        if (other.getKJNDJLBOJLM() != false) {
-          setKJNDJLBOJLM(other.getKJNDJLBOJLM());
-        }
-        if (other.getFBELCAFFGIJ() != 0) {
-          setFBELCAFFGIJ(other.getFBELCAFFGIJ());
-        }
-        if (other.getOOFMAKIDFOL() != 0) {
-          setOOFMAKIDFOL(other.getOOFMAKIDFOL());
-        }
-        if (other.getHJPDEIMECHB() != 0) {
-          setHJPDEIMECHB(other.getHJPDEIMECHB());
-        }
-        if (!other.mNCMGANHCFI_.isEmpty()) {
-          if (mNCMGANHCFI_.isEmpty()) {
-            mNCMGANHCFI_ = other.mNCMGANHCFI_;
+        if (!other.unk2700GDPKOANEDEB_.isEmpty()) {
+          if (unk2700GDPKOANEDEB_.isEmpty()) {
+            unk2700GDPKOANEDEB_ = other.unk2700GDPKOANEDEB_;
             bitField0_ = (bitField0_ & ~0x00000001);
           } else {
-            ensureMNCMGANHCFIIsMutable();
-            mNCMGANHCFI_.addAll(other.mNCMGANHCFI_);
+            ensureUnk2700GDPKOANEDEBIsMutable();
+            unk2700GDPKOANEDEB_.addAll(other.unk2700GDPKOANEDEB_);
           }
           onChanged();
         }
-        if (other.getMaxCombo() != 0) {
-          setMaxCombo(other.getMaxCombo());
-        }
-        if (other.getJJADNMELLAH() != 0) {
-          setJJADNMELLAH(other.getJJADNMELLAH());
+        if (other.getUnk2700NMHGADLANMM() != 0) {
+          setUnk2700NMHGADLANMM(other.getUnk2700NMHGADLANMM());
         }
-        if (!other.eIAGEEFABPO_.isEmpty()) {
-          if (eIAGEEFABPO_.isEmpty()) {
-            eIAGEEFABPO_ = other.eIAGEEFABPO_;
+        if (!other.unk2700NNHGOCJLKFH_.isEmpty()) {
+          if (unk2700NNHGOCJLKFH_.isEmpty()) {
+            unk2700NNHGOCJLKFH_ = other.unk2700NNHGOCJLKFH_;
             bitField0_ = (bitField0_ & ~0x00000002);
           } else {
-            ensureEIAGEEFABPOIsMutable();
-            eIAGEEFABPO_.addAll(other.eIAGEEFABPO_);
+            ensureUnk2700NNHGOCJLKFHIsMutable();
+            unk2700NNHGOCJLKFH_.addAll(other.unk2700NNHGOCJLKFH_);
           }
           onChanged();
         }
-        if (other.getCPIFLFBHNJP() != 0) {
-          setCPIFLFBHNJP(other.getCPIFLFBHNJP());
+        if (other.getUnk2700NCHHEJNFECG() != 0) {
+          setUnk2700NCHHEJNFECG(other.getUnk2700NCHHEJNFECG());
         }
-        if (other.getSuccess() != false) {
-          setSuccess(other.getSuccess());
+        if (other.getScore() != 0) {
+          setScore(other.getScore());
+        }
+        if (other.getUnk2700CEPGMKAHHCD() != 0L) {
+          setUnk2700CEPGMKAHHCD(other.getUnk2700CEPGMKAHHCD());
+        }
+        if (other.getUnk2700MMHHGALFHGA() != 0) {
+          setUnk2700MMHHGALFHGA(other.getUnk2700MMHHGALFHGA());
         }
-        if (other.getGGHBOMGJGFP() != 0) {
-          setGGHBOMGJGFP(other.getGGHBOMGJGFP());
+        if (other.getUnk2700CBLIJHDFKHA() != false) {
+          setUnk2700CBLIJHDFKHA(other.getUnk2700CBLIJHDFKHA());
         }
-        if (other.getPFHCIHKCJFJ() != false) {
-          setPFHCIHKCJFJ(other.getPFHCIHKCJFJ());
+        if (other.getMaxCombo() != 0) {
+          setMaxCombo(other.getMaxCombo());
+        }
+        if (other.getUnk2700FBLBGPHMLAL() != 0) {
+          setUnk2700FBLBGPHMLAL(other.getUnk2700FBLBGPHMLAL());
         }
         if (other.getSpeed() != 0F) {
           setSpeed(other.getSpeed());
         }
+        if (other.getUnk2700IOKPIKJDEHG() != false) {
+          setUnk2700IOKPIKJDEHG(other.getUnk2700IOKPIKJDEHG());
+        }
+        if (other.getCombo() != 0) {
+          setCombo(other.getCombo());
+        }
+        if (other.getMusicBasicId() != 0) {
+          setMusicBasicId(other.getMusicBasicId());
+        }
+        if (other.getUnk2700DIMBABOGNEM() != 0) {
+          setUnk2700DIMBABOGNEM(other.getUnk2700DIMBABOGNEM());
+        }
+        if (other.getUnk2700IOMOHEKJJLJ() != 0) {
+          setUnk2700IOMOHEKJJLJ(other.getUnk2700IOMOHEKJJLJ());
+        }
+        if (other.getCorrectHit() != 0) {
+          setCorrectHit(other.getCorrectHit());
+        }
+        if (other.getUnk2700LKJNLDJAGGL() != false) {
+          setUnk2700LKJNLDJAGGL(other.getUnk2700LKJNLDJAGGL());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -1296,391 +1256,353 @@ public final class MusicGameSettleReqOuterClass {
       }
       private int bitField0_;
 
-      private int musicBasicId_ ;
-      /**
-       * <code>uint32 music_basic_id = 14;</code>
-       * @return The musicBasicId.
-       */
-      @java.lang.Override
-      public int getMusicBasicId() {
-        return musicBasicId_;
+      private com.google.protobuf.Internal.IntList unk2700GDPKOANEDEB_ = emptyIntList();
+      private void ensureUnk2700GDPKOANEDEBIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          unk2700GDPKOANEDEB_ = mutableCopy(unk2700GDPKOANEDEB_);
+          bitField0_ |= 0x00000001;
+         }
       }
       /**
-       * <code>uint32 music_basic_id = 14;</code>
-       * @param value The musicBasicId to set.
-       * @return This builder for chaining.
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+       * @return A list containing the unk2700GDPKOANEDEB.
        */
-      public Builder setMusicBasicId(int value) {
-        
-        musicBasicId_ = value;
-        onChanged();
-        return this;
+      public java.util.List<java.lang.Integer>
+          getUnk2700GDPKOANEDEBList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(unk2700GDPKOANEDEB_) : unk2700GDPKOANEDEB_;
       }
       /**
-       * <code>uint32 music_basic_id = 14;</code>
-       * @return This builder for chaining.
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+       * @return The count of unk2700GDPKOANEDEB.
        */
-      public Builder clearMusicBasicId() {
-        
-        musicBasicId_ = 0;
-        onChanged();
-        return this;
+      public int getUnk2700GDPKOANEDEBCount() {
+        return unk2700GDPKOANEDEB_.size();
       }
-
-      private int score_ ;
       /**
-       * <code>uint32 score = 2;</code>
-       * @return The score.
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+       * @param index The index of the element to return.
+       * @return The unk2700GDPKOANEDEB at the given index.
        */
-      @java.lang.Override
-      public int getScore() {
-        return score_;
+      public int getUnk2700GDPKOANEDEB(int index) {
+        return unk2700GDPKOANEDEB_.getInt(index);
       }
       /**
-       * <code>uint32 score = 2;</code>
-       * @param value The score to set.
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+       * @param index The index to set the value at.
+       * @param value The unk2700GDPKOANEDEB to set.
        * @return This builder for chaining.
        */
-      public Builder setScore(int value) {
-        
-        score_ = value;
+      public Builder setUnk2700GDPKOANEDEB(
+          int index, int value) {
+        ensureUnk2700GDPKOANEDEBIsMutable();
+        unk2700GDPKOANEDEB_.setInt(index, value);
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 score = 2;</code>
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+       * @param value The unk2700GDPKOANEDEB to add.
        * @return This builder for chaining.
        */
-      public Builder clearScore() {
-        
-        score_ = 0;
+      public Builder addUnk2700GDPKOANEDEB(int value) {
+        ensureUnk2700GDPKOANEDEBIsMutable();
+        unk2700GDPKOANEDEB_.addInt(value);
         onChanged();
         return this;
       }
-
-      private int combo_ ;
-      /**
-       * <code>uint32 combo = 10;</code>
-       * @return The combo.
-       */
-      @java.lang.Override
-      public int getCombo() {
-        return combo_;
-      }
       /**
-       * <code>uint32 combo = 10;</code>
-       * @param value The combo to set.
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
+       * @param values The unk2700GDPKOANEDEB to add.
        * @return This builder for chaining.
        */
-      public Builder setCombo(int value) {
-        
-        combo_ = value;
+      public Builder addAllUnk2700GDPKOANEDEB(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureUnk2700GDPKOANEDEBIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, unk2700GDPKOANEDEB_);
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 combo = 10;</code>
+       * <code>repeated uint32 Unk2700_GDPKOANEDEB = 384;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCombo() {
-        
-        combo_ = 0;
+      public Builder clearUnk2700GDPKOANEDEB() {
+        unk2700GDPKOANEDEB_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
         onChanged();
         return this;
       }
 
-      private int correctHit_ ;
+      private int unk2700NMHGADLANMM_ ;
       /**
-       * <code>uint32 correct_hit = 8;</code>
-       * @return The correctHit.
+       * <code>uint32 Unk2700_NMHGADLANMM = 795;</code>
+       * @return The unk2700NMHGADLANMM.
        */
       @java.lang.Override
-      public int getCorrectHit() {
-        return correctHit_;
+      public int getUnk2700NMHGADLANMM() {
+        return unk2700NMHGADLANMM_;
       }
       /**
-       * <code>uint32 correct_hit = 8;</code>
-       * @param value The correctHit to set.
+       * <code>uint32 Unk2700_NMHGADLANMM = 795;</code>
+       * @param value The unk2700NMHGADLANMM to set.
        * @return This builder for chaining.
        */
-      public Builder setCorrectHit(int value) {
+      public Builder setUnk2700NMHGADLANMM(int value) {
         
-        correctHit_ = value;
+        unk2700NMHGADLANMM_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 correct_hit = 8;</code>
+       * <code>uint32 Unk2700_NMHGADLANMM = 795;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCorrectHit() {
+      public Builder clearUnk2700NMHGADLANMM() {
         
-        correctHit_ = 0;
+        unk2700NMHGADLANMM_ = 0;
         onChanged();
         return this;
       }
 
-      private long musicShareId_ ;
+      private com.google.protobuf.Internal.IntList unk2700NNHGOCJLKFH_ = emptyIntList();
+      private void ensureUnk2700NNHGOCJLKFHIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          unk2700NNHGOCJLKFH_ = mutableCopy(unk2700NNHGOCJLKFH_);
+          bitField0_ |= 0x00000002;
+         }
+      }
       /**
-       * <code>uint64 music_share_id = 11;</code>
-       * @return The musicShareId.
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+       * @return A list containing the unk2700NNHGOCJLKFH.
        */
-      @java.lang.Override
-      public long getMusicShareId() {
-        return musicShareId_;
+      public java.util.List<java.lang.Integer>
+          getUnk2700NNHGOCJLKFHList() {
+        return ((bitField0_ & 0x00000002) != 0) ?
+                 java.util.Collections.unmodifiableList(unk2700NNHGOCJLKFH_) : unk2700NNHGOCJLKFH_;
       }
       /**
-       * <code>uint64 music_share_id = 11;</code>
-       * @param value The musicShareId to set.
-       * @return This builder for chaining.
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+       * @return The count of unk2700NNHGOCJLKFH.
        */
-      public Builder setMusicShareId(long value) {
-        
-        musicShareId_ = value;
-        onChanged();
-        return this;
+      public int getUnk2700NNHGOCJLKFHCount() {
+        return unk2700NNHGOCJLKFH_.size();
+      }
+      /**
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+       * @param index The index of the element to return.
+       * @return The unk2700NNHGOCJLKFH at the given index.
+       */
+      public int getUnk2700NNHGOCJLKFH(int index) {
+        return unk2700NNHGOCJLKFH_.getInt(index);
       }
       /**
-       * <code>uint64 music_share_id = 11;</code>
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+       * @param index The index to set the value at.
+       * @param value The unk2700NNHGOCJLKFH to set.
        * @return This builder for chaining.
        */
-      public Builder clearMusicShareId() {
-        
-        musicShareId_ = 0L;
+      public Builder setUnk2700NNHGOCJLKFH(
+          int index, int value) {
+        ensureUnk2700NNHGOCJLKFHIsMutable();
+        unk2700NNHGOCJLKFH_.setInt(index, value);
         onChanged();
         return this;
       }
-
-      private boolean kJNDJLBOJLM_ ;
       /**
-       * <pre>
-       * is_default_beatmap
-       * </pre>
-       *
-       * <code>bool KJNDJLBOJLM = 4;</code>
-       * @return The kJNDJLBOJLM.
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+       * @param value The unk2700NNHGOCJLKFH to add.
+       * @return This builder for chaining.
        */
-      @java.lang.Override
-      public boolean getKJNDJLBOJLM() {
-        return kJNDJLBOJLM_;
+      public Builder addUnk2700NNHGOCJLKFH(int value) {
+        ensureUnk2700NNHGOCJLKFHIsMutable();
+        unk2700NNHGOCJLKFH_.addInt(value);
+        onChanged();
+        return this;
       }
       /**
-       * <pre>
-       * is_default_beatmap
-       * </pre>
-       *
-       * <code>bool KJNDJLBOJLM = 4;</code>
-       * @param value The kJNDJLBOJLM to set.
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
+       * @param values The unk2700NNHGOCJLKFH to add.
        * @return This builder for chaining.
        */
-      public Builder setKJNDJLBOJLM(boolean value) {
-        
-        kJNDJLBOJLM_ = value;
+      public Builder addAllUnk2700NNHGOCJLKFH(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureUnk2700NNHGOCJLKFHIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, unk2700NNHGOCJLKFH_);
         onChanged();
         return this;
       }
       /**
-       * <pre>
-       * is_default_beatmap
-       * </pre>
-       *
-       * <code>bool KJNDJLBOJLM = 4;</code>
+       * <code>repeated uint32 Unk2700_NNHGOCJLKFH = 4;</code>
        * @return This builder for chaining.
        */
-      public Builder clearKJNDJLBOJLM() {
-        
-        kJNDJLBOJLM_ = false;
+      public Builder clearUnk2700NNHGOCJLKFH() {
+        unk2700NNHGOCJLKFH_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
         return this;
       }
 
-      private int fBELCAFFGIJ_ ;
+      private int unk2700NCHHEJNFECG_ ;
       /**
-       * <code>uint32 FBELCAFFGIJ = 3;</code>
-       * @return The fBELCAFFGIJ.
+       * <code>uint32 Unk2700_NCHHEJNFECG = 15;</code>
+       * @return The unk2700NCHHEJNFECG.
        */
       @java.lang.Override
-      public int getFBELCAFFGIJ() {
-        return fBELCAFFGIJ_;
+      public int getUnk2700NCHHEJNFECG() {
+        return unk2700NCHHEJNFECG_;
       }
       /**
-       * <code>uint32 FBELCAFFGIJ = 3;</code>
-       * @param value The fBELCAFFGIJ to set.
+       * <code>uint32 Unk2700_NCHHEJNFECG = 15;</code>
+       * @param value The unk2700NCHHEJNFECG to set.
        * @return This builder for chaining.
        */
-      public Builder setFBELCAFFGIJ(int value) {
+      public Builder setUnk2700NCHHEJNFECG(int value) {
         
-        fBELCAFFGIJ_ = value;
+        unk2700NCHHEJNFECG_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 FBELCAFFGIJ = 3;</code>
+       * <code>uint32 Unk2700_NCHHEJNFECG = 15;</code>
        * @return This builder for chaining.
        */
-      public Builder clearFBELCAFFGIJ() {
+      public Builder clearUnk2700NCHHEJNFECG() {
         
-        fBELCAFFGIJ_ = 0;
+        unk2700NCHHEJNFECG_ = 0;
         onChanged();
         return this;
       }
 
-      private int oOFMAKIDFOL_ ;
+      private int score_ ;
       /**
-       * <code>uint32 OOFMAKIDFOL = 15;</code>
-       * @return The oOFMAKIDFOL.
+       * <code>uint32 score = 9;</code>
+       * @return The score.
        */
       @java.lang.Override
-      public int getOOFMAKIDFOL() {
-        return oOFMAKIDFOL_;
+      public int getScore() {
+        return score_;
       }
       /**
-       * <code>uint32 OOFMAKIDFOL = 15;</code>
-       * @param value The oOFMAKIDFOL to set.
+       * <code>uint32 score = 9;</code>
+       * @param value The score to set.
        * @return This builder for chaining.
        */
-      public Builder setOOFMAKIDFOL(int value) {
+      public Builder setScore(int value) {
         
-        oOFMAKIDFOL_ = value;
+        score_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 OOFMAKIDFOL = 15;</code>
+       * <code>uint32 score = 9;</code>
        * @return This builder for chaining.
        */
-      public Builder clearOOFMAKIDFOL() {
+      public Builder clearScore() {
         
-        oOFMAKIDFOL_ = 0;
+        score_ = 0;
         onChanged();
         return this;
       }
 
-      private int hJPDEIMECHB_ ;
+      private long unk2700CEPGMKAHHCD_ ;
       /**
-       * <pre>
-       * beatmap_difficulty_level
-       * </pre>
-       *
-       * <code>uint32 HJPDEIMECHB = 1;</code>
-       * @return The hJPDEIMECHB.
+       * <code>uint64 Unk2700_CEPGMKAHHCD = 6;</code>
+       * @return The unk2700CEPGMKAHHCD.
        */
       @java.lang.Override
-      public int getHJPDEIMECHB() {
-        return hJPDEIMECHB_;
+      public long getUnk2700CEPGMKAHHCD() {
+        return unk2700CEPGMKAHHCD_;
       }
       /**
-       * <pre>
-       * beatmap_difficulty_level
-       * </pre>
-       *
-       * <code>uint32 HJPDEIMECHB = 1;</code>
-       * @param value The hJPDEIMECHB to set.
+       * <code>uint64 Unk2700_CEPGMKAHHCD = 6;</code>
+       * @param value The unk2700CEPGMKAHHCD to set.
        * @return This builder for chaining.
        */
-      public Builder setHJPDEIMECHB(int value) {
+      public Builder setUnk2700CEPGMKAHHCD(long value) {
         
-        hJPDEIMECHB_ = value;
+        unk2700CEPGMKAHHCD_ = value;
         onChanged();
         return this;
       }
       /**
-       * <pre>
-       * beatmap_difficulty_level
-       * </pre>
-       *
-       * <code>uint32 HJPDEIMECHB = 1;</code>
+       * <code>uint64 Unk2700_CEPGMKAHHCD = 6;</code>
        * @return This builder for chaining.
        */
-      public Builder clearHJPDEIMECHB() {
+      public Builder clearUnk2700CEPGMKAHHCD() {
         
-        hJPDEIMECHB_ = 0;
+        unk2700CEPGMKAHHCD_ = 0L;
         onChanged();
         return this;
       }
 
-      private com.google.protobuf.Internal.IntList mNCMGANHCFI_ = emptyIntList();
-      private void ensureMNCMGANHCFIIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
-          mNCMGANHCFI_ = mutableCopy(mNCMGANHCFI_);
-          bitField0_ |= 0x00000001;
-         }
-      }
-      /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-       * @return A list containing the mNCMGANHCFI.
-       */
-      public java.util.List<java.lang.Integer>
-          getMNCMGANHCFIList() {
-        return ((bitField0_ & 0x00000001) != 0) ?
-                 java.util.Collections.unmodifiableList(mNCMGANHCFI_) : mNCMGANHCFI_;
-      }
-      /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-       * @return The count of mNCMGANHCFI.
-       */
-      public int getMNCMGANHCFICount() {
-        return mNCMGANHCFI_.size();
-      }
+      private int unk2700MMHHGALFHGA_ ;
       /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-       * @param index The index of the element to return.
-       * @return The mNCMGANHCFI at the given index.
+       * <code>uint32 Unk2700_MMHHGALFHGA = 13;</code>
+       * @return The unk2700MMHHGALFHGA.
        */
-      public int getMNCMGANHCFI(int index) {
-        return mNCMGANHCFI_.getInt(index);
+      @java.lang.Override
+      public int getUnk2700MMHHGALFHGA() {
+        return unk2700MMHHGALFHGA_;
       }
       /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-       * @param index The index to set the value at.
-       * @param value The mNCMGANHCFI to set.
+       * <code>uint32 Unk2700_MMHHGALFHGA = 13;</code>
+       * @param value The unk2700MMHHGALFHGA to set.
        * @return This builder for chaining.
        */
-      public Builder setMNCMGANHCFI(
-          int index, int value) {
-        ensureMNCMGANHCFIIsMutable();
-        mNCMGANHCFI_.setInt(index, value);
+      public Builder setUnk2700MMHHGALFHGA(int value) {
+        
+        unk2700MMHHGALFHGA_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-       * @param value The mNCMGANHCFI to add.
+       * <code>uint32 Unk2700_MMHHGALFHGA = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder addMNCMGANHCFI(int value) {
-        ensureMNCMGANHCFIIsMutable();
-        mNCMGANHCFI_.addInt(value);
+      public Builder clearUnk2700MMHHGALFHGA() {
+        
+        unk2700MMHHGALFHGA_ = 0;
         onChanged();
         return this;
       }
+
+      private boolean unk2700CBLIJHDFKHA_ ;
+      /**
+       * <code>bool Unk2700_CBLIJHDFKHA = 422;</code>
+       * @return The unk2700CBLIJHDFKHA.
+       */
+      @java.lang.Override
+      public boolean getUnk2700CBLIJHDFKHA() {
+        return unk2700CBLIJHDFKHA_;
+      }
       /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
-       * @param values The mNCMGANHCFI to add.
+       * <code>bool Unk2700_CBLIJHDFKHA = 422;</code>
+       * @param value The unk2700CBLIJHDFKHA to set.
        * @return This builder for chaining.
        */
-      public Builder addAllMNCMGANHCFI(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureMNCMGANHCFIIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, mNCMGANHCFI_);
+      public Builder setUnk2700CBLIJHDFKHA(boolean value) {
+        
+        unk2700CBLIJHDFKHA_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 MNCMGANHCFI = 13;</code>
+       * <code>bool Unk2700_CBLIJHDFKHA = 422;</code>
        * @return This builder for chaining.
        */
-      public Builder clearMNCMGANHCFI() {
-        mNCMGANHCFI_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+      public Builder clearUnk2700CBLIJHDFKHA() {
+        
+        unk2700CBLIJHDFKHA_ = false;
         onChanged();
         return this;
       }
 
       private int maxCombo_ ;
       /**
-       * <code>uint32 max_combo = 9;</code>
+       * <code>uint32 max_combo = 5;</code>
        * @return The maxCombo.
        */
       @java.lang.Override
@@ -1688,7 +1610,7 @@ public final class MusicGameSettleReqOuterClass {
         return maxCombo_;
       }
       /**
-       * <code>uint32 max_combo = 9;</code>
+       * <code>uint32 max_combo = 5;</code>
        * @param value The maxCombo to set.
        * @return This builder for chaining.
        */
@@ -1699,7 +1621,7 @@ public final class MusicGameSettleReqOuterClass {
         return this;
       }
       /**
-       * <code>uint32 max_combo = 9;</code>
+       * <code>uint32 max_combo = 5;</code>
        * @return This builder for chaining.
        */
       public Builder clearMaxCombo() {
@@ -1709,295 +1631,281 @@ public final class MusicGameSettleReqOuterClass {
         return this;
       }
 
-      private int jJADNMELLAH_ ;
+      private int unk2700FBLBGPHMLAL_ ;
       /**
-       * <code>uint32 JJADNMELLAH = 1975;</code>
-       * @return The jJADNMELLAH.
+       * <code>uint32 Unk2700_FBLBGPHMLAL = 1058;</code>
+       * @return The unk2700FBLBGPHMLAL.
        */
       @java.lang.Override
-      public int getJJADNMELLAH() {
-        return jJADNMELLAH_;
+      public int getUnk2700FBLBGPHMLAL() {
+        return unk2700FBLBGPHMLAL_;
       }
       /**
-       * <code>uint32 JJADNMELLAH = 1975;</code>
-       * @param value The jJADNMELLAH to set.
+       * <code>uint32 Unk2700_FBLBGPHMLAL = 1058;</code>
+       * @param value The unk2700FBLBGPHMLAL to set.
        * @return This builder for chaining.
        */
-      public Builder setJJADNMELLAH(int value) {
+      public Builder setUnk2700FBLBGPHMLAL(int value) {
         
-        jJADNMELLAH_ = value;
+        unk2700FBLBGPHMLAL_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 JJADNMELLAH = 1975;</code>
+       * <code>uint32 Unk2700_FBLBGPHMLAL = 1058;</code>
        * @return This builder for chaining.
        */
-      public Builder clearJJADNMELLAH() {
+      public Builder clearUnk2700FBLBGPHMLAL() {
         
-        jJADNMELLAH_ = 0;
+        unk2700FBLBGPHMLAL_ = 0;
         onChanged();
         return this;
       }
 
-      private com.google.protobuf.Internal.IntList eIAGEEFABPO_ = emptyIntList();
-      private void ensureEIAGEEFABPOIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
-          eIAGEEFABPO_ = mutableCopy(eIAGEEFABPO_);
-          bitField0_ |= 0x00000002;
-         }
+      private float speed_ ;
+      /**
+       * <code>float speed = 409;</code>
+       * @return The speed.
+       */
+      @java.lang.Override
+      public float getSpeed() {
+        return speed_;
       }
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-       * @return A list containing the eIAGEEFABPO.
+       * <code>float speed = 409;</code>
+       * @param value The speed to set.
+       * @return This builder for chaining.
        */
-      public java.util.List<java.lang.Integer>
-          getEIAGEEFABPOList() {
-        return ((bitField0_ & 0x00000002) != 0) ?
-                 java.util.Collections.unmodifiableList(eIAGEEFABPO_) : eIAGEEFABPO_;
+      public Builder setSpeed(float value) {
+        
+        speed_ = value;
+        onChanged();
+        return this;
       }
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-       * @return The count of eIAGEEFABPO.
+       * <code>float speed = 409;</code>
+       * @return This builder for chaining.
        */
-      public int getEIAGEEFABPOCount() {
-        return eIAGEEFABPO_.size();
+      public Builder clearSpeed() {
+        
+        speed_ = 0F;
+        onChanged();
+        return this;
       }
+
+      private boolean unk2700IOKPIKJDEHG_ ;
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-       * @param index The index of the element to return.
-       * @return The eIAGEEFABPO at the given index.
+       * <code>bool Unk2700_IOKPIKJDEHG = 3;</code>
+       * @return The unk2700IOKPIKJDEHG.
        */
-      public int getEIAGEEFABPO(int index) {
-        return eIAGEEFABPO_.getInt(index);
+      @java.lang.Override
+      public boolean getUnk2700IOKPIKJDEHG() {
+        return unk2700IOKPIKJDEHG_;
       }
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-       * @param index The index to set the value at.
-       * @param value The eIAGEEFABPO to set.
+       * <code>bool Unk2700_IOKPIKJDEHG = 3;</code>
+       * @param value The unk2700IOKPIKJDEHG to set.
        * @return This builder for chaining.
        */
-      public Builder setEIAGEEFABPO(
-          int index, int value) {
-        ensureEIAGEEFABPOIsMutable();
-        eIAGEEFABPO_.setInt(index, value);
+      public Builder setUnk2700IOKPIKJDEHG(boolean value) {
+        
+        unk2700IOKPIKJDEHG_ = value;
         onChanged();
         return this;
       }
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-       * @param value The eIAGEEFABPO to add.
+       * <code>bool Unk2700_IOKPIKJDEHG = 3;</code>
        * @return This builder for chaining.
        */
-      public Builder addEIAGEEFABPO(int value) {
-        ensureEIAGEEFABPOIsMutable();
-        eIAGEEFABPO_.addInt(value);
+      public Builder clearUnk2700IOKPIKJDEHG() {
+        
+        unk2700IOKPIKJDEHG_ = false;
         onChanged();
         return this;
       }
+
+      private int combo_ ;
+      /**
+       * <code>uint32 combo = 1;</code>
+       * @return The combo.
+       */
+      @java.lang.Override
+      public int getCombo() {
+        return combo_;
+      }
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
-       * @param values The eIAGEEFABPO to add.
+       * <code>uint32 combo = 1;</code>
+       * @param value The combo to set.
        * @return This builder for chaining.
        */
-      public Builder addAllEIAGEEFABPO(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureEIAGEEFABPOIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, eIAGEEFABPO_);
+      public Builder setCombo(int value) {
+        
+        combo_ = value;
         onChanged();
         return this;
       }
       /**
-       * <pre>
-       * detail_score
-       * </pre>
-       *
-       * <code>repeated uint32 EIAGEEFABPO = 1171;</code>
+       * <code>uint32 combo = 1;</code>
        * @return This builder for chaining.
        */
-      public Builder clearEIAGEEFABPO() {
-        eIAGEEFABPO_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000002);
+      public Builder clearCombo() {
+        
+        combo_ = 0;
         onChanged();
         return this;
       }
 
-      private int cPIFLFBHNJP_ ;
+      private int musicBasicId_ ;
       /**
-       * <code>uint32 CPIFLFBHNJP = 1104;</code>
-       * @return The cPIFLFBHNJP.
+       * <code>uint32 music_basic_id = 7;</code>
+       * @return The musicBasicId.
        */
       @java.lang.Override
-      public int getCPIFLFBHNJP() {
-        return cPIFLFBHNJP_;
+      public int getMusicBasicId() {
+        return musicBasicId_;
       }
       /**
-       * <code>uint32 CPIFLFBHNJP = 1104;</code>
-       * @param value The cPIFLFBHNJP to set.
+       * <code>uint32 music_basic_id = 7;</code>
+       * @param value The musicBasicId to set.
        * @return This builder for chaining.
        */
-      public Builder setCPIFLFBHNJP(int value) {
+      public Builder setMusicBasicId(int value) {
         
-        cPIFLFBHNJP_ = value;
+        musicBasicId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 CPIFLFBHNJP = 1104;</code>
+       * <code>uint32 music_basic_id = 7;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCPIFLFBHNJP() {
+      public Builder clearMusicBasicId() {
         
-        cPIFLFBHNJP_ = 0;
+        musicBasicId_ = 0;
         onChanged();
         return this;
       }
 
-      private boolean success_ ;
+      private int unk2700DIMBABOGNEM_ ;
       /**
-       * <code>bool success = 998;</code>
-       * @return The success.
+       * <code>uint32 Unk2700_DIMBABOGNEM = 2;</code>
+       * @return The unk2700DIMBABOGNEM.
        */
       @java.lang.Override
-      public boolean getSuccess() {
-        return success_;
+      public int getUnk2700DIMBABOGNEM() {
+        return unk2700DIMBABOGNEM_;
       }
       /**
-       * <code>bool success = 998;</code>
-       * @param value The success to set.
+       * <code>uint32 Unk2700_DIMBABOGNEM = 2;</code>
+       * @param value The unk2700DIMBABOGNEM to set.
        * @return This builder for chaining.
        */
-      public Builder setSuccess(boolean value) {
+      public Builder setUnk2700DIMBABOGNEM(int value) {
         
-        success_ = value;
+        unk2700DIMBABOGNEM_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool success = 998;</code>
+       * <code>uint32 Unk2700_DIMBABOGNEM = 2;</code>
        * @return This builder for chaining.
        */
-      public Builder clearSuccess() {
+      public Builder clearUnk2700DIMBABOGNEM() {
         
-        success_ = false;
+        unk2700DIMBABOGNEM_ = 0;
         onChanged();
         return this;
       }
 
-      private int gGHBOMGJGFP_ ;
+      private int unk2700IOMOHEKJJLJ_ ;
       /**
-       * <code>uint32 GGHBOMGJGFP = 268;</code>
-       * @return The gGHBOMGJGFP.
+       * <code>uint32 Unk2700_IOMOHEKJJLJ = 1953;</code>
+       * @return The unk2700IOMOHEKJJLJ.
        */
       @java.lang.Override
-      public int getGGHBOMGJGFP() {
-        return gGHBOMGJGFP_;
+      public int getUnk2700IOMOHEKJJLJ() {
+        return unk2700IOMOHEKJJLJ_;
       }
       /**
-       * <code>uint32 GGHBOMGJGFP = 268;</code>
-       * @param value The gGHBOMGJGFP to set.
+       * <code>uint32 Unk2700_IOMOHEKJJLJ = 1953;</code>
+       * @param value The unk2700IOMOHEKJJLJ to set.
        * @return This builder for chaining.
        */
-      public Builder setGGHBOMGJGFP(int value) {
+      public Builder setUnk2700IOMOHEKJJLJ(int value) {
         
-        gGHBOMGJGFP_ = value;
+        unk2700IOMOHEKJJLJ_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 GGHBOMGJGFP = 268;</code>
+       * <code>uint32 Unk2700_IOMOHEKJJLJ = 1953;</code>
        * @return This builder for chaining.
        */
-      public Builder clearGGHBOMGJGFP() {
+      public Builder clearUnk2700IOMOHEKJJLJ() {
         
-        gGHBOMGJGFP_ = 0;
+        unk2700IOMOHEKJJLJ_ = 0;
         onChanged();
         return this;
       }
 
-      private boolean pFHCIHKCJFJ_ ;
+      private int correctHit_ ;
       /**
-       * <code>bool PFHCIHKCJFJ = 238;</code>
-       * @return The pFHCIHKCJFJ.
+       * <code>uint32 correct_hit = 14;</code>
+       * @return The correctHit.
        */
       @java.lang.Override
-      public boolean getPFHCIHKCJFJ() {
-        return pFHCIHKCJFJ_;
+      public int getCorrectHit() {
+        return correctHit_;
       }
       /**
-       * <code>bool PFHCIHKCJFJ = 238;</code>
-       * @param value The pFHCIHKCJFJ to set.
+       * <code>uint32 correct_hit = 14;</code>
+       * @param value The correctHit to set.
        * @return This builder for chaining.
        */
-      public Builder setPFHCIHKCJFJ(boolean value) {
+      public Builder setCorrectHit(int value) {
         
-        pFHCIHKCJFJ_ = value;
+        correctHit_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool PFHCIHKCJFJ = 238;</code>
+       * <code>uint32 correct_hit = 14;</code>
        * @return This builder for chaining.
        */
-      public Builder clearPFHCIHKCJFJ() {
+      public Builder clearCorrectHit() {
         
-        pFHCIHKCJFJ_ = false;
+        correctHit_ = 0;
         onChanged();
         return this;
       }
 
-      private float speed_ ;
+      private boolean unk2700LKJNLDJAGGL_ ;
       /**
-       * <code>float speed = 887;</code>
-       * @return The speed.
+       * <code>bool Unk2700_LKJNLDJAGGL = 1285;</code>
+       * @return The unk2700LKJNLDJAGGL.
        */
       @java.lang.Override
-      public float getSpeed() {
-        return speed_;
+      public boolean getUnk2700LKJNLDJAGGL() {
+        return unk2700LKJNLDJAGGL_;
       }
       /**
-       * <code>float speed = 887;</code>
-       * @param value The speed to set.
+       * <code>bool Unk2700_LKJNLDJAGGL = 1285;</code>
+       * @param value The unk2700LKJNLDJAGGL to set.
        * @return This builder for chaining.
        */
-      public Builder setSpeed(float value) {
+      public Builder setUnk2700LKJNLDJAGGL(boolean value) {
         
-        speed_ = value;
+        unk2700LKJNLDJAGGL_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>float speed = 887;</code>
+       * <code>bool Unk2700_LKJNLDJAGGL = 1285;</code>
        * @return This builder for chaining.
        */
-      public Builder clearSpeed() {
+      public Builder clearUnk2700LKJNLDJAGGL() {
         
-        speed_ = 0F;
+        unk2700LKJNLDJAGGL_ = false;
         onChanged();
         return this;
       }
@@ -2068,18 +1976,20 @@ public final class MusicGameSettleReqOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\030MusicGameSettleReq.proto\"\203\003\n\022MusicGame" +
-      "SettleReq\022\026\n\016music_basic_id\030\016 \001(\r\022\r\n\005sco" +
-      "re\030\002 \001(\r\022\r\n\005combo\030\n \001(\r\022\023\n\013correct_hit\030\010" +
-      " \001(\r\022\026\n\016music_share_id\030\013 \001(\004\022\023\n\013KJNDJLBO" +
-      "JLM\030\004 \001(\010\022\023\n\013FBELCAFFGIJ\030\003 \001(\r\022\023\n\013OOFMAK" +
-      "IDFOL\030\017 \001(\r\022\023\n\013HJPDEIMECHB\030\001 \001(\r\022\023\n\013MNCM" +
-      "GANHCFI\030\r \003(\r\022\021\n\tmax_combo\030\t \001(\r\022\024\n\013JJAD" +
-      "NMELLAH\030\267\017 \001(\r\022\024\n\013EIAGEEFABPO\030\223\t \003(\r\022\024\n\013" +
-      "CPIFLFBHNJP\030\320\010 \001(\r\022\020\n\007success\030\346\007 \001(\010\022\024\n\013" +
-      "GGHBOMGJGFP\030\214\002 \001(\r\022\024\n\013PFHCIHKCJFJ\030\356\001 \001(\010" +
-      "\022\016\n\005speed\030\367\006 \001(\002B\033\n\031emu.grasscutter.net." +
-      "protob\006proto3"
+      "\n\030MusicGameSettleReq.proto\"\344\003\n\022MusicGame" +
+      "SettleReq\022\034\n\023Unk2700_GDPKOANEDEB\030\200\003 \003(\r\022" +
+      "\034\n\023Unk2700_NMHGADLANMM\030\233\006 \001(\r\022\033\n\023Unk2700" +
+      "_NNHGOCJLKFH\030\004 \003(\r\022\033\n\023Unk2700_NCHHEJNFEC" +
+      "G\030\017 \001(\r\022\r\n\005score\030\t \001(\r\022\033\n\023Unk2700_CEPGMK" +
+      "AHHCD\030\006 \001(\004\022\033\n\023Unk2700_MMHHGALFHGA\030\r \001(\r" +
+      "\022\034\n\023Unk2700_CBLIJHDFKHA\030\246\003 \001(\010\022\021\n\tmax_co" +
+      "mbo\030\005 \001(\r\022\034\n\023Unk2700_FBLBGPHMLAL\030\242\010 \001(\r\022" +
+      "\016\n\005speed\030\231\003 \001(\002\022\033\n\023Unk2700_IOKPIKJDEHG\030\003" +
+      " \001(\010\022\r\n\005combo\030\001 \001(\r\022\026\n\016music_basic_id\030\007 " +
+      "\001(\r\022\033\n\023Unk2700_DIMBABOGNEM\030\002 \001(\r\022\034\n\023Unk2" +
+      "700_IOMOHEKJJLJ\030\241\017 \001(\r\022\023\n\013correct_hit\030\016 " +
+      "\001(\r\022\034\n\023Unk2700_LKJNLDJAGGL\030\205\n \001(\010B\033\n\031emu" +
+      ".grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -2090,7 +2000,7 @@ public final class MusicGameSettleReqOuterClass {
     internal_static_MusicGameSettleReq_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_MusicGameSettleReq_descriptor,
-        new java.lang.String[] { "MusicBasicId", "Score", "Combo", "CorrectHit", "MusicShareId", "KJNDJLBOJLM", "FBELCAFFGIJ", "OOFMAKIDFOL", "HJPDEIMECHB", "MNCMGANHCFI", "MaxCombo", "JJADNMELLAH", "EIAGEEFABPO", "CPIFLFBHNJP", "Success", "GGHBOMGJGFP", "PFHCIHKCJFJ", "Speed", });
+        new java.lang.String[] { "Unk2700GDPKOANEDEB", "Unk2700NMHGADLANMM", "Unk2700NNHGOCJLKFH", "Unk2700NCHHEJNFECG", "Score", "Unk2700CEPGMKAHHCD", "Unk2700MMHHGALFHGA", "Unk2700CBLIJHDFKHA", "MaxCombo", "Unk2700FBLBGPHMLAL", "Speed", "Unk2700IOKPIKJDEHG", "Combo", "MusicBasicId", "Unk2700DIMBABOGNEM", "Unk2700IOMOHEKJJLJ", "CorrectHit", "Unk2700LKJNLDJAGGL", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleRspOuterClass.java
index fcbea990..c5066979 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleRspOuterClass.java
@@ -19,40 +19,41 @@ public final class MusicGameSettleRspOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>int32 retcode = 7;</code>
+     * <code>int32 retcode = 11;</code>
      * @return The retcode.
      */
     int getRetcode();
 
     /**
-     * <code>uint32 music_basic_id = 9;</code>
+     * <code>uint32 music_basic_id = 5;</code>
      * @return The musicBasicId.
      */
     int getMusicBasicId();
 
     /**
-     * <code>bool is_unlock_next_level = 1;</code>
-     * @return The isUnlockNextLevel.
+     * <code>bool is_new_record = 6;</code>
+     * @return The isNewRecord.
      */
-    boolean getIsUnlockNextLevel();
+    boolean getIsNewRecord();
 
     /**
-     * <code>bool is_new_record = 3;</code>
-     * @return The isNewRecord.
+     * <code>bool is_unlock_next_level = 2;</code>
+     * @return The isUnlockNextLevel.
      */
-    boolean getIsNewRecord();
+    boolean getIsUnlockNextLevel();
 
     /**
-     * <code>uint64 music_share_id = 11;</code>
+     * <code>uint64 music_share_id = 10;</code>
      * @return The musicShareId.
      */
     long getMusicShareId();
   }
   /**
    * <pre>
-   * CmdId: 8288
+   * CmdId: 8673
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code MusicGameSettleRsp}
@@ -99,29 +100,29 @@ public final class MusicGameSettleRspOuterClass {
             case 0:
               done = true;
               break;
-            case 8: {
+            case 16: {
 
               isUnlockNextLevel_ = input.readBool();
               break;
             }
-            case 24: {
+            case 40: {
 
-              isNewRecord_ = input.readBool();
+              musicBasicId_ = input.readUInt32();
               break;
             }
-            case 56: {
+            case 48: {
 
-              retcode_ = input.readInt32();
+              isNewRecord_ = input.readBool();
               break;
             }
-            case 72: {
+            case 80: {
 
-              musicBasicId_ = input.readUInt32();
+              musicShareId_ = input.readUInt64();
               break;
             }
             case 88: {
 
-              musicShareId_ = input.readUInt64();
+              retcode_ = input.readInt32();
               break;
             }
             default: {
@@ -156,10 +157,10 @@ public final class MusicGameSettleRspOuterClass {
               emu.grasscutter.net.proto.MusicGameSettleRspOuterClass.MusicGameSettleRsp.class, emu.grasscutter.net.proto.MusicGameSettleRspOuterClass.MusicGameSettleRsp.Builder.class);
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 7;
+    public static final int RETCODE_FIELD_NUMBER = 11;
     private int retcode_;
     /**
-     * <code>int32 retcode = 7;</code>
+     * <code>int32 retcode = 11;</code>
      * @return The retcode.
      */
     @java.lang.Override
@@ -167,10 +168,10 @@ public final class MusicGameSettleRspOuterClass {
       return retcode_;
     }
 
-    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 9;
+    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 5;
     private int musicBasicId_;
     /**
-     * <code>uint32 music_basic_id = 9;</code>
+     * <code>uint32 music_basic_id = 5;</code>
      * @return The musicBasicId.
      */
     @java.lang.Override
@@ -178,32 +179,32 @@ public final class MusicGameSettleRspOuterClass {
       return musicBasicId_;
     }
 
-    public static final int IS_UNLOCK_NEXT_LEVEL_FIELD_NUMBER = 1;
-    private boolean isUnlockNextLevel_;
+    public static final int IS_NEW_RECORD_FIELD_NUMBER = 6;
+    private boolean isNewRecord_;
     /**
-     * <code>bool is_unlock_next_level = 1;</code>
-     * @return The isUnlockNextLevel.
+     * <code>bool is_new_record = 6;</code>
+     * @return The isNewRecord.
      */
     @java.lang.Override
-    public boolean getIsUnlockNextLevel() {
-      return isUnlockNextLevel_;
+    public boolean getIsNewRecord() {
+      return isNewRecord_;
     }
 
-    public static final int IS_NEW_RECORD_FIELD_NUMBER = 3;
-    private boolean isNewRecord_;
+    public static final int IS_UNLOCK_NEXT_LEVEL_FIELD_NUMBER = 2;
+    private boolean isUnlockNextLevel_;
     /**
-     * <code>bool is_new_record = 3;</code>
-     * @return The isNewRecord.
+     * <code>bool is_unlock_next_level = 2;</code>
+     * @return The isUnlockNextLevel.
      */
     @java.lang.Override
-    public boolean getIsNewRecord() {
-      return isNewRecord_;
+    public boolean getIsUnlockNextLevel() {
+      return isUnlockNextLevel_;
     }
 
-    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 11;
+    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 10;
     private long musicShareId_;
     /**
-     * <code>uint64 music_share_id = 11;</code>
+     * <code>uint64 music_share_id = 10;</code>
      * @return The musicShareId.
      */
     @java.lang.Override
@@ -226,19 +227,19 @@ public final class MusicGameSettleRspOuterClass {
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
       if (isUnlockNextLevel_ != false) {
-        output.writeBool(1, isUnlockNextLevel_);
-      }
-      if (isNewRecord_ != false) {
-        output.writeBool(3, isNewRecord_);
-      }
-      if (retcode_ != 0) {
-        output.writeInt32(7, retcode_);
+        output.writeBool(2, isUnlockNextLevel_);
       }
       if (musicBasicId_ != 0) {
-        output.writeUInt32(9, musicBasicId_);
+        output.writeUInt32(5, musicBasicId_);
+      }
+      if (isNewRecord_ != false) {
+        output.writeBool(6, isNewRecord_);
       }
       if (musicShareId_ != 0L) {
-        output.writeUInt64(11, musicShareId_);
+        output.writeUInt64(10, musicShareId_);
+      }
+      if (retcode_ != 0) {
+        output.writeInt32(11, retcode_);
       }
       unknownFields.writeTo(output);
     }
@@ -251,23 +252,23 @@ public final class MusicGameSettleRspOuterClass {
       size = 0;
       if (isUnlockNextLevel_ != false) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(1, isUnlockNextLevel_);
+          .computeBoolSize(2, isUnlockNextLevel_);
       }
-      if (isNewRecord_ != false) {
+      if (musicBasicId_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(3, isNewRecord_);
+          .computeUInt32Size(5, musicBasicId_);
       }
-      if (retcode_ != 0) {
+      if (isNewRecord_ != false) {
         size += com.google.protobuf.CodedOutputStream
-          .computeInt32Size(7, retcode_);
+          .computeBoolSize(6, isNewRecord_);
       }
-      if (musicBasicId_ != 0) {
+      if (musicShareId_ != 0L) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(9, musicBasicId_);
+          .computeUInt64Size(10, musicShareId_);
       }
-      if (musicShareId_ != 0L) {
+      if (retcode_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt64Size(11, musicShareId_);
+          .computeInt32Size(11, retcode_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -288,10 +289,10 @@ public final class MusicGameSettleRspOuterClass {
           != other.getRetcode()) return false;
       if (getMusicBasicId()
           != other.getMusicBasicId()) return false;
-      if (getIsUnlockNextLevel()
-          != other.getIsUnlockNextLevel()) return false;
       if (getIsNewRecord()
           != other.getIsNewRecord()) return false;
+      if (getIsUnlockNextLevel()
+          != other.getIsUnlockNextLevel()) return false;
       if (getMusicShareId()
           != other.getMusicShareId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
@@ -309,12 +310,12 @@ public final class MusicGameSettleRspOuterClass {
       hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + MUSIC_BASIC_ID_FIELD_NUMBER;
       hash = (53 * hash) + getMusicBasicId();
-      hash = (37 * hash) + IS_UNLOCK_NEXT_LEVEL_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getIsUnlockNextLevel());
       hash = (37 * hash) + IS_NEW_RECORD_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getIsNewRecord());
+      hash = (37 * hash) + IS_UNLOCK_NEXT_LEVEL_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsUnlockNextLevel());
       hash = (37 * hash) + MUSIC_SHARE_ID_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
           getMusicShareId());
@@ -415,9 +416,10 @@ public final class MusicGameSettleRspOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 8288
+     * CmdId: 8673
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code MusicGameSettleRsp}
@@ -461,10 +463,10 @@ public final class MusicGameSettleRspOuterClass {
 
         musicBasicId_ = 0;
 
-        isUnlockNextLevel_ = false;
-
         isNewRecord_ = false;
 
+        isUnlockNextLevel_ = false;
+
         musicShareId_ = 0L;
 
         return this;
@@ -495,8 +497,8 @@ public final class MusicGameSettleRspOuterClass {
         emu.grasscutter.net.proto.MusicGameSettleRspOuterClass.MusicGameSettleRsp result = new emu.grasscutter.net.proto.MusicGameSettleRspOuterClass.MusicGameSettleRsp(this);
         result.retcode_ = retcode_;
         result.musicBasicId_ = musicBasicId_;
-        result.isUnlockNextLevel_ = isUnlockNextLevel_;
         result.isNewRecord_ = isNewRecord_;
+        result.isUnlockNextLevel_ = isUnlockNextLevel_;
         result.musicShareId_ = musicShareId_;
         onBuilt();
         return result;
@@ -552,12 +554,12 @@ public final class MusicGameSettleRspOuterClass {
         if (other.getMusicBasicId() != 0) {
           setMusicBasicId(other.getMusicBasicId());
         }
-        if (other.getIsUnlockNextLevel() != false) {
-          setIsUnlockNextLevel(other.getIsUnlockNextLevel());
-        }
         if (other.getIsNewRecord() != false) {
           setIsNewRecord(other.getIsNewRecord());
         }
+        if (other.getIsUnlockNextLevel() != false) {
+          setIsUnlockNextLevel(other.getIsUnlockNextLevel());
+        }
         if (other.getMusicShareId() != 0L) {
           setMusicShareId(other.getMusicShareId());
         }
@@ -592,7 +594,7 @@ public final class MusicGameSettleRspOuterClass {
 
       private int retcode_ ;
       /**
-       * <code>int32 retcode = 7;</code>
+       * <code>int32 retcode = 11;</code>
        * @return The retcode.
        */
       @java.lang.Override
@@ -600,7 +602,7 @@ public final class MusicGameSettleRspOuterClass {
         return retcode_;
       }
       /**
-       * <code>int32 retcode = 7;</code>
+       * <code>int32 retcode = 11;</code>
        * @param value The retcode to set.
        * @return This builder for chaining.
        */
@@ -611,7 +613,7 @@ public final class MusicGameSettleRspOuterClass {
         return this;
       }
       /**
-       * <code>int32 retcode = 7;</code>
+       * <code>int32 retcode = 11;</code>
        * @return This builder for chaining.
        */
       public Builder clearRetcode() {
@@ -623,7 +625,7 @@ public final class MusicGameSettleRspOuterClass {
 
       private int musicBasicId_ ;
       /**
-       * <code>uint32 music_basic_id = 9;</code>
+       * <code>uint32 music_basic_id = 5;</code>
        * @return The musicBasicId.
        */
       @java.lang.Override
@@ -631,7 +633,7 @@ public final class MusicGameSettleRspOuterClass {
         return musicBasicId_;
       }
       /**
-       * <code>uint32 music_basic_id = 9;</code>
+       * <code>uint32 music_basic_id = 5;</code>
        * @param value The musicBasicId to set.
        * @return This builder for chaining.
        */
@@ -642,7 +644,7 @@ public final class MusicGameSettleRspOuterClass {
         return this;
       }
       /**
-       * <code>uint32 music_basic_id = 9;</code>
+       * <code>uint32 music_basic_id = 5;</code>
        * @return This builder for chaining.
        */
       public Builder clearMusicBasicId() {
@@ -652,71 +654,71 @@ public final class MusicGameSettleRspOuterClass {
         return this;
       }
 
-      private boolean isUnlockNextLevel_ ;
+      private boolean isNewRecord_ ;
       /**
-       * <code>bool is_unlock_next_level = 1;</code>
-       * @return The isUnlockNextLevel.
+       * <code>bool is_new_record = 6;</code>
+       * @return The isNewRecord.
        */
       @java.lang.Override
-      public boolean getIsUnlockNextLevel() {
-        return isUnlockNextLevel_;
+      public boolean getIsNewRecord() {
+        return isNewRecord_;
       }
       /**
-       * <code>bool is_unlock_next_level = 1;</code>
-       * @param value The isUnlockNextLevel to set.
+       * <code>bool is_new_record = 6;</code>
+       * @param value The isNewRecord to set.
        * @return This builder for chaining.
        */
-      public Builder setIsUnlockNextLevel(boolean value) {
+      public Builder setIsNewRecord(boolean value) {
         
-        isUnlockNextLevel_ = value;
+        isNewRecord_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_unlock_next_level = 1;</code>
+       * <code>bool is_new_record = 6;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsUnlockNextLevel() {
+      public Builder clearIsNewRecord() {
         
-        isUnlockNextLevel_ = false;
+        isNewRecord_ = false;
         onChanged();
         return this;
       }
 
-      private boolean isNewRecord_ ;
+      private boolean isUnlockNextLevel_ ;
       /**
-       * <code>bool is_new_record = 3;</code>
-       * @return The isNewRecord.
+       * <code>bool is_unlock_next_level = 2;</code>
+       * @return The isUnlockNextLevel.
        */
       @java.lang.Override
-      public boolean getIsNewRecord() {
-        return isNewRecord_;
+      public boolean getIsUnlockNextLevel() {
+        return isUnlockNextLevel_;
       }
       /**
-       * <code>bool is_new_record = 3;</code>
-       * @param value The isNewRecord to set.
+       * <code>bool is_unlock_next_level = 2;</code>
+       * @param value The isUnlockNextLevel to set.
        * @return This builder for chaining.
        */
-      public Builder setIsNewRecord(boolean value) {
+      public Builder setIsUnlockNextLevel(boolean value) {
         
-        isNewRecord_ = value;
+        isUnlockNextLevel_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_new_record = 3;</code>
+       * <code>bool is_unlock_next_level = 2;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsNewRecord() {
+      public Builder clearIsUnlockNextLevel() {
         
-        isNewRecord_ = false;
+        isUnlockNextLevel_ = false;
         onChanged();
         return this;
       }
 
       private long musicShareId_ ;
       /**
-       * <code>uint64 music_share_id = 11;</code>
+       * <code>uint64 music_share_id = 10;</code>
        * @return The musicShareId.
        */
       @java.lang.Override
@@ -724,7 +726,7 @@ public final class MusicGameSettleRspOuterClass {
         return musicShareId_;
       }
       /**
-       * <code>uint64 music_share_id = 11;</code>
+       * <code>uint64 music_share_id = 10;</code>
        * @param value The musicShareId to set.
        * @return This builder for chaining.
        */
@@ -735,7 +737,7 @@ public final class MusicGameSettleRspOuterClass {
         return this;
       }
       /**
-       * <code>uint64 music_share_id = 11;</code>
+       * <code>uint64 music_share_id = 10;</code>
        * @return This builder for chaining.
        */
       public Builder clearMusicShareId() {
@@ -812,10 +814,10 @@ public final class MusicGameSettleRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\030MusicGameSettleRsp.proto\"\212\001\n\022MusicGame" +
-      "SettleRsp\022\017\n\007retcode\030\007 \001(\005\022\026\n\016music_basi" +
-      "c_id\030\t \001(\r\022\034\n\024is_unlock_next_level\030\001 \001(\010" +
-      "\022\025\n\ris_new_record\030\003 \001(\010\022\026\n\016music_share_i" +
-      "d\030\013 \001(\004B\033\n\031emu.grasscutter.net.protob\006pr" +
+      "SettleRsp\022\017\n\007retcode\030\013 \001(\005\022\026\n\016music_basi" +
+      "c_id\030\005 \001(\r\022\025\n\ris_new_record\030\006 \001(\010\022\034\n\024is_" +
+      "unlock_next_level\030\002 \001(\010\022\026\n\016music_share_i" +
+      "d\030\n \001(\004B\033\n\031emu.grasscutter.net.protob\006pr" +
       "oto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -827,7 +829,7 @@ public final class MusicGameSettleRspOuterClass {
     internal_static_MusicGameSettleRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_MusicGameSettleRsp_descriptor,
-        new java.lang.String[] { "Retcode", "MusicBasicId", "IsUnlockNextLevel", "IsNewRecord", "MusicShareId", });
+        new java.lang.String[] { "Retcode", "MusicBasicId", "IsNewRecord", "IsUnlockNextLevel", "MusicShareId", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartReqOuterClass.java
index 6a28cc43..eafedd8e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartReqOuterClass.java
@@ -19,28 +19,28 @@ public final class MusicGameStartReqOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>uint32 music_basic_id = 10;</code>
+     * <code>uint32 music_basic_id = 2;</code>
      * @return The musicBasicId.
      */
     int getMusicBasicId();
 
     /**
-     * <code>uint64 music_share_id = 8;</code>
-     * @return The musicShareId.
+     * <code>bool Unk2700_IOKPIKJDEHG = 11;</code>
+     * @return The unk2700IOKPIKJDEHG.
      */
-    long getMusicShareId();
+    boolean getUnk2700IOKPIKJDEHG();
 
     /**
-     * <code>bool KJNDJLBOJLM = 5;</code>
-     * @return The kJNDJLBOJLM.
+     * <code>uint64 music_share_id = 3;</code>
+     * @return The musicShareId.
      */
-    boolean getKJNDJLBOJLM();
+    long getMusicShareId();
   }
   /**
    * <pre>
-   * CmdId: 8927
+   * CmdId: 8406
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -88,19 +88,19 @@ public final class MusicGameStartReqOuterClass {
             case 0:
               done = true;
               break;
-            case 40: {
+            case 16: {
 
-              kJNDJLBOJLM_ = input.readBool();
+              musicBasicId_ = input.readUInt32();
               break;
             }
-            case 64: {
+            case 24: {
 
               musicShareId_ = input.readUInt64();
               break;
             }
-            case 80: {
+            case 88: {
 
-              musicBasicId_ = input.readUInt32();
+              unk2700IOKPIKJDEHG_ = input.readBool();
               break;
             }
             default: {
@@ -135,10 +135,10 @@ public final class MusicGameStartReqOuterClass {
               emu.grasscutter.net.proto.MusicGameStartReqOuterClass.MusicGameStartReq.class, emu.grasscutter.net.proto.MusicGameStartReqOuterClass.MusicGameStartReq.Builder.class);
     }
 
-    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 10;
+    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 2;
     private int musicBasicId_;
     /**
-     * <code>uint32 music_basic_id = 10;</code>
+     * <code>uint32 music_basic_id = 2;</code>
      * @return The musicBasicId.
      */
     @java.lang.Override
@@ -146,26 +146,26 @@ public final class MusicGameStartReqOuterClass {
       return musicBasicId_;
     }
 
-    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 8;
-    private long musicShareId_;
+    public static final int UNK2700_IOKPIKJDEHG_FIELD_NUMBER = 11;
+    private boolean unk2700IOKPIKJDEHG_;
     /**
-     * <code>uint64 music_share_id = 8;</code>
-     * @return The musicShareId.
+     * <code>bool Unk2700_IOKPIKJDEHG = 11;</code>
+     * @return The unk2700IOKPIKJDEHG.
      */
     @java.lang.Override
-    public long getMusicShareId() {
-      return musicShareId_;
+    public boolean getUnk2700IOKPIKJDEHG() {
+      return unk2700IOKPIKJDEHG_;
     }
 
-    public static final int KJNDJLBOJLM_FIELD_NUMBER = 5;
-    private boolean kJNDJLBOJLM_;
+    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 3;
+    private long musicShareId_;
     /**
-     * <code>bool KJNDJLBOJLM = 5;</code>
-     * @return The kJNDJLBOJLM.
+     * <code>uint64 music_share_id = 3;</code>
+     * @return The musicShareId.
      */
     @java.lang.Override
-    public boolean getKJNDJLBOJLM() {
-      return kJNDJLBOJLM_;
+    public long getMusicShareId() {
+      return musicShareId_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -182,14 +182,14 @@ public final class MusicGameStartReqOuterClass {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (kJNDJLBOJLM_ != false) {
-        output.writeBool(5, kJNDJLBOJLM_);
+      if (musicBasicId_ != 0) {
+        output.writeUInt32(2, musicBasicId_);
       }
       if (musicShareId_ != 0L) {
-        output.writeUInt64(8, musicShareId_);
+        output.writeUInt64(3, musicShareId_);
       }
-      if (musicBasicId_ != 0) {
-        output.writeUInt32(10, musicBasicId_);
+      if (unk2700IOKPIKJDEHG_ != false) {
+        output.writeBool(11, unk2700IOKPIKJDEHG_);
       }
       unknownFields.writeTo(output);
     }
@@ -200,17 +200,17 @@ public final class MusicGameStartReqOuterClass {
       if (size != -1) return size;
 
       size = 0;
-      if (kJNDJLBOJLM_ != false) {
+      if (musicBasicId_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, kJNDJLBOJLM_);
+          .computeUInt32Size(2, musicBasicId_);
       }
       if (musicShareId_ != 0L) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt64Size(8, musicShareId_);
+          .computeUInt64Size(3, musicShareId_);
       }
-      if (musicBasicId_ != 0) {
+      if (unk2700IOKPIKJDEHG_ != false) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(10, musicBasicId_);
+          .computeBoolSize(11, unk2700IOKPIKJDEHG_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -229,10 +229,10 @@ public final class MusicGameStartReqOuterClass {
 
       if (getMusicBasicId()
           != other.getMusicBasicId()) return false;
+      if (getUnk2700IOKPIKJDEHG()
+          != other.getUnk2700IOKPIKJDEHG()) return false;
       if (getMusicShareId()
           != other.getMusicShareId()) return false;
-      if (getKJNDJLBOJLM()
-          != other.getKJNDJLBOJLM()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -246,12 +246,12 @@ public final class MusicGameStartReqOuterClass {
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = (37 * hash) + MUSIC_BASIC_ID_FIELD_NUMBER;
       hash = (53 * hash) + getMusicBasicId();
+      hash = (37 * hash) + UNK2700_IOKPIKJDEHG_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getUnk2700IOKPIKJDEHG());
       hash = (37 * hash) + MUSIC_SHARE_ID_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
           getMusicShareId());
-      hash = (37 * hash) + KJNDJLBOJLM_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getKJNDJLBOJLM());
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -349,9 +349,9 @@ public final class MusicGameStartReqOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 8927
+     * CmdId: 8406
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -394,9 +394,9 @@ public final class MusicGameStartReqOuterClass {
         super.clear();
         musicBasicId_ = 0;
 
-        musicShareId_ = 0L;
+        unk2700IOKPIKJDEHG_ = false;
 
-        kJNDJLBOJLM_ = false;
+        musicShareId_ = 0L;
 
         return this;
       }
@@ -425,8 +425,8 @@ public final class MusicGameStartReqOuterClass {
       public emu.grasscutter.net.proto.MusicGameStartReqOuterClass.MusicGameStartReq buildPartial() {
         emu.grasscutter.net.proto.MusicGameStartReqOuterClass.MusicGameStartReq result = new emu.grasscutter.net.proto.MusicGameStartReqOuterClass.MusicGameStartReq(this);
         result.musicBasicId_ = musicBasicId_;
+        result.unk2700IOKPIKJDEHG_ = unk2700IOKPIKJDEHG_;
         result.musicShareId_ = musicShareId_;
-        result.kJNDJLBOJLM_ = kJNDJLBOJLM_;
         onBuilt();
         return result;
       }
@@ -478,12 +478,12 @@ public final class MusicGameStartReqOuterClass {
         if (other.getMusicBasicId() != 0) {
           setMusicBasicId(other.getMusicBasicId());
         }
+        if (other.getUnk2700IOKPIKJDEHG() != false) {
+          setUnk2700IOKPIKJDEHG(other.getUnk2700IOKPIKJDEHG());
+        }
         if (other.getMusicShareId() != 0L) {
           setMusicShareId(other.getMusicShareId());
         }
-        if (other.getKJNDJLBOJLM() != false) {
-          setKJNDJLBOJLM(other.getKJNDJLBOJLM());
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -515,7 +515,7 @@ public final class MusicGameStartReqOuterClass {
 
       private int musicBasicId_ ;
       /**
-       * <code>uint32 music_basic_id = 10;</code>
+       * <code>uint32 music_basic_id = 2;</code>
        * @return The musicBasicId.
        */
       @java.lang.Override
@@ -523,7 +523,7 @@ public final class MusicGameStartReqOuterClass {
         return musicBasicId_;
       }
       /**
-       * <code>uint32 music_basic_id = 10;</code>
+       * <code>uint32 music_basic_id = 2;</code>
        * @param value The musicBasicId to set.
        * @return This builder for chaining.
        */
@@ -534,7 +534,7 @@ public final class MusicGameStartReqOuterClass {
         return this;
       }
       /**
-       * <code>uint32 music_basic_id = 10;</code>
+       * <code>uint32 music_basic_id = 2;</code>
        * @return This builder for chaining.
        */
       public Builder clearMusicBasicId() {
@@ -544,64 +544,64 @@ public final class MusicGameStartReqOuterClass {
         return this;
       }
 
-      private long musicShareId_ ;
+      private boolean unk2700IOKPIKJDEHG_ ;
       /**
-       * <code>uint64 music_share_id = 8;</code>
-       * @return The musicShareId.
+       * <code>bool Unk2700_IOKPIKJDEHG = 11;</code>
+       * @return The unk2700IOKPIKJDEHG.
        */
       @java.lang.Override
-      public long getMusicShareId() {
-        return musicShareId_;
+      public boolean getUnk2700IOKPIKJDEHG() {
+        return unk2700IOKPIKJDEHG_;
       }
       /**
-       * <code>uint64 music_share_id = 8;</code>
-       * @param value The musicShareId to set.
+       * <code>bool Unk2700_IOKPIKJDEHG = 11;</code>
+       * @param value The unk2700IOKPIKJDEHG to set.
        * @return This builder for chaining.
        */
-      public Builder setMusicShareId(long value) {
+      public Builder setUnk2700IOKPIKJDEHG(boolean value) {
         
-        musicShareId_ = value;
+        unk2700IOKPIKJDEHG_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint64 music_share_id = 8;</code>
+       * <code>bool Unk2700_IOKPIKJDEHG = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder clearMusicShareId() {
+      public Builder clearUnk2700IOKPIKJDEHG() {
         
-        musicShareId_ = 0L;
+        unk2700IOKPIKJDEHG_ = false;
         onChanged();
         return this;
       }
 
-      private boolean kJNDJLBOJLM_ ;
+      private long musicShareId_ ;
       /**
-       * <code>bool KJNDJLBOJLM = 5;</code>
-       * @return The kJNDJLBOJLM.
+       * <code>uint64 music_share_id = 3;</code>
+       * @return The musicShareId.
        */
       @java.lang.Override
-      public boolean getKJNDJLBOJLM() {
-        return kJNDJLBOJLM_;
+      public long getMusicShareId() {
+        return musicShareId_;
       }
       /**
-       * <code>bool KJNDJLBOJLM = 5;</code>
-       * @param value The kJNDJLBOJLM to set.
+       * <code>uint64 music_share_id = 3;</code>
+       * @param value The musicShareId to set.
        * @return This builder for chaining.
        */
-      public Builder setKJNDJLBOJLM(boolean value) {
+      public Builder setMusicShareId(long value) {
         
-        kJNDJLBOJLM_ = value;
+        musicShareId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool KJNDJLBOJLM = 5;</code>
+       * <code>uint64 music_share_id = 3;</code>
        * @return This builder for chaining.
        */
-      public Builder clearKJNDJLBOJLM() {
+      public Builder clearMusicShareId() {
         
-        kJNDJLBOJLM_ = false;
+        musicShareId_ = 0L;
         onChanged();
         return this;
       }
@@ -672,10 +672,10 @@ public final class MusicGameStartReqOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\027MusicGameStartReq.proto\"X\n\021MusicGameSt" +
-      "artReq\022\026\n\016music_basic_id\030\n \001(\r\022\026\n\016music_" +
-      "share_id\030\010 \001(\004\022\023\n\013KJNDJLBOJLM\030\005 \001(\010B\033\n\031e" +
-      "mu.grasscutter.net.protob\006proto3"
+      "\n\027MusicGameStartReq.proto\"`\n\021MusicGameSt" +
+      "artReq\022\026\n\016music_basic_id\030\002 \001(\r\022\033\n\023Unk270" +
+      "0_IOKPIKJDEHG\030\013 \001(\010\022\026\n\016music_share_id\030\003 " +
+      "\001(\004B\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -686,7 +686,7 @@ public final class MusicGameStartReqOuterClass {
     internal_static_MusicGameStartReq_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_MusicGameStartReq_descriptor,
-        new java.lang.String[] { "MusicBasicId", "MusicShareId", "KJNDJLBOJLM", });
+        new java.lang.String[] { "MusicBasicId", "Unk2700IOKPIKJDEHG", "MusicShareId", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartRspOuterClass.java
index ff0a7d85..b5a473e7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartRspOuterClass.java
@@ -19,28 +19,29 @@ public final class MusicGameStartRspOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>int32 retcode = 5;</code>
-     * @return The retcode.
+     * <code>uint32 music_basic_id = 4;</code>
+     * @return The musicBasicId.
      */
-    int getRetcode();
+    int getMusicBasicId();
 
     /**
-     * <code>uint32 music_basic_id = 14;</code>
-     * @return The musicBasicId.
+     * <code>int32 retcode = 1;</code>
+     * @return The retcode.
      */
-    int getMusicBasicId();
+    int getRetcode();
 
     /**
-     * <code>uint64 music_share_id = 12;</code>
+     * <code>uint64 music_share_id = 15;</code>
      * @return The musicShareId.
      */
     long getMusicShareId();
   }
   /**
    * <pre>
-   * CmdId: 8101
+   * CmdId: 8326
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code MusicGameStartRsp}
@@ -87,19 +88,19 @@ public final class MusicGameStartRspOuterClass {
             case 0:
               done = true;
               break;
-            case 40: {
+            case 8: {
 
               retcode_ = input.readInt32();
               break;
             }
-            case 96: {
+            case 32: {
 
-              musicShareId_ = input.readUInt64();
+              musicBasicId_ = input.readUInt32();
               break;
             }
-            case 112: {
+            case 120: {
 
-              musicBasicId_ = input.readUInt32();
+              musicShareId_ = input.readUInt64();
               break;
             }
             default: {
@@ -134,32 +135,32 @@ public final class MusicGameStartRspOuterClass {
               emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp.class, emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp.Builder.class);
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 5;
-    private int retcode_;
+    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 4;
+    private int musicBasicId_;
     /**
-     * <code>int32 retcode = 5;</code>
-     * @return The retcode.
+     * <code>uint32 music_basic_id = 4;</code>
+     * @return The musicBasicId.
      */
     @java.lang.Override
-    public int getRetcode() {
-      return retcode_;
+    public int getMusicBasicId() {
+      return musicBasicId_;
     }
 
-    public static final int MUSIC_BASIC_ID_FIELD_NUMBER = 14;
-    private int musicBasicId_;
+    public static final int RETCODE_FIELD_NUMBER = 1;
+    private int retcode_;
     /**
-     * <code>uint32 music_basic_id = 14;</code>
-     * @return The musicBasicId.
+     * <code>int32 retcode = 1;</code>
+     * @return The retcode.
      */
     @java.lang.Override
-    public int getMusicBasicId() {
-      return musicBasicId_;
+    public int getRetcode() {
+      return retcode_;
     }
 
-    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 12;
+    public static final int MUSIC_SHARE_ID_FIELD_NUMBER = 15;
     private long musicShareId_;
     /**
-     * <code>uint64 music_share_id = 12;</code>
+     * <code>uint64 music_share_id = 15;</code>
      * @return The musicShareId.
      */
     @java.lang.Override
@@ -182,13 +183,13 @@ public final class MusicGameStartRspOuterClass {
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
       if (retcode_ != 0) {
-        output.writeInt32(5, retcode_);
-      }
-      if (musicShareId_ != 0L) {
-        output.writeUInt64(12, musicShareId_);
+        output.writeInt32(1, retcode_);
       }
       if (musicBasicId_ != 0) {
-        output.writeUInt32(14, musicBasicId_);
+        output.writeUInt32(4, musicBasicId_);
+      }
+      if (musicShareId_ != 0L) {
+        output.writeUInt64(15, musicShareId_);
       }
       unknownFields.writeTo(output);
     }
@@ -201,15 +202,15 @@ public final class MusicGameStartRspOuterClass {
       size = 0;
       if (retcode_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeInt32Size(5, retcode_);
+          .computeInt32Size(1, retcode_);
       }
-      if (musicShareId_ != 0L) {
+      if (musicBasicId_ != 0) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt64Size(12, musicShareId_);
+          .computeUInt32Size(4, musicBasicId_);
       }
-      if (musicBasicId_ != 0) {
+      if (musicShareId_ != 0L) {
         size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(14, musicBasicId_);
+          .computeUInt64Size(15, musicShareId_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -226,10 +227,10 @@ public final class MusicGameStartRspOuterClass {
       }
       emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp other = (emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp) obj;
 
-      if (getRetcode()
-          != other.getRetcode()) return false;
       if (getMusicBasicId()
           != other.getMusicBasicId()) return false;
+      if (getRetcode()
+          != other.getRetcode()) return false;
       if (getMusicShareId()
           != other.getMusicShareId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
@@ -243,10 +244,10 @@ public final class MusicGameStartRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
-      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + MUSIC_BASIC_ID_FIELD_NUMBER;
       hash = (53 * hash) + getMusicBasicId();
+      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + MUSIC_SHARE_ID_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
           getMusicShareId());
@@ -347,9 +348,10 @@ public final class MusicGameStartRspOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 8101
+     * CmdId: 8326
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code MusicGameStartRsp}
@@ -389,10 +391,10 @@ public final class MusicGameStartRspOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        retcode_ = 0;
-
         musicBasicId_ = 0;
 
+        retcode_ = 0;
+
         musicShareId_ = 0L;
 
         return this;
@@ -421,8 +423,8 @@ public final class MusicGameStartRspOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp buildPartial() {
         emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp result = new emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp(this);
-        result.retcode_ = retcode_;
         result.musicBasicId_ = musicBasicId_;
+        result.retcode_ = retcode_;
         result.musicShareId_ = musicShareId_;
         onBuilt();
         return result;
@@ -472,12 +474,12 @@ public final class MusicGameStartRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp other) {
         if (other == emu.grasscutter.net.proto.MusicGameStartRspOuterClass.MusicGameStartRsp.getDefaultInstance()) return this;
-        if (other.getRetcode() != 0) {
-          setRetcode(other.getRetcode());
-        }
         if (other.getMusicBasicId() != 0) {
           setMusicBasicId(other.getMusicBasicId());
         }
+        if (other.getRetcode() != 0) {
+          setRetcode(other.getRetcode());
+        }
         if (other.getMusicShareId() != 0L) {
           setMusicShareId(other.getMusicShareId());
         }
@@ -510,71 +512,71 @@ public final class MusicGameStartRspOuterClass {
         return this;
       }
 
-      private int retcode_ ;
+      private int musicBasicId_ ;
       /**
-       * <code>int32 retcode = 5;</code>
-       * @return The retcode.
+       * <code>uint32 music_basic_id = 4;</code>
+       * @return The musicBasicId.
        */
       @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
+      public int getMusicBasicId() {
+        return musicBasicId_;
       }
       /**
-       * <code>int32 retcode = 5;</code>
-       * @param value The retcode to set.
+       * <code>uint32 music_basic_id = 4;</code>
+       * @param value The musicBasicId to set.
        * @return This builder for chaining.
        */
-      public Builder setRetcode(int value) {
+      public Builder setMusicBasicId(int value) {
         
-        retcode_ = value;
+        musicBasicId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>int32 retcode = 5;</code>
+       * <code>uint32 music_basic_id = 4;</code>
        * @return This builder for chaining.
        */
-      public Builder clearRetcode() {
+      public Builder clearMusicBasicId() {
         
-        retcode_ = 0;
+        musicBasicId_ = 0;
         onChanged();
         return this;
       }
 
-      private int musicBasicId_ ;
+      private int retcode_ ;
       /**
-       * <code>uint32 music_basic_id = 14;</code>
-       * @return The musicBasicId.
+       * <code>int32 retcode = 1;</code>
+       * @return The retcode.
        */
       @java.lang.Override
-      public int getMusicBasicId() {
-        return musicBasicId_;
+      public int getRetcode() {
+        return retcode_;
       }
       /**
-       * <code>uint32 music_basic_id = 14;</code>
-       * @param value The musicBasicId to set.
+       * <code>int32 retcode = 1;</code>
+       * @param value The retcode to set.
        * @return This builder for chaining.
        */
-      public Builder setMusicBasicId(int value) {
+      public Builder setRetcode(int value) {
         
-        musicBasicId_ = value;
+        retcode_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 music_basic_id = 14;</code>
+       * <code>int32 retcode = 1;</code>
        * @return This builder for chaining.
        */
-      public Builder clearMusicBasicId() {
+      public Builder clearRetcode() {
         
-        musicBasicId_ = 0;
+        retcode_ = 0;
         onChanged();
         return this;
       }
 
       private long musicShareId_ ;
       /**
-       * <code>uint64 music_share_id = 12;</code>
+       * <code>uint64 music_share_id = 15;</code>
        * @return The musicShareId.
        */
       @java.lang.Override
@@ -582,7 +584,7 @@ public final class MusicGameStartRspOuterClass {
         return musicShareId_;
       }
       /**
-       * <code>uint64 music_share_id = 12;</code>
+       * <code>uint64 music_share_id = 15;</code>
        * @param value The musicShareId to set.
        * @return This builder for chaining.
        */
@@ -593,7 +595,7 @@ public final class MusicGameStartRspOuterClass {
         return this;
       }
       /**
-       * <code>uint64 music_share_id = 12;</code>
+       * <code>uint64 music_share_id = 15;</code>
        * @return This builder for chaining.
        */
       public Builder clearMusicShareId() {
@@ -670,8 +672,8 @@ public final class MusicGameStartRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\027MusicGameStartRsp.proto\"T\n\021MusicGameSt" +
-      "artRsp\022\017\n\007retcode\030\005 \001(\005\022\026\n\016music_basic_i" +
-      "d\030\016 \001(\r\022\026\n\016music_share_id\030\014 \001(\004B\033\n\031emu.g" +
+      "artRsp\022\026\n\016music_basic_id\030\004 \001(\r\022\017\n\007retcod" +
+      "e\030\001 \001(\005\022\026\n\016music_share_id\030\017 \001(\004B\033\n\031emu.g" +
       "rasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -683,7 +685,7 @@ public final class MusicGameStartRspOuterClass {
     internal_static_MusicGameStartRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_MusicGameStartRsp_descriptor,
-        new java.lang.String[] { "Retcode", "MusicBasicId", "MusicShareId", });
+        new java.lang.String[] { "MusicBasicId", "Retcode", "MusicShareId", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkReqOuterClass.java
index 3d50fc65..1b41d290 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkReqOuterClass.java
@@ -40,7 +40,7 @@ public final class NpcTalkReqOuterClass {
    * <pre>
    * CmdId: 572
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class NpcTalkReqOuterClass {
      * <pre>
      * CmdId: 572
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkRspOuterClass.java
index 789632b9..2ab5bea1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/NpcTalkRspOuterClass.java
@@ -46,7 +46,8 @@ public final class NpcTalkRspOuterClass {
    * <pre>
    * CmdId: 598
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code NpcTalkRsp}
@@ -381,7 +382,8 @@ public final class NpcTalkRspOuterClass {
      * <pre>
      * CmdId: 598
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code NpcTalkRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/OneofGatherPointDetectorDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/OneofGatherPointDetectorDataNotifyOuterClass.java
index 3131b823..248e0931 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/OneofGatherPointDetectorDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/OneofGatherPointDetectorDataNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class OneofGatherPointDetectorDataNotifyOuterClass {
    * <pre>
    * CmdId: 4297
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code OneofGatherPointDetectorDataNotify}
@@ -340,7 +341,8 @@ public final class OneofGatherPointDetectorDataNotifyOuterClass {
      * <pre>
      * CmdId: 4297
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code OneofGatherPointDetectorDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/OpenStateChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/OpenStateChangeNotifyOuterClass.java
index e8ea54f7..bdd9a87f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/OpenStateChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/OpenStateChangeNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class OpenStateChangeNotifyOuterClass {
    * <pre>
    * CmdId: 127
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code OpenStateChangeNotify}
@@ -412,7 +413,8 @@ public final class OpenStateChangeNotifyOuterClass {
      * <pre>
      * CmdId: 127
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code OpenStateChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/OpenStateUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/OpenStateUpdateNotifyOuterClass.java
index fe105756..7d696e3a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/OpenStateUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/OpenStateUpdateNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class OpenStateUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 193
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code OpenStateUpdateNotify}
@@ -412,7 +413,8 @@ public final class OpenStateUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 193
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code OpenStateUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ParentQuestOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ParentQuestOuterClass.java
index a3ae28b1..5914cccc 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ParentQuestOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ParentQuestOuterClass.java
@@ -18,27 +18,6 @@ public final class ParentQuestOuterClass {
       // @@protoc_insertion_point(interface_extends:ParentQuest)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>.ParentQuestRandomInfo random_info = 12;</code>
-     * @return Whether the randomInfo field is set.
-     */
-    boolean hasRandomInfo();
-    /**
-     * <code>.ParentQuestRandomInfo random_info = 12;</code>
-     * @return The randomInfo.
-     */
-    emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo getRandomInfo();
-    /**
-     * <code>.ParentQuestRandomInfo random_info = 12;</code>
-     */
-    emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder getRandomInfoOrBuilder();
-
-    /**
-     * <code>uint32 quest_var_seq = 11;</code>
-     * @return The questVarSeq.
-     */
-    int getQuestVarSeq();
-
     /**
      * <code>repeated int32 quest_var = 14;</code>
      * @return A list containing the questVar.
@@ -56,30 +35,6 @@ public final class ParentQuestOuterClass {
      */
     int getQuestVar(int index);
 
-    /**
-     * <code>uint64 cutscene_encryption_key = 6;</code>
-     * @return The cutsceneEncryptionKey.
-     */
-    long getCutsceneEncryptionKey();
-
-    /**
-     * <code>bool is_random = 13;</code>
-     * @return The isRandom.
-     */
-    boolean getIsRandom();
-
-    /**
-     * <code>uint32 parent_quest_id = 3;</code>
-     * @return The parentQuestId.
-     */
-    int getParentQuestId();
-
-    /**
-     * <code>bool is_finished = 7;</code>
-     * @return The isFinished.
-     */
-    boolean getIsFinished();
-
     /**
      * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
      */
@@ -120,6 +75,75 @@ public final class ParentQuestOuterClass {
      */
     int getParentQuestState();
 
+    /**
+     * <code>bool is_finished = 7;</code>
+     * @return The isFinished.
+     */
+    boolean getIsFinished();
+
+    /**
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+     */
+    java.util.List<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK> 
+        getUnk3000HLPGILIGGCBList();
+    /**
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK getUnk3000HLPGILIGGCB(int index);
+    /**
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+     */
+    int getUnk3000HLPGILIGGCBCount();
+    /**
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder> 
+        getUnk3000HLPGILIGGCBOrBuilderList();
+    /**
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder getUnk3000HLPGILIGGCBOrBuilder(
+        int index);
+
+    /**
+     * <code>.ParentQuestRandomInfo random_info = 12;</code>
+     * @return Whether the randomInfo field is set.
+     */
+    boolean hasRandomInfo();
+    /**
+     * <code>.ParentQuestRandomInfo random_info = 12;</code>
+     * @return The randomInfo.
+     */
+    emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo getRandomInfo();
+    /**
+     * <code>.ParentQuestRandomInfo random_info = 12;</code>
+     */
+    emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder getRandomInfoOrBuilder();
+
+    /**
+     * <code>uint32 parent_quest_id = 3;</code>
+     * @return The parentQuestId.
+     */
+    int getParentQuestId();
+
+    /**
+     * <code>bool is_random = 13;</code>
+     * @return The isRandom.
+     */
+    boolean getIsRandom();
+
+    /**
+     * <code>uint64 cutscene_encryption_key = 6;</code>
+     * @return The cutsceneEncryptionKey.
+     */
+    long getCutsceneEncryptionKey();
+
+    /**
+     * <code>uint32 quest_var_seq = 11;</code>
+     * @return The questVarSeq.
+     */
+    int getQuestVarSeq();
+
     /**
      * <code>repeated .ChildQuest child_quest_list = 9;</code>
      */
@@ -158,6 +182,7 @@ public final class ParentQuestOuterClass {
     }
     private ParentQuest() {
       questVar_ = emptyIntList();
+      unk3000HLPGILIGGCB_ = java.util.Collections.emptyList();
       childQuestList_ = java.util.Collections.emptyList();
     }
 
@@ -226,9 +251,9 @@ public final class ParentQuestOuterClass {
               break;
             }
             case 74: {
-              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                 childQuestList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest>();
-                mutable_bitField0_ |= 0x00000004;
+                mutable_bitField0_ |= 0x00000008;
               }
               childQuestList_.add(
                   input.readMessage(emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest.parser(), extensionRegistry));
@@ -278,6 +303,15 @@ public final class ParentQuestOuterClass {
               input.popLimit(limit);
               break;
             }
+            case 122: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                unk3000HLPGILIGGCB_ = new java.util.ArrayList<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              unk3000HLPGILIGGCB_.add(
+                  input.readMessage(emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.parser(), extensionRegistry));
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -293,12 +327,15 @@ public final class ParentQuestOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+        if (((mutable_bitField0_ & 0x00000008) != 0)) {
           childQuestList_ = java.util.Collections.unmodifiableList(childQuestList_);
         }
         if (((mutable_bitField0_ & 0x00000001) != 0)) {
           questVar_.makeImmutable(); // C
         }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          unk3000HLPGILIGGCB_ = java.util.Collections.unmodifiableList(unk3000HLPGILIGGCB_);
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -328,43 +365,6 @@ public final class ParentQuestOuterClass {
               emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest.class, emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest.Builder.class);
     }
 
-    public static final int RANDOM_INFO_FIELD_NUMBER = 12;
-    private emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo randomInfo_;
-    /**
-     * <code>.ParentQuestRandomInfo random_info = 12;</code>
-     * @return Whether the randomInfo field is set.
-     */
-    @java.lang.Override
-    public boolean hasRandomInfo() {
-      return randomInfo_ != null;
-    }
-    /**
-     * <code>.ParentQuestRandomInfo random_info = 12;</code>
-     * @return The randomInfo.
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo getRandomInfo() {
-      return randomInfo_ == null ? emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.getDefaultInstance() : randomInfo_;
-    }
-    /**
-     * <code>.ParentQuestRandomInfo random_info = 12;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder getRandomInfoOrBuilder() {
-      return getRandomInfo();
-    }
-
-    public static final int QUEST_VAR_SEQ_FIELD_NUMBER = 11;
-    private int questVarSeq_;
-    /**
-     * <code>uint32 quest_var_seq = 11;</code>
-     * @return The questVarSeq.
-     */
-    @java.lang.Override
-    public int getQuestVarSeq() {
-      return questVarSeq_;
-    }
-
     public static final int QUEST_VAR_FIELD_NUMBER = 14;
     private com.google.protobuf.Internal.IntList questVar_;
     /**
@@ -393,50 +393,6 @@ public final class ParentQuestOuterClass {
     }
     private int questVarMemoizedSerializedSize = -1;
 
-    public static final int CUTSCENE_ENCRYPTION_KEY_FIELD_NUMBER = 6;
-    private long cutsceneEncryptionKey_;
-    /**
-     * <code>uint64 cutscene_encryption_key = 6;</code>
-     * @return The cutsceneEncryptionKey.
-     */
-    @java.lang.Override
-    public long getCutsceneEncryptionKey() {
-      return cutsceneEncryptionKey_;
-    }
-
-    public static final int IS_RANDOM_FIELD_NUMBER = 13;
-    private boolean isRandom_;
-    /**
-     * <code>bool is_random = 13;</code>
-     * @return The isRandom.
-     */
-    @java.lang.Override
-    public boolean getIsRandom() {
-      return isRandom_;
-    }
-
-    public static final int PARENT_QUEST_ID_FIELD_NUMBER = 3;
-    private int parentQuestId_;
-    /**
-     * <code>uint32 parent_quest_id = 3;</code>
-     * @return The parentQuestId.
-     */
-    @java.lang.Override
-    public int getParentQuestId() {
-      return parentQuestId_;
-    }
-
-    public static final int IS_FINISHED_FIELD_NUMBER = 7;
-    private boolean isFinished_;
-    /**
-     * <code>bool is_finished = 7;</code>
-     * @return The isFinished.
-     */
-    @java.lang.Override
-    public boolean getIsFinished() {
-      return isFinished_;
-    }
-
     public static final int TIME_VAR_MAP_FIELD_NUMBER = 8;
     private static final class TimeVarMapDefaultEntryHolder {
       static final com.google.protobuf.MapEntry<
@@ -529,71 +485,192 @@ public final class ParentQuestOuterClass {
       return parentQuestState_;
     }
 
-    public static final int CHILD_QUEST_LIST_FIELD_NUMBER = 9;
-    private java.util.List<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest> childQuestList_;
+    public static final int IS_FINISHED_FIELD_NUMBER = 7;
+    private boolean isFinished_;
     /**
-     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     * <code>bool is_finished = 7;</code>
+     * @return The isFinished.
      */
     @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest> getChildQuestListList() {
-      return childQuestList_;
+    public boolean getIsFinished() {
+      return isFinished_;
     }
+
+    public static final int UNK3000_HLPGILIGGCB_FIELD_NUMBER = 15;
+    private java.util.List<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK> unk3000HLPGILIGGCB_;
     /**
-     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
      */
     @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuestOrBuilder> 
-        getChildQuestListOrBuilderList() {
-      return childQuestList_;
+    public java.util.List<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK> getUnk3000HLPGILIGGCBList() {
+      return unk3000HLPGILIGGCB_;
     }
     /**
-     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
      */
     @java.lang.Override
-    public int getChildQuestListCount() {
-      return childQuestList_.size();
+    public java.util.List<? extends emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder> 
+        getUnk3000HLPGILIGGCBOrBuilderList() {
+      return unk3000HLPGILIGGCB_;
     }
     /**
-     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest getChildQuestList(int index) {
-      return childQuestList_.get(index);
+    public int getUnk3000HLPGILIGGCBCount() {
+      return unk3000HLPGILIGGCB_.size();
     }
     /**
-     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuestOrBuilder getChildQuestListOrBuilder(
+    public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK getUnk3000HLPGILIGGCB(int index) {
+      return unk3000HLPGILIGGCB_.get(index);
+    }
+    /**
+     * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder getUnk3000HLPGILIGGCBOrBuilder(
         int index) {
-      return childQuestList_.get(index);
+      return unk3000HLPGILIGGCB_.get(index);
     }
 
-    private byte memoizedIsInitialized = -1;
+    public static final int RANDOM_INFO_FIELD_NUMBER = 12;
+    private emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo randomInfo_;
+    /**
+     * <code>.ParentQuestRandomInfo random_info = 12;</code>
+     * @return Whether the randomInfo field is set.
+     */
     @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
-
-      memoizedIsInitialized = 1;
-      return true;
+    public boolean hasRandomInfo() {
+      return randomInfo_ != null;
     }
-
+    /**
+     * <code>.ParentQuestRandomInfo random_info = 12;</code>
+     * @return The randomInfo.
+     */
     @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (parentQuestState_ != 0) {
-        output.writeUInt32(1, parentQuestState_);
-      }
-      if (parentQuestId_ != 0) {
-        output.writeUInt32(3, parentQuestId_);
-      }
-      if (cutsceneEncryptionKey_ != 0L) {
-        output.writeUInt64(6, cutsceneEncryptionKey_);
-      }
-      if (isFinished_ != false) {
+    public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo getRandomInfo() {
+      return randomInfo_ == null ? emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.getDefaultInstance() : randomInfo_;
+    }
+    /**
+     * <code>.ParentQuestRandomInfo random_info = 12;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder getRandomInfoOrBuilder() {
+      return getRandomInfo();
+    }
+
+    public static final int PARENT_QUEST_ID_FIELD_NUMBER = 3;
+    private int parentQuestId_;
+    /**
+     * <code>uint32 parent_quest_id = 3;</code>
+     * @return The parentQuestId.
+     */
+    @java.lang.Override
+    public int getParentQuestId() {
+      return parentQuestId_;
+    }
+
+    public static final int IS_RANDOM_FIELD_NUMBER = 13;
+    private boolean isRandom_;
+    /**
+     * <code>bool is_random = 13;</code>
+     * @return The isRandom.
+     */
+    @java.lang.Override
+    public boolean getIsRandom() {
+      return isRandom_;
+    }
+
+    public static final int CUTSCENE_ENCRYPTION_KEY_FIELD_NUMBER = 6;
+    private long cutsceneEncryptionKey_;
+    /**
+     * <code>uint64 cutscene_encryption_key = 6;</code>
+     * @return The cutsceneEncryptionKey.
+     */
+    @java.lang.Override
+    public long getCutsceneEncryptionKey() {
+      return cutsceneEncryptionKey_;
+    }
+
+    public static final int QUEST_VAR_SEQ_FIELD_NUMBER = 11;
+    private int questVarSeq_;
+    /**
+     * <code>uint32 quest_var_seq = 11;</code>
+     * @return The questVarSeq.
+     */
+    @java.lang.Override
+    public int getQuestVarSeq() {
+      return questVarSeq_;
+    }
+
+    public static final int CHILD_QUEST_LIST_FIELD_NUMBER = 9;
+    private java.util.List<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest> childQuestList_;
+    /**
+     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     */
+    @java.lang.Override
+    public java.util.List<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest> getChildQuestListList() {
+      return childQuestList_;
+    }
+    /**
+     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     */
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuestOrBuilder> 
+        getChildQuestListOrBuilderList() {
+      return childQuestList_;
+    }
+    /**
+     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     */
+    @java.lang.Override
+    public int getChildQuestListCount() {
+      return childQuestList_.size();
+    }
+    /**
+     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest getChildQuestList(int index) {
+      return childQuestList_.get(index);
+    }
+    /**
+     * <code>repeated .ChildQuest child_quest_list = 9;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuestOrBuilder getChildQuestListOrBuilder(
+        int index) {
+      return childQuestList_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (parentQuestState_ != 0) {
+        output.writeUInt32(1, parentQuestState_);
+      }
+      if (parentQuestId_ != 0) {
+        output.writeUInt32(3, parentQuestId_);
+      }
+      if (cutsceneEncryptionKey_ != 0L) {
+        output.writeUInt64(6, cutsceneEncryptionKey_);
+      }
+      if (isFinished_ != false) {
         output.writeBool(7, isFinished_);
       }
       com.google.protobuf.GeneratedMessageV3
@@ -621,6 +698,9 @@ public final class ParentQuestOuterClass {
       for (int i = 0; i < questVar_.size(); i++) {
         output.writeInt32NoTag(questVar_.getInt(i));
       }
+      for (int i = 0; i < unk3000HLPGILIGGCB_.size(); i++) {
+        output.writeMessage(15, unk3000HLPGILIGGCB_.get(i));
+      }
       unknownFields.writeTo(output);
     }
 
@@ -686,6 +766,10 @@ public final class ParentQuestOuterClass {
         }
         questVarMemoizedSerializedSize = dataSize;
       }
+      for (int i = 0; i < unk3000HLPGILIGGCB_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(15, unk3000HLPGILIGGCB_.get(i));
+      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -701,27 +785,29 @@ public final class ParentQuestOuterClass {
       }
       emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest other = (emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest) obj;
 
+      if (!getQuestVarList()
+          .equals(other.getQuestVarList())) return false;
+      if (!internalGetTimeVarMap().equals(
+          other.internalGetTimeVarMap())) return false;
+      if (getParentQuestState()
+          != other.getParentQuestState()) return false;
+      if (getIsFinished()
+          != other.getIsFinished()) return false;
+      if (!getUnk3000HLPGILIGGCBList()
+          .equals(other.getUnk3000HLPGILIGGCBList())) return false;
       if (hasRandomInfo() != other.hasRandomInfo()) return false;
       if (hasRandomInfo()) {
         if (!getRandomInfo()
             .equals(other.getRandomInfo())) return false;
       }
-      if (getQuestVarSeq()
-          != other.getQuestVarSeq()) return false;
-      if (!getQuestVarList()
-          .equals(other.getQuestVarList())) return false;
-      if (getCutsceneEncryptionKey()
-          != other.getCutsceneEncryptionKey()) return false;
-      if (getIsRandom()
-          != other.getIsRandom()) return false;
       if (getParentQuestId()
           != other.getParentQuestId()) return false;
-      if (getIsFinished()
-          != other.getIsFinished()) return false;
-      if (!internalGetTimeVarMap().equals(
-          other.internalGetTimeVarMap())) return false;
-      if (getParentQuestState()
-          != other.getParentQuestState()) return false;
+      if (getIsRandom()
+          != other.getIsRandom()) return false;
+      if (getCutsceneEncryptionKey()
+          != other.getCutsceneEncryptionKey()) return false;
+      if (getQuestVarSeq()
+          != other.getQuestVarSeq()) return false;
       if (!getChildQuestListList()
           .equals(other.getChildQuestListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
@@ -735,33 +821,37 @@ public final class ParentQuestOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      if (hasRandomInfo()) {
-        hash = (37 * hash) + RANDOM_INFO_FIELD_NUMBER;
-        hash = (53 * hash) + getRandomInfo().hashCode();
-      }
-      hash = (37 * hash) + QUEST_VAR_SEQ_FIELD_NUMBER;
-      hash = (53 * hash) + getQuestVarSeq();
       if (getQuestVarCount() > 0) {
         hash = (37 * hash) + QUEST_VAR_FIELD_NUMBER;
         hash = (53 * hash) + getQuestVarList().hashCode();
       }
-      hash = (37 * hash) + CUTSCENE_ENCRYPTION_KEY_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
-          getCutsceneEncryptionKey());
-      hash = (37 * hash) + IS_RANDOM_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getIsRandom());
-      hash = (37 * hash) + PARENT_QUEST_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getParentQuestId();
-      hash = (37 * hash) + IS_FINISHED_FIELD_NUMBER;
-      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
-          getIsFinished());
       if (!internalGetTimeVarMap().getMap().isEmpty()) {
         hash = (37 * hash) + TIME_VAR_MAP_FIELD_NUMBER;
         hash = (53 * hash) + internalGetTimeVarMap().hashCode();
       }
       hash = (37 * hash) + PARENT_QUEST_STATE_FIELD_NUMBER;
       hash = (53 * hash) + getParentQuestState();
+      hash = (37 * hash) + IS_FINISHED_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsFinished());
+      if (getUnk3000HLPGILIGGCBCount() > 0) {
+        hash = (37 * hash) + UNK3000_HLPGILIGGCB_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk3000HLPGILIGGCBList().hashCode();
+      }
+      if (hasRandomInfo()) {
+        hash = (37 * hash) + RANDOM_INFO_FIELD_NUMBER;
+        hash = (53 * hash) + getRandomInfo().hashCode();
+      }
+      hash = (37 * hash) + PARENT_QUEST_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getParentQuestId();
+      hash = (37 * hash) + IS_RANDOM_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsRandom());
+      hash = (37 * hash) + CUTSCENE_ENCRYPTION_KEY_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCutsceneEncryptionKey());
+      hash = (37 * hash) + QUEST_VAR_SEQ_FIELD_NUMBER;
+      hash = (53 * hash) + getQuestVarSeq();
       if (getChildQuestListCount() > 0) {
         hash = (37 * hash) + CHILD_QUEST_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getChildQuestListList().hashCode();
@@ -916,36 +1006,43 @@ public final class ParentQuestOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
+          getUnk3000HLPGILIGGCBFieldBuilder();
           getChildQuestListFieldBuilder();
         }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        questVar_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        internalGetMutableTimeVarMap().clear();
+        parentQuestState_ = 0;
+
+        isFinished_ = false;
+
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          unk3000HLPGILIGGCB_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        } else {
+          unk3000HLPGILIGGCBBuilder_.clear();
+        }
         if (randomInfoBuilder_ == null) {
           randomInfo_ = null;
         } else {
           randomInfo_ = null;
           randomInfoBuilder_ = null;
         }
-        questVarSeq_ = 0;
-
-        questVar_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
-        cutsceneEncryptionKey_ = 0L;
+        parentQuestId_ = 0;
 
         isRandom_ = false;
 
-        parentQuestId_ = 0;
-
-        isFinished_ = false;
+        cutsceneEncryptionKey_ = 0L;
 
-        internalGetMutableTimeVarMap().clear();
-        parentQuestState_ = 0;
+        questVarSeq_ = 0;
 
         if (childQuestListBuilder_ == null) {
           childQuestList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
+          bitField0_ = (bitField0_ & ~0x00000008);
         } else {
           childQuestListBuilder_.clear();
         }
@@ -976,29 +1073,38 @@ public final class ParentQuestOuterClass {
       public emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest buildPartial() {
         emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest result = new emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest(this);
         int from_bitField0_ = bitField0_;
-        if (randomInfoBuilder_ == null) {
-          result.randomInfo_ = randomInfo_;
-        } else {
-          result.randomInfo_ = randomInfoBuilder_.build();
-        }
-        result.questVarSeq_ = questVarSeq_;
         if (((bitField0_ & 0x00000001) != 0)) {
           questVar_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000001);
         }
         result.questVar_ = questVar_;
-        result.cutsceneEncryptionKey_ = cutsceneEncryptionKey_;
-        result.isRandom_ = isRandom_;
-        result.parentQuestId_ = parentQuestId_;
-        result.isFinished_ = isFinished_;
         result.timeVarMap_ = internalGetTimeVarMap();
         result.timeVarMap_.makeImmutable();
         result.parentQuestState_ = parentQuestState_;
-        if (childQuestListBuilder_ == null) {
+        result.isFinished_ = isFinished_;
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0)) {
-            childQuestList_ = java.util.Collections.unmodifiableList(childQuestList_);
+            unk3000HLPGILIGGCB_ = java.util.Collections.unmodifiableList(unk3000HLPGILIGGCB_);
             bitField0_ = (bitField0_ & ~0x00000004);
           }
+          result.unk3000HLPGILIGGCB_ = unk3000HLPGILIGGCB_;
+        } else {
+          result.unk3000HLPGILIGGCB_ = unk3000HLPGILIGGCBBuilder_.build();
+        }
+        if (randomInfoBuilder_ == null) {
+          result.randomInfo_ = randomInfo_;
+        } else {
+          result.randomInfo_ = randomInfoBuilder_.build();
+        }
+        result.parentQuestId_ = parentQuestId_;
+        result.isRandom_ = isRandom_;
+        result.cutsceneEncryptionKey_ = cutsceneEncryptionKey_;
+        result.questVarSeq_ = questVarSeq_;
+        if (childQuestListBuilder_ == null) {
+          if (((bitField0_ & 0x00000008) != 0)) {
+            childQuestList_ = java.util.Collections.unmodifiableList(childQuestList_);
+            bitField0_ = (bitField0_ & ~0x00000008);
+          }
           result.childQuestList_ = childQuestList_;
         } else {
           result.childQuestList_ = childQuestListBuilder_.build();
@@ -1051,12 +1157,6 @@ public final class ParentQuestOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest other) {
         if (other == emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest.getDefaultInstance()) return this;
-        if (other.hasRandomInfo()) {
-          mergeRandomInfo(other.getRandomInfo());
-        }
-        if (other.getQuestVarSeq() != 0) {
-          setQuestVarSeq(other.getQuestVarSeq());
-        }
         if (!other.questVar_.isEmpty()) {
           if (questVar_.isEmpty()) {
             questVar_ = other.questVar_;
@@ -1067,28 +1167,60 @@ public final class ParentQuestOuterClass {
           }
           onChanged();
         }
-        if (other.getCutsceneEncryptionKey() != 0L) {
-          setCutsceneEncryptionKey(other.getCutsceneEncryptionKey());
-        }
-        if (other.getIsRandom() != false) {
-          setIsRandom(other.getIsRandom());
-        }
-        if (other.getParentQuestId() != 0) {
-          setParentQuestId(other.getParentQuestId());
-        }
-        if (other.getIsFinished() != false) {
-          setIsFinished(other.getIsFinished());
-        }
         internalGetMutableTimeVarMap().mergeFrom(
             other.internalGetTimeVarMap());
         if (other.getParentQuestState() != 0) {
           setParentQuestState(other.getParentQuestState());
         }
-        if (childQuestListBuilder_ == null) {
+        if (other.getIsFinished() != false) {
+          setIsFinished(other.getIsFinished());
+        }
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          if (!other.unk3000HLPGILIGGCB_.isEmpty()) {
+            if (unk3000HLPGILIGGCB_.isEmpty()) {
+              unk3000HLPGILIGGCB_ = other.unk3000HLPGILIGGCB_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+            } else {
+              ensureUnk3000HLPGILIGGCBIsMutable();
+              unk3000HLPGILIGGCB_.addAll(other.unk3000HLPGILIGGCB_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.unk3000HLPGILIGGCB_.isEmpty()) {
+            if (unk3000HLPGILIGGCBBuilder_.isEmpty()) {
+              unk3000HLPGILIGGCBBuilder_.dispose();
+              unk3000HLPGILIGGCBBuilder_ = null;
+              unk3000HLPGILIGGCB_ = other.unk3000HLPGILIGGCB_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              unk3000HLPGILIGGCBBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getUnk3000HLPGILIGGCBFieldBuilder() : null;
+            } else {
+              unk3000HLPGILIGGCBBuilder_.addAllMessages(other.unk3000HLPGILIGGCB_);
+            }
+          }
+        }
+        if (other.hasRandomInfo()) {
+          mergeRandomInfo(other.getRandomInfo());
+        }
+        if (other.getParentQuestId() != 0) {
+          setParentQuestId(other.getParentQuestId());
+        }
+        if (other.getIsRandom() != false) {
+          setIsRandom(other.getIsRandom());
+        }
+        if (other.getCutsceneEncryptionKey() != 0L) {
+          setCutsceneEncryptionKey(other.getCutsceneEncryptionKey());
+        }
+        if (other.getQuestVarSeq() != 0) {
+          setQuestVarSeq(other.getQuestVarSeq());
+        }
+        if (childQuestListBuilder_ == null) {
           if (!other.childQuestList_.isEmpty()) {
             if (childQuestList_.isEmpty()) {
               childQuestList_ = other.childQuestList_;
-              bitField0_ = (bitField0_ & ~0x00000004);
+              bitField0_ = (bitField0_ & ~0x00000008);
             } else {
               ensureChildQuestListIsMutable();
               childQuestList_.addAll(other.childQuestList_);
@@ -1101,7 +1233,7 @@ public final class ParentQuestOuterClass {
               childQuestListBuilder_.dispose();
               childQuestListBuilder_ = null;
               childQuestList_ = other.childQuestList_;
-              bitField0_ = (bitField0_ & ~0x00000004);
+              bitField0_ = (bitField0_ & ~0x00000008);
               childQuestListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getChildQuestListFieldBuilder() : null;
@@ -1140,156 +1272,6 @@ public final class ParentQuestOuterClass {
       }
       private int bitField0_;
 
-      private emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo randomInfo_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder> randomInfoBuilder_;
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       * @return Whether the randomInfo field is set.
-       */
-      public boolean hasRandomInfo() {
-        return randomInfoBuilder_ != null || randomInfo_ != null;
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       * @return The randomInfo.
-       */
-      public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo getRandomInfo() {
-        if (randomInfoBuilder_ == null) {
-          return randomInfo_ == null ? emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.getDefaultInstance() : randomInfo_;
-        } else {
-          return randomInfoBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      public Builder setRandomInfo(emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo value) {
-        if (randomInfoBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          randomInfo_ = value;
-          onChanged();
-        } else {
-          randomInfoBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      public Builder setRandomInfo(
-          emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder builderForValue) {
-        if (randomInfoBuilder_ == null) {
-          randomInfo_ = builderForValue.build();
-          onChanged();
-        } else {
-          randomInfoBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      public Builder mergeRandomInfo(emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo value) {
-        if (randomInfoBuilder_ == null) {
-          if (randomInfo_ != null) {
-            randomInfo_ =
-              emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.newBuilder(randomInfo_).mergeFrom(value).buildPartial();
-          } else {
-            randomInfo_ = value;
-          }
-          onChanged();
-        } else {
-          randomInfoBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      public Builder clearRandomInfo() {
-        if (randomInfoBuilder_ == null) {
-          randomInfo_ = null;
-          onChanged();
-        } else {
-          randomInfo_ = null;
-          randomInfoBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder getRandomInfoBuilder() {
-        
-        onChanged();
-        return getRandomInfoFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder getRandomInfoOrBuilder() {
-        if (randomInfoBuilder_ != null) {
-          return randomInfoBuilder_.getMessageOrBuilder();
-        } else {
-          return randomInfo_ == null ?
-              emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.getDefaultInstance() : randomInfo_;
-        }
-      }
-      /**
-       * <code>.ParentQuestRandomInfo random_info = 12;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder> 
-          getRandomInfoFieldBuilder() {
-        if (randomInfoBuilder_ == null) {
-          randomInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder>(
-                  getRandomInfo(),
-                  getParentForChildren(),
-                  isClean());
-          randomInfo_ = null;
-        }
-        return randomInfoBuilder_;
-      }
-
-      private int questVarSeq_ ;
-      /**
-       * <code>uint32 quest_var_seq = 11;</code>
-       * @return The questVarSeq.
-       */
-      @java.lang.Override
-      public int getQuestVarSeq() {
-        return questVarSeq_;
-      }
-      /**
-       * <code>uint32 quest_var_seq = 11;</code>
-       * @param value The questVarSeq to set.
-       * @return This builder for chaining.
-       */
-      public Builder setQuestVarSeq(int value) {
-        
-        questVarSeq_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>uint32 quest_var_seq = 11;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearQuestVarSeq() {
-        
-        questVarSeq_ = 0;
-        onChanged();
-        return this;
-      }
-
       private com.google.protobuf.Internal.IntList questVar_ = emptyIntList();
       private void ensureQuestVarIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
@@ -1369,66 +1351,553 @@ public final class ParentQuestOuterClass {
         return this;
       }
 
-      private long cutsceneEncryptionKey_ ;
+      private com.google.protobuf.MapField<
+          java.lang.Integer, java.lang.Integer> timeVarMap_;
+      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
+      internalGetTimeVarMap() {
+        if (timeVarMap_ == null) {
+          return com.google.protobuf.MapField.emptyMapField(
+              TimeVarMapDefaultEntryHolder.defaultEntry);
+        }
+        return timeVarMap_;
+      }
+      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
+      internalGetMutableTimeVarMap() {
+        onChanged();;
+        if (timeVarMap_ == null) {
+          timeVarMap_ = com.google.protobuf.MapField.newMapField(
+              TimeVarMapDefaultEntryHolder.defaultEntry);
+        }
+        if (!timeVarMap_.isMutable()) {
+          timeVarMap_ = timeVarMap_.copy();
+        }
+        return timeVarMap_;
+      }
+
+      public int getTimeVarMapCount() {
+        return internalGetTimeVarMap().getMap().size();
+      }
       /**
-       * <code>uint64 cutscene_encryption_key = 6;</code>
-       * @return The cutsceneEncryptionKey.
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
        */
+
       @java.lang.Override
-      public long getCutsceneEncryptionKey() {
-        return cutsceneEncryptionKey_;
+      public boolean containsTimeVarMap(
+          int key) {
+        
+        return internalGetTimeVarMap().getMap().containsKey(key);
+      }
+      /**
+       * Use {@link #getTimeVarMapMap()} instead.
+       */
+      @java.lang.Override
+      @java.lang.Deprecated
+      public java.util.Map<java.lang.Integer, java.lang.Integer> getTimeVarMap() {
+        return getTimeVarMapMap();
+      }
+      /**
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       */
+      @java.lang.Override
+
+      public java.util.Map<java.lang.Integer, java.lang.Integer> getTimeVarMapMap() {
+        return internalGetTimeVarMap().getMap();
+      }
+      /**
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       */
+      @java.lang.Override
+
+      public int getTimeVarMapOrDefault(
+          int key,
+          int defaultValue) {
+        
+        java.util.Map<java.lang.Integer, java.lang.Integer> map =
+            internalGetTimeVarMap().getMap();
+        return map.containsKey(key) ? map.get(key) : defaultValue;
+      }
+      /**
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       */
+      @java.lang.Override
+
+      public int getTimeVarMapOrThrow(
+          int key) {
+        
+        java.util.Map<java.lang.Integer, java.lang.Integer> map =
+            internalGetTimeVarMap().getMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return map.get(key);
+      }
+
+      public Builder clearTimeVarMap() {
+        internalGetMutableTimeVarMap().getMutableMap()
+            .clear();
+        return this;
+      }
+      /**
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       */
+
+      public Builder removeTimeVarMap(
+          int key) {
+        
+        internalGetMutableTimeVarMap().getMutableMap()
+            .remove(key);
+        return this;
+      }
+      /**
+       * Use alternate mutation accessors instead.
+       */
+      @java.lang.Deprecated
+      public java.util.Map<java.lang.Integer, java.lang.Integer>
+      getMutableTimeVarMap() {
+        return internalGetMutableTimeVarMap().getMutableMap();
+      }
+      /**
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       */
+      public Builder putTimeVarMap(
+          int key,
+          int value) {
+        
+        
+        internalGetMutableTimeVarMap().getMutableMap()
+            .put(key, value);
+        return this;
+      }
+      /**
+       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       */
+
+      public Builder putAllTimeVarMap(
+          java.util.Map<java.lang.Integer, java.lang.Integer> values) {
+        internalGetMutableTimeVarMap().getMutableMap()
+            .putAll(values);
+        return this;
+      }
+
+      private int parentQuestState_ ;
+      /**
+       * <code>uint32 parent_quest_state = 1;</code>
+       * @return The parentQuestState.
+       */
+      @java.lang.Override
+      public int getParentQuestState() {
+        return parentQuestState_;
+      }
+      /**
+       * <code>uint32 parent_quest_state = 1;</code>
+       * @param value The parentQuestState to set.
+       * @return This builder for chaining.
+       */
+      public Builder setParentQuestState(int value) {
+        
+        parentQuestState_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 parent_quest_state = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearParentQuestState() {
+        
+        parentQuestState_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private boolean isFinished_ ;
+      /**
+       * <code>bool is_finished = 7;</code>
+       * @return The isFinished.
+       */
+      @java.lang.Override
+      public boolean getIsFinished() {
+        return isFinished_;
+      }
+      /**
+       * <code>bool is_finished = 7;</code>
+       * @param value The isFinished to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsFinished(boolean value) {
+        
+        isFinished_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool is_finished = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsFinished() {
+        
+        isFinished_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK> unk3000HLPGILIGGCB_ =
+        java.util.Collections.emptyList();
+      private void ensureUnk3000HLPGILIGGCBIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          unk3000HLPGILIGGCB_ = new java.util.ArrayList<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK>(unk3000HLPGILIGGCB_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder> unk3000HLPGILIGGCBBuilder_;
+
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK> getUnk3000HLPGILIGGCBList() {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(unk3000HLPGILIGGCB_);
+        } else {
+          return unk3000HLPGILIGGCBBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public int getUnk3000HLPGILIGGCBCount() {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          return unk3000HLPGILIGGCB_.size();
+        } else {
+          return unk3000HLPGILIGGCBBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK getUnk3000HLPGILIGGCB(int index) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          return unk3000HLPGILIGGCB_.get(index);
+        } else {
+          return unk3000HLPGILIGGCBBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder setUnk3000HLPGILIGGCB(
+          int index, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK value) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.set(index, value);
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder setUnk3000HLPGILIGGCB(
+          int index, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder builderForValue) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder addUnk3000HLPGILIGGCB(emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK value) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.add(value);
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder addUnk3000HLPGILIGGCB(
+          int index, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK value) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.add(index, value);
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder addUnk3000HLPGILIGGCB(
+          emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder builderForValue) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.add(builderForValue.build());
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder addUnk3000HLPGILIGGCB(
+          int index, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder builderForValue) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder addAllUnk3000HLPGILIGGCB(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK> values) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, unk3000HLPGILIGGCB_);
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder clearUnk3000HLPGILIGGCB() {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          unk3000HLPGILIGGCB_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public Builder removeUnk3000HLPGILIGGCB(int index) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          ensureUnk3000HLPGILIGGCBIsMutable();
+          unk3000HLPGILIGGCB_.remove(index);
+          onChanged();
+        } else {
+          unk3000HLPGILIGGCBBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder getUnk3000HLPGILIGGCBBuilder(
+          int index) {
+        return getUnk3000HLPGILIGGCBFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder getUnk3000HLPGILIGGCBOrBuilder(
+          int index) {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          return unk3000HLPGILIGGCB_.get(index);  } else {
+          return unk3000HLPGILIGGCBBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder> 
+           getUnk3000HLPGILIGGCBOrBuilderList() {
+        if (unk3000HLPGILIGGCBBuilder_ != null) {
+          return unk3000HLPGILIGGCBBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(unk3000HLPGILIGGCB_);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder addUnk3000HLPGILIGGCBBuilder() {
+        return getUnk3000HLPGILIGGCBFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder addUnk3000HLPGILIGGCBBuilder(
+          int index) {
+        return getUnk3000HLPGILIGGCBFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder> 
+           getUnk3000HLPGILIGGCBBuilderList() {
+        return getUnk3000HLPGILIGGCBFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder> 
+          getUnk3000HLPGILIGGCBFieldBuilder() {
+        if (unk3000HLPGILIGGCBBuilder_ == null) {
+          unk3000HLPGILIGGCBBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder>(
+                  unk3000HLPGILIGGCB_,
+                  ((bitField0_ & 0x00000004) != 0),
+                  getParentForChildren(),
+                  isClean());
+          unk3000HLPGILIGGCB_ = null;
+        }
+        return unk3000HLPGILIGGCBBuilder_;
+      }
+
+      private emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo randomInfo_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder> randomInfoBuilder_;
+      /**
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
+       * @return Whether the randomInfo field is set.
+       */
+      public boolean hasRandomInfo() {
+        return randomInfoBuilder_ != null || randomInfo_ != null;
+      }
+      /**
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
+       * @return The randomInfo.
+       */
+      public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo getRandomInfo() {
+        if (randomInfoBuilder_ == null) {
+          return randomInfo_ == null ? emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.getDefaultInstance() : randomInfo_;
+        } else {
+          return randomInfoBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
+       */
+      public Builder setRandomInfo(emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo value) {
+        if (randomInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          randomInfo_ = value;
+          onChanged();
+        } else {
+          randomInfoBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
+       */
+      public Builder setRandomInfo(
+          emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder builderForValue) {
+        if (randomInfoBuilder_ == null) {
+          randomInfo_ = builderForValue.build();
+          onChanged();
+        } else {
+          randomInfoBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
+       */
+      public Builder mergeRandomInfo(emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo value) {
+        if (randomInfoBuilder_ == null) {
+          if (randomInfo_ != null) {
+            randomInfo_ =
+              emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.newBuilder(randomInfo_).mergeFrom(value).buildPartial();
+          } else {
+            randomInfo_ = value;
+          }
+          onChanged();
+        } else {
+          randomInfoBuilder_.mergeFrom(value);
+        }
+
+        return this;
       }
       /**
-       * <code>uint64 cutscene_encryption_key = 6;</code>
-       * @param value The cutsceneEncryptionKey to set.
-       * @return This builder for chaining.
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
        */
-      public Builder setCutsceneEncryptionKey(long value) {
-        
-        cutsceneEncryptionKey_ = value;
-        onChanged();
+      public Builder clearRandomInfo() {
+        if (randomInfoBuilder_ == null) {
+          randomInfo_ = null;
+          onChanged();
+        } else {
+          randomInfo_ = null;
+          randomInfoBuilder_ = null;
+        }
+
         return this;
       }
       /**
-       * <code>uint64 cutscene_encryption_key = 6;</code>
-       * @return This builder for chaining.
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
        */
-      public Builder clearCutsceneEncryptionKey() {
+      public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder getRandomInfoBuilder() {
         
-        cutsceneEncryptionKey_ = 0L;
         onChanged();
-        return this;
-      }
-
-      private boolean isRandom_ ;
-      /**
-       * <code>bool is_random = 13;</code>
-       * @return The isRandom.
-       */
-      @java.lang.Override
-      public boolean getIsRandom() {
-        return isRandom_;
+        return getRandomInfoFieldBuilder().getBuilder();
       }
       /**
-       * <code>bool is_random = 13;</code>
-       * @param value The isRandom to set.
-       * @return This builder for chaining.
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
        */
-      public Builder setIsRandom(boolean value) {
-        
-        isRandom_ = value;
-        onChanged();
-        return this;
+      public emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder getRandomInfoOrBuilder() {
+        if (randomInfoBuilder_ != null) {
+          return randomInfoBuilder_.getMessageOrBuilder();
+        } else {
+          return randomInfo_ == null ?
+              emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.getDefaultInstance() : randomInfo_;
+        }
       }
       /**
-       * <code>bool is_random = 13;</code>
-       * @return This builder for chaining.
+       * <code>.ParentQuestRandomInfo random_info = 12;</code>
        */
-      public Builder clearIsRandom() {
-        
-        isRandom_ = false;
-        onChanged();
-        return this;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder> 
+          getRandomInfoFieldBuilder() {
+        if (randomInfoBuilder_ == null) {
+          randomInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfo.Builder, emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.ParentQuestRandomInfoOrBuilder>(
+                  getRandomInfo(),
+                  getParentForChildren(),
+                  isClean());
+          randomInfo_ = null;
+        }
+        return randomInfoBuilder_;
       }
 
       private int parentQuestId_ ;
@@ -1462,192 +1931,95 @@ public final class ParentQuestOuterClass {
         return this;
       }
 
-      private boolean isFinished_ ;
+      private boolean isRandom_ ;
       /**
-       * <code>bool is_finished = 7;</code>
-       * @return The isFinished.
+       * <code>bool is_random = 13;</code>
+       * @return The isRandom.
        */
       @java.lang.Override
-      public boolean getIsFinished() {
-        return isFinished_;
+      public boolean getIsRandom() {
+        return isRandom_;
       }
       /**
-       * <code>bool is_finished = 7;</code>
-       * @param value The isFinished to set.
+       * <code>bool is_random = 13;</code>
+       * @param value The isRandom to set.
        * @return This builder for chaining.
        */
-      public Builder setIsFinished(boolean value) {
+      public Builder setIsRandom(boolean value) {
         
-        isFinished_ = value;
+        isRandom_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>bool is_finished = 7;</code>
+       * <code>bool is_random = 13;</code>
        * @return This builder for chaining.
        */
-      public Builder clearIsFinished() {
+      public Builder clearIsRandom() {
         
-        isFinished_ = false;
+        isRandom_ = false;
         onChanged();
         return this;
       }
 
-      private com.google.protobuf.MapField<
-          java.lang.Integer, java.lang.Integer> timeVarMap_;
-      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
-      internalGetTimeVarMap() {
-        if (timeVarMap_ == null) {
-          return com.google.protobuf.MapField.emptyMapField(
-              TimeVarMapDefaultEntryHolder.defaultEntry);
-        }
-        return timeVarMap_;
-      }
-      private com.google.protobuf.MapField<java.lang.Integer, java.lang.Integer>
-      internalGetMutableTimeVarMap() {
-        onChanged();;
-        if (timeVarMap_ == null) {
-          timeVarMap_ = com.google.protobuf.MapField.newMapField(
-              TimeVarMapDefaultEntryHolder.defaultEntry);
-        }
-        if (!timeVarMap_.isMutable()) {
-          timeVarMap_ = timeVarMap_.copy();
-        }
-        return timeVarMap_;
-      }
-
-      public int getTimeVarMapCount() {
-        return internalGetTimeVarMap().getMap().size();
-      }
-      /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
-       */
-
-      @java.lang.Override
-      public boolean containsTimeVarMap(
-          int key) {
-        
-        return internalGetTimeVarMap().getMap().containsKey(key);
-      }
-      /**
-       * Use {@link #getTimeVarMapMap()} instead.
-       */
-      @java.lang.Override
-      @java.lang.Deprecated
-      public java.util.Map<java.lang.Integer, java.lang.Integer> getTimeVarMap() {
-        return getTimeVarMapMap();
-      }
-      /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
-       */
-      @java.lang.Override
-
-      public java.util.Map<java.lang.Integer, java.lang.Integer> getTimeVarMapMap() {
-        return internalGetTimeVarMap().getMap();
-      }
-      /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
-       */
-      @java.lang.Override
-
-      public int getTimeVarMapOrDefault(
-          int key,
-          int defaultValue) {
-        
-        java.util.Map<java.lang.Integer, java.lang.Integer> map =
-            internalGetTimeVarMap().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
-      }
+      private long cutsceneEncryptionKey_ ;
       /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       * <code>uint64 cutscene_encryption_key = 6;</code>
+       * @return The cutsceneEncryptionKey.
        */
       @java.lang.Override
-
-      public int getTimeVarMapOrThrow(
-          int key) {
-        
-        java.util.Map<java.lang.Integer, java.lang.Integer> map =
-            internalGetTimeVarMap().getMap();
-        if (!map.containsKey(key)) {
-          throw new java.lang.IllegalArgumentException();
-        }
-        return map.get(key);
-      }
-
-      public Builder clearTimeVarMap() {
-        internalGetMutableTimeVarMap().getMutableMap()
-            .clear();
-        return this;
+      public long getCutsceneEncryptionKey() {
+        return cutsceneEncryptionKey_;
       }
       /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       * <code>uint64 cutscene_encryption_key = 6;</code>
+       * @param value The cutsceneEncryptionKey to set.
+       * @return This builder for chaining.
        */
-
-      public Builder removeTimeVarMap(
-          int key) {
+      public Builder setCutsceneEncryptionKey(long value) {
         
-        internalGetMutableTimeVarMap().getMutableMap()
-            .remove(key);
+        cutsceneEncryptionKey_ = value;
+        onChanged();
         return this;
       }
       /**
-       * Use alternate mutation accessors instead.
-       */
-      @java.lang.Deprecated
-      public java.util.Map<java.lang.Integer, java.lang.Integer>
-      getMutableTimeVarMap() {
-        return internalGetMutableTimeVarMap().getMutableMap();
-      }
-      /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
+       * <code>uint64 cutscene_encryption_key = 6;</code>
+       * @return This builder for chaining.
        */
-      public Builder putTimeVarMap(
-          int key,
-          int value) {
-        
+      public Builder clearCutsceneEncryptionKey() {
         
-        internalGetMutableTimeVarMap().getMutableMap()
-            .put(key, value);
-        return this;
-      }
-      /**
-       * <code>map&lt;uint32, uint32&gt; time_var_map = 8;</code>
-       */
-
-      public Builder putAllTimeVarMap(
-          java.util.Map<java.lang.Integer, java.lang.Integer> values) {
-        internalGetMutableTimeVarMap().getMutableMap()
-            .putAll(values);
+        cutsceneEncryptionKey_ = 0L;
+        onChanged();
         return this;
       }
 
-      private int parentQuestState_ ;
+      private int questVarSeq_ ;
       /**
-       * <code>uint32 parent_quest_state = 1;</code>
-       * @return The parentQuestState.
+       * <code>uint32 quest_var_seq = 11;</code>
+       * @return The questVarSeq.
        */
       @java.lang.Override
-      public int getParentQuestState() {
-        return parentQuestState_;
+      public int getQuestVarSeq() {
+        return questVarSeq_;
       }
       /**
-       * <code>uint32 parent_quest_state = 1;</code>
-       * @param value The parentQuestState to set.
+       * <code>uint32 quest_var_seq = 11;</code>
+       * @param value The questVarSeq to set.
        * @return This builder for chaining.
        */
-      public Builder setParentQuestState(int value) {
+      public Builder setQuestVarSeq(int value) {
         
-        parentQuestState_ = value;
+        questVarSeq_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 parent_quest_state = 1;</code>
+       * <code>uint32 quest_var_seq = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder clearParentQuestState() {
+      public Builder clearQuestVarSeq() {
         
-        parentQuestState_ = 0;
+        questVarSeq_ = 0;
         onChanged();
         return this;
       }
@@ -1655,9 +2027,9 @@ public final class ParentQuestOuterClass {
       private java.util.List<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest> childQuestList_ =
         java.util.Collections.emptyList();
       private void ensureChildQuestListIsMutable() {
-        if (!((bitField0_ & 0x00000004) != 0)) {
+        if (!((bitField0_ & 0x00000008) != 0)) {
           childQuestList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest>(childQuestList_);
-          bitField0_ |= 0x00000004;
+          bitField0_ |= 0x00000008;
          }
       }
 
@@ -1807,7 +2179,7 @@ public final class ParentQuestOuterClass {
       public Builder clearChildQuestList() {
         if (childQuestListBuilder_ == null) {
           childQuestList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
+          bitField0_ = (bitField0_ & ~0x00000008);
           onChanged();
         } else {
           childQuestListBuilder_.clear();
@@ -1884,7 +2256,7 @@ public final class ParentQuestOuterClass {
           childQuestListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
               emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest, emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest.Builder, emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuestOrBuilder>(
                   childQuestList_,
-                  ((bitField0_ & 0x00000004) != 0),
+                  ((bitField0_ & 0x00000008) != 0),
                   getParentForChildren(),
                   isClean());
           childQuestList_ = null;
@@ -1964,30 +2336,33 @@ public final class ParentQuestOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\021ParentQuest.proto\032\020ChildQuest.proto\032\033P" +
-      "arentQuestRandomInfo.proto\"\360\002\n\013ParentQue" +
-      "st\022+\n\013random_info\030\014 \001(\0132\026.ParentQuestRan" +
-      "domInfo\022\025\n\rquest_var_seq\030\013 \001(\r\022\021\n\tquest_" +
-      "var\030\016 \003(\005\022\037\n\027cutscene_encryption_key\030\006 \001" +
-      "(\004\022\021\n\tis_random\030\r \001(\010\022\027\n\017parent_quest_id" +
-      "\030\003 \001(\r\022\023\n\013is_finished\030\007 \001(\010\0222\n\014time_var_" +
-      "map\030\010 \003(\0132\034.ParentQuest.TimeVarMapEntry\022" +
-      "\032\n\022parent_quest_state\030\001 \001(\r\022%\n\020child_que" +
-      "st_list\030\t \003(\0132\013.ChildQuest\0321\n\017TimeVarMap" +
-      "Entry\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\r:\0028\001B\033\n" +
-      "\031emu.grasscutter.net.protob\006proto3"
+      "arentQuestRandomInfo.proto\032\031Unk3000_ENLD" +
+      "IHLGNCK.proto\"\243\003\n\013ParentQuest\022\021\n\tquest_v" +
+      "ar\030\016 \003(\005\0222\n\014time_var_map\030\010 \003(\0132\034.ParentQ" +
+      "uest.TimeVarMapEntry\022\032\n\022parent_quest_sta" +
+      "te\030\001 \001(\r\022\023\n\013is_finished\030\007 \001(\010\0221\n\023Unk3000" +
+      "_HLPGILIGGCB\030\017 \003(\0132\024.Unk3000_ENLDIHLGNCK" +
+      "\022+\n\013random_info\030\014 \001(\0132\026.ParentQuestRando" +
+      "mInfo\022\027\n\017parent_quest_id\030\003 \001(\r\022\021\n\tis_ran" +
+      "dom\030\r \001(\010\022\037\n\027cutscene_encryption_key\030\006 \001" +
+      "(\004\022\025\n\rquest_var_seq\030\013 \001(\r\022%\n\020child_quest" +
+      "_list\030\t \003(\0132\013.ChildQuest\0321\n\017TimeVarMapEn" +
+      "try\022\013\n\003key\030\001 \001(\r\022\r\n\005value\030\002 \001(\r:\0028\001B\033\n\031e" +
+      "mu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
           emu.grasscutter.net.proto.ChildQuestOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.getDescriptor(),
+          emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.getDescriptor(),
         });
     internal_static_ParentQuest_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_ParentQuest_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ParentQuest_descriptor,
-        new java.lang.String[] { "RandomInfo", "QuestVarSeq", "QuestVar", "CutsceneEncryptionKey", "IsRandom", "ParentQuestId", "IsFinished", "TimeVarMap", "ParentQuestState", "ChildQuestList", });
+        new java.lang.String[] { "QuestVar", "TimeVarMap", "ParentQuestState", "IsFinished", "Unk3000HLPGILIGGCB", "RandomInfo", "ParentQuestId", "IsRandom", "CutsceneEncryptionKey", "QuestVarSeq", "ChildQuestList", });
     internal_static_ParentQuest_TimeVarMapEntry_descriptor =
       internal_static_ParentQuest_descriptor.getNestedTypes().get(0);
     internal_static_ParentQuest_TimeVarMapEntry_fieldAccessorTable = new
@@ -1996,6 +2371,7 @@ public final class ParentQuestOuterClass {
         new java.lang.String[] { "Key", "Value", });
     emu.grasscutter.net.proto.ChildQuestOuterClass.getDescriptor();
     emu.grasscutter.net.proto.ParentQuestRandomInfoOuterClass.getDescriptor();
+    emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataReqOuterClass.java
index b571d1f0..d246448f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataReqOuterClass.java
@@ -20,9 +20,9 @@ public final class PersonalLineAllDataReqOuterClass {
   }
   /**
    * <pre>
-   * CmdId: 446
+   * CmdId: 474
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -248,9 +248,9 @@ public final class PersonalLineAllDataReqOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 446
+     * CmdId: 474
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataRspOuterClass.java
index fa3d0e73..a01926b8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataRspOuterClass.java
@@ -18,12 +18,6 @@ public final class PersonalLineAllDataRspOuterClass {
       // @@protoc_insertion_point(interface_extends:PersonalLineAllDataRsp)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>int32 retcode = 15;</code>
-     * @return The retcode.
-     */
-    int getRetcode();
-
     /**
      * <code>uint32 cur_finished_daily_task_count = 5;</code>
      * @return The curFinishedDailyTaskCount.
@@ -31,10 +25,27 @@ public final class PersonalLineAllDataRspOuterClass {
     int getCurFinishedDailyTaskCount();
 
     /**
-     * <code>uint32 legendary_key_count = 11;</code>
-     * @return The legendaryKeyCount.
+     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+     * @return A list containing the canBeUnlockedPersonalLineList.
      */
-    int getLegendaryKeyCount();
+    java.util.List<java.lang.Integer> getCanBeUnlockedPersonalLineListList();
+    /**
+     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+     * @return The count of canBeUnlockedPersonalLineList.
+     */
+    int getCanBeUnlockedPersonalLineListCount();
+    /**
+     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+     * @param index The index of the element to return.
+     * @return The canBeUnlockedPersonalLineList at the given index.
+     */
+    int getCanBeUnlockedPersonalLineList(int index);
+
+    /**
+     * <code>int32 retcode = 15;</code>
+     * @return The retcode.
+     */
+    int getRetcode();
 
     /**
      * <code>repeated uint32 ongoing_personal_line_list = 8;</code>
@@ -54,21 +65,10 @@ public final class PersonalLineAllDataRspOuterClass {
     int getOngoingPersonalLineList(int index);
 
     /**
-     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-     * @return A list containing the canBeUnlockedPersonalLineList.
-     */
-    java.util.List<java.lang.Integer> getCanBeUnlockedPersonalLineListList();
-    /**
-     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-     * @return The count of canBeUnlockedPersonalLineList.
-     */
-    int getCanBeUnlockedPersonalLineListCount();
-    /**
-     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-     * @param index The index of the element to return.
-     * @return The canBeUnlockedPersonalLineList at the given index.
+     * <code>uint32 legendary_key_count = 11;</code>
+     * @return The legendaryKeyCount.
      */
-    int getCanBeUnlockedPersonalLineList(int index);
+    int getLegendaryKeyCount();
 
     /**
      * <code>repeated .LockedPersonallineData locked_personal_line_list = 10;</code>
@@ -98,7 +98,8 @@ public final class PersonalLineAllDataRspOuterClass {
    * <pre>
    * CmdId: 476
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PersonalLineAllDataRsp}
@@ -113,8 +114,8 @@ public final class PersonalLineAllDataRspOuterClass {
       super(builder);
     }
     private PersonalLineAllDataRsp() {
-      ongoingPersonalLineList_ = emptyIntList();
       canBeUnlockedPersonalLineList_ = emptyIntList();
+      ongoingPersonalLineList_ = emptyIntList();
       lockedPersonalLineList_ = java.util.Collections.emptyList();
     }
 
@@ -155,9 +156,9 @@ public final class PersonalLineAllDataRspOuterClass {
               break;
             }
             case 64: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                 ongoingPersonalLineList_ = newIntList();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000002;
               }
               ongoingPersonalLineList_.addInt(input.readUInt32());
               break;
@@ -165,9 +166,9 @@ public final class PersonalLineAllDataRspOuterClass {
             case 66: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                 ongoingPersonalLineList_ = newIntList();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000002;
               }
               while (input.getBytesUntilLimit() > 0) {
                 ongoingPersonalLineList_.addInt(input.readUInt32());
@@ -190,9 +191,9 @@ public final class PersonalLineAllDataRspOuterClass {
               break;
             }
             case 104: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                 canBeUnlockedPersonalLineList_ = newIntList();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000001;
               }
               canBeUnlockedPersonalLineList_.addInt(input.readUInt32());
               break;
@@ -200,9 +201,9 @@ public final class PersonalLineAllDataRspOuterClass {
             case 106: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                 canBeUnlockedPersonalLineList_ = newIntList();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000001;
               }
               while (input.getBytesUntilLimit() > 0) {
                 canBeUnlockedPersonalLineList_.addInt(input.readUInt32());
@@ -230,13 +231,13 @@ public final class PersonalLineAllDataRspOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
           ongoingPersonalLineList_.makeImmutable(); // C
         }
         if (((mutable_bitField0_ & 0x00000004) != 0)) {
           lockedPersonalLineList_ = java.util.Collections.unmodifiableList(lockedPersonalLineList_);
         }
-        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
           canBeUnlockedPersonalLineList_.makeImmutable(); // C
         }
         this.unknownFields = unknownFields.build();
@@ -256,17 +257,6 @@ public final class PersonalLineAllDataRspOuterClass {
               emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp.class, emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp.Builder.class);
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 15;
-    private int retcode_;
-    /**
-     * <code>int32 retcode = 15;</code>
-     * @return The retcode.
-     */
-    @java.lang.Override
-    public int getRetcode() {
-      return retcode_;
-    }
-
     public static final int CUR_FINISHED_DAILY_TASK_COUNT_FIELD_NUMBER = 5;
     private int curFinishedDailyTaskCount_;
     /**
@@ -278,15 +268,43 @@ public final class PersonalLineAllDataRspOuterClass {
       return curFinishedDailyTaskCount_;
     }
 
-    public static final int LEGENDARY_KEY_COUNT_FIELD_NUMBER = 11;
-    private int legendaryKeyCount_;
+    public static final int CAN_BE_UNLOCKED_PERSONAL_LINE_LIST_FIELD_NUMBER = 13;
+    private com.google.protobuf.Internal.IntList canBeUnlockedPersonalLineList_;
     /**
-     * <code>uint32 legendary_key_count = 11;</code>
-     * @return The legendaryKeyCount.
+     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+     * @return A list containing the canBeUnlockedPersonalLineList.
      */
     @java.lang.Override
-    public int getLegendaryKeyCount() {
-      return legendaryKeyCount_;
+    public java.util.List<java.lang.Integer>
+        getCanBeUnlockedPersonalLineListList() {
+      return canBeUnlockedPersonalLineList_;
+    }
+    /**
+     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+     * @return The count of canBeUnlockedPersonalLineList.
+     */
+    public int getCanBeUnlockedPersonalLineListCount() {
+      return canBeUnlockedPersonalLineList_.size();
+    }
+    /**
+     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+     * @param index The index of the element to return.
+     * @return The canBeUnlockedPersonalLineList at the given index.
+     */
+    public int getCanBeUnlockedPersonalLineList(int index) {
+      return canBeUnlockedPersonalLineList_.getInt(index);
+    }
+    private int canBeUnlockedPersonalLineListMemoizedSerializedSize = -1;
+
+    public static final int RETCODE_FIELD_NUMBER = 15;
+    private int retcode_;
+    /**
+     * <code>int32 retcode = 15;</code>
+     * @return The retcode.
+     */
+    @java.lang.Override
+    public int getRetcode() {
+      return retcode_;
     }
 
     public static final int ONGOING_PERSONAL_LINE_LIST_FIELD_NUMBER = 8;
@@ -317,33 +335,16 @@ public final class PersonalLineAllDataRspOuterClass {
     }
     private int ongoingPersonalLineListMemoizedSerializedSize = -1;
 
-    public static final int CAN_BE_UNLOCKED_PERSONAL_LINE_LIST_FIELD_NUMBER = 13;
-    private com.google.protobuf.Internal.IntList canBeUnlockedPersonalLineList_;
+    public static final int LEGENDARY_KEY_COUNT_FIELD_NUMBER = 11;
+    private int legendaryKeyCount_;
     /**
-     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-     * @return A list containing the canBeUnlockedPersonalLineList.
+     * <code>uint32 legendary_key_count = 11;</code>
+     * @return The legendaryKeyCount.
      */
     @java.lang.Override
-    public java.util.List<java.lang.Integer>
-        getCanBeUnlockedPersonalLineListList() {
-      return canBeUnlockedPersonalLineList_;
-    }
-    /**
-     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-     * @return The count of canBeUnlockedPersonalLineList.
-     */
-    public int getCanBeUnlockedPersonalLineListCount() {
-      return canBeUnlockedPersonalLineList_.size();
-    }
-    /**
-     * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-     * @param index The index of the element to return.
-     * @return The canBeUnlockedPersonalLineList at the given index.
-     */
-    public int getCanBeUnlockedPersonalLineList(int index) {
-      return canBeUnlockedPersonalLineList_.getInt(index);
+    public int getLegendaryKeyCount() {
+      return legendaryKeyCount_;
     }
-    private int canBeUnlockedPersonalLineListMemoizedSerializedSize = -1;
 
     public static final int LOCKED_PERSONAL_LINE_LIST_FIELD_NUMBER = 10;
     private java.util.List<emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.LockedPersonallineData> lockedPersonalLineList_;
@@ -494,16 +495,16 @@ public final class PersonalLineAllDataRspOuterClass {
       }
       emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp other = (emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp) obj;
 
-      if (getRetcode()
-          != other.getRetcode()) return false;
       if (getCurFinishedDailyTaskCount()
           != other.getCurFinishedDailyTaskCount()) return false;
-      if (getLegendaryKeyCount()
-          != other.getLegendaryKeyCount()) return false;
-      if (!getOngoingPersonalLineListList()
-          .equals(other.getOngoingPersonalLineListList())) return false;
       if (!getCanBeUnlockedPersonalLineListList()
           .equals(other.getCanBeUnlockedPersonalLineListList())) return false;
+      if (getRetcode()
+          != other.getRetcode()) return false;
+      if (!getOngoingPersonalLineListList()
+          .equals(other.getOngoingPersonalLineListList())) return false;
+      if (getLegendaryKeyCount()
+          != other.getLegendaryKeyCount()) return false;
       if (!getLockedPersonalLineListList()
           .equals(other.getLockedPersonalLineListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
@@ -517,20 +518,20 @@ public final class PersonalLineAllDataRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
-      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + CUR_FINISHED_DAILY_TASK_COUNT_FIELD_NUMBER;
       hash = (53 * hash) + getCurFinishedDailyTaskCount();
-      hash = (37 * hash) + LEGENDARY_KEY_COUNT_FIELD_NUMBER;
-      hash = (53 * hash) + getLegendaryKeyCount();
-      if (getOngoingPersonalLineListCount() > 0) {
-        hash = (37 * hash) + ONGOING_PERSONAL_LINE_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getOngoingPersonalLineListList().hashCode();
-      }
       if (getCanBeUnlockedPersonalLineListCount() > 0) {
         hash = (37 * hash) + CAN_BE_UNLOCKED_PERSONAL_LINE_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getCanBeUnlockedPersonalLineListList().hashCode();
       }
+      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+      hash = (53 * hash) + getRetcode();
+      if (getOngoingPersonalLineListCount() > 0) {
+        hash = (37 * hash) + ONGOING_PERSONAL_LINE_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getOngoingPersonalLineListList().hashCode();
+      }
+      hash = (37 * hash) + LEGENDARY_KEY_COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getLegendaryKeyCount();
       if (getLockedPersonalLineListCount() > 0) {
         hash = (37 * hash) + LOCKED_PERSONAL_LINE_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getLockedPersonalLineListList().hashCode();
@@ -634,7 +635,8 @@ public final class PersonalLineAllDataRspOuterClass {
      * <pre>
      * CmdId: 476
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PersonalLineAllDataRsp}
@@ -675,16 +677,16 @@ public final class PersonalLineAllDataRspOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        retcode_ = 0;
-
         curFinishedDailyTaskCount_ = 0;
 
-        legendaryKeyCount_ = 0;
+        canBeUnlockedPersonalLineList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        retcode_ = 0;
 
         ongoingPersonalLineList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
-        canBeUnlockedPersonalLineList_ = emptyIntList();
         bitField0_ = (bitField0_ & ~0x00000002);
+        legendaryKeyCount_ = 0;
+
         if (lockedPersonalLineListBuilder_ == null) {
           lockedPersonalLineList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000004);
@@ -718,19 +720,19 @@ public final class PersonalLineAllDataRspOuterClass {
       public emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp buildPartial() {
         emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp result = new emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp(this);
         int from_bitField0_ = bitField0_;
-        result.retcode_ = retcode_;
         result.curFinishedDailyTaskCount_ = curFinishedDailyTaskCount_;
-        result.legendaryKeyCount_ = legendaryKeyCount_;
         if (((bitField0_ & 0x00000001) != 0)) {
-          ongoingPersonalLineList_.makeImmutable();
+          canBeUnlockedPersonalLineList_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000001);
         }
-        result.ongoingPersonalLineList_ = ongoingPersonalLineList_;
+        result.canBeUnlockedPersonalLineList_ = canBeUnlockedPersonalLineList_;
+        result.retcode_ = retcode_;
         if (((bitField0_ & 0x00000002) != 0)) {
-          canBeUnlockedPersonalLineList_.makeImmutable();
+          ongoingPersonalLineList_.makeImmutable();
           bitField0_ = (bitField0_ & ~0x00000002);
         }
-        result.canBeUnlockedPersonalLineList_ = canBeUnlockedPersonalLineList_;
+        result.ongoingPersonalLineList_ = ongoingPersonalLineList_;
+        result.legendaryKeyCount_ = legendaryKeyCount_;
         if (lockedPersonalLineListBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0)) {
             lockedPersonalLineList_ = java.util.Collections.unmodifiableList(lockedPersonalLineList_);
@@ -788,34 +790,34 @@ public final class PersonalLineAllDataRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp other) {
         if (other == emu.grasscutter.net.proto.PersonalLineAllDataRspOuterClass.PersonalLineAllDataRsp.getDefaultInstance()) return this;
-        if (other.getRetcode() != 0) {
-          setRetcode(other.getRetcode());
-        }
         if (other.getCurFinishedDailyTaskCount() != 0) {
           setCurFinishedDailyTaskCount(other.getCurFinishedDailyTaskCount());
         }
-        if (other.getLegendaryKeyCount() != 0) {
-          setLegendaryKeyCount(other.getLegendaryKeyCount());
+        if (!other.canBeUnlockedPersonalLineList_.isEmpty()) {
+          if (canBeUnlockedPersonalLineList_.isEmpty()) {
+            canBeUnlockedPersonalLineList_ = other.canBeUnlockedPersonalLineList_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureCanBeUnlockedPersonalLineListIsMutable();
+            canBeUnlockedPersonalLineList_.addAll(other.canBeUnlockedPersonalLineList_);
+          }
+          onChanged();
+        }
+        if (other.getRetcode() != 0) {
+          setRetcode(other.getRetcode());
         }
         if (!other.ongoingPersonalLineList_.isEmpty()) {
           if (ongoingPersonalLineList_.isEmpty()) {
             ongoingPersonalLineList_ = other.ongoingPersonalLineList_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureOngoingPersonalLineListIsMutable();
             ongoingPersonalLineList_.addAll(other.ongoingPersonalLineList_);
           }
           onChanged();
         }
-        if (!other.canBeUnlockedPersonalLineList_.isEmpty()) {
-          if (canBeUnlockedPersonalLineList_.isEmpty()) {
-            canBeUnlockedPersonalLineList_ = other.canBeUnlockedPersonalLineList_;
-            bitField0_ = (bitField0_ & ~0x00000002);
-          } else {
-            ensureCanBeUnlockedPersonalLineListIsMutable();
-            canBeUnlockedPersonalLineList_.addAll(other.canBeUnlockedPersonalLineList_);
-          }
-          onChanged();
+        if (other.getLegendaryKeyCount() != 0) {
+          setLegendaryKeyCount(other.getLegendaryKeyCount());
         }
         if (lockedPersonalLineListBuilder_ == null) {
           if (!other.lockedPersonalLineList_.isEmpty()) {
@@ -873,104 +875,152 @@ public final class PersonalLineAllDataRspOuterClass {
       }
       private int bitField0_;
 
-      private int retcode_ ;
+      private int curFinishedDailyTaskCount_ ;
       /**
-       * <code>int32 retcode = 15;</code>
-       * @return The retcode.
+       * <code>uint32 cur_finished_daily_task_count = 5;</code>
+       * @return The curFinishedDailyTaskCount.
        */
       @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
+      public int getCurFinishedDailyTaskCount() {
+        return curFinishedDailyTaskCount_;
       }
       /**
-       * <code>int32 retcode = 15;</code>
-       * @param value The retcode to set.
+       * <code>uint32 cur_finished_daily_task_count = 5;</code>
+       * @param value The curFinishedDailyTaskCount to set.
        * @return This builder for chaining.
        */
-      public Builder setRetcode(int value) {
+      public Builder setCurFinishedDailyTaskCount(int value) {
         
-        retcode_ = value;
+        curFinishedDailyTaskCount_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>int32 retcode = 15;</code>
+       * <code>uint32 cur_finished_daily_task_count = 5;</code>
        * @return This builder for chaining.
        */
-      public Builder clearRetcode() {
+      public Builder clearCurFinishedDailyTaskCount() {
         
-        retcode_ = 0;
+        curFinishedDailyTaskCount_ = 0;
         onChanged();
         return this;
       }
 
-      private int curFinishedDailyTaskCount_ ;
+      private com.google.protobuf.Internal.IntList canBeUnlockedPersonalLineList_ = emptyIntList();
+      private void ensureCanBeUnlockedPersonalLineListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          canBeUnlockedPersonalLineList_ = mutableCopy(canBeUnlockedPersonalLineList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
       /**
-       * <code>uint32 cur_finished_daily_task_count = 5;</code>
-       * @return The curFinishedDailyTaskCount.
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @return A list containing the canBeUnlockedPersonalLineList.
        */
-      @java.lang.Override
-      public int getCurFinishedDailyTaskCount() {
-        return curFinishedDailyTaskCount_;
+      public java.util.List<java.lang.Integer>
+          getCanBeUnlockedPersonalLineListList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(canBeUnlockedPersonalLineList_) : canBeUnlockedPersonalLineList_;
       }
       /**
-       * <code>uint32 cur_finished_daily_task_count = 5;</code>
-       * @param value The curFinishedDailyTaskCount to set.
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @return The count of canBeUnlockedPersonalLineList.
+       */
+      public int getCanBeUnlockedPersonalLineListCount() {
+        return canBeUnlockedPersonalLineList_.size();
+      }
+      /**
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @param index The index of the element to return.
+       * @return The canBeUnlockedPersonalLineList at the given index.
+       */
+      public int getCanBeUnlockedPersonalLineList(int index) {
+        return canBeUnlockedPersonalLineList_.getInt(index);
+      }
+      /**
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @param index The index to set the value at.
+       * @param value The canBeUnlockedPersonalLineList to set.
        * @return This builder for chaining.
        */
-      public Builder setCurFinishedDailyTaskCount(int value) {
-        
-        curFinishedDailyTaskCount_ = value;
+      public Builder setCanBeUnlockedPersonalLineList(
+          int index, int value) {
+        ensureCanBeUnlockedPersonalLineListIsMutable();
+        canBeUnlockedPersonalLineList_.setInt(index, value);
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cur_finished_daily_task_count = 5;</code>
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @param value The canBeUnlockedPersonalLineList to add.
        * @return This builder for chaining.
        */
-      public Builder clearCurFinishedDailyTaskCount() {
-        
-        curFinishedDailyTaskCount_ = 0;
+      public Builder addCanBeUnlockedPersonalLineList(int value) {
+        ensureCanBeUnlockedPersonalLineListIsMutable();
+        canBeUnlockedPersonalLineList_.addInt(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @param values The canBeUnlockedPersonalLineList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllCanBeUnlockedPersonalLineList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureCanBeUnlockedPersonalLineListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, canBeUnlockedPersonalLineList_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCanBeUnlockedPersonalLineList() {
+        canBeUnlockedPersonalLineList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
         onChanged();
         return this;
       }
 
-      private int legendaryKeyCount_ ;
+      private int retcode_ ;
       /**
-       * <code>uint32 legendary_key_count = 11;</code>
-       * @return The legendaryKeyCount.
+       * <code>int32 retcode = 15;</code>
+       * @return The retcode.
        */
       @java.lang.Override
-      public int getLegendaryKeyCount() {
-        return legendaryKeyCount_;
+      public int getRetcode() {
+        return retcode_;
       }
       /**
-       * <code>uint32 legendary_key_count = 11;</code>
-       * @param value The legendaryKeyCount to set.
+       * <code>int32 retcode = 15;</code>
+       * @param value The retcode to set.
        * @return This builder for chaining.
        */
-      public Builder setLegendaryKeyCount(int value) {
+      public Builder setRetcode(int value) {
         
-        legendaryKeyCount_ = value;
+        retcode_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 legendary_key_count = 11;</code>
+       * <code>int32 retcode = 15;</code>
        * @return This builder for chaining.
        */
-      public Builder clearLegendaryKeyCount() {
+      public Builder clearRetcode() {
         
-        legendaryKeyCount_ = 0;
+        retcode_ = 0;
         onChanged();
         return this;
       }
 
       private com.google.protobuf.Internal.IntList ongoingPersonalLineList_ = emptyIntList();
       private void ensureOngoingPersonalLineListIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
+        if (!((bitField0_ & 0x00000002) != 0)) {
           ongoingPersonalLineList_ = mutableCopy(ongoingPersonalLineList_);
-          bitField0_ |= 0x00000001;
+          bitField0_ |= 0x00000002;
          }
       }
       /**
@@ -979,7 +1029,7 @@ public final class PersonalLineAllDataRspOuterClass {
        */
       public java.util.List<java.lang.Integer>
           getOngoingPersonalLineListList() {
-        return ((bitField0_ & 0x00000001) != 0) ?
+        return ((bitField0_ & 0x00000002) != 0) ?
                  java.util.Collections.unmodifiableList(ongoingPersonalLineList_) : ongoingPersonalLineList_;
       }
       /**
@@ -1040,86 +1090,38 @@ public final class PersonalLineAllDataRspOuterClass {
        */
       public Builder clearOngoingPersonalLineList() {
         ongoingPersonalLineList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
         return this;
       }
 
-      private com.google.protobuf.Internal.IntList canBeUnlockedPersonalLineList_ = emptyIntList();
-      private void ensureCanBeUnlockedPersonalLineListIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
-          canBeUnlockedPersonalLineList_ = mutableCopy(canBeUnlockedPersonalLineList_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-      /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-       * @return A list containing the canBeUnlockedPersonalLineList.
-       */
-      public java.util.List<java.lang.Integer>
-          getCanBeUnlockedPersonalLineListList() {
-        return ((bitField0_ & 0x00000002) != 0) ?
-                 java.util.Collections.unmodifiableList(canBeUnlockedPersonalLineList_) : canBeUnlockedPersonalLineList_;
-      }
-      /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-       * @return The count of canBeUnlockedPersonalLineList.
-       */
-      public int getCanBeUnlockedPersonalLineListCount() {
-        return canBeUnlockedPersonalLineList_.size();
-      }
-      /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-       * @param index The index of the element to return.
-       * @return The canBeUnlockedPersonalLineList at the given index.
-       */
-      public int getCanBeUnlockedPersonalLineList(int index) {
-        return canBeUnlockedPersonalLineList_.getInt(index);
-      }
-      /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-       * @param index The index to set the value at.
-       * @param value The canBeUnlockedPersonalLineList to set.
-       * @return This builder for chaining.
-       */
-      public Builder setCanBeUnlockedPersonalLineList(
-          int index, int value) {
-        ensureCanBeUnlockedPersonalLineListIsMutable();
-        canBeUnlockedPersonalLineList_.setInt(index, value);
-        onChanged();
-        return this;
-      }
+      private int legendaryKeyCount_ ;
       /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-       * @param value The canBeUnlockedPersonalLineList to add.
-       * @return This builder for chaining.
+       * <code>uint32 legendary_key_count = 11;</code>
+       * @return The legendaryKeyCount.
        */
-      public Builder addCanBeUnlockedPersonalLineList(int value) {
-        ensureCanBeUnlockedPersonalLineListIsMutable();
-        canBeUnlockedPersonalLineList_.addInt(value);
-        onChanged();
-        return this;
+      @java.lang.Override
+      public int getLegendaryKeyCount() {
+        return legendaryKeyCount_;
       }
       /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
-       * @param values The canBeUnlockedPersonalLineList to add.
+       * <code>uint32 legendary_key_count = 11;</code>
+       * @param value The legendaryKeyCount to set.
        * @return This builder for chaining.
        */
-      public Builder addAllCanBeUnlockedPersonalLineList(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureCanBeUnlockedPersonalLineListIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, canBeUnlockedPersonalLineList_);
+      public Builder setLegendaryKeyCount(int value) {
+        
+        legendaryKeyCount_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>repeated uint32 can_be_unlocked_personal_line_list = 13;</code>
+       * <code>uint32 legendary_key_count = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCanBeUnlockedPersonalLineList() {
-        canBeUnlockedPersonalLineList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000002);
+      public Builder clearLegendaryKeyCount() {
+        
+        legendaryKeyCount_ = 0;
         onChanged();
         return this;
       }
@@ -1432,11 +1434,11 @@ public final class PersonalLineAllDataRspOuterClass {
     java.lang.String[] descriptorData = {
       "\n\034PersonalLineAllDataRsp.proto\032\034LockedPe" +
       "rsonallineData.proto\"\371\001\n\026PersonalLineAll" +
-      "DataRsp\022\017\n\007retcode\030\017 \001(\005\022%\n\035cur_finished" +
-      "_daily_task_count\030\005 \001(\r\022\033\n\023legendary_key" +
-      "_count\030\013 \001(\r\022\"\n\032ongoing_personal_line_li" +
-      "st\030\010 \003(\r\022*\n\"can_be_unlocked_personal_lin" +
-      "e_list\030\r \003(\r\022:\n\031locked_personal_line_lis" +
+      "DataRsp\022%\n\035cur_finished_daily_task_count" +
+      "\030\005 \001(\r\022*\n\"can_be_unlocked_personal_line_" +
+      "list\030\r \003(\r\022\017\n\007retcode\030\017 \001(\005\022\"\n\032ongoing_p" +
+      "ersonal_line_list\030\010 \003(\r\022\033\n\023legendary_key" +
+      "_count\030\013 \001(\r\022:\n\031locked_personal_line_lis" +
       "t\030\n \003(\0132\027.LockedPersonallineDataB\033\n\031emu." +
       "grasscutter.net.protob\006proto3"
     };
@@ -1450,7 +1452,7 @@ public final class PersonalLineAllDataRspOuterClass {
     internal_static_PersonalLineAllDataRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_PersonalLineAllDataRsp_descriptor,
-        new java.lang.String[] { "Retcode", "CurFinishedDailyTaskCount", "LegendaryKeyCount", "OngoingPersonalLineList", "CanBeUnlockedPersonalLineList", "LockedPersonalLineList", });
+        new java.lang.String[] { "CurFinishedDailyTaskCount", "CanBeUnlockedPersonalLineList", "Retcode", "OngoingPersonalLineList", "LegendaryKeyCount", "LockedPersonalLineList", });
     emu.grasscutter.net.proto.LockedPersonallineDataOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpReqOuterClass.java
index dcb38d04..210a6f7e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpReqOuterClass.java
@@ -28,7 +28,7 @@ public final class PersonalSceneJumpReqOuterClass {
    * <pre>
    * CmdId: 284
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class PersonalSceneJumpReqOuterClass {
      * <pre>
      * CmdId: 284
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpRspOuterClass.java
index 38b44fa7..332e609f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpRspOuterClass.java
@@ -49,7 +49,8 @@ public final class PersonalSceneJumpRspOuterClass {
    * <pre>
    * CmdId: 280
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PersonalSceneJumpRsp}
@@ -385,7 +386,8 @@ public final class PersonalSceneJumpRspOuterClass {
      * <pre>
      * CmdId: 280
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PersonalSceneJumpRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PingReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PingReqOuterClass.java
index ea19c462..c1e900eb 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PingReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PingReqOuterClass.java
@@ -52,7 +52,7 @@ public final class PingReqOuterClass {
    * <pre>
    * CmdId: 7
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -420,7 +420,7 @@ public final class PingReqOuterClass {
      * <pre>
      * CmdId: 7
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PingRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PingRspOuterClass.java
index 7c5dff6a..0e7c6da3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PingRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PingRspOuterClass.java
@@ -40,7 +40,8 @@ public final class PingRspOuterClass {
    * <pre>
    * CmdId: 21
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PingRsp}
@@ -348,7 +349,8 @@ public final class PingRspOuterClass {
      * <pre>
      * CmdId: 21
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PingRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlatformTypeOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlatformTypeOuterClass.java
index 95f0c28f..c7c031c5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlatformTypeOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlatformTypeOuterClass.java
@@ -36,9 +36,9 @@ public final class PlatformTypeOuterClass {
      */
     PLATFORM_TYPE_PC(3),
     /**
-     * <code>PLATFORM_TYPE_PS_4 = 4;</code>
+     * <code>PLATFORM_TYPE_PS4 = 4;</code>
      */
-    PLATFORM_TYPE_PS_4(4),
+    PLATFORM_TYPE_PS4(4),
     /**
      * <code>PLATFORM_TYPE_SERVER = 5;</code>
      */
@@ -52,9 +52,9 @@ public final class PlatformTypeOuterClass {
      */
     PLATFORM_TYPE_CLOUD_IOS(7),
     /**
-     * <code>PLATFORM_TYPE_PS_5 = 8;</code>
+     * <code>PLATFORM_TYPE_PS5 = 8;</code>
      */
-    PLATFORM_TYPE_PS_5(8),
+    PLATFORM_TYPE_PS5(8),
     /**
      * <code>PLATFORM_TYPE_CLOUD_WEB = 9;</code>
      */
@@ -99,9 +99,9 @@ public final class PlatformTypeOuterClass {
      */
     public static final int PLATFORM_TYPE_PC_VALUE = 3;
     /**
-     * <code>PLATFORM_TYPE_PS_4 = 4;</code>
+     * <code>PLATFORM_TYPE_PS4 = 4;</code>
      */
-    public static final int PLATFORM_TYPE_PS_4_VALUE = 4;
+    public static final int PLATFORM_TYPE_PS4_VALUE = 4;
     /**
      * <code>PLATFORM_TYPE_SERVER = 5;</code>
      */
@@ -115,9 +115,9 @@ public final class PlatformTypeOuterClass {
      */
     public static final int PLATFORM_TYPE_CLOUD_IOS_VALUE = 7;
     /**
-     * <code>PLATFORM_TYPE_PS_5 = 8;</code>
+     * <code>PLATFORM_TYPE_PS5 = 8;</code>
      */
-    public static final int PLATFORM_TYPE_PS_5_VALUE = 8;
+    public static final int PLATFORM_TYPE_PS5_VALUE = 8;
     /**
      * <code>PLATFORM_TYPE_CLOUD_WEB = 9;</code>
      */
@@ -172,11 +172,11 @@ public final class PlatformTypeOuterClass {
         case 1: return PLATFORM_TYPE_IOS;
         case 2: return PLATFORM_TYPE_ANDROID;
         case 3: return PLATFORM_TYPE_PC;
-        case 4: return PLATFORM_TYPE_PS_4;
+        case 4: return PLATFORM_TYPE_PS4;
         case 5: return PLATFORM_TYPE_SERVER;
         case 6: return PLATFORM_TYPE_CLOUD_ANDROID;
         case 7: return PLATFORM_TYPE_CLOUD_IOS;
-        case 8: return PLATFORM_TYPE_PS_5;
+        case 8: return PLATFORM_TYPE_PS5;
         case 9: return PLATFORM_TYPE_CLOUD_WEB;
         case 10: return PLATFORM_TYPE_CLOUD_TV;
         case 11: return PLATFORM_TYPE_Unk2700_IBBEKBJLMAJ;
@@ -248,20 +248,19 @@ public final class PlatformTypeOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\022PlatformType.proto*\315\003\n\014PlatformType\022\030\n" +
+      "\n\022PlatformType.proto*\313\003\n\014PlatformType\022\030\n" +
       "\024PLATFORM_TYPE_EDITOR\020\000\022\025\n\021PLATFORM_TYPE" +
       "_IOS\020\001\022\031\n\025PLATFORM_TYPE_ANDROID\020\002\022\024\n\020PLA" +
-      "TFORM_TYPE_PC\020\003\022\026\n\022PLATFORM_TYPE_PS_4\020\004\022" +
-      "\030\n\024PLATFORM_TYPE_SERVER\020\005\022\037\n\033PLATFORM_TY" +
-      "PE_CLOUD_ANDROID\020\006\022\033\n\027PLATFORM_TYPE_CLOU" +
-      "D_IOS\020\007\022\026\n\022PLATFORM_TYPE_PS_5\020\010\022\033\n\027PLATF" +
-      "ORM_TYPE_CLOUD_WEB\020\t\022\032\n\026PLATFORM_TYPE_CL" +
-      "OUD_TV\020\n\022%\n!PLATFORM_TYPE_Unk2700_IBBEKB" +
-      "JLMAJ\020\013\022%\n!PLATFORM_TYPE_Unk2700_BCEICMD" +
-      "NIIG\020\014\022%\n!PLATFORM_TYPE_Unk2800_EFNGHFNP" +
-      "MKM\020\r\022%\n!PLATFORM_TYPE_Unk2800_FNFHGPABL" +
-      "FB\020\016B\033\n\031emu.grasscutter.net.protob\006proto" +
-      "3"
+      "TFORM_TYPE_PC\020\003\022\025\n\021PLATFORM_TYPE_PS4\020\004\022\030" +
+      "\n\024PLATFORM_TYPE_SERVER\020\005\022\037\n\033PLATFORM_TYP" +
+      "E_CLOUD_ANDROID\020\006\022\033\n\027PLATFORM_TYPE_CLOUD" +
+      "_IOS\020\007\022\025\n\021PLATFORM_TYPE_PS5\020\010\022\033\n\027PLATFOR" +
+      "M_TYPE_CLOUD_WEB\020\t\022\032\n\026PLATFORM_TYPE_CLOU" +
+      "D_TV\020\n\022%\n!PLATFORM_TYPE_Unk2700_IBBEKBJL" +
+      "MAJ\020\013\022%\n!PLATFORM_TYPE_Unk2700_BCEICMDNI" +
+      "IG\020\014\022%\n!PLATFORM_TYPE_Unk2800_EFNGHFNPMK" +
+      "M\020\r\022%\n!PLATFORM_TYPE_Unk2800_FNFHGPABLFB" +
+      "\020\016B\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpNotifyOuterClass.java
index 02f00339..aa166fcc 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpNotifyOuterClass.java
@@ -49,7 +49,8 @@ public final class PlayerApplyEnterMpNotifyOuterClass {
    * <pre>
    * CmdId: 1826
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerApplyEnterMpNotify}
@@ -385,7 +386,8 @@ public final class PlayerApplyEnterMpNotifyOuterClass {
      * <pre>
      * CmdId: 1826
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerApplyEnterMpNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpReqOuterClass.java
index 1b955c99..ade7332f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpReqOuterClass.java
@@ -28,7 +28,7 @@ public final class PlayerApplyEnterMpReqOuterClass {
    * <pre>
    * CmdId: 1818
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class PlayerApplyEnterMpReqOuterClass {
      * <pre>
      * CmdId: 1818
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultNotifyOuterClass.java
index a32ab97a..d4c0dee4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultNotifyOuterClass.java
@@ -57,7 +57,8 @@ public final class PlayerApplyEnterMpResultNotifyOuterClass {
    * <pre>
    * CmdId: 1807
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerApplyEnterMpResultNotify}
@@ -646,7 +647,8 @@ public final class PlayerApplyEnterMpResultNotifyOuterClass {
      * <pre>
      * CmdId: 1807
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerApplyEnterMpResultNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultReqOuterClass.java
index cf1c3049..11ca85be 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultReqOuterClass.java
@@ -34,7 +34,7 @@ public final class PlayerApplyEnterMpResultReqOuterClass {
    * <pre>
    * CmdId: 1802
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class PlayerApplyEnterMpResultReqOuterClass {
      * <pre>
      * CmdId: 1802
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultRspOuterClass.java
index 6fc87738..ca9ddbab 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultRspOuterClass.java
@@ -46,7 +46,8 @@ public final class PlayerApplyEnterMpResultRspOuterClass {
    * <pre>
    * CmdId: 1831
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerApplyEnterMpResultRsp}
@@ -382,7 +383,8 @@ public final class PlayerApplyEnterMpResultRspOuterClass {
      * <pre>
      * CmdId: 1831
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerApplyEnterMpResultRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpRspOuterClass.java
index ced51ff1..9304c32a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpRspOuterClass.java
@@ -40,7 +40,8 @@ public final class PlayerApplyEnterMpRspOuterClass {
    * <pre>
    * CmdId: 1825
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerApplyEnterMpRsp}
@@ -348,7 +349,8 @@ public final class PlayerApplyEnterMpRspOuterClass {
      * <pre>
      * CmdId: 1825
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerApplyEnterMpRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatNotifyOuterClass.java
index 54030bd7..ff998c70 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatNotifyOuterClass.java
@@ -43,7 +43,8 @@ public final class PlayerChatNotifyOuterClass {
    * <pre>
    * CmdId: 3010
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerChatNotify}
@@ -352,7 +353,8 @@ public final class PlayerChatNotifyOuterClass {
      * <pre>
      * CmdId: 3010
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerChatNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatReqOuterClass.java
index 3fcbf214..7f7bf236 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatReqOuterClass.java
@@ -43,7 +43,7 @@ public final class PlayerChatReqOuterClass {
    * <pre>
    * CmdId: 3185
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -353,7 +353,7 @@ public final class PlayerChatReqOuterClass {
      * <pre>
      * CmdId: 3185
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatRspOuterClass.java
index b424268f..7ef004c4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerChatRspOuterClass.java
@@ -34,7 +34,8 @@ public final class PlayerChatRspOuterClass {
    * <pre>
    * CmdId: 3228
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerChatRsp}
@@ -315,7 +316,8 @@ public final class PlayerChatRspOuterClass {
      * <pre>
      * CmdId: 3228
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerChatRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsReqOuterClass.java
index 367810d1..b4a43329 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsReqOuterClass.java
@@ -18,23 +18,23 @@ public final class PlayerCookArgsReqOuterClass {
       // @@protoc_insertion_point(interface_extends:PlayerCookArgsReq)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>uint32 recipe_id = 11;</code>
-     * @return The recipeId.
-     */
-    int getRecipeId();
-
     /**
      * <code>uint32 assist_avatar = 10;</code>
      * @return The assistAvatar.
      */
     int getAssistAvatar();
+
+    /**
+     * <code>uint32 recipe_id = 11;</code>
+     * @return The recipeId.
+     */
+    int getRecipeId();
   }
   /**
    * <pre>
    * CmdId: 166
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -124,17 +124,6 @@ public final class PlayerCookArgsReqOuterClass {
               emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq.class, emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq.Builder.class);
     }
 
-    public static final int RECIPE_ID_FIELD_NUMBER = 11;
-    private int recipeId_;
-    /**
-     * <code>uint32 recipe_id = 11;</code>
-     * @return The recipeId.
-     */
-    @java.lang.Override
-    public int getRecipeId() {
-      return recipeId_;
-    }
-
     public static final int ASSIST_AVATAR_FIELD_NUMBER = 10;
     private int assistAvatar_;
     /**
@@ -146,6 +135,17 @@ public final class PlayerCookArgsReqOuterClass {
       return assistAvatar_;
     }
 
+    public static final int RECIPE_ID_FIELD_NUMBER = 11;
+    private int recipeId_;
+    /**
+     * <code>uint32 recipe_id = 11;</code>
+     * @return The recipeId.
+     */
+    @java.lang.Override
+    public int getRecipeId() {
+      return recipeId_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -198,10 +198,10 @@ public final class PlayerCookArgsReqOuterClass {
       }
       emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq other = (emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq) obj;
 
-      if (getRecipeId()
-          != other.getRecipeId()) return false;
       if (getAssistAvatar()
           != other.getAssistAvatar()) return false;
+      if (getRecipeId()
+          != other.getRecipeId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -213,10 +213,10 @@ public final class PlayerCookArgsReqOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RECIPE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getRecipeId();
       hash = (37 * hash) + ASSIST_AVATAR_FIELD_NUMBER;
       hash = (53 * hash) + getAssistAvatar();
+      hash = (37 * hash) + RECIPE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getRecipeId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -316,7 +316,7 @@ public final class PlayerCookArgsReqOuterClass {
      * <pre>
      * CmdId: 166
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -357,10 +357,10 @@ public final class PlayerCookArgsReqOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        recipeId_ = 0;
-
         assistAvatar_ = 0;
 
+        recipeId_ = 0;
+
         return this;
       }
 
@@ -387,8 +387,8 @@ public final class PlayerCookArgsReqOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq buildPartial() {
         emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq result = new emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq(this);
-        result.recipeId_ = recipeId_;
         result.assistAvatar_ = assistAvatar_;
+        result.recipeId_ = recipeId_;
         onBuilt();
         return result;
       }
@@ -437,12 +437,12 @@ public final class PlayerCookArgsReqOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq other) {
         if (other == emu.grasscutter.net.proto.PlayerCookArgsReqOuterClass.PlayerCookArgsReq.getDefaultInstance()) return this;
-        if (other.getRecipeId() != 0) {
-          setRecipeId(other.getRecipeId());
-        }
         if (other.getAssistAvatar() != 0) {
           setAssistAvatar(other.getAssistAvatar());
         }
+        if (other.getRecipeId() != 0) {
+          setRecipeId(other.getRecipeId());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -472,64 +472,64 @@ public final class PlayerCookArgsReqOuterClass {
         return this;
       }
 
-      private int recipeId_ ;
+      private int assistAvatar_ ;
       /**
-       * <code>uint32 recipe_id = 11;</code>
-       * @return The recipeId.
+       * <code>uint32 assist_avatar = 10;</code>
+       * @return The assistAvatar.
        */
       @java.lang.Override
-      public int getRecipeId() {
-        return recipeId_;
+      public int getAssistAvatar() {
+        return assistAvatar_;
       }
       /**
-       * <code>uint32 recipe_id = 11;</code>
-       * @param value The recipeId to set.
+       * <code>uint32 assist_avatar = 10;</code>
+       * @param value The assistAvatar to set.
        * @return This builder for chaining.
        */
-      public Builder setRecipeId(int value) {
+      public Builder setAssistAvatar(int value) {
         
-        recipeId_ = value;
+        assistAvatar_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 recipe_id = 11;</code>
+       * <code>uint32 assist_avatar = 10;</code>
        * @return This builder for chaining.
        */
-      public Builder clearRecipeId() {
+      public Builder clearAssistAvatar() {
         
-        recipeId_ = 0;
+        assistAvatar_ = 0;
         onChanged();
         return this;
       }
 
-      private int assistAvatar_ ;
+      private int recipeId_ ;
       /**
-       * <code>uint32 assist_avatar = 10;</code>
-       * @return The assistAvatar.
+       * <code>uint32 recipe_id = 11;</code>
+       * @return The recipeId.
        */
       @java.lang.Override
-      public int getAssistAvatar() {
-        return assistAvatar_;
+      public int getRecipeId() {
+        return recipeId_;
       }
       /**
-       * <code>uint32 assist_avatar = 10;</code>
-       * @param value The assistAvatar to set.
+       * <code>uint32 recipe_id = 11;</code>
+       * @param value The recipeId to set.
        * @return This builder for chaining.
        */
-      public Builder setAssistAvatar(int value) {
+      public Builder setRecipeId(int value) {
         
-        assistAvatar_ = value;
+        recipeId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 assist_avatar = 10;</code>
+       * <code>uint32 recipe_id = 11;</code>
        * @return This builder for chaining.
        */
-      public Builder clearAssistAvatar() {
+      public Builder clearRecipeId() {
         
-        assistAvatar_ = 0;
+        recipeId_ = 0;
         onChanged();
         return this;
       }
@@ -601,8 +601,8 @@ public final class PlayerCookArgsReqOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\027PlayerCookArgsReq.proto\"=\n\021PlayerCookA" +
-      "rgsReq\022\021\n\trecipe_id\030\013 \001(\r\022\025\n\rassist_avat" +
-      "ar\030\n \001(\rB\033\n\031emu.grasscutter.net.protob\006p" +
+      "rgsReq\022\025\n\rassist_avatar\030\n \001(\r\022\021\n\trecipe_" +
+      "id\030\013 \001(\rB\033\n\031emu.grasscutter.net.protob\006p" +
       "roto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -614,7 +614,7 @@ public final class PlayerCookArgsReqOuterClass {
     internal_static_PlayerCookArgsReq_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_PlayerCookArgsReq_descriptor,
-        new java.lang.String[] { "RecipeId", "AssistAvatar", });
+        new java.lang.String[] { "AssistAvatar", "RecipeId", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsRspOuterClass.java
index dce249ac..70fc715b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsRspOuterClass.java
@@ -34,7 +34,8 @@ public final class PlayerCookArgsRspOuterClass {
    * <pre>
    * CmdId: 168
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerCookArgsRsp}
@@ -317,7 +318,8 @@ public final class PlayerCookArgsRspOuterClass {
      * <pre>
      * CmdId: 168
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerCookArgsRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookReqOuterClass.java
index 09d5cd45..0f7f2b8f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookReqOuterClass.java
@@ -19,10 +19,10 @@ public final class PlayerCookReqOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>uint32 recipe_id = 8;</code>
-     * @return The recipeId.
+     * <code>uint32 cook_count = 1;</code>
+     * @return The cookCount.
      */
-    int getRecipeId();
+    int getCookCount();
 
     /**
      * <code>uint32 qte_quality = 12;</code>
@@ -31,22 +31,22 @@ public final class PlayerCookReqOuterClass {
     int getQteQuality();
 
     /**
-     * <code>uint32 assist_avatar = 14;</code>
-     * @return The assistAvatar.
+     * <code>uint32 recipe_id = 8;</code>
+     * @return The recipeId.
      */
-    int getAssistAvatar();
+    int getRecipeId();
 
     /**
-     * <code>uint32 cook_count = 1;</code>
-     * @return The cookCount.
+     * <code>uint32 assist_avatar = 14;</code>
+     * @return The assistAvatar.
      */
-    int getCookCount();
+    int getAssistAvatar();
   }
   /**
    * <pre>
    * CmdId: 194
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -146,15 +146,15 @@ public final class PlayerCookReqOuterClass {
               emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq.class, emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq.Builder.class);
     }
 
-    public static final int RECIPE_ID_FIELD_NUMBER = 8;
-    private int recipeId_;
+    public static final int COOK_COUNT_FIELD_NUMBER = 1;
+    private int cookCount_;
     /**
-     * <code>uint32 recipe_id = 8;</code>
-     * @return The recipeId.
+     * <code>uint32 cook_count = 1;</code>
+     * @return The cookCount.
      */
     @java.lang.Override
-    public int getRecipeId() {
-      return recipeId_;
+    public int getCookCount() {
+      return cookCount_;
     }
 
     public static final int QTE_QUALITY_FIELD_NUMBER = 12;
@@ -168,6 +168,17 @@ public final class PlayerCookReqOuterClass {
       return qteQuality_;
     }
 
+    public static final int RECIPE_ID_FIELD_NUMBER = 8;
+    private int recipeId_;
+    /**
+     * <code>uint32 recipe_id = 8;</code>
+     * @return The recipeId.
+     */
+    @java.lang.Override
+    public int getRecipeId() {
+      return recipeId_;
+    }
+
     public static final int ASSIST_AVATAR_FIELD_NUMBER = 14;
     private int assistAvatar_;
     /**
@@ -179,17 +190,6 @@ public final class PlayerCookReqOuterClass {
       return assistAvatar_;
     }
 
-    public static final int COOK_COUNT_FIELD_NUMBER = 1;
-    private int cookCount_;
-    /**
-     * <code>uint32 cook_count = 1;</code>
-     * @return The cookCount.
-     */
-    @java.lang.Override
-    public int getCookCount() {
-      return cookCount_;
-    }
-
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -256,14 +256,14 @@ public final class PlayerCookReqOuterClass {
       }
       emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq other = (emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq) obj;
 
-      if (getRecipeId()
-          != other.getRecipeId()) return false;
+      if (getCookCount()
+          != other.getCookCount()) return false;
       if (getQteQuality()
           != other.getQteQuality()) return false;
+      if (getRecipeId()
+          != other.getRecipeId()) return false;
       if (getAssistAvatar()
           != other.getAssistAvatar()) return false;
-      if (getCookCount()
-          != other.getCookCount()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -275,14 +275,14 @@ public final class PlayerCookReqOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RECIPE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getRecipeId();
+      hash = (37 * hash) + COOK_COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCookCount();
       hash = (37 * hash) + QTE_QUALITY_FIELD_NUMBER;
       hash = (53 * hash) + getQteQuality();
+      hash = (37 * hash) + RECIPE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getRecipeId();
       hash = (37 * hash) + ASSIST_AVATAR_FIELD_NUMBER;
       hash = (53 * hash) + getAssistAvatar();
-      hash = (37 * hash) + COOK_COUNT_FIELD_NUMBER;
-      hash = (53 * hash) + getCookCount();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -382,7 +382,7 @@ public final class PlayerCookReqOuterClass {
      * <pre>
      * CmdId: 194
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -423,13 +423,13 @@ public final class PlayerCookReqOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        recipeId_ = 0;
+        cookCount_ = 0;
 
         qteQuality_ = 0;
 
-        assistAvatar_ = 0;
+        recipeId_ = 0;
 
-        cookCount_ = 0;
+        assistAvatar_ = 0;
 
         return this;
       }
@@ -457,10 +457,10 @@ public final class PlayerCookReqOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq buildPartial() {
         emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq result = new emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq(this);
-        result.recipeId_ = recipeId_;
+        result.cookCount_ = cookCount_;
         result.qteQuality_ = qteQuality_;
+        result.recipeId_ = recipeId_;
         result.assistAvatar_ = assistAvatar_;
-        result.cookCount_ = cookCount_;
         onBuilt();
         return result;
       }
@@ -509,18 +509,18 @@ public final class PlayerCookReqOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq other) {
         if (other == emu.grasscutter.net.proto.PlayerCookReqOuterClass.PlayerCookReq.getDefaultInstance()) return this;
-        if (other.getRecipeId() != 0) {
-          setRecipeId(other.getRecipeId());
+        if (other.getCookCount() != 0) {
+          setCookCount(other.getCookCount());
         }
         if (other.getQteQuality() != 0) {
           setQteQuality(other.getQteQuality());
         }
+        if (other.getRecipeId() != 0) {
+          setRecipeId(other.getRecipeId());
+        }
         if (other.getAssistAvatar() != 0) {
           setAssistAvatar(other.getAssistAvatar());
         }
-        if (other.getCookCount() != 0) {
-          setCookCount(other.getCookCount());
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -550,33 +550,33 @@ public final class PlayerCookReqOuterClass {
         return this;
       }
 
-      private int recipeId_ ;
+      private int cookCount_ ;
       /**
-       * <code>uint32 recipe_id = 8;</code>
-       * @return The recipeId.
+       * <code>uint32 cook_count = 1;</code>
+       * @return The cookCount.
        */
       @java.lang.Override
-      public int getRecipeId() {
-        return recipeId_;
+      public int getCookCount() {
+        return cookCount_;
       }
       /**
-       * <code>uint32 recipe_id = 8;</code>
-       * @param value The recipeId to set.
+       * <code>uint32 cook_count = 1;</code>
+       * @param value The cookCount to set.
        * @return This builder for chaining.
        */
-      public Builder setRecipeId(int value) {
+      public Builder setCookCount(int value) {
         
-        recipeId_ = value;
+        cookCount_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 recipe_id = 8;</code>
+       * <code>uint32 cook_count = 1;</code>
        * @return This builder for chaining.
        */
-      public Builder clearRecipeId() {
+      public Builder clearCookCount() {
         
-        recipeId_ = 0;
+        cookCount_ = 0;
         onChanged();
         return this;
       }
@@ -612,64 +612,64 @@ public final class PlayerCookReqOuterClass {
         return this;
       }
 
-      private int assistAvatar_ ;
+      private int recipeId_ ;
       /**
-       * <code>uint32 assist_avatar = 14;</code>
-       * @return The assistAvatar.
+       * <code>uint32 recipe_id = 8;</code>
+       * @return The recipeId.
        */
       @java.lang.Override
-      public int getAssistAvatar() {
-        return assistAvatar_;
+      public int getRecipeId() {
+        return recipeId_;
       }
       /**
-       * <code>uint32 assist_avatar = 14;</code>
-       * @param value The assistAvatar to set.
+       * <code>uint32 recipe_id = 8;</code>
+       * @param value The recipeId to set.
        * @return This builder for chaining.
        */
-      public Builder setAssistAvatar(int value) {
+      public Builder setRecipeId(int value) {
         
-        assistAvatar_ = value;
+        recipeId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 assist_avatar = 14;</code>
+       * <code>uint32 recipe_id = 8;</code>
        * @return This builder for chaining.
        */
-      public Builder clearAssistAvatar() {
+      public Builder clearRecipeId() {
         
-        assistAvatar_ = 0;
+        recipeId_ = 0;
         onChanged();
         return this;
       }
 
-      private int cookCount_ ;
+      private int assistAvatar_ ;
       /**
-       * <code>uint32 cook_count = 1;</code>
-       * @return The cookCount.
+       * <code>uint32 assist_avatar = 14;</code>
+       * @return The assistAvatar.
        */
       @java.lang.Override
-      public int getCookCount() {
-        return cookCount_;
+      public int getAssistAvatar() {
+        return assistAvatar_;
       }
       /**
-       * <code>uint32 cook_count = 1;</code>
-       * @param value The cookCount to set.
+       * <code>uint32 assist_avatar = 14;</code>
+       * @param value The assistAvatar to set.
        * @return This builder for chaining.
        */
-      public Builder setCookCount(int value) {
+      public Builder setAssistAvatar(int value) {
         
-        cookCount_ = value;
+        assistAvatar_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cook_count = 1;</code>
+       * <code>uint32 assist_avatar = 14;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCookCount() {
+      public Builder clearAssistAvatar() {
         
-        cookCount_ = 0;
+        assistAvatar_ = 0;
         onChanged();
         return this;
       }
@@ -740,9 +740,9 @@ public final class PlayerCookReqOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\023PlayerCookReq.proto\"b\n\rPlayerCookReq\022\021" +
-      "\n\trecipe_id\030\010 \001(\r\022\023\n\013qte_quality\030\014 \001(\r\022\025" +
-      "\n\rassist_avatar\030\016 \001(\r\022\022\n\ncook_count\030\001 \001(" +
+      "\n\023PlayerCookReq.proto\"b\n\rPlayerCookReq\022\022" +
+      "\n\ncook_count\030\001 \001(\r\022\023\n\013qte_quality\030\014 \001(\r\022" +
+      "\021\n\trecipe_id\030\010 \001(\r\022\025\n\rassist_avatar\030\016 \001(" +
       "\rB\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -754,7 +754,7 @@ public final class PlayerCookReqOuterClass {
     internal_static_PlayerCookReq_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_PlayerCookReq_descriptor,
-        new java.lang.String[] { "RecipeId", "QteQuality", "AssistAvatar", "CookCount", });
+        new java.lang.String[] { "CookCount", "QteQuality", "RecipeId", "AssistAvatar", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookRspOuterClass.java
index 80833709..14981b0f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerCookRspOuterClass.java
@@ -19,25 +19,34 @@ public final class PlayerCookRspOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>int32 retcode = 3;</code>
-     * @return The retcode.
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
-    int getRetcode();
-
+    java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> 
+        getExtralItemListList();
     /**
-     * <code>.CookRecipeData recipe_data = 7;</code>
-     * @return Whether the recipeData field is set.
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
-    boolean hasRecipeData();
+    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getExtralItemList(int index);
     /**
-     * <code>.CookRecipeData recipe_data = 7;</code>
-     * @return The recipeData.
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
-    emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData getRecipeData();
+    int getExtralItemListCount();
     /**
-     * <code>.CookRecipeData recipe_data = 7;</code>
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
-    emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataOrBuilder();
+    java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+        getExtralItemListOrBuilderList();
+    /**
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     */
+    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getExtralItemListOrBuilder(
+        int index);
+
+    /**
+     * <code>uint32 cook_count = 12;</code>
+     * @return The cookCount.
+     */
+    int getCookCount();
 
     /**
      * <code>repeated .ItemParam item_list = 11;</code>
@@ -64,46 +73,38 @@ public final class PlayerCookRspOuterClass {
         int index);
 
     /**
-     * <code>uint32 qte_quality = 5;</code>
-     * @return The qteQuality.
+     * <code>int32 retcode = 3;</code>
+     * @return The retcode.
      */
-    int getQteQuality();
+    int getRetcode();
 
     /**
-     * <code>uint32 cook_count = 12;</code>
-     * @return The cookCount.
+     * <code>uint32 qte_quality = 5;</code>
+     * @return The qteQuality.
      */
-    int getCookCount();
+    int getQteQuality();
 
     /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
-     */
-    java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> 
-        getExtralItemListList();
-    /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
-     */
-    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getExtralItemList(int index);
-    /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     * <code>.CookRecipeData recipe_data = 7;</code>
+     * @return Whether the recipeData field is set.
      */
-    int getExtralItemListCount();
+    boolean hasRecipeData();
     /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     * <code>.CookRecipeData recipe_data = 7;</code>
+     * @return The recipeData.
      */
-    java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-        getExtralItemListOrBuilderList();
+    emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData getRecipeData();
     /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     * <code>.CookRecipeData recipe_data = 7;</code>
      */
-    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getExtralItemListOrBuilder(
-        int index);
+    emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataOrBuilder();
   }
   /**
    * <pre>
    * CmdId: 188
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerCookRsp}
@@ -118,8 +119,8 @@ public final class PlayerCookRspOuterClass {
       super(builder);
     }
     private PlayerCookRsp() {
-      itemList_ = java.util.Collections.emptyList();
       extralItemList_ = java.util.Collections.emptyList();
+      itemList_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -177,9 +178,9 @@ public final class PlayerCookRspOuterClass {
               break;
             }
             case 90: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                 itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000002;
               }
               itemList_.add(
                   input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry));
@@ -191,9 +192,9 @@ public final class PlayerCookRspOuterClass {
               break;
             }
             case 122: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                 extralItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000001;
               }
               extralItemList_.add(
                   input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry));
@@ -214,10 +215,10 @@ public final class PlayerCookRspOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
           itemList_ = java.util.Collections.unmodifiableList(itemList_);
         }
-        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
           extralItemList_ = java.util.Collections.unmodifiableList(extralItemList_);
         }
         this.unknownFields = unknownFields.build();
@@ -237,41 +238,55 @@ public final class PlayerCookRspOuterClass {
               emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp.class, emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp.Builder.class);
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 3;
-    private int retcode_;
+    public static final int EXTRAL_ITEM_LIST_FIELD_NUMBER = 15;
+    private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> extralItemList_;
     /**
-     * <code>int32 retcode = 3;</code>
-     * @return The retcode.
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
     @java.lang.Override
-    public int getRetcode() {
-      return retcode_;
+    public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getExtralItemListList() {
+      return extralItemList_;
     }
-
-    public static final int RECIPE_DATA_FIELD_NUMBER = 7;
-    private emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData recipeData_;
     /**
-     * <code>.CookRecipeData recipe_data = 7;</code>
-     * @return Whether the recipeData field is set.
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
     @java.lang.Override
-    public boolean hasRecipeData() {
-      return recipeData_ != null;
+    public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+        getExtralItemListOrBuilderList() {
+      return extralItemList_;
     }
     /**
-     * <code>.CookRecipeData recipe_data = 7;</code>
-     * @return The recipeData.
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData getRecipeData() {
-      return recipeData_ == null ? emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance() : recipeData_;
+    public int getExtralItemListCount() {
+      return extralItemList_.size();
     }
     /**
-     * <code>.CookRecipeData recipe_data = 7;</code>
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataOrBuilder() {
-      return getRecipeData();
+    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getExtralItemList(int index) {
+      return extralItemList_.get(index);
+    }
+    /**
+     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getExtralItemListOrBuilder(
+        int index) {
+      return extralItemList_.get(index);
+    }
+
+    public static final int COOK_COUNT_FIELD_NUMBER = 12;
+    private int cookCount_;
+    /**
+     * <code>uint32 cook_count = 12;</code>
+     * @return The cookCount.
+     */
+    @java.lang.Override
+    public int getCookCount() {
+      return cookCount_;
     }
 
     public static final int ITEM_LIST_FIELD_NUMBER = 11;
@@ -314,6 +329,17 @@ public final class PlayerCookRspOuterClass {
       return itemList_.get(index);
     }
 
+    public static final int RETCODE_FIELD_NUMBER = 3;
+    private int retcode_;
+    /**
+     * <code>int32 retcode = 3;</code>
+     * @return The retcode.
+     */
+    @java.lang.Override
+    public int getRetcode() {
+      return retcode_;
+    }
+
     public static final int QTE_QUALITY_FIELD_NUMBER = 5;
     private int qteQuality_;
     /**
@@ -325,55 +351,30 @@ public final class PlayerCookRspOuterClass {
       return qteQuality_;
     }
 
-    public static final int COOK_COUNT_FIELD_NUMBER = 12;
-    private int cookCount_;
-    /**
-     * <code>uint32 cook_count = 12;</code>
-     * @return The cookCount.
-     */
-    @java.lang.Override
-    public int getCookCount() {
-      return cookCount_;
-    }
-
-    public static final int EXTRAL_ITEM_LIST_FIELD_NUMBER = 15;
-    private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> extralItemList_;
-    /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
-     */
-    @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getExtralItemListList() {
-      return extralItemList_;
-    }
-    /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
-     */
-    @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-        getExtralItemListOrBuilderList() {
-      return extralItemList_;
-    }
+    public static final int RECIPE_DATA_FIELD_NUMBER = 7;
+    private emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData recipeData_;
     /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     * <code>.CookRecipeData recipe_data = 7;</code>
+     * @return Whether the recipeData field is set.
      */
     @java.lang.Override
-    public int getExtralItemListCount() {
-      return extralItemList_.size();
+    public boolean hasRecipeData() {
+      return recipeData_ != null;
     }
     /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     * <code>.CookRecipeData recipe_data = 7;</code>
+     * @return The recipeData.
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getExtralItemList(int index) {
-      return extralItemList_.get(index);
+    public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData getRecipeData() {
+      return recipeData_ == null ? emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance() : recipeData_;
     }
     /**
-     * <code>repeated .ItemParam extral_item_list = 15;</code>
+     * <code>.CookRecipeData recipe_data = 7;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getExtralItemListOrBuilder(
-        int index) {
-      return extralItemList_.get(index);
+    public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataOrBuilder() {
+      return getRecipeData();
     }
 
     private byte memoizedIsInitialized = -1;
@@ -456,21 +457,21 @@ public final class PlayerCookRspOuterClass {
       }
       emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp other = (emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp) obj;
 
+      if (!getExtralItemListList()
+          .equals(other.getExtralItemListList())) return false;
+      if (getCookCount()
+          != other.getCookCount()) return false;
+      if (!getItemListList()
+          .equals(other.getItemListList())) return false;
       if (getRetcode()
           != other.getRetcode()) return false;
+      if (getQteQuality()
+          != other.getQteQuality()) return false;
       if (hasRecipeData() != other.hasRecipeData()) return false;
       if (hasRecipeData()) {
         if (!getRecipeData()
             .equals(other.getRecipeData())) return false;
       }
-      if (!getItemListList()
-          .equals(other.getItemListList())) return false;
-      if (getQteQuality()
-          != other.getQteQuality()) return false;
-      if (getCookCount()
-          != other.getCookCount()) return false;
-      if (!getExtralItemListList()
-          .equals(other.getExtralItemListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -482,23 +483,23 @@ public final class PlayerCookRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
-      hash = (53 * hash) + getRetcode();
-      if (hasRecipeData()) {
-        hash = (37 * hash) + RECIPE_DATA_FIELD_NUMBER;
-        hash = (53 * hash) + getRecipeData().hashCode();
+      if (getExtralItemListCount() > 0) {
+        hash = (37 * hash) + EXTRAL_ITEM_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getExtralItemListList().hashCode();
       }
+      hash = (37 * hash) + COOK_COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCookCount();
       if (getItemListCount() > 0) {
         hash = (37 * hash) + ITEM_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getItemListList().hashCode();
       }
+      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + QTE_QUALITY_FIELD_NUMBER;
       hash = (53 * hash) + getQteQuality();
-      hash = (37 * hash) + COOK_COUNT_FIELD_NUMBER;
-      hash = (53 * hash) + getCookCount();
-      if (getExtralItemListCount() > 0) {
-        hash = (37 * hash) + EXTRAL_ITEM_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getExtralItemListList().hashCode();
+      if (hasRecipeData()) {
+        hash = (37 * hash) + RECIPE_DATA_FIELD_NUMBER;
+        hash = (53 * hash) + getRecipeData().hashCode();
       }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
@@ -599,7 +600,8 @@ public final class PlayerCookRspOuterClass {
      * <pre>
      * CmdId: 188
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerCookRsp}
@@ -634,36 +636,36 @@ public final class PlayerCookRspOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
-          getItemListFieldBuilder();
           getExtralItemListFieldBuilder();
+          getItemListFieldBuilder();
         }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        retcode_ = 0;
-
-        if (recipeDataBuilder_ == null) {
-          recipeData_ = null;
+        if (extralItemListBuilder_ == null) {
+          extralItemList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
         } else {
-          recipeData_ = null;
-          recipeDataBuilder_ = null;
+          extralItemListBuilder_.clear();
         }
+        cookCount_ = 0;
+
         if (itemListBuilder_ == null) {
           itemList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         } else {
           itemListBuilder_.clear();
         }
-        qteQuality_ = 0;
+        retcode_ = 0;
 
-        cookCount_ = 0;
+        qteQuality_ = 0;
 
-        if (extralItemListBuilder_ == null) {
-          extralItemList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
+        if (recipeDataBuilder_ == null) {
+          recipeData_ = null;
         } else {
-          extralItemListBuilder_.clear();
+          recipeData_ = null;
+          recipeDataBuilder_ = null;
         }
         return this;
       }
@@ -692,31 +694,31 @@ public final class PlayerCookRspOuterClass {
       public emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp buildPartial() {
         emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp result = new emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp(this);
         int from_bitField0_ = bitField0_;
-        result.retcode_ = retcode_;
-        if (recipeDataBuilder_ == null) {
-          result.recipeData_ = recipeData_;
+        if (extralItemListBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            extralItemList_ = java.util.Collections.unmodifiableList(extralItemList_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.extralItemList_ = extralItemList_;
         } else {
-          result.recipeData_ = recipeDataBuilder_.build();
+          result.extralItemList_ = extralItemListBuilder_.build();
         }
+        result.cookCount_ = cookCount_;
         if (itemListBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) != 0)) {
+          if (((bitField0_ & 0x00000002) != 0)) {
             itemList_ = java.util.Collections.unmodifiableList(itemList_);
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           }
           result.itemList_ = itemList_;
         } else {
           result.itemList_ = itemListBuilder_.build();
         }
+        result.retcode_ = retcode_;
         result.qteQuality_ = qteQuality_;
-        result.cookCount_ = cookCount_;
-        if (extralItemListBuilder_ == null) {
-          if (((bitField0_ & 0x00000002) != 0)) {
-            extralItemList_ = java.util.Collections.unmodifiableList(extralItemList_);
-            bitField0_ = (bitField0_ & ~0x00000002);
-          }
-          result.extralItemList_ = extralItemList_;
+        if (recipeDataBuilder_ == null) {
+          result.recipeData_ = recipeData_;
         } else {
-          result.extralItemList_ = extralItemListBuilder_.build();
+          result.recipeData_ = recipeDataBuilder_.build();
         }
         onBuilt();
         return result;
@@ -766,17 +768,40 @@ public final class PlayerCookRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp other) {
         if (other == emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp.getDefaultInstance()) return this;
-        if (other.getRetcode() != 0) {
-          setRetcode(other.getRetcode());
+        if (extralItemListBuilder_ == null) {
+          if (!other.extralItemList_.isEmpty()) {
+            if (extralItemList_.isEmpty()) {
+              extralItemList_ = other.extralItemList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureExtralItemListIsMutable();
+              extralItemList_.addAll(other.extralItemList_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.extralItemList_.isEmpty()) {
+            if (extralItemListBuilder_.isEmpty()) {
+              extralItemListBuilder_.dispose();
+              extralItemListBuilder_ = null;
+              extralItemList_ = other.extralItemList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              extralItemListBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getExtralItemListFieldBuilder() : null;
+            } else {
+              extralItemListBuilder_.addAllMessages(other.extralItemList_);
+            }
+          }
         }
-        if (other.hasRecipeData()) {
-          mergeRecipeData(other.getRecipeData());
+        if (other.getCookCount() != 0) {
+          setCookCount(other.getCookCount());
         }
         if (itemListBuilder_ == null) {
           if (!other.itemList_.isEmpty()) {
             if (itemList_.isEmpty()) {
               itemList_ = other.itemList_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000002);
             } else {
               ensureItemListIsMutable();
               itemList_.addAll(other.itemList_);
@@ -789,7 +814,7 @@ public final class PlayerCookRspOuterClass {
               itemListBuilder_.dispose();
               itemListBuilder_ = null;
               itemList_ = other.itemList_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000002);
               itemListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getItemListFieldBuilder() : null;
@@ -798,37 +823,14 @@ public final class PlayerCookRspOuterClass {
             }
           }
         }
+        if (other.getRetcode() != 0) {
+          setRetcode(other.getRetcode());
+        }
         if (other.getQteQuality() != 0) {
           setQteQuality(other.getQteQuality());
         }
-        if (other.getCookCount() != 0) {
-          setCookCount(other.getCookCount());
-        }
-        if (extralItemListBuilder_ == null) {
-          if (!other.extralItemList_.isEmpty()) {
-            if (extralItemList_.isEmpty()) {
-              extralItemList_ = other.extralItemList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
-            } else {
-              ensureExtralItemListIsMutable();
-              extralItemList_.addAll(other.extralItemList_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.extralItemList_.isEmpty()) {
-            if (extralItemListBuilder_.isEmpty()) {
-              extralItemListBuilder_.dispose();
-              extralItemListBuilder_ = null;
-              extralItemList_ = other.extralItemList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
-              extralItemListBuilder_ = 
-                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getExtralItemListFieldBuilder() : null;
-            } else {
-              extralItemListBuilder_.addAllMessages(other.extralItemList_);
-            }
-          }
+        if (other.hasRecipeData()) {
+          mergeRecipeData(other.getRecipeData());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -860,162 +862,283 @@ public final class PlayerCookRspOuterClass {
       }
       private int bitField0_;
 
-      private int retcode_ ;
-      /**
-       * <code>int32 retcode = 3;</code>
-       * @return The retcode.
-       */
-      @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
-      }
-      /**
-       * <code>int32 retcode = 3;</code>
-       * @param value The retcode to set.
-       * @return This builder for chaining.
-       */
-      public Builder setRetcode(int value) {
-        
-        retcode_ = value;
-        onChanged();
-        return this;
+      private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> extralItemList_ =
+        java.util.Collections.emptyList();
+      private void ensureExtralItemListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          extralItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(extralItemList_);
+          bitField0_ |= 0x00000001;
+         }
       }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> extralItemListBuilder_;
+
       /**
-       * <code>int32 retcode = 3;</code>
-       * @return This builder for chaining.
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public Builder clearRetcode() {
-        
-        retcode_ = 0;
-        onChanged();
-        return this;
+      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getExtralItemListList() {
+        if (extralItemListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(extralItemList_);
+        } else {
+          return extralItemListBuilder_.getMessageList();
+        }
       }
-
-      private emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData recipeData_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder> recipeDataBuilder_;
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
-       * @return Whether the recipeData field is set.
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public boolean hasRecipeData() {
-        return recipeDataBuilder_ != null || recipeData_ != null;
+      public int getExtralItemListCount() {
+        if (extralItemListBuilder_ == null) {
+          return extralItemList_.size();
+        } else {
+          return extralItemListBuilder_.getCount();
+        }
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
-       * @return The recipeData.
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData getRecipeData() {
-        if (recipeDataBuilder_ == null) {
-          return recipeData_ == null ? emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance() : recipeData_;
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getExtralItemList(int index) {
+        if (extralItemListBuilder_ == null) {
+          return extralItemList_.get(index);
         } else {
-          return recipeDataBuilder_.getMessage();
+          return extralItemListBuilder_.getMessage(index);
         }
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public Builder setRecipeData(emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData value) {
-        if (recipeDataBuilder_ == null) {
+      public Builder setExtralItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
+        if (extralItemListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          recipeData_ = value;
+          ensureExtralItemListIsMutable();
+          extralItemList_.set(index, value);
           onChanged();
         } else {
-          recipeDataBuilder_.setMessage(value);
+          extralItemListBuilder_.setMessage(index, value);
         }
-
         return this;
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public Builder setRecipeData(
-          emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder builderForValue) {
-        if (recipeDataBuilder_ == null) {
-          recipeData_ = builderForValue.build();
+      public Builder setExtralItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
+        if (extralItemListBuilder_ == null) {
+          ensureExtralItemListIsMutable();
+          extralItemList_.set(index, builderForValue.build());
           onChanged();
         } else {
-          recipeDataBuilder_.setMessage(builderForValue.build());
+          extralItemListBuilder_.setMessage(index, builderForValue.build());
         }
-
         return this;
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public Builder mergeRecipeData(emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData value) {
-        if (recipeDataBuilder_ == null) {
-          if (recipeData_ != null) {
-            recipeData_ =
-              emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.newBuilder(recipeData_).mergeFrom(value).buildPartial();
-          } else {
-            recipeData_ = value;
+      public Builder addExtralItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
+        if (extralItemListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
           }
+          ensureExtralItemListIsMutable();
+          extralItemList_.add(value);
           onChanged();
         } else {
-          recipeDataBuilder_.mergeFrom(value);
+          extralItemListBuilder_.addMessage(value);
         }
-
         return this;
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public Builder clearRecipeData() {
-        if (recipeDataBuilder_ == null) {
-          recipeData_ = null;
+      public Builder addExtralItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
+        if (extralItemListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureExtralItemListIsMutable();
+          extralItemList_.add(index, value);
           onChanged();
         } else {
-          recipeData_ = null;
-          recipeDataBuilder_ = null;
+          extralItemListBuilder_.addMessage(index, value);
         }
-
         return this;
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder getRecipeDataBuilder() {
-        
-        onChanged();
-        return getRecipeDataFieldBuilder().getBuilder();
+      public Builder addExtralItemList(
+          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
+        if (extralItemListBuilder_ == null) {
+          ensureExtralItemListIsMutable();
+          extralItemList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          extralItemListBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataOrBuilder() {
-        if (recipeDataBuilder_ != null) {
-          return recipeDataBuilder_.getMessageOrBuilder();
+      public Builder addExtralItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
+        if (extralItemListBuilder_ == null) {
+          ensureExtralItemListIsMutable();
+          extralItemList_.add(index, builderForValue.build());
+          onChanged();
         } else {
-          return recipeData_ == null ?
-              emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance() : recipeData_;
+          extralItemListBuilder_.addMessage(index, builderForValue.build());
         }
+        return this;
       }
       /**
-       * <code>.CookRecipeData recipe_data = 7;</code>
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
        */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder> 
-          getRecipeDataFieldBuilder() {
-        if (recipeDataBuilder_ == null) {
-          recipeDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder>(
-                  getRecipeData(),
+      public Builder addAllExtralItemList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
+        if (extralItemListBuilder_ == null) {
+          ensureExtralItemListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, extralItemList_);
+          onChanged();
+        } else {
+          extralItemListBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public Builder clearExtralItemList() {
+        if (extralItemListBuilder_ == null) {
+          extralItemList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          extralItemListBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public Builder removeExtralItemList(int index) {
+        if (extralItemListBuilder_ == null) {
+          ensureExtralItemListIsMutable();
+          extralItemList_.remove(index);
+          onChanged();
+        } else {
+          extralItemListBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getExtralItemListBuilder(
+          int index) {
+        return getExtralItemListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getExtralItemListOrBuilder(
+          int index) {
+        if (extralItemListBuilder_ == null) {
+          return extralItemList_.get(index);  } else {
+          return extralItemListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+           getExtralItemListOrBuilderList() {
+        if (extralItemListBuilder_ != null) {
+          return extralItemListBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(extralItemList_);
+        }
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addExtralItemListBuilder() {
+        return getExtralItemListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addExtralItemListBuilder(
+          int index) {
+        return getExtralItemListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder> 
+           getExtralItemListBuilderList() {
+        return getExtralItemListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+          getExtralItemListFieldBuilder() {
+        if (extralItemListBuilder_ == null) {
+          extralItemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
+                  extralItemList_,
+                  ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
                   isClean());
-          recipeData_ = null;
+          extralItemList_ = null;
         }
-        return recipeDataBuilder_;
+        return extralItemListBuilder_;
+      }
+
+      private int cookCount_ ;
+      /**
+       * <code>uint32 cook_count = 12;</code>
+       * @return The cookCount.
+       */
+      @java.lang.Override
+      public int getCookCount() {
+        return cookCount_;
+      }
+      /**
+       * <code>uint32 cook_count = 12;</code>
+       * @param value The cookCount to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCookCount(int value) {
+        
+        cookCount_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 cook_count = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCookCount() {
+        
+        cookCount_ = 0;
+        onChanged();
+        return this;
       }
 
       private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_ =
         java.util.Collections.emptyList();
       private void ensureItemListIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
+        if (!((bitField0_ & 0x00000002) != 0)) {
           itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(itemList_);
-          bitField0_ |= 0x00000001;
+          bitField0_ |= 0x00000002;
          }
       }
 
@@ -1165,7 +1288,7 @@ public final class PlayerCookRspOuterClass {
       public Builder clearItemList() {
         if (itemListBuilder_ == null) {
           itemList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
           onChanged();
         } else {
           itemListBuilder_.clear();
@@ -1242,7 +1365,7 @@ public final class PlayerCookRspOuterClass {
           itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
               emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
                   itemList_,
-                  ((bitField0_ & 0x00000001) != 0),
+                  ((bitField0_ & 0x00000002) != 0),
                   getParentForChildren(),
                   isClean());
           itemList_ = null;
@@ -1250,306 +1373,185 @@ public final class PlayerCookRspOuterClass {
         return itemListBuilder_;
       }
 
-      private int qteQuality_ ;
+      private int retcode_ ;
       /**
-       * <code>uint32 qte_quality = 5;</code>
-       * @return The qteQuality.
+       * <code>int32 retcode = 3;</code>
+       * @return The retcode.
        */
       @java.lang.Override
-      public int getQteQuality() {
-        return qteQuality_;
+      public int getRetcode() {
+        return retcode_;
       }
       /**
-       * <code>uint32 qte_quality = 5;</code>
-       * @param value The qteQuality to set.
+       * <code>int32 retcode = 3;</code>
+       * @param value The retcode to set.
        * @return This builder for chaining.
        */
-      public Builder setQteQuality(int value) {
+      public Builder setRetcode(int value) {
         
-        qteQuality_ = value;
+        retcode_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 qte_quality = 5;</code>
+       * <code>int32 retcode = 3;</code>
        * @return This builder for chaining.
        */
-      public Builder clearQteQuality() {
+      public Builder clearRetcode() {
         
-        qteQuality_ = 0;
+        retcode_ = 0;
         onChanged();
         return this;
       }
 
-      private int cookCount_ ;
+      private int qteQuality_ ;
       /**
-       * <code>uint32 cook_count = 12;</code>
-       * @return The cookCount.
+       * <code>uint32 qte_quality = 5;</code>
+       * @return The qteQuality.
        */
       @java.lang.Override
-      public int getCookCount() {
-        return cookCount_;
+      public int getQteQuality() {
+        return qteQuality_;
       }
       /**
-       * <code>uint32 cook_count = 12;</code>
-       * @param value The cookCount to set.
+       * <code>uint32 qte_quality = 5;</code>
+       * @param value The qteQuality to set.
        * @return This builder for chaining.
        */
-      public Builder setCookCount(int value) {
+      public Builder setQteQuality(int value) {
         
-        cookCount_ = value;
+        qteQuality_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 cook_count = 12;</code>
+       * <code>uint32 qte_quality = 5;</code>
        * @return This builder for chaining.
        */
-      public Builder clearCookCount() {
+      public Builder clearQteQuality() {
         
-        cookCount_ = 0;
+        qteQuality_ = 0;
         onChanged();
         return this;
       }
 
-      private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> extralItemList_ =
-        java.util.Collections.emptyList();
-      private void ensureExtralItemListIsMutable() {
-        if (!((bitField0_ & 0x00000002) != 0)) {
-          extralItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(extralItemList_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> extralItemListBuilder_;
-
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getExtralItemListList() {
-        if (extralItemListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(extralItemList_);
-        } else {
-          return extralItemListBuilder_.getMessageList();
-        }
-      }
+      private emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData recipeData_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder> recipeDataBuilder_;
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
+       * @return Whether the recipeData field is set.
        */
-      public int getExtralItemListCount() {
-        if (extralItemListBuilder_ == null) {
-          return extralItemList_.size();
-        } else {
-          return extralItemListBuilder_.getCount();
-        }
+      public boolean hasRecipeData() {
+        return recipeDataBuilder_ != null || recipeData_ != null;
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
+       * @return The recipeData.
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getExtralItemList(int index) {
-        if (extralItemListBuilder_ == null) {
-          return extralItemList_.get(index);
+      public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData getRecipeData() {
+        if (recipeDataBuilder_ == null) {
+          return recipeData_ == null ? emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance() : recipeData_;
         } else {
-          return extralItemListBuilder_.getMessage(index);
+          return recipeDataBuilder_.getMessage();
         }
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public Builder setExtralItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
-        if (extralItemListBuilder_ == null) {
+      public Builder setRecipeData(emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData value) {
+        if (recipeDataBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureExtralItemListIsMutable();
-          extralItemList_.set(index, value);
-          onChanged();
-        } else {
-          extralItemListBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public Builder setExtralItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
-        if (extralItemListBuilder_ == null) {
-          ensureExtralItemListIsMutable();
-          extralItemList_.set(index, builderForValue.build());
+          recipeData_ = value;
           onChanged();
         } else {
-          extralItemListBuilder_.setMessage(index, builderForValue.build());
+          recipeDataBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public Builder addExtralItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
-        if (extralItemListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureExtralItemListIsMutable();
-          extralItemList_.add(value);
+      public Builder setRecipeData(
+          emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder builderForValue) {
+        if (recipeDataBuilder_ == null) {
+          recipeData_ = builderForValue.build();
           onChanged();
         } else {
-          extralItemListBuilder_.addMessage(value);
+          recipeDataBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public Builder addExtralItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
-        if (extralItemListBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
+      public Builder mergeRecipeData(emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData value) {
+        if (recipeDataBuilder_ == null) {
+          if (recipeData_ != null) {
+            recipeData_ =
+              emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.newBuilder(recipeData_).mergeFrom(value).buildPartial();
+          } else {
+            recipeData_ = value;
           }
-          ensureExtralItemListIsMutable();
-          extralItemList_.add(index, value);
-          onChanged();
-        } else {
-          extralItemListBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public Builder addExtralItemList(
-          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
-        if (extralItemListBuilder_ == null) {
-          ensureExtralItemListIsMutable();
-          extralItemList_.add(builderForValue.build());
-          onChanged();
-        } else {
-          extralItemListBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public Builder addExtralItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
-        if (extralItemListBuilder_ == null) {
-          ensureExtralItemListIsMutable();
-          extralItemList_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          extralItemListBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public Builder addAllExtralItemList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
-        if (extralItemListBuilder_ == null) {
-          ensureExtralItemListIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, extralItemList_);
           onChanged();
         } else {
-          extralItemListBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public Builder clearExtralItemList() {
-        if (extralItemListBuilder_ == null) {
-          extralItemList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
-          onChanged();
-        } else {
-          extralItemListBuilder_.clear();
+          recipeDataBuilder_.mergeFrom(value);
         }
+
         return this;
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public Builder removeExtralItemList(int index) {
-        if (extralItemListBuilder_ == null) {
-          ensureExtralItemListIsMutable();
-          extralItemList_.remove(index);
+      public Builder clearRecipeData() {
+        if (recipeDataBuilder_ == null) {
+          recipeData_ = null;
           onChanged();
         } else {
-          extralItemListBuilder_.remove(index);
+          recipeData_ = null;
+          recipeDataBuilder_ = null;
         }
+
         return this;
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getExtralItemListBuilder(
-          int index) {
-        return getExtralItemListFieldBuilder().getBuilder(index);
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getExtralItemListOrBuilder(
-          int index) {
-        if (extralItemListBuilder_ == null) {
-          return extralItemList_.get(index);  } else {
-          return extralItemListBuilder_.getMessageOrBuilder(index);
-        }
+      public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder getRecipeDataBuilder() {
+        
+        onChanged();
+        return getRecipeDataFieldBuilder().getBuilder();
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-           getExtralItemListOrBuilderList() {
-        if (extralItemListBuilder_ != null) {
-          return extralItemListBuilder_.getMessageOrBuilderList();
+      public emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder getRecipeDataOrBuilder() {
+        if (recipeDataBuilder_ != null) {
+          return recipeDataBuilder_.getMessageOrBuilder();
         } else {
-          return java.util.Collections.unmodifiableList(extralItemList_);
+          return recipeData_ == null ?
+              emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.getDefaultInstance() : recipeData_;
         }
       }
       /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addExtralItemListBuilder() {
-        return getExtralItemListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
-       */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addExtralItemListBuilder(
-          int index) {
-        return getExtralItemListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .ItemParam extral_item_list = 15;</code>
+       * <code>.CookRecipeData recipe_data = 7;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder> 
-           getExtralItemListBuilderList() {
-        return getExtralItemListFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-          getExtralItemListFieldBuilder() {
-        if (extralItemListBuilder_ == null) {
-          extralItemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
-                  extralItemList_,
-                  ((bitField0_ & 0x00000002) != 0),
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder> 
+          getRecipeDataFieldBuilder() {
+        if (recipeDataBuilder_ == null) {
+          recipeDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData.Builder, emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeDataOrBuilder>(
+                  getRecipeData(),
                   getParentForChildren(),
                   isClean());
-          extralItemList_ = null;
+          recipeData_ = null;
         }
-        return extralItemListBuilder_;
+        return recipeDataBuilder_;
       }
       @java.lang.Override
       public final Builder setUnknownFields(
@@ -1619,12 +1621,12 @@ public final class PlayerCookRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\023PlayerCookRsp.proto\032\024CookRecipeData.pr" +
-      "oto\032\017ItemParam.proto\"\264\001\n\rPlayerCookRsp\022\017" +
-      "\n\007retcode\030\003 \001(\005\022$\n\013recipe_data\030\007 \001(\0132\017.C" +
-      "ookRecipeData\022\035\n\titem_list\030\013 \003(\0132\n.ItemP" +
-      "aram\022\023\n\013qte_quality\030\005 \001(\r\022\022\n\ncook_count\030" +
-      "\014 \001(\r\022$\n\020extral_item_list\030\017 \003(\0132\n.ItemPa" +
-      "ramB\033\n\031emu.grasscutter.net.protob\006proto3"
+      "oto\032\017ItemParam.proto\"\264\001\n\rPlayerCookRsp\022$" +
+      "\n\020extral_item_list\030\017 \003(\0132\n.ItemParam\022\022\n\n" +
+      "cook_count\030\014 \001(\r\022\035\n\titem_list\030\013 \003(\0132\n.It" +
+      "emParam\022\017\n\007retcode\030\003 \001(\005\022\023\n\013qte_quality\030" +
+      "\005 \001(\r\022$\n\013recipe_data\030\007 \001(\0132\017.CookRecipeD" +
+      "ataB\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -1637,7 +1639,7 @@ public final class PlayerCookRspOuterClass {
     internal_static_PlayerCookRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_PlayerCookRsp_descriptor,
-        new java.lang.String[] { "Retcode", "RecipeData", "ItemList", "QteQuality", "CookCount", "ExtralItemList", });
+        new java.lang.String[] { "ExtralItemList", "CookCount", "ItemList", "Retcode", "QteQuality", "RecipeData", });
     emu.grasscutter.net.proto.CookRecipeDataOuterClass.getDescriptor();
     emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor();
   }
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerDataNotifyOuterClass.java
index 42f532c3..0f23a6ec 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerDataNotifyOuterClass.java
@@ -86,7 +86,8 @@ public final class PlayerDataNotifyOuterClass {
    * <pre>
    * CmdId: 190
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerDataNotify}
@@ -580,7 +581,8 @@ public final class PlayerDataNotifyOuterClass {
      * <pre>
      * CmdId: 190
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonReqOuterClass.java
index ae44a73a..17395b3f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonReqOuterClass.java
@@ -49,7 +49,7 @@ public final class PlayerEnterDungeonReqOuterClass {
    * <pre>
    * CmdId: 912
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -386,7 +386,7 @@ public final class PlayerEnterDungeonReqOuterClass {
      * <pre>
      * CmdId: 912
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonRspOuterClass.java
index 73ff6ac5..3064c2c1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonRspOuterClass.java
@@ -40,7 +40,8 @@ public final class PlayerEnterDungeonRspOuterClass {
    * <pre>
    * CmdId: 935
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerEnterDungeonRsp}
@@ -348,7 +349,8 @@ public final class PlayerEnterDungeonRspOuterClass {
      * <pre>
      * CmdId: 935
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerEnterDungeonRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneInfoNotifyOuterClass.java
index b3705a14..b3418835 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneInfoNotifyOuterClass.java
@@ -88,7 +88,7 @@ public final class PlayerEnterSceneInfoNotifyOuterClass {
    * <pre>
    * CmdId: 214
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -547,7 +547,7 @@ public final class PlayerEnterSceneInfoNotifyOuterClass {
      * <pre>
      * CmdId: 214
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneNotifyOuterClass.java
index 489d72a3..c25286e1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneNotifyOuterClass.java
@@ -158,7 +158,8 @@ public final class PlayerEnterSceneNotifyOuterClass {
    * <pre>
    * CmdId: 272
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerEnterSceneNotify}
@@ -968,7 +969,8 @@ public final class PlayerEnterSceneNotifyOuterClass {
      * <pre>
      * CmdId: 272
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerEnterSceneNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerGameTimeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerGameTimeNotifyOuterClass.java
index 2443a6f7..40c96044 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerGameTimeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerGameTimeNotifyOuterClass.java
@@ -40,7 +40,7 @@ public final class PlayerGameTimeNotifyOuterClass {
    * <pre>
    * CmdId: 131
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class PlayerGameTimeNotifyOuterClass {
      * <pre>
      * CmdId: 131
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoRspOuterClass.java
index 2a3aa937..1f08691b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoRspOuterClass.java
@@ -40,7 +40,8 @@ public final class PlayerGetForceQuitBanInfoRspOuterClass {
    * <pre>
    * CmdId: 4197
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerGetForceQuitBanInfoRsp}
@@ -348,7 +349,8 @@ public final class PlayerGetForceQuitBanInfoRspOuterClass {
      * <pre>
      * CmdId: 4197
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerGetForceQuitBanInfoRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoNotifyOuterClass.java
index 8875a44b..9fb73c38 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class PlayerHomeCompInfoNotifyOuterClass {
    * <pre>
    * CmdId: 4880
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerHomeCompInfoNotify}
@@ -319,7 +320,8 @@ public final class PlayerHomeCompInfoNotifyOuterClass {
      * <pre>
      * CmdId: 4880
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerHomeCompInfoNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerLevelRewardUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerLevelRewardUpdateNotifyOuterClass.java
index d8643ac9..f606e711 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerLevelRewardUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerLevelRewardUpdateNotifyOuterClass.java
@@ -39,7 +39,8 @@ public final class PlayerLevelRewardUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 200
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerLevelRewardUpdateNotify}
@@ -348,7 +349,8 @@ public final class PlayerLevelRewardUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 200
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerLevelRewardUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginReqOuterClass.java
index 3fa57f6b..6a8a9a47 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginReqOuterClass.java
@@ -400,7 +400,7 @@ public final class PlayerLoginReqOuterClass {
    * <pre>
    * CmdId: 112
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -2329,7 +2329,7 @@ public final class PlayerLoginReqOuterClass {
      * <pre>
      * CmdId: 112
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginRspOuterClass.java
index 8fc0f378..67632969 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginRspOuterClass.java
@@ -86,12 +86,12 @@ public final class PlayerLoginRspOuterClass {
     boolean getIsEnableClientHashDebug();
 
     /**
-     * <code>string client_md_5 = 1830;</code>
+     * <code>string client_md5 = 1830;</code>
      * @return The clientMd5.
      */
     java.lang.String getClientMd5();
     /**
-     * <code>string client_md_5 = 1830;</code>
+     * <code>string client_md5 = 1830;</code>
      * @return The bytes for clientMd5.
      */
     com.google.protobuf.ByteString
@@ -321,12 +321,12 @@ public final class PlayerLoginRspOuterClass {
         int index);
 
     /**
-     * <code>string client_silence_md_5 = 1746;</code>
+     * <code>string client_silence_md5 = 1746;</code>
      * @return The clientSilenceMd5.
      */
     java.lang.String getClientSilenceMd5();
     /**
-     * <code>string client_silence_md_5 = 1746;</code>
+     * <code>string client_silence_md5 = 1746;</code>
      * @return The bytes for clientSilenceMd5.
      */
     com.google.protobuf.ByteString
@@ -390,7 +390,8 @@ public final class PlayerLoginRspOuterClass {
    * <pre>
    * CmdId: 135
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerLoginRsp}
@@ -862,10 +863,10 @@ public final class PlayerLoginRspOuterClass {
       return isEnableClientHashDebug_;
     }
 
-    public static final int CLIENT_MD_5_FIELD_NUMBER = 1830;
+    public static final int CLIENT_MD5_FIELD_NUMBER = 1830;
     private volatile java.lang.Object clientMd5_;
     /**
-     * <code>string client_md_5 = 1830;</code>
+     * <code>string client_md5 = 1830;</code>
      * @return The clientMd5.
      */
     @java.lang.Override
@@ -882,7 +883,7 @@ public final class PlayerLoginRspOuterClass {
       }
     }
     /**
-     * <code>string client_md_5 = 1830;</code>
+     * <code>string client_md5 = 1830;</code>
      * @return The bytes for clientMd5.
      */
     @java.lang.Override
@@ -1398,10 +1399,10 @@ public final class PlayerLoginRspOuterClass {
       return featureBlockInfoList_.get(index);
     }
 
-    public static final int CLIENT_SILENCE_MD_5_FIELD_NUMBER = 1746;
+    public static final int CLIENT_SILENCE_MD5_FIELD_NUMBER = 1746;
     private volatile java.lang.Object clientSilenceMd5_;
     /**
-     * <code>string client_silence_md_5 = 1746;</code>
+     * <code>string client_silence_md5 = 1746;</code>
      * @return The clientSilenceMd5.
      */
     @java.lang.Override
@@ -1418,7 +1419,7 @@ public final class PlayerLoginRspOuterClass {
       }
     }
     /**
-     * <code>string client_silence_md_5 = 1746;</code>
+     * <code>string client_silence_md5 = 1746;</code>
      * @return The bytes for clientSilenceMd5.
      */
     @java.lang.Override
@@ -1955,7 +1956,7 @@ public final class PlayerLoginRspOuterClass {
       hash = (37 * hash) + IS_ENABLE_CLIENT_HASH_DEBUG_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getIsEnableClientHashDebug());
-      hash = (37 * hash) + CLIENT_MD_5_FIELD_NUMBER;
+      hash = (37 * hash) + CLIENT_MD5_FIELD_NUMBER;
       hash = (53 * hash) + getClientMd5().hashCode();
       hash = (37 * hash) + CLIENT_DATA_VERSION_FIELD_NUMBER;
       hash = (53 * hash) + getClientDataVersion();
@@ -2010,7 +2011,7 @@ public final class PlayerLoginRspOuterClass {
         hash = (37 * hash) + FEATURE_BLOCK_INFO_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getFeatureBlockInfoListList().hashCode();
       }
-      hash = (37 * hash) + CLIENT_SILENCE_MD_5_FIELD_NUMBER;
+      hash = (37 * hash) + CLIENT_SILENCE_MD5_FIELD_NUMBER;
       hash = (53 * hash) + getClientSilenceMd5().hashCode();
       hash = (37 * hash) + TARGET_UID_FIELD_NUMBER;
       hash = (53 * hash) + getTargetUid();
@@ -2127,7 +2128,8 @@ public final class PlayerLoginRspOuterClass {
      * <pre>
      * CmdId: 135
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerLoginRsp}
@@ -2939,7 +2941,7 @@ public final class PlayerLoginRspOuterClass {
 
       private java.lang.Object clientMd5_ = "";
       /**
-       * <code>string client_md_5 = 1830;</code>
+       * <code>string client_md5 = 1830;</code>
        * @return The clientMd5.
        */
       public java.lang.String getClientMd5() {
@@ -2955,7 +2957,7 @@ public final class PlayerLoginRspOuterClass {
         }
       }
       /**
-       * <code>string client_md_5 = 1830;</code>
+       * <code>string client_md5 = 1830;</code>
        * @return The bytes for clientMd5.
        */
       public com.google.protobuf.ByteString
@@ -2972,7 +2974,7 @@ public final class PlayerLoginRspOuterClass {
         }
       }
       /**
-       * <code>string client_md_5 = 1830;</code>
+       * <code>string client_md5 = 1830;</code>
        * @param value The clientMd5 to set.
        * @return This builder for chaining.
        */
@@ -2987,7 +2989,7 @@ public final class PlayerLoginRspOuterClass {
         return this;
       }
       /**
-       * <code>string client_md_5 = 1830;</code>
+       * <code>string client_md5 = 1830;</code>
        * @return This builder for chaining.
        */
       public Builder clearClientMd5() {
@@ -2997,7 +2999,7 @@ public final class PlayerLoginRspOuterClass {
         return this;
       }
       /**
-       * <code>string client_md_5 = 1830;</code>
+       * <code>string client_md5 = 1830;</code>
        * @param value The bytes for clientMd5 to set.
        * @return This builder for chaining.
        */
@@ -4466,7 +4468,7 @@ public final class PlayerLoginRspOuterClass {
 
       private java.lang.Object clientSilenceMd5_ = "";
       /**
-       * <code>string client_silence_md_5 = 1746;</code>
+       * <code>string client_silence_md5 = 1746;</code>
        * @return The clientSilenceMd5.
        */
       public java.lang.String getClientSilenceMd5() {
@@ -4482,7 +4484,7 @@ public final class PlayerLoginRspOuterClass {
         }
       }
       /**
-       * <code>string client_silence_md_5 = 1746;</code>
+       * <code>string client_silence_md5 = 1746;</code>
        * @return The bytes for clientSilenceMd5.
        */
       public com.google.protobuf.ByteString
@@ -4499,7 +4501,7 @@ public final class PlayerLoginRspOuterClass {
         }
       }
       /**
-       * <code>string client_silence_md_5 = 1746;</code>
+       * <code>string client_silence_md5 = 1746;</code>
        * @param value The clientSilenceMd5 to set.
        * @return This builder for chaining.
        */
@@ -4514,7 +4516,7 @@ public final class PlayerLoginRspOuterClass {
         return this;
       }
       /**
-       * <code>string client_silence_md_5 = 1746;</code>
+       * <code>string client_silence_md5 = 1746;</code>
        * @return This builder for chaining.
        */
       public Builder clearClientSilenceMd5() {
@@ -4524,7 +4526,7 @@ public final class PlayerLoginRspOuterClass {
         return this;
       }
       /**
-       * <code>string client_silence_md_5 = 1746;</code>
+       * <code>string client_silence_md5 = 1746;</code>
        * @param value The bytes for clientSilenceMd5 to set.
        * @return This builder for chaining.
        */
@@ -4928,38 +4930,38 @@ public final class PlayerLoginRspOuterClass {
     java.lang.String[] descriptorData = {
       "\n\024PlayerLoginRsp.proto\032\017BlockInfo.proto\032" +
       "\026FeatureBlockInfo.proto\032\026ResVersionConfi" +
-      "g.proto\032\032ShortAbilityHashPair.proto\"\236\t\n\016" +
+      "g.proto\032\032ShortAbilityHashPair.proto\"\234\t\n\016" +
       "PlayerLoginRsp\022=\n\020ability_hash_map\030\013 \003(\013" +
       "2#.PlayerLoginRsp.AbilityHashMapEntry\022\021\n" +
       "\010is_audit\030\225\r \001(\010\022\025\n\ris_new_player\030\010 \001(\010\022" +
       ".\n\022res_version_config\030\261\017 \001(\0132\021.ResVersio" +
       "nConfig\022$\n\033is_enable_client_hash_debug\030\244" +
-      "\007 \001(\010\022\024\n\013client_md_5\030\246\016 \001(\t\022\033\n\023client_da" +
-      "ta_version\030\001 \001(\r\022\025\n\014country_code\030\354\016 \001(\t\022" +
-      "\022\n\nis_relogin\030\n \001(\010\022\023\n\013player_data\030\r \001(\014" +
-      "\022\020\n\010game_biz\030\005 \001(\t\022:\n\016block_info_map\030\273\004 " +
-      "\003(\0132!.PlayerLoginRsp.BlockInfoMapEntry\022\025" +
-      "\n\014register_cps\030\370\017 \001(\t\0223\n\027next_res_versio" +
-      "n_config\030\245\014 \001(\0132\021.ResVersionConfig\022\024\n\013is" +
-      "_transfer\030\342\017 \001(\010\022\036\n\025target_home_owner_ui" +
-      "d\030\251\004 \001(\r\0226\n\026short_ability_hash_map\030\372\001 \003(" +
-      "\0132\025.ShortAbilityHashPair\022\031\n\021ability_hash" +
-      "_code\030\014 \001(\005\022\023\n\nis_sc_open\030\225\013 \001(\010\022#\n\033clie" +
-      "nt_silence_data_version\030\006 \001(\r\022\021\n\010birthda" +
-      "y\030\360\004 \001(\t\022\033\n\023is_use_ability_hash\030\002 \001(\010\022&\n" +
-      "\035client_silence_version_suffix\030\223\n \001(\t\022\033\n" +
-      "\023player_data_version\030\007 \001(\r\022\035\n\024is_data_ne" +
-      "ed_relogin\030\267\007 \001(\010\0223\n\027feature_block_info_" +
-      "list\030\310\n \003(\0132\021.FeatureBlockInfo\022\034\n\023client" +
-      "_silence_md_5\030\322\r \001(\t\022\022\n\ntarget_uid\030\016 \001(\r" +
-      "\022\027\n\017total_tick_time\030} \001(\001\022\022\n\nlogin_rand\030" +
-      "\004 \001(\004\022\020\n\007sc_info\030\350\017 \001(\014\022\036\n\025client_versio" +
-      "n_suffix\030\227\010 \001(\t\022\032\n\021next_resource_url\030\355\004 " +
-      "\001(\t\022\017\n\007retcode\030\017 \001(\005\0325\n\023AbilityHashMapEn" +
-      "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032?\n\021B" +
-      "lockInfoMapEntry\022\013\n\003key\030\001 \001(\r\022\031\n\005value\030\002" +
-      " \001(\0132\n.BlockInfo:\0028\001B\033\n\031emu.grasscutter." +
-      "net.protob\006proto3"
+      "\007 \001(\010\022\023\n\nclient_md5\030\246\016 \001(\t\022\033\n\023client_dat" +
+      "a_version\030\001 \001(\r\022\025\n\014country_code\030\354\016 \001(\t\022\022" +
+      "\n\nis_relogin\030\n \001(\010\022\023\n\013player_data\030\r \001(\014\022" +
+      "\020\n\010game_biz\030\005 \001(\t\022:\n\016block_info_map\030\273\004 \003" +
+      "(\0132!.PlayerLoginRsp.BlockInfoMapEntry\022\025\n" +
+      "\014register_cps\030\370\017 \001(\t\0223\n\027next_res_version" +
+      "_config\030\245\014 \001(\0132\021.ResVersionConfig\022\024\n\013is_" +
+      "transfer\030\342\017 \001(\010\022\036\n\025target_home_owner_uid" +
+      "\030\251\004 \001(\r\0226\n\026short_ability_hash_map\030\372\001 \003(\013" +
+      "2\025.ShortAbilityHashPair\022\031\n\021ability_hash_" +
+      "code\030\014 \001(\005\022\023\n\nis_sc_open\030\225\013 \001(\010\022#\n\033clien" +
+      "t_silence_data_version\030\006 \001(\r\022\021\n\010birthday" +
+      "\030\360\004 \001(\t\022\033\n\023is_use_ability_hash\030\002 \001(\010\022&\n\035" +
+      "client_silence_version_suffix\030\223\n \001(\t\022\033\n\023" +
+      "player_data_version\030\007 \001(\r\022\035\n\024is_data_nee" +
+      "d_relogin\030\267\007 \001(\010\0223\n\027feature_block_info_l" +
+      "ist\030\310\n \003(\0132\021.FeatureBlockInfo\022\033\n\022client_" +
+      "silence_md5\030\322\r \001(\t\022\022\n\ntarget_uid\030\016 \001(\r\022\027" +
+      "\n\017total_tick_time\030} \001(\001\022\022\n\nlogin_rand\030\004 " +
+      "\001(\004\022\020\n\007sc_info\030\350\017 \001(\014\022\036\n\025client_version_" +
+      "suffix\030\227\010 \001(\t\022\032\n\021next_resource_url\030\355\004 \001(" +
+      "\t\022\017\n\007retcode\030\017 \001(\005\0325\n\023AbilityHashMapEntr" +
+      "y\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032?\n\021Blo" +
+      "ckInfoMapEntry\022\013\n\003key\030\001 \001(\r\022\031\n\005value\030\002 \001" +
+      "(\0132\n.BlockInfo:\0028\001B\033\n\031emu.grasscutter.ne" +
+      "t.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeNotifyOuterClass.java
index 07a32210..05df04a9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class PlayerPropChangeNotifyOuterClass {
    * <pre>
    * CmdId: 139
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerPropChangeNotify}
@@ -315,7 +316,8 @@ public final class PlayerPropChangeNotifyOuterClass {
      * <pre>
      * CmdId: 139
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerPropChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeReasonNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeReasonNotifyOuterClass.java
index 936e8355..2477900b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeReasonNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeReasonNotifyOuterClass.java
@@ -51,7 +51,8 @@ public final class PlayerPropChangeReasonNotifyOuterClass {
    * <pre>
    * CmdId: 1299
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerPropChangeReasonNotify}
@@ -399,7 +400,8 @@ public final class PlayerPropChangeReasonNotifyOuterClass {
      * <pre>
      * CmdId: 1299
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerPropChangeReasonNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropNotifyOuterClass.java
index 4f34cd8d..9915b36d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerPropNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class PlayerPropNotifyOuterClass {
    * <pre>
    * CmdId: 175
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerPropNotify}
@@ -412,7 +413,8 @@ public final class PlayerPropNotifyOuterClass {
      * <pre>
      * CmdId: 175
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerPropNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonReqOuterClass.java
index 704dbc43..52a5002b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonReqOuterClass.java
@@ -34,7 +34,7 @@ public final class PlayerQuitDungeonReqOuterClass {
    * <pre>
    * CmdId: 907
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class PlayerQuitDungeonReqOuterClass {
      * <pre>
      * CmdId: 907
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonRspOuterClass.java
index bc909054..6a3cacf7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonRspOuterClass.java
@@ -34,7 +34,8 @@ public final class PlayerQuitDungeonRspOuterClass {
    * <pre>
    * CmdId: 921
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerQuitDungeonRsp}
@@ -315,7 +316,8 @@ public final class PlayerQuitDungeonRspOuterClass {
      * <pre>
      * CmdId: 921
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerQuitDungeonRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseReqOuterClass.java
index 929c179f..71ea0778 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseReqOuterClass.java
@@ -28,7 +28,7 @@ public final class PlayerSetPauseReqOuterClass {
    * <pre>
    * CmdId: 124
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class PlayerSetPauseReqOuterClass {
      * <pre>
      * CmdId: 124
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerStoreNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerStoreNotifyOuterClass.java
index e6b2b8eb..0440d047 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerStoreNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerStoreNotifyOuterClass.java
@@ -63,7 +63,8 @@ public final class PlayerStoreNotifyOuterClass {
    * <pre>
    * CmdId: 672
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerStoreNotify}
@@ -420,7 +421,8 @@ public final class PlayerStoreNotifyOuterClass {
      * <pre>
      * CmdId: 672
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerStoreNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerTimeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerTimeNotifyOuterClass.java
index 8561251a..c8815793 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerTimeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerTimeNotifyOuterClass.java
@@ -40,7 +40,8 @@ public final class PlayerTimeNotifyOuterClass {
    * <pre>
    * CmdId: 191
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerTimeNotify}
@@ -351,7 +352,8 @@ public final class PlayerTimeNotifyOuterClass {
      * <pre>
      * CmdId: 191
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerTimeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoListNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoListNotifyOuterClass.java
index 91a9ccfc..7100372d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoListNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoListNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class PlayerWorldSceneInfoListNotifyOuterClass {
    * <pre>
    * CmdId: 3129
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PlayerWorldSceneInfoListNotify}
@@ -340,7 +341,8 @@ public final class PlayerWorldSceneInfoListNotifyOuterClass {
      * <pre>
      * CmdId: 3129
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PlayerWorldSceneInfoListNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneRspOuterClass.java
index 07d192f6..fa3d6263 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneRspOuterClass.java
@@ -34,7 +34,8 @@ public final class PostEnterSceneRspOuterClass {
    * <pre>
    * CmdId: 3184
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PostEnterSceneRsp}
@@ -315,7 +316,8 @@ public final class PostEnterSceneRspOuterClass {
      * <pre>
      * CmdId: 3184
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PostEnterSceneRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatNotifyOuterClass.java
index e5f2be43..b8149ce6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class PrivateChatNotifyOuterClass {
    * <pre>
    * CmdId: 4962
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PrivateChatNotify}
@@ -319,7 +320,8 @@ public final class PrivateChatNotifyOuterClass {
      * <pre>
      * CmdId: 4962
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PrivateChatNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatReqOuterClass.java
index 864663b8..badc45b3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatReqOuterClass.java
@@ -58,7 +58,7 @@ public final class PrivateChatReqOuterClass {
    * <pre>
    * CmdId: 5022
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -478,7 +478,7 @@ public final class PrivateChatReqOuterClass {
      * <pre>
      * CmdId: 5022
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatRspOuterClass.java
index 8e63bd96..37dcbc0f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PrivateChatRspOuterClass.java
@@ -34,7 +34,8 @@ public final class PrivateChatRspOuterClass {
    * <pre>
    * CmdId: 5048
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PrivateChatRsp}
@@ -315,7 +316,8 @@ public final class PrivateChatRspOuterClass {
      * <pre>
      * CmdId: 5048
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PrivateChatRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillChangeNotifyOuterClass.java
index bb83edd0..e2595158 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillChangeNotifyOuterClass.java
@@ -57,7 +57,8 @@ public final class ProudSkillChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1031
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ProudSkillChangeNotify}
@@ -448,7 +449,8 @@ public final class ProudSkillChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1031
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ProudSkillChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillExtraLevelNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillExtraLevelNotifyOuterClass.java
index aba4b9a2..3fde1bce 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillExtraLevelNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ProudSkillExtraLevelNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class ProudSkillExtraLevelNotifyOuterClass {
    * <pre>
    * CmdId: 1081
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ProudSkillExtraLevelNotify}
@@ -382,7 +383,8 @@ public final class ProudSkillExtraLevelNotifyOuterClass {
      * <pre>
      * CmdId: 1081
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ProudSkillExtraLevelNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatReqOuterClass.java
index 51f39491..12566692 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatReqOuterClass.java
@@ -40,7 +40,7 @@ public final class PullPrivateChatReqOuterClass {
    * <pre>
    * CmdId: 4971
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class PullPrivateChatReqOuterClass {
      * <pre>
      * CmdId: 4971
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatRspOuterClass.java
index b0ee88a7..79059beb 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatRspOuterClass.java
@@ -52,7 +52,8 @@ public final class PullPrivateChatRspOuterClass {
    * <pre>
    * CmdId: 4953
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PullPrivateChatRsp}
@@ -373,7 +374,8 @@ public final class PullPrivateChatRspOuterClass {
      * <pre>
      * CmdId: 4953
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PullPrivateChatRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatRspOuterClass.java
index aff9e353..7c230a35 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatRspOuterClass.java
@@ -52,7 +52,8 @@ public final class PullRecentChatRspOuterClass {
    * <pre>
    * CmdId: 5023
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code PullRecentChatRsp}
@@ -373,7 +374,8 @@ public final class PullRecentChatRspOuterClass {
      * <pre>
      * CmdId: 5023
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code PullRecentChatRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumReqOuterClass.java
index 57379862..9ea8d9fe 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumReqOuterClass.java
@@ -39,7 +39,7 @@ public final class QueryCodexMonsterBeKilledNumReqOuterClass {
    * <pre>
    * CmdId: 4203
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class QueryCodexMonsterBeKilledNumReqOuterClass {
      * <pre>
      * CmdId: 4203
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumRspOuterClass.java
index 743abe75..6104c088 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumRspOuterClass.java
@@ -79,7 +79,8 @@ public final class QueryCodexMonsterBeKilledNumRspOuterClass {
    * <pre>
    * CmdId: 4209
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QueryCodexMonsterBeKilledNumRsp}
@@ -575,7 +576,8 @@ public final class QueryCodexMonsterBeKilledNumRspOuterClass {
      * <pre>
      * CmdId: 4209
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QueryCodexMonsterBeKilledNumRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QueryPathReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QueryPathReqOuterClass.java
index 5bf24e05..a3f6b78b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QueryPathReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QueryPathReqOuterClass.java
@@ -30,16 +30,19 @@ public final class QueryPathReqOuterClass {
     emu.grasscutter.net.proto.QueryPathReqOuterClass.QueryPathReq.OptionType getQueryType();
 
     /**
-     * <code>int32 query_id = 15;</code>
-     * @return The queryId.
+     * <code>.Vector3Int source_extend = 6;</code>
+     * @return Whether the sourceExtend field is set.
      */
-    int getQueryId();
-
+    boolean hasSourceExtend();
     /**
-     * <code>uint32 scene_id = 11;</code>
-     * @return The sceneId.
+     * <code>.Vector3Int source_extend = 6;</code>
+     * @return The sourceExtend.
      */
-    int getSceneId();
+    emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int getSourceExtend();
+    /**
+     * <code>.Vector3Int source_extend = 6;</code>
+     */
+    emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getSourceExtendOrBuilder();
 
     /**
      * <code>.Vector source_pos = 2;</code>
@@ -56,30 +59,6 @@ public final class QueryPathReqOuterClass {
      */
     emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getSourcePosOrBuilder();
 
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> 
-        getDestinationPosList();
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    emu.grasscutter.net.proto.VectorOuterClass.Vector getDestinationPos(int index);
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    int getDestinationPosCount();
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    java.util.List<? extends emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
-        getDestinationPosOrBuilderList();
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getDestinationPosOrBuilder(
-        int index);
-
     /**
      * <code>.QueryFilter filter = 12;</code>
      * @return Whether the filter field is set.
@@ -95,6 +74,12 @@ public final class QueryPathReqOuterClass {
      */
     emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilterOrBuilder getFilterOrBuilder();
 
+    /**
+     * <code>int32 query_id = 15;</code>
+     * @return The queryId.
+     */
+    int getQueryId();
+
     /**
      * <code>.Vector3Int destination_extend = 4;</code>
      * @return Whether the destinationExtend field is set.
@@ -111,25 +96,40 @@ public final class QueryPathReqOuterClass {
     emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getDestinationExtendOrBuilder();
 
     /**
-     * <code>.Vector3Int source_extend = 6;</code>
-     * @return Whether the sourceExtend field is set.
+     * <code>repeated .Vector destination_pos = 10;</code>
      */
-    boolean hasSourceExtend();
+    java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> 
+        getDestinationPosList();
     /**
-     * <code>.Vector3Int source_extend = 6;</code>
-     * @return The sourceExtend.
+     * <code>repeated .Vector destination_pos = 10;</code>
      */
-    emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int getSourceExtend();
+    emu.grasscutter.net.proto.VectorOuterClass.Vector getDestinationPos(int index);
     /**
-     * <code>.Vector3Int source_extend = 6;</code>
+     * <code>repeated .Vector destination_pos = 10;</code>
      */
-    emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getSourceExtendOrBuilder();
+    int getDestinationPosCount();
+    /**
+     * <code>repeated .Vector destination_pos = 10;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
+        getDestinationPosOrBuilderList();
+    /**
+     * <code>repeated .Vector destination_pos = 10;</code>
+     */
+    emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getDestinationPosOrBuilder(
+        int index);
+
+    /**
+     * <code>uint32 scene_id = 11;</code>
+     * @return The sceneId.
+     */
+    int getSceneId();
   }
   /**
    * <pre>
-   * CmdId: 2309
+   * CmdId: 2372
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -428,26 +428,30 @@ public final class QueryPathReqOuterClass {
       return result == null ? emu.grasscutter.net.proto.QueryPathReqOuterClass.QueryPathReq.OptionType.UNRECOGNIZED : result;
     }
 
-    public static final int QUERY_ID_FIELD_NUMBER = 15;
-    private int queryId_;
+    public static final int SOURCE_EXTEND_FIELD_NUMBER = 6;
+    private emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int sourceExtend_;
     /**
-     * <code>int32 query_id = 15;</code>
-     * @return The queryId.
+     * <code>.Vector3Int source_extend = 6;</code>
+     * @return Whether the sourceExtend field is set.
      */
     @java.lang.Override
-    public int getQueryId() {
-      return queryId_;
+    public boolean hasSourceExtend() {
+      return sourceExtend_ != null;
     }
-
-    public static final int SCENE_ID_FIELD_NUMBER = 11;
-    private int sceneId_;
     /**
-     * <code>uint32 scene_id = 11;</code>
-     * @return The sceneId.
+     * <code>.Vector3Int source_extend = 6;</code>
+     * @return The sourceExtend.
      */
     @java.lang.Override
-    public int getSceneId() {
-      return sceneId_;
+    public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int getSourceExtend() {
+      return sourceExtend_ == null ? emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.getDefaultInstance() : sourceExtend_;
+    }
+    /**
+     * <code>.Vector3Int source_extend = 6;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getSourceExtendOrBuilder() {
+      return getSourceExtend();
     }
 
     public static final int SOURCE_POS_FIELD_NUMBER = 2;
@@ -476,46 +480,6 @@ public final class QueryPathReqOuterClass {
       return getSourcePos();
     }
 
-    public static final int DESTINATION_POS_FIELD_NUMBER = 10;
-    private java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> destinationPos_;
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> getDestinationPosList() {
-      return destinationPos_;
-    }
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
-        getDestinationPosOrBuilderList() {
-      return destinationPos_;
-    }
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    @java.lang.Override
-    public int getDestinationPosCount() {
-      return destinationPos_.size();
-    }
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.VectorOuterClass.Vector getDestinationPos(int index) {
-      return destinationPos_.get(index);
-    }
-    /**
-     * <code>repeated .Vector destination_pos = 10;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getDestinationPosOrBuilder(
-        int index) {
-      return destinationPos_.get(index);
-    }
-
     public static final int FILTER_FIELD_NUMBER = 12;
     private emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter filter_;
     /**
@@ -542,6 +506,17 @@ public final class QueryPathReqOuterClass {
       return getFilter();
     }
 
+    public static final int QUERY_ID_FIELD_NUMBER = 15;
+    private int queryId_;
+    /**
+     * <code>int32 query_id = 15;</code>
+     * @return The queryId.
+     */
+    @java.lang.Override
+    public int getQueryId() {
+      return queryId_;
+    }
+
     public static final int DESTINATION_EXTEND_FIELD_NUMBER = 4;
     private emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int destinationExtend_;
     /**
@@ -568,30 +543,55 @@ public final class QueryPathReqOuterClass {
       return getDestinationExtend();
     }
 
-    public static final int SOURCE_EXTEND_FIELD_NUMBER = 6;
-    private emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int sourceExtend_;
+    public static final int DESTINATION_POS_FIELD_NUMBER = 10;
+    private java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> destinationPos_;
     /**
-     * <code>.Vector3Int source_extend = 6;</code>
-     * @return Whether the sourceExtend field is set.
+     * <code>repeated .Vector destination_pos = 10;</code>
      */
     @java.lang.Override
-    public boolean hasSourceExtend() {
-      return sourceExtend_ != null;
+    public java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> getDestinationPosList() {
+      return destinationPos_;
     }
     /**
-     * <code>.Vector3Int source_extend = 6;</code>
-     * @return The sourceExtend.
+     * <code>repeated .Vector destination_pos = 10;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int getSourceExtend() {
-      return sourceExtend_ == null ? emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.getDefaultInstance() : sourceExtend_;
+    public java.util.List<? extends emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
+        getDestinationPosOrBuilderList() {
+      return destinationPos_;
     }
     /**
-     * <code>.Vector3Int source_extend = 6;</code>
+     * <code>repeated .Vector destination_pos = 10;</code>
      */
     @java.lang.Override
-    public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getSourceExtendOrBuilder() {
-      return getSourceExtend();
+    public int getDestinationPosCount() {
+      return destinationPos_.size();
+    }
+    /**
+     * <code>repeated .Vector destination_pos = 10;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.VectorOuterClass.Vector getDestinationPos(int index) {
+      return destinationPos_.get(index);
+    }
+    /**
+     * <code>repeated .Vector destination_pos = 10;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getDestinationPosOrBuilder(
+        int index) {
+      return destinationPos_.get(index);
+    }
+
+    public static final int SCENE_ID_FIELD_NUMBER = 11;
+    private int sceneId_;
+    /**
+     * <code>uint32 scene_id = 11;</code>
+     * @return The sceneId.
+     */
+    @java.lang.Override
+    public int getSceneId() {
+      return sceneId_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -689,32 +689,32 @@ public final class QueryPathReqOuterClass {
       emu.grasscutter.net.proto.QueryPathReqOuterClass.QueryPathReq other = (emu.grasscutter.net.proto.QueryPathReqOuterClass.QueryPathReq) obj;
 
       if (queryType_ != other.queryType_) return false;
-      if (getQueryId()
-          != other.getQueryId()) return false;
-      if (getSceneId()
-          != other.getSceneId()) return false;
+      if (hasSourceExtend() != other.hasSourceExtend()) return false;
+      if (hasSourceExtend()) {
+        if (!getSourceExtend()
+            .equals(other.getSourceExtend())) return false;
+      }
       if (hasSourcePos() != other.hasSourcePos()) return false;
       if (hasSourcePos()) {
         if (!getSourcePos()
             .equals(other.getSourcePos())) return false;
       }
-      if (!getDestinationPosList()
-          .equals(other.getDestinationPosList())) return false;
       if (hasFilter() != other.hasFilter()) return false;
       if (hasFilter()) {
         if (!getFilter()
             .equals(other.getFilter())) return false;
       }
+      if (getQueryId()
+          != other.getQueryId()) return false;
       if (hasDestinationExtend() != other.hasDestinationExtend()) return false;
       if (hasDestinationExtend()) {
         if (!getDestinationExtend()
             .equals(other.getDestinationExtend())) return false;
       }
-      if (hasSourceExtend() != other.hasSourceExtend()) return false;
-      if (hasSourceExtend()) {
-        if (!getSourceExtend()
-            .equals(other.getSourceExtend())) return false;
-      }
+      if (!getDestinationPosList()
+          .equals(other.getDestinationPosList())) return false;
+      if (getSceneId()
+          != other.getSceneId()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -728,30 +728,30 @@ public final class QueryPathReqOuterClass {
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = (37 * hash) + QUERY_TYPE_FIELD_NUMBER;
       hash = (53 * hash) + queryType_;
-      hash = (37 * hash) + QUERY_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getQueryId();
-      hash = (37 * hash) + SCENE_ID_FIELD_NUMBER;
-      hash = (53 * hash) + getSceneId();
+      if (hasSourceExtend()) {
+        hash = (37 * hash) + SOURCE_EXTEND_FIELD_NUMBER;
+        hash = (53 * hash) + getSourceExtend().hashCode();
+      }
       if (hasSourcePos()) {
         hash = (37 * hash) + SOURCE_POS_FIELD_NUMBER;
         hash = (53 * hash) + getSourcePos().hashCode();
       }
-      if (getDestinationPosCount() > 0) {
-        hash = (37 * hash) + DESTINATION_POS_FIELD_NUMBER;
-        hash = (53 * hash) + getDestinationPosList().hashCode();
-      }
       if (hasFilter()) {
         hash = (37 * hash) + FILTER_FIELD_NUMBER;
         hash = (53 * hash) + getFilter().hashCode();
       }
+      hash = (37 * hash) + QUERY_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getQueryId();
       if (hasDestinationExtend()) {
         hash = (37 * hash) + DESTINATION_EXTEND_FIELD_NUMBER;
         hash = (53 * hash) + getDestinationExtend().hashCode();
       }
-      if (hasSourceExtend()) {
-        hash = (37 * hash) + SOURCE_EXTEND_FIELD_NUMBER;
-        hash = (53 * hash) + getSourceExtend().hashCode();
+      if (getDestinationPosCount() > 0) {
+        hash = (37 * hash) + DESTINATION_POS_FIELD_NUMBER;
+        hash = (53 * hash) + getDestinationPosList().hashCode();
       }
+      hash = (37 * hash) + SCENE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getSceneId();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -849,9 +849,9 @@ public final class QueryPathReqOuterClass {
     }
     /**
      * <pre>
-     * CmdId: 2309
+     * CmdId: 2372
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -895,40 +895,40 @@ public final class QueryPathReqOuterClass {
         super.clear();
         queryType_ = 0;
 
-        queryId_ = 0;
-
-        sceneId_ = 0;
-
+        if (sourceExtendBuilder_ == null) {
+          sourceExtend_ = null;
+        } else {
+          sourceExtend_ = null;
+          sourceExtendBuilder_ = null;
+        }
         if (sourcePosBuilder_ == null) {
           sourcePos_ = null;
         } else {
           sourcePos_ = null;
           sourcePosBuilder_ = null;
         }
-        if (destinationPosBuilder_ == null) {
-          destinationPos_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-        } else {
-          destinationPosBuilder_.clear();
-        }
         if (filterBuilder_ == null) {
           filter_ = null;
         } else {
           filter_ = null;
           filterBuilder_ = null;
         }
+        queryId_ = 0;
+
         if (destinationExtendBuilder_ == null) {
           destinationExtend_ = null;
         } else {
           destinationExtend_ = null;
           destinationExtendBuilder_ = null;
         }
-        if (sourceExtendBuilder_ == null) {
-          sourceExtend_ = null;
+        if (destinationPosBuilder_ == null) {
+          destinationPos_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
         } else {
-          sourceExtend_ = null;
-          sourceExtendBuilder_ = null;
+          destinationPosBuilder_.clear();
         }
+        sceneId_ = 0;
+
         return this;
       }
 
@@ -957,37 +957,37 @@ public final class QueryPathReqOuterClass {
         emu.grasscutter.net.proto.QueryPathReqOuterClass.QueryPathReq result = new emu.grasscutter.net.proto.QueryPathReqOuterClass.QueryPathReq(this);
         int from_bitField0_ = bitField0_;
         result.queryType_ = queryType_;
-        result.queryId_ = queryId_;
-        result.sceneId_ = sceneId_;
+        if (sourceExtendBuilder_ == null) {
+          result.sourceExtend_ = sourceExtend_;
+        } else {
+          result.sourceExtend_ = sourceExtendBuilder_.build();
+        }
         if (sourcePosBuilder_ == null) {
           result.sourcePos_ = sourcePos_;
         } else {
           result.sourcePos_ = sourcePosBuilder_.build();
         }
-        if (destinationPosBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) != 0)) {
-            destinationPos_ = java.util.Collections.unmodifiableList(destinationPos_);
-            bitField0_ = (bitField0_ & ~0x00000001);
-          }
-          result.destinationPos_ = destinationPos_;
-        } else {
-          result.destinationPos_ = destinationPosBuilder_.build();
-        }
         if (filterBuilder_ == null) {
           result.filter_ = filter_;
         } else {
           result.filter_ = filterBuilder_.build();
         }
+        result.queryId_ = queryId_;
         if (destinationExtendBuilder_ == null) {
           result.destinationExtend_ = destinationExtend_;
         } else {
           result.destinationExtend_ = destinationExtendBuilder_.build();
         }
-        if (sourceExtendBuilder_ == null) {
-          result.sourceExtend_ = sourceExtend_;
+        if (destinationPosBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            destinationPos_ = java.util.Collections.unmodifiableList(destinationPos_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.destinationPos_ = destinationPos_;
         } else {
-          result.sourceExtend_ = sourceExtendBuilder_.build();
+          result.destinationPos_ = destinationPosBuilder_.build();
         }
+        result.sceneId_ = sceneId_;
         onBuilt();
         return result;
       }
@@ -1039,15 +1039,21 @@ public final class QueryPathReqOuterClass {
         if (other.queryType_ != 0) {
           setQueryTypeValue(other.getQueryTypeValue());
         }
-        if (other.getQueryId() != 0) {
-          setQueryId(other.getQueryId());
-        }
-        if (other.getSceneId() != 0) {
-          setSceneId(other.getSceneId());
+        if (other.hasSourceExtend()) {
+          mergeSourceExtend(other.getSourceExtend());
         }
         if (other.hasSourcePos()) {
           mergeSourcePos(other.getSourcePos());
         }
+        if (other.hasFilter()) {
+          mergeFilter(other.getFilter());
+        }
+        if (other.getQueryId() != 0) {
+          setQueryId(other.getQueryId());
+        }
+        if (other.hasDestinationExtend()) {
+          mergeDestinationExtend(other.getDestinationExtend());
+        }
         if (destinationPosBuilder_ == null) {
           if (!other.destinationPos_.isEmpty()) {
             if (destinationPos_.isEmpty()) {
@@ -1074,14 +1080,8 @@ public final class QueryPathReqOuterClass {
             }
           }
         }
-        if (other.hasFilter()) {
-          mergeFilter(other.getFilter());
-        }
-        if (other.hasDestinationExtend()) {
-          mergeDestinationExtend(other.getDestinationExtend());
-        }
-        if (other.hasSourceExtend()) {
-          mergeSourceExtend(other.getSourceExtend());
+        if (other.getSceneId() != 0) {
+          setSceneId(other.getSceneId());
         }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
@@ -1167,66 +1167,123 @@ public final class QueryPathReqOuterClass {
         return this;
       }
 
-      private int queryId_ ;
+      private emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int sourceExtend_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder> sourceExtendBuilder_;
       /**
-       * <code>int32 query_id = 15;</code>
-       * @return The queryId.
+       * <code>.Vector3Int source_extend = 6;</code>
+       * @return Whether the sourceExtend field is set.
        */
-      @java.lang.Override
-      public int getQueryId() {
-        return queryId_;
+      public boolean hasSourceExtend() {
+        return sourceExtendBuilder_ != null || sourceExtend_ != null;
       }
       /**
-       * <code>int32 query_id = 15;</code>
-       * @param value The queryId to set.
-       * @return This builder for chaining.
+       * <code>.Vector3Int source_extend = 6;</code>
+       * @return The sourceExtend.
        */
-      public Builder setQueryId(int value) {
-        
-        queryId_ = value;
-        onChanged();
-        return this;
+      public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int getSourceExtend() {
+        if (sourceExtendBuilder_ == null) {
+          return sourceExtend_ == null ? emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.getDefaultInstance() : sourceExtend_;
+        } else {
+          return sourceExtendBuilder_.getMessage();
+        }
       }
       /**
-       * <code>int32 query_id = 15;</code>
-       * @return This builder for chaining.
+       * <code>.Vector3Int source_extend = 6;</code>
        */
-      public Builder clearQueryId() {
-        
-        queryId_ = 0;
-        onChanged();
+      public Builder setSourceExtend(emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int value) {
+        if (sourceExtendBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          sourceExtend_ = value;
+          onChanged();
+        } else {
+          sourceExtendBuilder_.setMessage(value);
+        }
+
         return this;
       }
+      /**
+       * <code>.Vector3Int source_extend = 6;</code>
+       */
+      public Builder setSourceExtend(
+          emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder builderForValue) {
+        if (sourceExtendBuilder_ == null) {
+          sourceExtend_ = builderForValue.build();
+          onChanged();
+        } else {
+          sourceExtendBuilder_.setMessage(builderForValue.build());
+        }
 
-      private int sceneId_ ;
+        return this;
+      }
       /**
-       * <code>uint32 scene_id = 11;</code>
-       * @return The sceneId.
+       * <code>.Vector3Int source_extend = 6;</code>
        */
-      @java.lang.Override
-      public int getSceneId() {
-        return sceneId_;
+      public Builder mergeSourceExtend(emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int value) {
+        if (sourceExtendBuilder_ == null) {
+          if (sourceExtend_ != null) {
+            sourceExtend_ =
+              emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.newBuilder(sourceExtend_).mergeFrom(value).buildPartial();
+          } else {
+            sourceExtend_ = value;
+          }
+          onChanged();
+        } else {
+          sourceExtendBuilder_.mergeFrom(value);
+        }
+
+        return this;
       }
       /**
-       * <code>uint32 scene_id = 11;</code>
-       * @param value The sceneId to set.
-       * @return This builder for chaining.
+       * <code>.Vector3Int source_extend = 6;</code>
        */
-      public Builder setSceneId(int value) {
-        
-        sceneId_ = value;
-        onChanged();
+      public Builder clearSourceExtend() {
+        if (sourceExtendBuilder_ == null) {
+          sourceExtend_ = null;
+          onChanged();
+        } else {
+          sourceExtend_ = null;
+          sourceExtendBuilder_ = null;
+        }
+
         return this;
       }
       /**
-       * <code>uint32 scene_id = 11;</code>
-       * @return This builder for chaining.
+       * <code>.Vector3Int source_extend = 6;</code>
        */
-      public Builder clearSceneId() {
+      public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder getSourceExtendBuilder() {
         
-        sceneId_ = 0;
         onChanged();
-        return this;
+        return getSourceExtendFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Vector3Int source_extend = 6;</code>
+       */
+      public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getSourceExtendOrBuilder() {
+        if (sourceExtendBuilder_ != null) {
+          return sourceExtendBuilder_.getMessageOrBuilder();
+        } else {
+          return sourceExtend_ == null ?
+              emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.getDefaultInstance() : sourceExtend_;
+        }
+      }
+      /**
+       * <code>.Vector3Int source_extend = 6;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder> 
+          getSourceExtendFieldBuilder() {
+        if (sourceExtendBuilder_ == null) {
+          sourceExtendBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder>(
+                  getSourceExtend(),
+                  getParentForChildren(),
+                  isClean());
+          sourceExtend_ = null;
+        }
+        return sourceExtendBuilder_;
       }
 
       private emu.grasscutter.net.proto.VectorOuterClass.Vector sourcePos_;
@@ -1348,269 +1405,29 @@ public final class QueryPathReqOuterClass {
         return sourcePosBuilder_;
       }
 
-      private java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> destinationPos_ =
-        java.util.Collections.emptyList();
-      private void ensureDestinationPosIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
-          destinationPos_ = new java.util.ArrayList<emu.grasscutter.net.proto.VectorOuterClass.Vector>(destinationPos_);
-          bitField0_ |= 0x00000001;
-         }
-      }
-
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.VectorOuterClass.Vector, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder, emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> destinationPosBuilder_;
-
+      private emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter filter_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter, emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter.Builder, emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilterOrBuilder> filterBuilder_;
       /**
-       * <code>repeated .Vector destination_pos = 10;</code>
+       * <code>.QueryFilter filter = 12;</code>
+       * @return Whether the filter field is set.
        */
-      public java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> getDestinationPosList() {
-        if (destinationPosBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(destinationPos_);
-        } else {
-          return destinationPosBuilder_.getMessageList();
-        }
+      public boolean hasFilter() {
+        return filterBuilder_ != null || filter_ != null;
       }
       /**
-       * <code>repeated .Vector destination_pos = 10;</code>
+       * <code>.QueryFilter filter = 12;</code>
+       * @return The filter.
        */
-      public int getDestinationPosCount() {
-        if (destinationPosBuilder_ == null) {
-          return destinationPos_.size();
+      public emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter getFilter() {
+        if (filterBuilder_ == null) {
+          return filter_ == null ? emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter.getDefaultInstance() : filter_;
         } else {
-          return destinationPosBuilder_.getCount();
+          return filterBuilder_.getMessage();
         }
       }
       /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public emu.grasscutter.net.proto.VectorOuterClass.Vector getDestinationPos(int index) {
-        if (destinationPosBuilder_ == null) {
-          return destinationPos_.get(index);
-        } else {
-          return destinationPosBuilder_.getMessage(index);
-        }
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder setDestinationPos(
-          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector value) {
-        if (destinationPosBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureDestinationPosIsMutable();
-          destinationPos_.set(index, value);
-          onChanged();
-        } else {
-          destinationPosBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder setDestinationPos(
-          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder builderForValue) {
-        if (destinationPosBuilder_ == null) {
-          ensureDestinationPosIsMutable();
-          destinationPos_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          destinationPosBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder addDestinationPos(emu.grasscutter.net.proto.VectorOuterClass.Vector value) {
-        if (destinationPosBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureDestinationPosIsMutable();
-          destinationPos_.add(value);
-          onChanged();
-        } else {
-          destinationPosBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder addDestinationPos(
-          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector value) {
-        if (destinationPosBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureDestinationPosIsMutable();
-          destinationPos_.add(index, value);
-          onChanged();
-        } else {
-          destinationPosBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder addDestinationPos(
-          emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder builderForValue) {
-        if (destinationPosBuilder_ == null) {
-          ensureDestinationPosIsMutable();
-          destinationPos_.add(builderForValue.build());
-          onChanged();
-        } else {
-          destinationPosBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder addDestinationPos(
-          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder builderForValue) {
-        if (destinationPosBuilder_ == null) {
-          ensureDestinationPosIsMutable();
-          destinationPos_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          destinationPosBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder addAllDestinationPos(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.VectorOuterClass.Vector> values) {
-        if (destinationPosBuilder_ == null) {
-          ensureDestinationPosIsMutable();
-          com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, destinationPos_);
-          onChanged();
-        } else {
-          destinationPosBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder clearDestinationPos() {
-        if (destinationPosBuilder_ == null) {
-          destinationPos_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-          onChanged();
-        } else {
-          destinationPosBuilder_.clear();
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public Builder removeDestinationPos(int index) {
-        if (destinationPosBuilder_ == null) {
-          ensureDestinationPosIsMutable();
-          destinationPos_.remove(index);
-          onChanged();
-        } else {
-          destinationPosBuilder_.remove(index);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder getDestinationPosBuilder(
-          int index) {
-        return getDestinationPosFieldBuilder().getBuilder(index);
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getDestinationPosOrBuilder(
-          int index) {
-        if (destinationPosBuilder_ == null) {
-          return destinationPos_.get(index);  } else {
-          return destinationPosBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public java.util.List<? extends emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
-           getDestinationPosOrBuilderList() {
-        if (destinationPosBuilder_ != null) {
-          return destinationPosBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(destinationPos_);
-        }
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder addDestinationPosBuilder() {
-        return getDestinationPosFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.VectorOuterClass.Vector.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder addDestinationPosBuilder(
-          int index) {
-        return getDestinationPosFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.VectorOuterClass.Vector.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .Vector destination_pos = 10;</code>
-       */
-      public java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder> 
-           getDestinationPosBuilderList() {
-        return getDestinationPosFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.VectorOuterClass.Vector, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder, emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
-          getDestinationPosFieldBuilder() {
-        if (destinationPosBuilder_ == null) {
-          destinationPosBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.VectorOuterClass.Vector, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder, emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder>(
-                  destinationPos_,
-                  ((bitField0_ & 0x00000001) != 0),
-                  getParentForChildren(),
-                  isClean());
-          destinationPos_ = null;
-        }
-        return destinationPosBuilder_;
-      }
-
-      private emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter filter_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter, emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter.Builder, emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilterOrBuilder> filterBuilder_;
-      /**
-       * <code>.QueryFilter filter = 12;</code>
-       * @return Whether the filter field is set.
-       */
-      public boolean hasFilter() {
-        return filterBuilder_ != null || filter_ != null;
-      }
-      /**
-       * <code>.QueryFilter filter = 12;</code>
-       * @return The filter.
-       */
-      public emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter getFilter() {
-        if (filterBuilder_ == null) {
-          return filter_ == null ? emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter.getDefaultInstance() : filter_;
-        } else {
-          return filterBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.QueryFilter filter = 12;</code>
+       * <code>.QueryFilter filter = 12;</code>
        */
       public Builder setFilter(emu.grasscutter.net.proto.QueryFilterOuterClass.QueryFilter value) {
         if (filterBuilder_ == null) {
@@ -1707,6 +1524,37 @@ public final class QueryPathReqOuterClass {
         return filterBuilder_;
       }
 
+      private int queryId_ ;
+      /**
+       * <code>int32 query_id = 15;</code>
+       * @return The queryId.
+       */
+      @java.lang.Override
+      public int getQueryId() {
+        return queryId_;
+      }
+      /**
+       * <code>int32 query_id = 15;</code>
+       * @param value The queryId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setQueryId(int value) {
+        
+        queryId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 query_id = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearQueryId() {
+        
+        queryId_ = 0;
+        onChanged();
+        return this;
+      }
+
       private emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int destinationExtend_;
       private com.google.protobuf.SingleFieldBuilderV3<
           emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder> destinationExtendBuilder_;
@@ -1826,123 +1674,275 @@ public final class QueryPathReqOuterClass {
         return destinationExtendBuilder_;
       }
 
-      private emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int sourceExtend_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder> sourceExtendBuilder_;
+      private java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> destinationPos_ =
+        java.util.Collections.emptyList();
+      private void ensureDestinationPosIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          destinationPos_ = new java.util.ArrayList<emu.grasscutter.net.proto.VectorOuterClass.Vector>(destinationPos_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.VectorOuterClass.Vector, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder, emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> destinationPosBuilder_;
+
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
-       * @return Whether the sourceExtend field is set.
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public boolean hasSourceExtend() {
-        return sourceExtendBuilder_ != null || sourceExtend_ != null;
+      public java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> getDestinationPosList() {
+        if (destinationPosBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(destinationPos_);
+        } else {
+          return destinationPosBuilder_.getMessageList();
+        }
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
-       * @return The sourceExtend.
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int getSourceExtend() {
-        if (sourceExtendBuilder_ == null) {
-          return sourceExtend_ == null ? emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.getDefaultInstance() : sourceExtend_;
+      public int getDestinationPosCount() {
+        if (destinationPosBuilder_ == null) {
+          return destinationPos_.size();
         } else {
-          return sourceExtendBuilder_.getMessage();
+          return destinationPosBuilder_.getCount();
         }
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public Builder setSourceExtend(emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int value) {
-        if (sourceExtendBuilder_ == null) {
+      public emu.grasscutter.net.proto.VectorOuterClass.Vector getDestinationPos(int index) {
+        if (destinationPosBuilder_ == null) {
+          return destinationPos_.get(index);
+        } else {
+          return destinationPosBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public Builder setDestinationPos(
+          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector value) {
+        if (destinationPosBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          sourceExtend_ = value;
+          ensureDestinationPosIsMutable();
+          destinationPos_.set(index, value);
           onChanged();
         } else {
-          sourceExtendBuilder_.setMessage(value);
+          destinationPosBuilder_.setMessage(index, value);
         }
-
         return this;
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public Builder setSourceExtend(
-          emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder builderForValue) {
-        if (sourceExtendBuilder_ == null) {
-          sourceExtend_ = builderForValue.build();
+      public Builder setDestinationPos(
+          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder builderForValue) {
+        if (destinationPosBuilder_ == null) {
+          ensureDestinationPosIsMutable();
+          destinationPos_.set(index, builderForValue.build());
           onChanged();
         } else {
-          sourceExtendBuilder_.setMessage(builderForValue.build());
+          destinationPosBuilder_.setMessage(index, builderForValue.build());
         }
-
         return this;
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public Builder mergeSourceExtend(emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int value) {
-        if (sourceExtendBuilder_ == null) {
-          if (sourceExtend_ != null) {
-            sourceExtend_ =
-              emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.newBuilder(sourceExtend_).mergeFrom(value).buildPartial();
-          } else {
-            sourceExtend_ = value;
+      public Builder addDestinationPos(emu.grasscutter.net.proto.VectorOuterClass.Vector value) {
+        if (destinationPosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
           }
+          ensureDestinationPosIsMutable();
+          destinationPos_.add(value);
           onChanged();
         } else {
-          sourceExtendBuilder_.mergeFrom(value);
+          destinationPosBuilder_.addMessage(value);
         }
-
         return this;
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public Builder clearSourceExtend() {
-        if (sourceExtendBuilder_ == null) {
-          sourceExtend_ = null;
+      public Builder addDestinationPos(
+          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector value) {
+        if (destinationPosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureDestinationPosIsMutable();
+          destinationPos_.add(index, value);
           onChanged();
         } else {
-          sourceExtend_ = null;
-          sourceExtendBuilder_ = null;
+          destinationPosBuilder_.addMessage(index, value);
         }
-
         return this;
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder getSourceExtendBuilder() {
-        
-        onChanged();
-        return getSourceExtendFieldBuilder().getBuilder();
+      public Builder addDestinationPos(
+          emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder builderForValue) {
+        if (destinationPosBuilder_ == null) {
+          ensureDestinationPosIsMutable();
+          destinationPos_.add(builderForValue.build());
+          onChanged();
+        } else {
+          destinationPosBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      public emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder getSourceExtendOrBuilder() {
-        if (sourceExtendBuilder_ != null) {
-          return sourceExtendBuilder_.getMessageOrBuilder();
+      public Builder addDestinationPos(
+          int index, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder builderForValue) {
+        if (destinationPosBuilder_ == null) {
+          ensureDestinationPosIsMutable();
+          destinationPos_.add(index, builderForValue.build());
+          onChanged();
         } else {
-          return sourceExtend_ == null ?
-              emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.getDefaultInstance() : sourceExtend_;
+          destinationPosBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public Builder addAllDestinationPos(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.VectorOuterClass.Vector> values) {
+        if (destinationPosBuilder_ == null) {
+          ensureDestinationPosIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, destinationPos_);
+          onChanged();
+        } else {
+          destinationPosBuilder_.addAllMessages(values);
         }
+        return this;
       }
       /**
-       * <code>.Vector3Int source_extend = 6;</code>
+       * <code>repeated .Vector destination_pos = 10;</code>
        */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder> 
-          getSourceExtendFieldBuilder() {
-        if (sourceExtendBuilder_ == null) {
-          sourceExtendBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3Int.Builder, emu.grasscutter.net.proto.Vector3IntOuterClass.Vector3IntOrBuilder>(
-                  getSourceExtend(),
+      public Builder clearDestinationPos() {
+        if (destinationPosBuilder_ == null) {
+          destinationPos_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          destinationPosBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public Builder removeDestinationPos(int index) {
+        if (destinationPosBuilder_ == null) {
+          ensureDestinationPosIsMutable();
+          destinationPos_.remove(index);
+          onChanged();
+        } else {
+          destinationPosBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder getDestinationPosBuilder(
+          int index) {
+        return getDestinationPosFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getDestinationPosOrBuilder(
+          int index) {
+        if (destinationPosBuilder_ == null) {
+          return destinationPos_.get(index);  } else {
+          return destinationPosBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
+           getDestinationPosOrBuilderList() {
+        if (destinationPosBuilder_ != null) {
+          return destinationPosBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(destinationPos_);
+        }
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder addDestinationPosBuilder() {
+        return getDestinationPosFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.VectorOuterClass.Vector.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder addDestinationPosBuilder(
+          int index) {
+        return getDestinationPosFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.VectorOuterClass.Vector.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Vector destination_pos = 10;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder> 
+           getDestinationPosBuilderList() {
+        return getDestinationPosFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.VectorOuterClass.Vector, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder, emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder> 
+          getDestinationPosFieldBuilder() {
+        if (destinationPosBuilder_ == null) {
+          destinationPosBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.VectorOuterClass.Vector, emu.grasscutter.net.proto.VectorOuterClass.Vector.Builder, emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder>(
+                  destinationPos_,
+                  ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
                   isClean());
-          sourceExtend_ = null;
+          destinationPos_ = null;
         }
-        return sourceExtendBuilder_;
+        return destinationPosBuilder_;
+      }
+
+      private int sceneId_ ;
+      /**
+       * <code>uint32 scene_id = 11;</code>
+       * @return The sceneId.
+       */
+      @java.lang.Override
+      public int getSceneId() {
+        return sceneId_;
+      }
+      /**
+       * <code>uint32 scene_id = 11;</code>
+       * @param value The sceneId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSceneId(int value) {
+        
+        sceneId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 scene_id = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSceneId() {
+        
+        sceneId_ = 0;
+        onChanged();
+        return this;
       }
       @java.lang.Override
       public final Builder setUnknownFields(
@@ -2014,12 +2014,12 @@ public final class QueryPathReqOuterClass {
       "\n\022QueryPathReq.proto\032\021QueryFilter.proto\032" +
       "\014Vector.proto\032\020Vector3Int.proto\"\344\002\n\014Quer" +
       "yPathReq\022,\n\nquery_type\030\r \001(\0162\030.QueryPath" +
-      "Req.OptionType\022\020\n\010query_id\030\017 \001(\005\022\020\n\010scen" +
-      "e_id\030\013 \001(\r\022\033\n\nsource_pos\030\002 \001(\0132\007.Vector\022" +
-      " \n\017destination_pos\030\n \003(\0132\007.Vector\022\034\n\006fil" +
-      "ter\030\014 \001(\0132\014.QueryFilter\022\'\n\022destination_e" +
-      "xtend\030\004 \001(\0132\013.Vector3Int\022\"\n\rsource_exten" +
-      "d\030\006 \001(\0132\013.Vector3Int\"X\n\nOptionType\022\024\n\020OP" +
+      "Req.OptionType\022\"\n\rsource_extend\030\006 \001(\0132\013." +
+      "Vector3Int\022\033\n\nsource_pos\030\002 \001(\0132\007.Vector\022" +
+      "\034\n\006filter\030\014 \001(\0132\014.QueryFilter\022\020\n\010query_i" +
+      "d\030\017 \001(\005\022\'\n\022destination_extend\030\004 \001(\0132\013.Ve" +
+      "ctor3Int\022 \n\017destination_pos\030\n \003(\0132\007.Vect" +
+      "or\022\020\n\010scene_id\030\013 \001(\r\"X\n\nOptionType\022\024\n\020OP" +
       "TION_TYPE_NONE\020\000\022\026\n\022OPTION_TYPE_NORMAL\020\001" +
       "\022\034\n\030OPTION_TYPE_FIRST_CAN_GO\020\002B\033\n\031emu.gr" +
       "asscutter.net.protob\006proto3"
@@ -2036,7 +2036,7 @@ public final class QueryPathReqOuterClass {
     internal_static_QueryPathReq_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_QueryPathReq_descriptor,
-        new java.lang.String[] { "QueryType", "QueryId", "SceneId", "SourcePos", "DestinationPos", "Filter", "DestinationExtend", "SourceExtend", });
+        new java.lang.String[] { "QueryType", "SourceExtend", "SourcePos", "Filter", "QueryId", "DestinationExtend", "DestinationPos", "SceneId", });
     emu.grasscutter.net.proto.QueryFilterOuterClass.getDescriptor();
     emu.grasscutter.net.proto.VectorOuterClass.getDescriptor();
     emu.grasscutter.net.proto.Vector3IntOuterClass.getDescriptor();
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QueryPathRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QueryPathRspOuterClass.java
index 33449163..85c82c3a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QueryPathRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QueryPathRspOuterClass.java
@@ -18,29 +18,12 @@ public final class QueryPathRspOuterClass {
       // @@protoc_insertion_point(interface_extends:QueryPathRsp)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>int32 retcode = 1;</code>
-     * @return The retcode.
-     */
-    int getRetcode();
-
     /**
      * <code>int32 query_id = 12;</code>
      * @return The queryId.
      */
     int getQueryId();
 
-    /**
-     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-     * @return The enum numeric value on the wire for queryStatus.
-     */
-    int getQueryStatusValue();
-    /**
-     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-     * @return The queryStatus.
-     */
-    emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType getQueryStatus();
-
     /**
      * <code>repeated .Vector corners = 6;</code>
      */
@@ -64,12 +47,30 @@ public final class QueryPathRspOuterClass {
      */
     emu.grasscutter.net.proto.VectorOuterClass.VectorOrBuilder getCornersOrBuilder(
         int index);
+
+    /**
+     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+     * @return The enum numeric value on the wire for queryStatus.
+     */
+    int getQueryStatusValue();
+    /**
+     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+     * @return The queryStatus.
+     */
+    emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType getQueryStatus();
+
+    /**
+     * <code>int32 retcode = 1;</code>
+     * @return The retcode.
+     */
+    int getRetcode();
   }
   /**
    * <pre>
    * CmdId: 2398
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QueryPathRsp}
@@ -84,8 +85,8 @@ public final class QueryPathRspOuterClass {
       super(builder);
     }
     private QueryPathRsp() {
-      queryStatus_ = 0;
       corners_ = java.util.Collections.emptyList();
+      queryStatus_ = 0;
     }
 
     @java.lang.Override
@@ -296,17 +297,6 @@ public final class QueryPathRspOuterClass {
       // @@protoc_insertion_point(enum_scope:QueryPathRsp.PathStatusType)
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 1;
-    private int retcode_;
-    /**
-     * <code>int32 retcode = 1;</code>
-     * @return The retcode.
-     */
-    @java.lang.Override
-    public int getRetcode() {
-      return retcode_;
-    }
-
     public static final int QUERY_ID_FIELD_NUMBER = 12;
     private int queryId_;
     /**
@@ -318,25 +308,6 @@ public final class QueryPathRspOuterClass {
       return queryId_;
     }
 
-    public static final int QUERY_STATUS_FIELD_NUMBER = 8;
-    private int queryStatus_;
-    /**
-     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-     * @return The enum numeric value on the wire for queryStatus.
-     */
-    @java.lang.Override public int getQueryStatusValue() {
-      return queryStatus_;
-    }
-    /**
-     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-     * @return The queryStatus.
-     */
-    @java.lang.Override public emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType getQueryStatus() {
-      @SuppressWarnings("deprecation")
-      emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType result = emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.valueOf(queryStatus_);
-      return result == null ? emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.UNRECOGNIZED : result;
-    }
-
     public static final int CORNERS_FIELD_NUMBER = 6;
     private java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> corners_;
     /**
@@ -377,6 +348,36 @@ public final class QueryPathRspOuterClass {
       return corners_.get(index);
     }
 
+    public static final int QUERY_STATUS_FIELD_NUMBER = 8;
+    private int queryStatus_;
+    /**
+     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+     * @return The enum numeric value on the wire for queryStatus.
+     */
+    @java.lang.Override public int getQueryStatusValue() {
+      return queryStatus_;
+    }
+    /**
+     * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+     * @return The queryStatus.
+     */
+    @java.lang.Override public emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType getQueryStatus() {
+      @SuppressWarnings("deprecation")
+      emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType result = emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.valueOf(queryStatus_);
+      return result == null ? emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.UNRECOGNIZED : result;
+    }
+
+    public static final int RETCODE_FIELD_NUMBER = 1;
+    private int retcode_;
+    /**
+     * <code>int32 retcode = 1;</code>
+     * @return The retcode.
+     */
+    @java.lang.Override
+    public int getRetcode() {
+      return retcode_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -443,13 +444,13 @@ public final class QueryPathRspOuterClass {
       }
       emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp other = (emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp) obj;
 
-      if (getRetcode()
-          != other.getRetcode()) return false;
       if (getQueryId()
           != other.getQueryId()) return false;
-      if (queryStatus_ != other.queryStatus_) return false;
       if (!getCornersList()
           .equals(other.getCornersList())) return false;
+      if (queryStatus_ != other.queryStatus_) return false;
+      if (getRetcode()
+          != other.getRetcode()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -461,16 +462,16 @@ public final class QueryPathRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
-      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + QUERY_ID_FIELD_NUMBER;
       hash = (53 * hash) + getQueryId();
-      hash = (37 * hash) + QUERY_STATUS_FIELD_NUMBER;
-      hash = (53 * hash) + queryStatus_;
       if (getCornersCount() > 0) {
         hash = (37 * hash) + CORNERS_FIELD_NUMBER;
         hash = (53 * hash) + getCornersList().hashCode();
       }
+      hash = (37 * hash) + QUERY_STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + queryStatus_;
+      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+      hash = (53 * hash) + getRetcode();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -570,7 +571,8 @@ public final class QueryPathRspOuterClass {
      * <pre>
      * CmdId: 2398
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QueryPathRsp}
@@ -611,18 +613,18 @@ public final class QueryPathRspOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        retcode_ = 0;
-
         queryId_ = 0;
 
-        queryStatus_ = 0;
-
         if (cornersBuilder_ == null) {
           corners_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000001);
         } else {
           cornersBuilder_.clear();
         }
+        queryStatus_ = 0;
+
+        retcode_ = 0;
+
         return this;
       }
 
@@ -650,9 +652,7 @@ public final class QueryPathRspOuterClass {
       public emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp buildPartial() {
         emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp result = new emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp(this);
         int from_bitField0_ = bitField0_;
-        result.retcode_ = retcode_;
         result.queryId_ = queryId_;
-        result.queryStatus_ = queryStatus_;
         if (cornersBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             corners_ = java.util.Collections.unmodifiableList(corners_);
@@ -662,6 +662,8 @@ public final class QueryPathRspOuterClass {
         } else {
           result.corners_ = cornersBuilder_.build();
         }
+        result.queryStatus_ = queryStatus_;
+        result.retcode_ = retcode_;
         onBuilt();
         return result;
       }
@@ -710,15 +712,9 @@ public final class QueryPathRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp other) {
         if (other == emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.getDefaultInstance()) return this;
-        if (other.getRetcode() != 0) {
-          setRetcode(other.getRetcode());
-        }
         if (other.getQueryId() != 0) {
           setQueryId(other.getQueryId());
         }
-        if (other.queryStatus_ != 0) {
-          setQueryStatusValue(other.getQueryStatusValue());
-        }
         if (cornersBuilder_ == null) {
           if (!other.corners_.isEmpty()) {
             if (corners_.isEmpty()) {
@@ -745,6 +741,12 @@ public final class QueryPathRspOuterClass {
             }
           }
         }
+        if (other.queryStatus_ != 0) {
+          setQueryStatusValue(other.getQueryStatusValue());
+        }
+        if (other.getRetcode() != 0) {
+          setRetcode(other.getRetcode());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -775,37 +777,6 @@ public final class QueryPathRspOuterClass {
       }
       private int bitField0_;
 
-      private int retcode_ ;
-      /**
-       * <code>int32 retcode = 1;</code>
-       * @return The retcode.
-       */
-      @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
-      }
-      /**
-       * <code>int32 retcode = 1;</code>
-       * @param value The retcode to set.
-       * @return This builder for chaining.
-       */
-      public Builder setRetcode(int value) {
-        
-        retcode_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>int32 retcode = 1;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearRetcode() {
-        
-        retcode_ = 0;
-        onChanged();
-        return this;
-      }
-
       private int queryId_ ;
       /**
        * <code>int32 query_id = 12;</code>
@@ -837,60 +808,6 @@ public final class QueryPathRspOuterClass {
         return this;
       }
 
-      private int queryStatus_ = 0;
-      /**
-       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-       * @return The enum numeric value on the wire for queryStatus.
-       */
-      @java.lang.Override public int getQueryStatusValue() {
-        return queryStatus_;
-      }
-      /**
-       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-       * @param value The enum numeric value on the wire for queryStatus to set.
-       * @return This builder for chaining.
-       */
-      public Builder setQueryStatusValue(int value) {
-        
-        queryStatus_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-       * @return The queryStatus.
-       */
-      @java.lang.Override
-      public emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType getQueryStatus() {
-        @SuppressWarnings("deprecation")
-        emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType result = emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.valueOf(queryStatus_);
-        return result == null ? emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.UNRECOGNIZED : result;
-      }
-      /**
-       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-       * @param value The queryStatus to set.
-       * @return This builder for chaining.
-       */
-      public Builder setQueryStatus(emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        queryStatus_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearQueryStatus() {
-        
-        queryStatus_ = 0;
-        onChanged();
-        return this;
-      }
-
       private java.util.List<emu.grasscutter.net.proto.VectorOuterClass.Vector> corners_ =
         java.util.Collections.emptyList();
       private void ensureCornersIsMutable() {
@@ -1130,6 +1047,91 @@ public final class QueryPathRspOuterClass {
         }
         return cornersBuilder_;
       }
+
+      private int queryStatus_ = 0;
+      /**
+       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+       * @return The enum numeric value on the wire for queryStatus.
+       */
+      @java.lang.Override public int getQueryStatusValue() {
+        return queryStatus_;
+      }
+      /**
+       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+       * @param value The enum numeric value on the wire for queryStatus to set.
+       * @return This builder for chaining.
+       */
+      public Builder setQueryStatusValue(int value) {
+        
+        queryStatus_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+       * @return The queryStatus.
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType getQueryStatus() {
+        @SuppressWarnings("deprecation")
+        emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType result = emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.valueOf(queryStatus_);
+        return result == null ? emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType.UNRECOGNIZED : result;
+      }
+      /**
+       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+       * @param value The queryStatus to set.
+       * @return This builder for chaining.
+       */
+      public Builder setQueryStatus(emu.grasscutter.net.proto.QueryPathRspOuterClass.QueryPathRsp.PathStatusType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        queryStatus_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.QueryPathRsp.PathStatusType query_status = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearQueryStatus() {
+        
+        queryStatus_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int retcode_ ;
+      /**
+       * <code>int32 retcode = 1;</code>
+       * @return The retcode.
+       */
+      @java.lang.Override
+      public int getRetcode() {
+        return retcode_;
+      }
+      /**
+       * <code>int32 retcode = 1;</code>
+       * @param value The retcode to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRetcode(int value) {
+        
+        retcode_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 retcode = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRetcode() {
+        
+        retcode_ = 0;
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -1198,10 +1200,10 @@ public final class QueryPathRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\022QueryPathRsp.proto\032\014Vector.proto\"\345\001\n\014Q" +
-      "ueryPathRsp\022\017\n\007retcode\030\001 \001(\005\022\020\n\010query_id" +
-      "\030\014 \001(\005\0222\n\014query_status\030\010 \001(\0162\034.QueryPath" +
-      "Rsp.PathStatusType\022\030\n\007corners\030\006 \003(\0132\007.Ve" +
-      "ctor\"d\n\016PathStatusType\022\031\n\025PATH_STATUS_TY" +
+      "ueryPathRsp\022\020\n\010query_id\030\014 \001(\005\022\030\n\007corners" +
+      "\030\006 \003(\0132\007.Vector\0222\n\014query_status\030\010 \001(\0162\034." +
+      "QueryPathRsp.PathStatusType\022\017\n\007retcode\030\001" +
+      " \001(\005\"d\n\016PathStatusType\022\031\n\025PATH_STATUS_TY" +
       "PE_FAIL\020\000\022\031\n\025PATH_STATUS_TYPE_SUCC\020\001\022\034\n\030" +
       "PATH_STATUS_TYPE_PARTIAL\020\002B\033\n\031emu.grassc" +
       "utter.net.protob\006proto3"
@@ -1216,7 +1218,7 @@ public final class QueryPathRspOuterClass {
     internal_static_QueryPathRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_QueryPathRsp_descriptor,
-        new java.lang.String[] { "Retcode", "QueryId", "QueryStatus", "Corners", });
+        new java.lang.String[] { "QueryId", "Corners", "QueryStatus", "Retcode", });
     emu.grasscutter.net.proto.VectorOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestDelNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestDelNotifyOuterClass.java
index f9d96a39..dd311fdf 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestDelNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestDelNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class QuestDelNotifyOuterClass {
    * <pre>
    * CmdId: 412
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestDelNotify}
@@ -282,7 +283,8 @@ public final class QuestDelNotifyOuterClass {
      * <pre>
      * CmdId: 412
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestDelNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarNotifyOuterClass.java
index de3b7965..a9f5edf0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class QuestGlobalVarNotifyOuterClass {
    * <pre>
    * CmdId: 434
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestGlobalVarNotify}
@@ -340,7 +341,8 @@ public final class QuestGlobalVarNotifyOuterClass {
      * <pre>
      * CmdId: 434
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestGlobalVarNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestListNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestListNotifyOuterClass.java
index 4ec2bbae..eff01cc5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestListNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestListNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class QuestListNotifyOuterClass {
    * <pre>
    * CmdId: 472
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestListNotify}
@@ -340,7 +341,8 @@ public final class QuestListNotifyOuterClass {
      * <pre>
      * CmdId: 472
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestListNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestListUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestListUpdateNotifyOuterClass.java
index 522755c9..b471a29a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestListUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestListUpdateNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class QuestListUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 498
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestListUpdateNotify}
@@ -340,7 +341,8 @@ public final class QuestListUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 498
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestListUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestProgressUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestProgressUpdateNotifyOuterClass.java
index 31e8101c..05cabd9f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestProgressUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestProgressUpdateNotifyOuterClass.java
@@ -62,7 +62,8 @@ public final class QuestProgressUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 482
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestProgressUpdateNotify}
@@ -478,7 +479,8 @@ public final class QuestProgressUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 482
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestProgressUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarNotifyOuterClass.java
index 0fd633c1..65518ca8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarNotifyOuterClass.java
@@ -51,7 +51,8 @@ public final class QuestUpdateQuestVarNotifyOuterClass {
    * <pre>
    * CmdId: 453
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestUpdateQuestVarNotify}
@@ -414,7 +415,8 @@ public final class QuestUpdateQuestVarNotifyOuterClass {
      * <pre>
      * CmdId: 453
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestUpdateQuestVarNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarReqOuterClass.java
index 9b9bf605..81489f67 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarReqOuterClass.java
@@ -64,7 +64,7 @@ public final class QuestUpdateQuestVarReqOuterClass {
    * <pre>
    * CmdId: 447
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -440,7 +440,7 @@ public final class QuestUpdateQuestVarReqOuterClass {
      * <pre>
      * CmdId: 447
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarRspOuterClass.java
index 96de794d..ae40d836 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarRspOuterClass.java
@@ -46,7 +46,8 @@ public final class QuestUpdateQuestVarRspOuterClass {
    * <pre>
    * CmdId: 439
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuestUpdateQuestVarRsp}
@@ -381,7 +382,8 @@ public final class QuestUpdateQuestVarRspOuterClass {
      * <pre>
      * CmdId: 439
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuestUpdateQuestVarRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetReqOuterClass.java
index 3a4a6a45..386a7885 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetReqOuterClass.java
@@ -84,7 +84,7 @@ public final class QuickUseWidgetReqOuterClass {
    * <pre>
    * CmdId: 4299
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -606,7 +606,7 @@ public final class QuickUseWidgetReqOuterClass {
      * <pre>
      * CmdId: 4299
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetRspOuterClass.java
index dc6c8eb3..46897550 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetRspOuterClass.java
@@ -81,7 +81,8 @@ public final class QuickUseWidgetRspOuterClass {
    * <pre>
    * CmdId: 4270
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code QuickUseWidgetRsp}
@@ -594,7 +595,8 @@ public final class QuickUseWidgetRspOuterClass {
      * <pre>
      * CmdId: 4270
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code QuickUseWidgetRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java
index c50e3ac0..814a6a39 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java
@@ -39,7 +39,7 @@ public final class ReadMailNotifyOuterClass {
    * <pre>
    * CmdId: 1412
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class ReadMailNotifyOuterClass {
      * <pre>
      * CmdId: 1412
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/RegionInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/RegionInfoOuterClass.java
index 9c934e9a..e518149f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/RegionInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/RegionInfoOuterClass.java
@@ -157,24 +157,24 @@ public final class RegionInfoOuterClass {
     int getClientSilenceDataVersion();
 
     /**
-     * <code>string client_data_md_5 = 19;</code>
+     * <code>string client_data_md5 = 19;</code>
      * @return The clientDataMd5.
      */
     java.lang.String getClientDataMd5();
     /**
-     * <code>string client_data_md_5 = 19;</code>
+     * <code>string client_data_md5 = 19;</code>
      * @return The bytes for clientDataMd5.
      */
     com.google.protobuf.ByteString
         getClientDataMd5Bytes();
 
     /**
-     * <code>string client_silence_data_md_5 = 20;</code>
+     * <code>string client_silence_data_md5 = 20;</code>
      * @return The clientSilenceDataMd5.
      */
     java.lang.String getClientSilenceDataMd5();
     /**
-     * <code>string client_silence_data_md_5 = 20;</code>
+     * <code>string client_silence_data_md5 = 20;</code>
      * @return The bytes for clientSilenceDataMd5.
      */
     com.google.protobuf.ByteString
@@ -1019,10 +1019,10 @@ public final class RegionInfoOuterClass {
       return clientSilenceDataVersion_;
     }
 
-    public static final int CLIENT_DATA_MD_5_FIELD_NUMBER = 19;
+    public static final int CLIENT_DATA_MD5_FIELD_NUMBER = 19;
     private volatile java.lang.Object clientDataMd5_;
     /**
-     * <code>string client_data_md_5 = 19;</code>
+     * <code>string client_data_md5 = 19;</code>
      * @return The clientDataMd5.
      */
     @java.lang.Override
@@ -1039,7 +1039,7 @@ public final class RegionInfoOuterClass {
       }
     }
     /**
-     * <code>string client_data_md_5 = 19;</code>
+     * <code>string client_data_md5 = 19;</code>
      * @return The bytes for clientDataMd5.
      */
     @java.lang.Override
@@ -1057,10 +1057,10 @@ public final class RegionInfoOuterClass {
       }
     }
 
-    public static final int CLIENT_SILENCE_DATA_MD_5_FIELD_NUMBER = 20;
+    public static final int CLIENT_SILENCE_DATA_MD5_FIELD_NUMBER = 20;
     private volatile java.lang.Object clientSilenceDataMd5_;
     /**
-     * <code>string client_silence_data_md_5 = 20;</code>
+     * <code>string client_silence_data_md5 = 20;</code>
      * @return The clientSilenceDataMd5.
      */
     @java.lang.Override
@@ -1077,7 +1077,7 @@ public final class RegionInfoOuterClass {
       }
     }
     /**
-     * <code>string client_silence_data_md_5 = 20;</code>
+     * <code>string client_silence_data_md5 = 20;</code>
      * @return The bytes for clientSilenceDataMd5.
      */
     @java.lang.Override
@@ -1823,9 +1823,9 @@ public final class RegionInfoOuterClass {
       hash = (53 * hash) + getHandbookUrl().hashCode();
       hash = (37 * hash) + CLIENT_SILENCE_DATA_VERSION_FIELD_NUMBER;
       hash = (53 * hash) + getClientSilenceDataVersion();
-      hash = (37 * hash) + CLIENT_DATA_MD_5_FIELD_NUMBER;
+      hash = (37 * hash) + CLIENT_DATA_MD5_FIELD_NUMBER;
       hash = (53 * hash) + getClientDataMd5().hashCode();
-      hash = (37 * hash) + CLIENT_SILENCE_DATA_MD_5_FIELD_NUMBER;
+      hash = (37 * hash) + CLIENT_SILENCE_DATA_MD5_FIELD_NUMBER;
       hash = (53 * hash) + getClientSilenceDataMd5().hashCode();
       if (hasResVersionConfig()) {
         hash = (37 * hash) + RES_VERSION_CONFIG_FIELD_NUMBER;
@@ -3154,7 +3154,7 @@ public final class RegionInfoOuterClass {
 
       private java.lang.Object clientDataMd5_ = "";
       /**
-       * <code>string client_data_md_5 = 19;</code>
+       * <code>string client_data_md5 = 19;</code>
        * @return The clientDataMd5.
        */
       public java.lang.String getClientDataMd5() {
@@ -3170,7 +3170,7 @@ public final class RegionInfoOuterClass {
         }
       }
       /**
-       * <code>string client_data_md_5 = 19;</code>
+       * <code>string client_data_md5 = 19;</code>
        * @return The bytes for clientDataMd5.
        */
       public com.google.protobuf.ByteString
@@ -3187,7 +3187,7 @@ public final class RegionInfoOuterClass {
         }
       }
       /**
-       * <code>string client_data_md_5 = 19;</code>
+       * <code>string client_data_md5 = 19;</code>
        * @param value The clientDataMd5 to set.
        * @return This builder for chaining.
        */
@@ -3202,7 +3202,7 @@ public final class RegionInfoOuterClass {
         return this;
       }
       /**
-       * <code>string client_data_md_5 = 19;</code>
+       * <code>string client_data_md5 = 19;</code>
        * @return This builder for chaining.
        */
       public Builder clearClientDataMd5() {
@@ -3212,7 +3212,7 @@ public final class RegionInfoOuterClass {
         return this;
       }
       /**
-       * <code>string client_data_md_5 = 19;</code>
+       * <code>string client_data_md5 = 19;</code>
        * @param value The bytes for clientDataMd5 to set.
        * @return This builder for chaining.
        */
@@ -3230,7 +3230,7 @@ public final class RegionInfoOuterClass {
 
       private java.lang.Object clientSilenceDataMd5_ = "";
       /**
-       * <code>string client_silence_data_md_5 = 20;</code>
+       * <code>string client_silence_data_md5 = 20;</code>
        * @return The clientSilenceDataMd5.
        */
       public java.lang.String getClientSilenceDataMd5() {
@@ -3246,7 +3246,7 @@ public final class RegionInfoOuterClass {
         }
       }
       /**
-       * <code>string client_silence_data_md_5 = 20;</code>
+       * <code>string client_silence_data_md5 = 20;</code>
        * @return The bytes for clientSilenceDataMd5.
        */
       public com.google.protobuf.ByteString
@@ -3263,7 +3263,7 @@ public final class RegionInfoOuterClass {
         }
       }
       /**
-       * <code>string client_silence_data_md_5 = 20;</code>
+       * <code>string client_silence_data_md5 = 20;</code>
        * @param value The clientSilenceDataMd5 to set.
        * @return This builder for chaining.
        */
@@ -3278,7 +3278,7 @@ public final class RegionInfoOuterClass {
         return this;
       }
       /**
-       * <code>string client_silence_data_md_5 = 20;</code>
+       * <code>string client_silence_data_md5 = 20;</code>
        * @return This builder for chaining.
        */
       public Builder clearClientSilenceDataMd5() {
@@ -3288,7 +3288,7 @@ public final class RegionInfoOuterClass {
         return this;
       }
       /**
-       * <code>string client_silence_data_md_5 = 20;</code>
+       * <code>string client_silence_data_md5 = 20;</code>
        * @param value The bytes for clientSilenceDataMd5 to set.
        * @return This builder for chaining.
        */
@@ -4358,7 +4358,7 @@ public final class RegionInfoOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\020RegionInfo.proto\032\026ResVersionConfig.pro" +
-      "to\"\237\006\n\nRegionInfo\022\025\n\rgateserver_ip\030\001 \001(\t" +
+      "to\"\235\006\n\nRegionInfo\022\025\n\rgateserver_ip\030\001 \001(\t" +
       "\022\027\n\017gateserver_port\030\002 \001(\r\022\030\n\020pay_callbac" +
       "k_url\030\003 \001(\t\022\021\n\tarea_type\030\007 \001(\t\022\024\n\014resour" +
       "ce_url\030\010 \001(\t\022\020\n\010data_url\030\t \001(\t\022\024\n\014feedba" +
@@ -4366,20 +4366,19 @@ public final class RegionInfoOuterClass {
       "source_url_bak\030\014 \001(\t\022\024\n\014data_url_bak\030\r \001" +
       "(\t\022\033\n\023client_data_version\030\016 \001(\r\022\024\n\014handb" +
       "ook_url\030\020 \001(\t\022#\n\033client_silence_data_ver" +
-      "sion\030\022 \001(\r\022\030\n\020client_data_md_5\030\023 \001(\t\022 \n\030" +
-      "client_silence_data_md_5\030\024 \001(\t\022-\n\022res_ve" +
-      "rsion_config\030\026 \001(\0132\021.ResVersionConfig\022\022\n" +
-      "\nsecret_key\030\027 \001(\014\022\036\n\026official_community_" +
-      "url\030\030 \001(\t\022\035\n\025client_version_suffix\030\032 \001(\t" +
-      "\022%\n\035client_silence_version_suffix\030\033 \001(\t\022" +
-      "\"\n\032use_gateserver_domain_name\030\034 \001(\010\022\036\n\026g" +
-      "ateserver_domain_name\030\035 \001(\t\022\027\n\017user_cent" +
-      "er_url\030\036 \001(\t\022\030\n\020account_bind_url\030\037 \001(\t\022\021" +
-      "\n\tcdkey_url\030  \001(\t\022\032\n\022privacy_policy_url\030" +
-      "! \001(\t\022\031\n\021next_resource_url\030\" \001(\t\0222\n\027next" +
-      "_res_version_config\030# \001(\0132\021.ResVersionCo" +
-      "nfigB\033\n\031emu.grasscutter.net.protob\006proto" +
-      "3"
+      "sion\030\022 \001(\r\022\027\n\017client_data_md5\030\023 \001(\t\022\037\n\027c" +
+      "lient_silence_data_md5\030\024 \001(\t\022-\n\022res_vers" +
+      "ion_config\030\026 \001(\0132\021.ResVersionConfig\022\022\n\ns" +
+      "ecret_key\030\027 \001(\014\022\036\n\026official_community_ur" +
+      "l\030\030 \001(\t\022\035\n\025client_version_suffix\030\032 \001(\t\022%" +
+      "\n\035client_silence_version_suffix\030\033 \001(\t\022\"\n" +
+      "\032use_gateserver_domain_name\030\034 \001(\010\022\036\n\026gat" +
+      "eserver_domain_name\030\035 \001(\t\022\027\n\017user_center" +
+      "_url\030\036 \001(\t\022\030\n\020account_bind_url\030\037 \001(\t\022\021\n\t" +
+      "cdkey_url\030  \001(\t\022\032\n\022privacy_policy_url\030! " +
+      "\001(\t\022\031\n\021next_resource_url\030\" \001(\t\0222\n\027next_r" +
+      "es_version_config\030# \001(\0132\021.ResVersionConf" +
+      "igB\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeReqOuterClass.java
index c7446d87..e6cdc1c9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeReqOuterClass.java
@@ -51,7 +51,7 @@ public final class ReliquaryDecomposeReqOuterClass {
    * <pre>
    * CmdId: 638
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -415,7 +415,7 @@ public final class ReliquaryDecomposeReqOuterClass {
      * <pre>
      * CmdId: 638
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeRspOuterClass.java
index f769967d..81d2d129 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeRspOuterClass.java
@@ -45,7 +45,7 @@ public final class ReliquaryDecomposeRspOuterClass {
    * <pre>
    * CmdId: 611
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -382,7 +382,7 @@ public final class ReliquaryDecomposeRspOuterClass {
      * <pre>
      * CmdId: 611
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteReqOuterClass.java
index 87842135..e3c61b3d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteReqOuterClass.java
@@ -34,7 +34,7 @@ public final class ReliquaryPromoteReqOuterClass {
    * <pre>
    * CmdId: 627
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -318,7 +318,7 @@ public final class ReliquaryPromoteReqOuterClass {
      * <pre>
      * CmdId: 627
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteRspOuterClass.java
index 9ccf7a20..4d173e73 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteRspOuterClass.java
@@ -80,7 +80,8 @@ public final class ReliquaryPromoteRspOuterClass {
    * <pre>
    * CmdId: 694
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ReliquaryPromoteRsp}
@@ -578,7 +579,8 @@ public final class ReliquaryPromoteRspOuterClass {
      * <pre>
      * CmdId: 694
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ReliquaryPromoteRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeReqOuterClass.java
index d3bfde1f..fba7f8f4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeReqOuterClass.java
@@ -69,7 +69,7 @@ public final class ReliquaryUpgradeReqOuterClass {
    * <pre>
    * CmdId: 604
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -473,7 +473,7 @@ public final class ReliquaryUpgradeReqOuterClass {
      * <pre>
      * CmdId: 604
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeRspOuterClass.java
index 61773556..f75f7c66 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeRspOuterClass.java
@@ -86,7 +86,8 @@ public final class ReliquaryUpgradeRspOuterClass {
    * <pre>
    * CmdId: 693
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ReliquaryUpgradeRsp}
@@ -611,7 +612,8 @@ public final class ReliquaryUpgradeRspOuterClass {
      * <pre>
      * CmdId: 693
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ReliquaryUpgradeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ResVersionConfigOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ResVersionConfigOuterClass.java
index 7d8e9647..b30bacab 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ResVersionConfigOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ResVersionConfigOuterClass.java
@@ -31,12 +31,12 @@ public final class ResVersionConfigOuterClass {
     boolean getRelogin();
 
     /**
-     * <code>string md_5 = 3;</code>
+     * <code>string md5 = 3;</code>
      * @return The md5.
      */
     java.lang.String getMd5();
     /**
-     * <code>string md_5 = 3;</code>
+     * <code>string md5 = 3;</code>
      * @return The bytes for md5.
      */
     com.google.protobuf.ByteString
@@ -234,10 +234,10 @@ public final class ResVersionConfigOuterClass {
       return relogin_;
     }
 
-    public static final int MD_5_FIELD_NUMBER = 3;
+    public static final int MD5_FIELD_NUMBER = 3;
     private volatile java.lang.Object md5_;
     /**
-     * <code>string md_5 = 3;</code>
+     * <code>string md5 = 3;</code>
      * @return The md5.
      */
     @java.lang.Override
@@ -254,7 +254,7 @@ public final class ResVersionConfigOuterClass {
       }
     }
     /**
-     * <code>string md_5 = 3;</code>
+     * <code>string md5 = 3;</code>
      * @return The bytes for md5.
      */
     @java.lang.Override
@@ -536,7 +536,7 @@ public final class ResVersionConfigOuterClass {
       hash = (37 * hash) + RELOGIN_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getRelogin());
-      hash = (37 * hash) + MD_5_FIELD_NUMBER;
+      hash = (37 * hash) + MD5_FIELD_NUMBER;
       hash = (53 * hash) + getMd5().hashCode();
       hash = (37 * hash) + RELEASE_TOTAL_SIZE_FIELD_NUMBER;
       hash = (53 * hash) + getReleaseTotalSize().hashCode();
@@ -893,7 +893,7 @@ public final class ResVersionConfigOuterClass {
 
       private java.lang.Object md5_ = "";
       /**
-       * <code>string md_5 = 3;</code>
+       * <code>string md5 = 3;</code>
        * @return The md5.
        */
       public java.lang.String getMd5() {
@@ -909,7 +909,7 @@ public final class ResVersionConfigOuterClass {
         }
       }
       /**
-       * <code>string md_5 = 3;</code>
+       * <code>string md5 = 3;</code>
        * @return The bytes for md5.
        */
       public com.google.protobuf.ByteString
@@ -926,7 +926,7 @@ public final class ResVersionConfigOuterClass {
         }
       }
       /**
-       * <code>string md_5 = 3;</code>
+       * <code>string md5 = 3;</code>
        * @param value The md5 to set.
        * @return This builder for chaining.
        */
@@ -941,7 +941,7 @@ public final class ResVersionConfigOuterClass {
         return this;
       }
       /**
-       * <code>string md_5 = 3;</code>
+       * <code>string md5 = 3;</code>
        * @return This builder for chaining.
        */
       public Builder clearMd5() {
@@ -951,7 +951,7 @@ public final class ResVersionConfigOuterClass {
         return this;
       }
       /**
-       * <code>string md_5 = 3;</code>
+       * <code>string md5 = 3;</code>
        * @param value The bytes for md5 to set.
        * @return This builder for chaining.
        */
@@ -1337,12 +1337,12 @@ public final class ResVersionConfigOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\026ResVersionConfig.proto\"\243\001\n\020ResVersionC" +
+      "\n\026ResVersionConfig.proto\"\242\001\n\020ResVersionC" +
       "onfig\022\017\n\007version\030\001 \001(\r\022\017\n\007relogin\030\002 \001(\010\022" +
-      "\014\n\004md_5\030\003 \001(\t\022\032\n\022release_total_size\030\004 \001(" +
-      "\t\022\026\n\016version_suffix\030\005 \001(\t\022\016\n\006branch\030\006 \001(" +
-      "\t\022\033\n\023next_script_version\030\007 \001(\tB\033\n\031emu.gr" +
-      "asscutter.net.protob\006proto3"
+      "\013\n\003md5\030\003 \001(\t\022\032\n\022release_total_size\030\004 \001(\t" +
+      "\022\026\n\016version_suffix\030\005 \001(\t\022\016\n\006branch\030\006 \001(\t" +
+      "\022\033\n\023next_script_version\030\007 \001(\tB\033\n\031emu.gra" +
+      "sscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
index ef99eb08..f1650879 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
@@ -40,7 +40,8 @@ public final class ResinChangeNotifyOuterClass {
    * <pre>
    * CmdId: 642
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ResinChangeNotify}
@@ -348,7 +349,8 @@ public final class ResinChangeNotifyOuterClass {
      * <pre>
      * CmdId: 642
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ResinChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/RetcodeOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/RetcodeOuterClass.java
index ebde6366..19b5aef6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/RetcodeOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/RetcodeOuterClass.java
@@ -304,9 +304,9 @@ public final class RetcodeOuterClass {
      */
     RET_AVATAR_IN_COMBAT(128),
     /**
-     * <code>RET_NICKNAME_UTF_8_ERROR = 130;</code>
+     * <code>RET_NICKNAME_UTF8_ERROR = 130;</code>
      */
-    RET_NICKNAME_UTF_8_ERROR(130),
+    RET_NICKNAME_UTF8_ERROR(130),
     /**
      * <code>RET_NICKNAME_TOO_LONG = 131;</code>
      */
@@ -423,6 +423,18 @@ public final class RetcodeOuterClass {
      * <code>RET_IS_IN_LOCK_AVATAR = 171;</code>
      */
     RET_IS_IN_LOCK_AVATAR(171),
+    /**
+     * <code>RET_FULL_BACKUP_TEAM = 172;</code>
+     */
+    RET_FULL_BACKUP_TEAM(172),
+    /**
+     * <code>RET_BACKUP_TEAM_ID_NOT_VALID = 173;</code>
+     */
+    RET_BACKUP_TEAM_ID_NOT_VALID(173),
+    /**
+     * <code>RET_BACKUP_TEAM_IS_CUR_TEAM = 174;</code>
+     */
+    RET_BACKUP_TEAM_IS_CUR_TEAM(174),
     /**
      * <code>RET_FLOAT_ERROR = 201;</code>
      */
@@ -467,6 +479,14 @@ public final class RetcodeOuterClass {
      * <code>RET_BARGAIN_FINISHED = 405;</code>
      */
     RET_BARGAIN_FINISHED(405),
+    /**
+     * <code>RET_INFERENCE_ASSOCIATE_WORD_ERROR = 406;</code>
+     */
+    RET_INFERENCE_ASSOCIATE_WORD_ERROR(406),
+    /**
+     * <code>RET_INFERENCE_SUBMIT_WORD_NO_CONCLUSION = 407;</code>
+     */
+    RET_INFERENCE_SUBMIT_WORD_NO_CONCLUSION(407),
     /**
      * <code>RET_POINT_NOT_UNLOCKED = 501;</code>
      */
@@ -1203,6 +1223,14 @@ public final class RetcodeOuterClass {
      * <code>RET_GADGET_CUSTOM_COMBINATION_INVALID = 831;</code>
      */
     RET_GADGET_CUSTOM_COMBINATION_INVALID(831),
+    /**
+     * <code>RET_DESHRET_OBELISK_DUPLICATE_INTERACT = 832;</code>
+     */
+    RET_DESHRET_OBELISK_DUPLICATE_INTERACT(832),
+    /**
+     * <code>RET_DESHRET_OBELISK_NO_AVAIL_CHEST = 833;</code>
+     */
+    RET_DESHRET_OBELISK_NO_AVAIL_CHEST(833),
     /**
      * <code>RET_ACTIVITY_CLOSE = 860;</code>
      */
@@ -2232,9 +2260,9 @@ public final class RetcodeOuterClass {
      */
     RET_REMARK_TOO_LONG(7029),
     /**
-     * <code>RET_REMARK_UTF_8_ERROR = 7030;</code>
+     * <code>RET_REMARK_UTF8_ERROR = 7030;</code>
      */
-    RET_REMARK_UTF_8_ERROR(7030),
+    RET_REMARK_UTF8_ERROR(7030),
     /**
      * <code>RET_REMARK_IS_EMPTY = 7031;</code>
      */
@@ -3351,6 +3379,22 @@ public final class RetcodeOuterClass {
      * <code>RET_HOME_LIMITED_SHOP_GOODS_DISABLE = 9796;</code>
      */
     RET_HOME_LIMITED_SHOP_GOODS_DISABLE(9796),
+    /**
+     * <code>RET_HOME_WORLD_WOOD_MATERIAL_EMPTY = 9797;</code>
+     */
+    RET_HOME_WORLD_WOOD_MATERIAL_EMPTY(9797),
+    /**
+     * <code>RET_HOME_WORLD_WOOD_MATERIAL_NOT_FOUND = 9798;</code>
+     */
+    RET_HOME_WORLD_WOOD_MATERIAL_NOT_FOUND(9798),
+    /**
+     * <code>RET_HOME_WORLD_WOOD_MATERIAL_COUNT_INVALID = 9799;</code>
+     */
+    RET_HOME_WORLD_WOOD_MATERIAL_COUNT_INVALID(9799),
+    /**
+     * <code>RET_HOME_WORLD_WOOD_EXCHANGE_EXCEED_LIMIT = 9800;</code>
+     */
+    RET_HOME_WORLD_WOOD_EXCHANGE_EXCEED_LIMIT(9800),
     /**
      * <code>RET_SUMO_ACTIVITY_STAGE_NOT_OPEN = 10000;</code>
      */
@@ -3728,21 +3772,21 @@ public final class RetcodeOuterClass {
      */
     RET_GACHA_ACTIVITY_HAVE_ROBOT_LIMIT(10316),
     /**
-     * <code>RET_SUMMER_TIME_V_2_COIN_EXCEED_LIMIT = 10317;</code>
+     * <code>RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT = 10317;</code>
      */
-    RET_SUMMER_TIME_V_2_COIN_EXCEED_LIMIT(10317),
+    RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT(10317),
     /**
-     * <code>RET_SUMMER_TIME_V_2_COIN_NOT_ENOUGH = 10318;</code>
+     * <code>RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH = 10318;</code>
      */
-    RET_SUMMER_TIME_V_2_COIN_NOT_ENOUGH(10318),
+    RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH(10318),
     /**
-     * <code>RET_SUMMER_TIME_V_2_DUNGEON_STAGE_NOT_OPEN = 10319;</code>
+     * <code>RET_SUMMER_TIME_V2_DUNGEON_STAGE_NOT_OPEN = 10319;</code>
      */
-    RET_SUMMER_TIME_V_2_DUNGEON_STAGE_NOT_OPEN(10319),
+    RET_SUMMER_TIME_V2_DUNGEON_STAGE_NOT_OPEN(10319),
     /**
-     * <code>RET_SUMMER_TIME_V_2_PREV_DUNGEON_NOT_COMPLETE = 10320;</code>
+     * <code>RET_SUMMER_TIME_V2_PREV_DUNGEON_NOT_COMPLETE = 10320;</code>
      */
-    RET_SUMMER_TIME_V_2_PREV_DUNGEON_NOT_COMPLETE(10320),
+    RET_SUMMER_TIME_V2_PREV_DUNGEON_NOT_COMPLETE(10320),
     /**
      * <code>RET_ROGUE_DIARY_AVATAR_DEATH = 10350;</code>
      */
@@ -3771,6 +3815,22 @@ public final class RetcodeOuterClass {
      * <code>RET_ROGUE_DIARY_CONTENT_CLOSED = 10366;</code>
      */
     RET_ROGUE_DIARY_CONTENT_CLOSED(10366),
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_A_NOT_ENOUGH = 10380;</code>
+     */
+    RET_GRAVEN_INNOCENCE_COIN_A_NOT_ENOUGH(10380),
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_B_NOT_ENOUGH = 10381;</code>
+     */
+    RET_GRAVEN_INNOCENCE_COIN_B_NOT_ENOUGH(10381),
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_A_EXCEED_LIMIT = 10382;</code>
+     */
+    RET_GRAVEN_INNOCENCE_COIN_A_EXCEED_LIMIT(10382),
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMIT = 10383;</code>
+     */
+    RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMIT(10383),
     /**
      * <code>RET_ISLAND_PARTY_STAGE_NOT_OPEN = 10371;</code>
      */
@@ -4027,6 +4087,18 @@ public final class RetcodeOuterClass {
      * <code>RET_UGC_BAN_PUBLISH = 11159;</code>
      */
     RET_UGC_BAN_PUBLISH(11159),
+    /**
+     * <code>RET_COMPOUND_BOOST_ITEM_NOT_EXIST = 11201;</code>
+     */
+    RET_COMPOUND_BOOST_ITEM_NOT_EXIST(11201),
+    /**
+     * <code>RET_COMPOUND_BOOST_TARGET_NOT_EXIST = 11202;</code>
+     */
+    RET_COMPOUND_BOOST_TARGET_NOT_EXIST(11202),
+    /**
+     * <code>RET_QUICK_HIT_TREE_EMPTY_TREES = 11211;</code>
+     */
+    RET_QUICK_HIT_TREE_EMPTY_TREES(11211),
     UNRECOGNIZED(-1),
     ;
 
@@ -4315,9 +4387,9 @@ public final class RetcodeOuterClass {
      */
     public static final int RET_AVATAR_IN_COMBAT_VALUE = 128;
     /**
-     * <code>RET_NICKNAME_UTF_8_ERROR = 130;</code>
+     * <code>RET_NICKNAME_UTF8_ERROR = 130;</code>
      */
-    public static final int RET_NICKNAME_UTF_8_ERROR_VALUE = 130;
+    public static final int RET_NICKNAME_UTF8_ERROR_VALUE = 130;
     /**
      * <code>RET_NICKNAME_TOO_LONG = 131;</code>
      */
@@ -4434,6 +4506,18 @@ public final class RetcodeOuterClass {
      * <code>RET_IS_IN_LOCK_AVATAR = 171;</code>
      */
     public static final int RET_IS_IN_LOCK_AVATAR_VALUE = 171;
+    /**
+     * <code>RET_FULL_BACKUP_TEAM = 172;</code>
+     */
+    public static final int RET_FULL_BACKUP_TEAM_VALUE = 172;
+    /**
+     * <code>RET_BACKUP_TEAM_ID_NOT_VALID = 173;</code>
+     */
+    public static final int RET_BACKUP_TEAM_ID_NOT_VALID_VALUE = 173;
+    /**
+     * <code>RET_BACKUP_TEAM_IS_CUR_TEAM = 174;</code>
+     */
+    public static final int RET_BACKUP_TEAM_IS_CUR_TEAM_VALUE = 174;
     /**
      * <code>RET_FLOAT_ERROR = 201;</code>
      */
@@ -4478,6 +4562,14 @@ public final class RetcodeOuterClass {
      * <code>RET_BARGAIN_FINISHED = 405;</code>
      */
     public static final int RET_BARGAIN_FINISHED_VALUE = 405;
+    /**
+     * <code>RET_INFERENCE_ASSOCIATE_WORD_ERROR = 406;</code>
+     */
+    public static final int RET_INFERENCE_ASSOCIATE_WORD_ERROR_VALUE = 406;
+    /**
+     * <code>RET_INFERENCE_SUBMIT_WORD_NO_CONCLUSION = 407;</code>
+     */
+    public static final int RET_INFERENCE_SUBMIT_WORD_NO_CONCLUSION_VALUE = 407;
     /**
      * <code>RET_POINT_NOT_UNLOCKED = 501;</code>
      */
@@ -5214,6 +5306,14 @@ public final class RetcodeOuterClass {
      * <code>RET_GADGET_CUSTOM_COMBINATION_INVALID = 831;</code>
      */
     public static final int RET_GADGET_CUSTOM_COMBINATION_INVALID_VALUE = 831;
+    /**
+     * <code>RET_DESHRET_OBELISK_DUPLICATE_INTERACT = 832;</code>
+     */
+    public static final int RET_DESHRET_OBELISK_DUPLICATE_INTERACT_VALUE = 832;
+    /**
+     * <code>RET_DESHRET_OBELISK_NO_AVAIL_CHEST = 833;</code>
+     */
+    public static final int RET_DESHRET_OBELISK_NO_AVAIL_CHEST_VALUE = 833;
     /**
      * <code>RET_ACTIVITY_CLOSE = 860;</code>
      */
@@ -6243,9 +6343,9 @@ public final class RetcodeOuterClass {
      */
     public static final int RET_REMARK_TOO_LONG_VALUE = 7029;
     /**
-     * <code>RET_REMARK_UTF_8_ERROR = 7030;</code>
+     * <code>RET_REMARK_UTF8_ERROR = 7030;</code>
      */
-    public static final int RET_REMARK_UTF_8_ERROR_VALUE = 7030;
+    public static final int RET_REMARK_UTF8_ERROR_VALUE = 7030;
     /**
      * <code>RET_REMARK_IS_EMPTY = 7031;</code>
      */
@@ -7362,6 +7462,22 @@ public final class RetcodeOuterClass {
      * <code>RET_HOME_LIMITED_SHOP_GOODS_DISABLE = 9796;</code>
      */
     public static final int RET_HOME_LIMITED_SHOP_GOODS_DISABLE_VALUE = 9796;
+    /**
+     * <code>RET_HOME_WORLD_WOOD_MATERIAL_EMPTY = 9797;</code>
+     */
+    public static final int RET_HOME_WORLD_WOOD_MATERIAL_EMPTY_VALUE = 9797;
+    /**
+     * <code>RET_HOME_WORLD_WOOD_MATERIAL_NOT_FOUND = 9798;</code>
+     */
+    public static final int RET_HOME_WORLD_WOOD_MATERIAL_NOT_FOUND_VALUE = 9798;
+    /**
+     * <code>RET_HOME_WORLD_WOOD_MATERIAL_COUNT_INVALID = 9799;</code>
+     */
+    public static final int RET_HOME_WORLD_WOOD_MATERIAL_COUNT_INVALID_VALUE = 9799;
+    /**
+     * <code>RET_HOME_WORLD_WOOD_EXCHANGE_EXCEED_LIMIT = 9800;</code>
+     */
+    public static final int RET_HOME_WORLD_WOOD_EXCHANGE_EXCEED_LIMIT_VALUE = 9800;
     /**
      * <code>RET_SUMO_ACTIVITY_STAGE_NOT_OPEN = 10000;</code>
      */
@@ -7739,21 +7855,21 @@ public final class RetcodeOuterClass {
      */
     public static final int RET_GACHA_ACTIVITY_HAVE_ROBOT_LIMIT_VALUE = 10316;
     /**
-     * <code>RET_SUMMER_TIME_V_2_COIN_EXCEED_LIMIT = 10317;</code>
+     * <code>RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT = 10317;</code>
      */
-    public static final int RET_SUMMER_TIME_V_2_COIN_EXCEED_LIMIT_VALUE = 10317;
+    public static final int RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT_VALUE = 10317;
     /**
-     * <code>RET_SUMMER_TIME_V_2_COIN_NOT_ENOUGH = 10318;</code>
+     * <code>RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH = 10318;</code>
      */
-    public static final int RET_SUMMER_TIME_V_2_COIN_NOT_ENOUGH_VALUE = 10318;
+    public static final int RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH_VALUE = 10318;
     /**
-     * <code>RET_SUMMER_TIME_V_2_DUNGEON_STAGE_NOT_OPEN = 10319;</code>
+     * <code>RET_SUMMER_TIME_V2_DUNGEON_STAGE_NOT_OPEN = 10319;</code>
      */
-    public static final int RET_SUMMER_TIME_V_2_DUNGEON_STAGE_NOT_OPEN_VALUE = 10319;
+    public static final int RET_SUMMER_TIME_V2_DUNGEON_STAGE_NOT_OPEN_VALUE = 10319;
     /**
-     * <code>RET_SUMMER_TIME_V_2_PREV_DUNGEON_NOT_COMPLETE = 10320;</code>
+     * <code>RET_SUMMER_TIME_V2_PREV_DUNGEON_NOT_COMPLETE = 10320;</code>
      */
-    public static final int RET_SUMMER_TIME_V_2_PREV_DUNGEON_NOT_COMPLETE_VALUE = 10320;
+    public static final int RET_SUMMER_TIME_V2_PREV_DUNGEON_NOT_COMPLETE_VALUE = 10320;
     /**
      * <code>RET_ROGUE_DIARY_AVATAR_DEATH = 10350;</code>
      */
@@ -7782,6 +7898,22 @@ public final class RetcodeOuterClass {
      * <code>RET_ROGUE_DIARY_CONTENT_CLOSED = 10366;</code>
      */
     public static final int RET_ROGUE_DIARY_CONTENT_CLOSED_VALUE = 10366;
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_A_NOT_ENOUGH = 10380;</code>
+     */
+    public static final int RET_GRAVEN_INNOCENCE_COIN_A_NOT_ENOUGH_VALUE = 10380;
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_B_NOT_ENOUGH = 10381;</code>
+     */
+    public static final int RET_GRAVEN_INNOCENCE_COIN_B_NOT_ENOUGH_VALUE = 10381;
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_A_EXCEED_LIMIT = 10382;</code>
+     */
+    public static final int RET_GRAVEN_INNOCENCE_COIN_A_EXCEED_LIMIT_VALUE = 10382;
+    /**
+     * <code>RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMIT = 10383;</code>
+     */
+    public static final int RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMIT_VALUE = 10383;
     /**
      * <code>RET_ISLAND_PARTY_STAGE_NOT_OPEN = 10371;</code>
      */
@@ -8038,6 +8170,18 @@ public final class RetcodeOuterClass {
      * <code>RET_UGC_BAN_PUBLISH = 11159;</code>
      */
     public static final int RET_UGC_BAN_PUBLISH_VALUE = 11159;
+    /**
+     * <code>RET_COMPOUND_BOOST_ITEM_NOT_EXIST = 11201;</code>
+     */
+    public static final int RET_COMPOUND_BOOST_ITEM_NOT_EXIST_VALUE = 11201;
+    /**
+     * <code>RET_COMPOUND_BOOST_TARGET_NOT_EXIST = 11202;</code>
+     */
+    public static final int RET_COMPOUND_BOOST_TARGET_NOT_EXIST_VALUE = 11202;
+    /**
+     * <code>RET_QUICK_HIT_TREE_EMPTY_TREES = 11211;</code>
+     */
+    public static final int RET_QUICK_HIT_TREE_EMPTY_TREES_VALUE = 11211;
 
 
     public final int getNumber() {
@@ -8135,7 +8279,7 @@ public final class RetcodeOuterClass {
         case 126: return RET_TEAM_AVATAR_IN_EXPEDITION;
         case 127: return RET_TEAM_CAN_NOT_CHOSE_REPLACE_USE;
         case 128: return RET_AVATAR_IN_COMBAT;
-        case 130: return RET_NICKNAME_UTF_8_ERROR;
+        case 130: return RET_NICKNAME_UTF8_ERROR;
         case 131: return RET_NICKNAME_TOO_LONG;
         case 132: return RET_NICKNAME_WORD_ILLEGAL;
         case 133: return RET_NICKNAME_TOO_MANY_DIGITS;
@@ -8165,6 +8309,9 @@ public final class RetcodeOuterClass {
         case 169: return RET_FLYCLOAK_PLATFORM_TYPE_ERR;
         case 170: return RET_IN_TRANSFER;
         case 171: return RET_IS_IN_LOCK_AVATAR;
+        case 172: return RET_FULL_BACKUP_TEAM;
+        case 173: return RET_BACKUP_TEAM_ID_NOT_VALID;
+        case 174: return RET_BACKUP_TEAM_IS_CUR_TEAM;
         case 201: return RET_FLOAT_ERROR;
         case 301: return RET_NPC_NOT_EXIST;
         case 302: return RET_NPC_TOO_FAR;
@@ -8176,6 +8323,8 @@ public final class RetcodeOuterClass {
         case 403: return RET_QUEST_CONTENT_ERROR;
         case 404: return RET_BARGAIN_NOT_ACTIVATED;
         case 405: return RET_BARGAIN_FINISHED;
+        case 406: return RET_INFERENCE_ASSOCIATE_WORD_ERROR;
+        case 407: return RET_INFERENCE_SUBMIT_WORD_NO_CONCLUSION;
         case 501: return RET_POINT_NOT_UNLOCKED;
         case 502: return RET_POINT_TOO_FAR;
         case 503: return RET_POINT_ALREAY_UNLOCKED;
@@ -8360,6 +8509,8 @@ public final class RetcodeOuterClass {
         case 829: return RET_GADGET_INTERACT_COND_NOT_MEET;
         case 830: return RET_GADGET_INTERACT_PARAM_ERROR;
         case 831: return RET_GADGET_CUSTOM_COMBINATION_INVALID;
+        case 832: return RET_DESHRET_OBELISK_DUPLICATE_INTERACT;
+        case 833: return RET_DESHRET_OBELISK_NO_AVAIL_CHEST;
         case 860: return RET_ACTIVITY_CLOSE;
         case 861: return RET_ACTIVITY_ITEM_ERROR;
         case 862: return RET_ACTIVITY_CONTRIBUTION_NOT_ENOUGH;
@@ -8617,7 +8768,7 @@ public final class RetcodeOuterClass {
         case 7027: return RET_REPORT_CONTENT_ILLEGAL;
         case 7028: return RET_REMARK_WORD_ILLEGAL;
         case 7029: return RET_REMARK_TOO_LONG;
-        case 7030: return RET_REMARK_UTF_8_ERROR;
+        case 7030: return RET_REMARK_UTF8_ERROR;
         case 7031: return RET_REMARK_IS_EMPTY;
         case 7032: return RET_ASK_ADD_FRIEND_CD;
         case 7033: return RET_SHOW_AVATAR_INFO_NOT_EXIST;
@@ -8897,6 +9048,10 @@ public final class RetcodeOuterClass {
         case 9794: return RET_HOME_BGM_FURNITURE_NOT_FOUND;
         case 9795: return RET_HOME_BGM_NOT_SUPPORT_BY_CUR_SCENE;
         case 9796: return RET_HOME_LIMITED_SHOP_GOODS_DISABLE;
+        case 9797: return RET_HOME_WORLD_WOOD_MATERIAL_EMPTY;
+        case 9798: return RET_HOME_WORLD_WOOD_MATERIAL_NOT_FOUND;
+        case 9799: return RET_HOME_WORLD_WOOD_MATERIAL_COUNT_INVALID;
+        case 9800: return RET_HOME_WORLD_WOOD_EXCHANGE_EXCEED_LIMIT;
         case 10000: return RET_SUMO_ACTIVITY_STAGE_NOT_OPEN;
         case 10001: return RET_SUMO_ACTIVITY_SWITCH_TEAM_IN_CD;
         case 10002: return RET_SUMO_ACTIVITY_TEAM_NUM_INCORRECT;
@@ -8991,10 +9146,10 @@ public final class RetcodeOuterClass {
         case 10310: return RET_ACTIVITY_FRIEND_HAVE_GIFT_LIMIT;
         case 10315: return RET_GACHA_ACTIVITY_HAVE_REWARD_LIMIT;
         case 10316: return RET_GACHA_ACTIVITY_HAVE_ROBOT_LIMIT;
-        case 10317: return RET_SUMMER_TIME_V_2_COIN_EXCEED_LIMIT;
-        case 10318: return RET_SUMMER_TIME_V_2_COIN_NOT_ENOUGH;
-        case 10319: return RET_SUMMER_TIME_V_2_DUNGEON_STAGE_NOT_OPEN;
-        case 10320: return RET_SUMMER_TIME_V_2_PREV_DUNGEON_NOT_COMPLETE;
+        case 10317: return RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT;
+        case 10318: return RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH;
+        case 10319: return RET_SUMMER_TIME_V2_DUNGEON_STAGE_NOT_OPEN;
+        case 10320: return RET_SUMMER_TIME_V2_PREV_DUNGEON_NOT_COMPLETE;
         case 10350: return RET_ROGUE_DIARY_AVATAR_DEATH;
         case 10351: return RET_ROGUE_DIARY_AVATAR_TIRED;
         case 10352: return RET_ROGUE_DIARY_AVATAR_DUPLICATED;
@@ -9002,6 +9157,10 @@ public final class RetcodeOuterClass {
         case 10354: return RET_ROGUE_DIARY_VIRTUAL_COIN_EXCEED_LIMIT;
         case 10355: return RET_ROGUE_DIARY_VIRTUAL_COIN_NOT_ENOUGH;
         case 10366: return RET_ROGUE_DIARY_CONTENT_CLOSED;
+        case 10380: return RET_GRAVEN_INNOCENCE_COIN_A_NOT_ENOUGH;
+        case 10381: return RET_GRAVEN_INNOCENCE_COIN_B_NOT_ENOUGH;
+        case 10382: return RET_GRAVEN_INNOCENCE_COIN_A_EXCEED_LIMIT;
+        case 10383: return RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMIT;
         case 10371: return RET_ISLAND_PARTY_STAGE_NOT_OPEN;
         case 11001: return RET_NOT_IN_FISHING;
         case 11002: return RET_FISH_STATE_ERROR;
@@ -9066,6 +9225,9 @@ public final class RetcodeOuterClass {
         case 11157: return RET_UGC_NOT_AUTH;
         case 11158: return RET_UGC_NOT_OPEN;
         case 11159: return RET_UGC_BAN_PUBLISH;
+        case 11201: return RET_COMPOUND_BOOST_ITEM_NOT_EXIST;
+        case 11202: return RET_COMPOUND_BOOST_TARGET_NOT_EXIST;
+        case 11211: return RET_QUICK_HIT_TREE_EMPTY_TREES;
         default: return null;
       }
     }
@@ -9131,7 +9293,7 @@ public final class RetcodeOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\rRetcode.proto*\360\230\002\n\007Retcode\022\014\n\010RET_SUCC" +
+      "\n\rRetcode.proto*\335\236\002\n\007Retcode\022\014\n\010RET_SUCC" +
       "\020\000\022\025\n\010RET_FAIL\020\377\377\377\377\377\377\377\377\377\001\022\021\n\rRET_SVR_ERR" +
       "OR\020\001\022\025\n\021RET_UNKNOWN_ERROR\020\002\022\020\n\014RET_FREQU" +
       "ENT\020\003\022\032\n\026RET_NODE_FORWARD_ERROR\020\004\022\030\n\024RET" +
@@ -9181,857 +9343,875 @@ public final class RetcodeOuterClass {
       "_AVATAR\020|\022\036\n\032RET_TEAM_COST_EXCEED_LIMIT\020" +
       "}\022!\n\035RET_TEAM_AVATAR_IN_EXPEDITION\020~\022&\n\"" +
       "RET_TEAM_CAN_NOT_CHOSE_REPLACE_USE\020\177\022\031\n\024" +
-      "RET_AVATAR_IN_COMBAT\020\200\001\022\035\n\030RET_NICKNAME_" +
-      "UTF_8_ERROR\020\202\001\022\032\n\025RET_NICKNAME_TOO_LONG\020" +
-      "\203\001\022\036\n\031RET_NICKNAME_WORD_ILLEGAL\020\204\001\022!\n\034RE" +
-      "T_NICKNAME_TOO_MANY_DIGITS\020\205\001\022\032\n\025RET_NIC" +
-      "KNAME_IS_EMPTY\020\206\001\022\037\n\032RET_NICKNAME_MONTHL" +
-      "Y_LIMIT\020\207\001\022\035\n\030RET_NICKNAME_NOT_CHANGED\020\210" +
-      "\001\022\032\n\025RET_PLAYER_NOT_ONLINE\020\214\001\022\034\n\027RET_OPE" +
-      "N_STATE_NOT_OPEN\020\215\001\022\027\n\022RET_FEATURE_CLOSE" +
-      "D\020\216\001\022%\n RET_AVATAR_EXPEDITION_AVATAR_DIE" +
-      "\020\230\001\022&\n!RET_AVATAR_EXPEDITION_COUNT_LIMIT" +
-      "\020\231\001\022&\n!RET_AVATAR_EXPEDITION_MAIN_FORBID" +
-      "\020\232\001\022\'\n\"RET_AVATAR_EXPEDITION_TRIAL_FORBI" +
-      "D\020\233\001\022\032\n\025RET_TEAM_NAME_ILLEGAL\020\234\001\022\032\n\025RET_" +
-      "IS_NOT_IN_STANDBY\020\235\001\022\026\n\021RET_IS_IN_DUNGEO" +
-      "N\020\236\001\022 \n\033RET_IS_IN_LOCK_AVATAR_QUEST\020\237\001\022\036" +
-      "\n\031RET_IS_USING_TRIAL_AVATAR\020\240\001\022\035\n\030RET_IS" +
-      "_USING_TEMP_AVATAR\020\241\001\022\031\n\024RET_NOT_HAS_FLY" +
-      "CLOAK\020\242\001\022\"\n\035RET_FETTER_REWARD_ALREADY_GO" +
-      "T\020\243\001\022\'\n\"RET_FETTER_REWARD_LEVEL_NOT_ENOU" +
-      "GH\020\244\001\022%\n RET_WORLD_LEVEL_ADJUST_MIN_LEVE" +
-      "L\020\245\001\022\036\n\031RET_WORLD_LEVEL_ADJUST_CD\020\246\001\022\030\n\023" +
-      "RET_NOT_HAS_COSTUME\020\247\001\022\035\n\030RET_COSTUME_AV" +
-      "ATAR_ERROR\020\250\001\022#\n\036RET_FLYCLOAK_PLATFORM_T" +
-      "YPE_ERR\020\251\001\022\024\n\017RET_IN_TRANSFER\020\252\001\022\032\n\025RET_" +
-      "IS_IN_LOCK_AVATAR\020\253\001\022\024\n\017RET_FLOAT_ERROR\020" +
-      "\311\001\022\026\n\021RET_NPC_NOT_EXIST\020\255\002\022\024\n\017RET_NPC_TO" +
-      "O_FAR\020\256\002\022\031\n\024RET_NOT_CURRENT_TALK\020\257\002\022\030\n\023R" +
-      "ET_NPC_CREATE_FAIL\020\260\002\022\026\n\021RET_NPC_MOVE_FA" +
-      "IL\020\261\002\022\030\n\023RET_QUEST_NOT_EXIST\020\221\003\022\026\n\021RET_Q" +
-      "UEST_IS_FAIL\020\222\003\022\034\n\027RET_QUEST_CONTENT_ERR" +
-      "OR\020\223\003\022\036\n\031RET_BARGAIN_NOT_ACTIVATED\020\224\003\022\031\n" +
-      "\024RET_BARGAIN_FINISHED\020\225\003\022\033\n\026RET_POINT_NO" +
-      "T_UNLOCKED\020\365\003\022\026\n\021RET_POINT_TOO_FAR\020\366\003\022\036\n" +
-      "\031RET_POINT_ALREAY_UNLOCKED\020\367\003\022\031\n\024RET_ENT" +
-      "ITY_NOT_EXIST\020\370\003\022\031\n\024RET_ENTER_SCENE_FAIL" +
-      "\020\371\003\022\036\n\031RET_PLAYER_IS_ENTER_SCENE\020\372\003\022\027\n\022R" +
-      "ET_CITY_MAX_LEVEL\020\373\003\022\024\n\017RET_AREA_LOCKED\020" +
-      "\374\003\022\030\n\023RET_JOIN_OTHER_WAIT\020\375\003\022\037\n\032RET_WEAT" +
-      "HER_AREA_NOT_FOUND\020\376\003\022\032\n\025RET_WEATHER_IS_" +
-      "LOCKED\020\377\003\022\032\n\025RET_NOT_IN_SELF_SCENE\020\200\004\022\030\n" +
-      "\023RET_GROUP_NOT_EXIST\020\201\004\022\032\n\025RET_MARK_NAME" +
-      "_ILLEGAL\020\202\004\022\034\n\027RET_MARK_ALREADY_EXISTS\020\203" +
-      "\004\022\026\n\021RET_MARK_OVERFLOW\020\204\004\022\030\n\023RET_MARK_NO" +
-      "T_EXISTS\020\205\004\022\032\n\025RET_MARK_UNKNOWN_TYPE\020\206\004\022" +
-      "\033\n\026RET_MARK_NAME_TOO_LONG\020\207\004\022\026\n\021RET_DIST" +
-      "ANCE_LONG\020\210\004\022\"\n\035RET_ENTER_SCENE_TOKEN_IN" +
-      "VALID\020\211\004\022\033\n\026RET_NOT_IN_WORLD_SCENE\020\212\004\022\034\n" +
-      "\027RET_ANY_GALLERY_STARTED\020\213\004\022\032\n\025RET_GALLE" +
-      "RY_NOT_START\020\214\004\022.\n)RET_GALLERY_INTERRUPT" +
-      "_ONLY_ON_SINGLE_MODE\020\215\004\022!\n\034RET_GALLERY_C" +
-      "ANNOT_INTERRUPT\020\216\004\022\037\n\032RET_GALLERY_WORLD_" +
-      "NOT_MEET\020\217\004\022\037\n\032RET_GALLERY_SCENE_NOT_MEE" +
-      "T\020\220\004\022!\n\034RET_CUR_PLAY_CANNOT_TRANSFER\020\221\004\022" +
-      "&\n!RET_CANT_USE_WIDGET_IN_HOME_SCENE\020\222\004\022" +
-      "\036\n\031RET_SCENE_GROUP_NOT_MATCH\020\223\004\022\030\n\023RET_P" +
-      "OS_ROT_INVALID\020\247\004\022\036\n\031RET_MARK_INVALID_SC" +
-      "ENE_ID\020\250\004\022*\n%RET_INVALID_SCENE_TO_USE_AN" +
-      "CHOR_POINT\020\251\004\022\036\n\031RET_ENTER_HOME_SCENE_FA" +
-      "IL\020\252\004\022\032\n\025RET_CUR_SCENE_IS_NULL\020\253\004\022\027\n\022RET" +
-      "_GROUP_ID_ERROR\020\254\004\022$\n\037RET_GALLERY_INTERR" +
-      "UPT_NOT_OWNER\020\255\004\022\032\n\025RET_NO_SPRING_IN_ARE" +
-      "A\020\256\004\022\032\n\025RET_AREA_NOT_IN_SCENE\020\257\004\022\030\n\023RET_" +
-      "INVALID_CITY_ID\020\260\004\022\031\n\024RET_INVALID_SCENE_" +
-      "ID\020\261\004\022 \n\033RET_DEST_SCENE_IS_NOT_ALLOW\020\262\004\022" +
-      "\037\n\032RET_LEVEL_TAG_SWITCH_IN_CD\020\263\004\022 \n\033RET_" +
-      "LEVEL_TAG_ALREADY_EXIST\020\264\004\022\030\n\023RET_INVALI" +
-      "D_AREA_ID\020\265\004\022\027\n\022RET_ITEM_NOT_EXIST\020\331\004\022\037\n" +
-      "\032RET_PACK_EXCEED_MAX_WEIGHT\020\332\004\022\032\n\025RET_IT" +
-      "EM_NOT_DROPABLE\020\333\004\022\030\n\023RET_ITEM_NOT_USABL" +
-      "E\020\334\004\022\037\n\032RET_ITEM_INVALID_USE_COUNT\020\335\004\022 \n" +
-      "\033RET_ITEM_INVALID_DROP_COUNT\020\336\004\022\033\n\026RET_I" +
-      "TEM_ALREADY_EXIST\020\337\004\022\031\n\024RET_ITEM_IN_COOL" +
-      "DOWN\020\340\004\022\036\n\031RET_ITEM_COUNT_NOT_ENOUGH\020\341\004\022" +
-      "\034\n\027RET_ITEM_INVALID_TARGET\020\342\004\022\031\n\024RET_REC" +
-      "IPE_NOT_EXIST\020\343\004\022\026\n\021RET_RECIPE_LOCKED\020\344\004" +
-      "\022\030\n\023RET_RECIPE_UNLOCKED\020\345\004\022\034\n\027RET_COMPOU" +
-      "ND_QUEUE_FULL\020\346\004\022\034\n\027RET_COMPOUND_NOT_FIN" +
-      "ISH\020\347\004\022\032\n\025RET_MAIL_ITEM_NOT_GET\020\350\004\022\032\n\025RE" +
-      "T_ITEM_EXCEED_LIMIT\020\351\004\022\033\n\026RET_AVATAR_CAN" +
-      "_NOT_USE\020\352\004\022\037\n\032RET_ITEM_NEED_PLAYER_LEVE" +
-      "L\020\353\004\022\034\n\027RET_RECIPE_NOT_AUTO_QTE\020\354\004\022\034\n\027RE" +
-      "T_COMPOUND_BUSY_QUEUE\020\355\004\022\030\n\023RET_NEED_MOR" +
-      "E_SCOIN\020\356\004\022\036\n\031RET_SKILL_DEPOT_NOT_FOUND\020" +
-      "\357\004\022\031\n\024RET_HCOIN_NOT_ENOUGH\020\360\004\022\031\n\024RET_SCO" +
-      "IN_NOT_ENOUGH\020\361\004\022\033\n\026RET_HCOIN_EXCEED_LIM" +
-      "IT\020\362\004\022\033\n\026RET_SCOIN_EXCEED_LIMIT\020\363\004\022\025\n\020RE" +
-      "T_MAIL_EXPIRED\020\364\004\022\031\n\024RET_REWARD_HAS_TAKE" +
-      "N\020\365\004\022 \n\033RET_COMBINE_COUNT_TOO_LARGE\020\366\004\022\032" +
-      "\n\025RET_GIVING_ITEM_WRONG\020\367\004\022\033\n\026RET_GIVING" +
-      "_IS_FINISHED\020\370\004\022\033\n\026RET_GIVING_NOT_ACTIVE" +
-      "D\020\371\004\022\031\n\024RET_FORGE_QUEUE_FULL\020\372\004\022\035\n\030RET_F" +
-      "ORGE_QUEUE_CAPACITY\020\373\004\022\036\n\031RET_FORGE_QUEU" +
-      "E_NOT_FOUND\020\374\004\022\032\n\025RET_FORGE_QUEUE_EMPTY\020" +
-      "\375\004\022\031\n\024RET_NOT_SUPPORT_ITEM\020\376\004\022\023\n\016RET_ITE" +
-      "M_EMPTY\020\377\004\022\035\n\030RET_VIRTUAL_EXCEED_LIMIT\020\200" +
-      "\005\022\036\n\031RET_MATERIAL_EXCEED_LIMIT\020\201\005\022\033\n\026RET" +
-      "_EQUIP_EXCEED_LIMIT\020\202\005\022\"\n\035RET_ITEM_SHOUL" +
-      "D_HAVE_NO_LEVEL\020\203\005\022*\n%RET_WEAPON_PROMOTE" +
-      "_LEVEL_EXCEED_LIMIT\020\204\005\022\035\n\030RET_WEAPON_LEV" +
-      "EL_INVALID\020\205\005\022\031\n\024RET_UNKNOW_ITEM_TYPE\020\206\005" +
-      "\022\033\n\026RET_ITEM_COUNT_IS_ZERO\020\207\005\022\030\n\023RET_ITE" +
-      "M_IS_EXPIRED\020\210\005\022!\n\034RET_ITEM_EXCEED_OUTPU" +
-      "T_LIMIT\020\211\005\022\033\n\026RET_EQUIP_LEVEL_HIGHER\020\212\005\022" +
-      "&\n!RET_EQUIP_CAN_NOT_WAKE_OFF_WEAPON\020\213\005\022" +
-      "\036\n\031RET_EQUIP_HAS_BEEN_WEARED\020\214\005\022!\n\034RET_E" +
-      "QUIP_WEARED_CANNOT_DROP\020\215\005\022\031\n\024RET_AWAKEN" +
-      "_LEVEL_MAX\020\216\005\022\031\n\024RET_MCOIN_NOT_ENOUGH\020\217\005" +
-      "\022\033\n\026RET_MCOIN_EXCEED_LIMIT\020\220\005\022\031\n\024RET_RES" +
-      "IN_NOT_ENOUGH\020\224\005\022\033\n\026RET_RESIN_EXCEED_LIM" +
-      "IT\020\225\005\022\034\n\027RET_RESIN_OPENSTATE_OFF\020\226\005\022$\n\037R" +
-      "ET_RESIN_BOUGHT_COUNT_EXCEEDED\020\227\005\022*\n%RET" +
-      "_RESIN_CARD_DAILY_REWARD_HAS_TAKEN\020\230\005\022\033\n" +
-      "\026RET_RESIN_CARD_EXPIRED\020\231\005\022\034\n\027RET_AVATAR" +
-      "_CAN_NOT_COOK\020\232\005\022\031\n\024RET_ATTACH_AVATAR_CD" +
-      "\020\233\005\022#\n\036RET_AUTO_RECOVER_OPENSTATE_OFF\020\234\005" +
-      "\022+\n&RET_AUTO_RECOVER_BOUGHT_COUNT_EXCEED" +
-      "ED\020\235\005\022\032\n\025RET_RESIN_GAIN_FAILED\020\236\005\022$\n\037RET" +
-      "_WIDGET_ORNAMENTS_TYPE_ERROR\020\237\005\022\"\n\035RET_A" +
-      "LL_TARGET_SATIATION_FULL\020\240\005\022$\n\037RET_FORGE" +
-      "_WORLD_LEVEL_NOT_MATCH\020\241\005\022\037\n\032RET_FORGE_P" +
-      "OINT_NOT_ENOUGH\020\242\005\022!\n\034RET_WIDGET_ANCHOR_" +
-      "POINT_FULL\020\243\005\022&\n!RET_WIDGET_ANCHOR_POINT" +
-      "_NOT_FOUND\020\244\005\022%\n RET_ALL_BONFIRE_EXCEED_" +
-      "MAX_COUNT\020\245\005\022!\n\034RET_BONFIRE_EXCEED_MAX_C" +
-      "OUNT\020\246\005\022\035\n\030RET_LUNCH_BOX_DATA_ERROR\020\247\005\022!" +
-      "\n\034RET_INVALID_QUICK_USE_WIDGET\020\250\005\022$\n\037RET" +
-      "_INVALID_REPLACE_RESIN_COUNT\020\251\005\022\'\n\"RET_P" +
-      "REV_DETECTED_GATHER_NOT_FOUND\020\252\005\022\036\n\031RET_" +
-      "GOT_ALL_ONEOFF_GAHTER\020\253\005\022#\n\036RET_INVALID_" +
-      "WIDGET_MATERIAL_ID\020\254\005\022)\n$RET_WIDGET_DETE" +
-      "CTOR_NO_HINT_TO_CLEAR\020\255\005\022,\n\'RET_WIDGET_A" +
-      "LREADY_WITHIN_NEARBY_RADIUS\020\256\005\022,\n\'RET_WI" +
-      "DGET_CLIENT_COLLECTOR_NEED_POINTS\020\257\005\022\031\n\024" +
-      "RET_WIDGET_IN_COMBAT\020\260\005\022!\n\034RET_WIDGET_NO" +
-      "T_SET_QUICK_USE\020\261\005\022\036\n\031RET_ALREADY_ATTACH" +
-      "_WIDGET\020\262\005\022\030\n\023RET_EQUIP_IS_LOCKED\020\263\005\022\030\n\023" +
-      "RET_FORGE_IS_LOCKED\020\264\005\022\032\n\025RET_COMBINE_IS" +
-      "_LOCKED\020\265\005\022!\n\034RET_FORGE_OUTPUT_STACK_LIM" +
-      "IT\020\266\005\022\037\n\032RET_ALREADY_DETTACH_WIDGET\020\267\005\022(" +
-      "\n#RET_GADGET_BUILDER_EXCEED_MAX_COUNT\020\270\005" +
-      "\022/\n*RET_REUNION_PRIVILEGE_RESIN_TYPE_IS_" +
-      "NORMAL\020\271\005\022(\n#RET_BONUS_COUNT_EXCEED_DOUB" +
-      "LE_LIMIT\020\272\005\022(\n#RET_RELIQUARY_DECOMPOSE_P" +
-      "ARAM_ERROR\020\273\005\022&\n!RET_ITEM_COMBINE_COUNT_" +
-      "NOT_ENOUGH\020\274\005\022\030\n\023RET_GOODS_NOT_EXIST\020\275\005\022" +
-      "\"\n\035RET_GOODS_MATERIAL_NOT_ENOUGH\020\276\005\022\032\n\025R" +
-      "ET_GOODS_NOT_IN_TIME\020\277\005\022!\n\034RET_GOODS_BUY" +
-      "_NUM_NOT_ENOUGH\020\300\005\022\034\n\027RET_GOODS_BUY_NUM_" +
-      "ERROR\020\301\005\022\026\n\021RET_SHOP_NOT_OPEN\020\302\005\022\037\n\032RET_" +
-      "SHOP_CONTENT_NOT_MATCH\020\303\005\022\027\n\022RET_CHAT_FO" +
-      "RBIDDEN\020\236\006\022\020\n\013RET_CHAT_CD\020\237\006\022\030\n\023RET_CHAT" +
-      "_FREQUENTLY\020\240\006\022\031\n\024RET_GADGET_NOT_EXIST\020\241" +
-      "\006\022\037\n\032RET_GADGET_NOT_INTERACTIVE\020\242\006\022\036\n\031RE" +
-      "T_GADGET_NOT_GATHERABLE\020\243\006\022\030\n\023RET_CHEST_" +
-      "IS_LOCKED\020\244\006\022\033\n\026RET_GADGET_CREATE_FAIL\020\245" +
-      "\006\022!\n\034RET_WORKTOP_OPTION_NOT_EXIST\020\246\006\022!\n\034" +
-      "RET_GADGET_STATUE_NOT_ACTIVE\020\247\006\022\035\n\030RET_G" +
-      "ADGET_STATUE_OPENED\020\250\006\022$\n\037RET_BOSS_CHEST" +
-      "_NO_QUALIFICATION\020\251\006\022\"\n\035RET_BOSS_CHEST_L" +
-      "IFE_TIME_OVER\020\252\006\022\"\n\035RET_BOSS_CHEST_WEEK_" +
-      "NUM_LIMIT\020\253\006\022%\n RET_BOSS_CHEST_GUEST_WOR" +
-      "LD_LEVEL\020\254\006\022\035\n\030RET_BOSS_CHEST_HAS_TAKEN\020" +
-      "\255\006\022\'\n\"RET_BLOSSOM_CHEST_NO_QUALIFICATION" +
-      "\020\256\006\022%\n RET_BLOSSOM_CHEST_LIFE_TIME_OVER\020" +
-      "\257\006\022 \n\033RET_BLOSSOM_CHEST_HAS_TAKEN\020\260\006\022(\n#" +
-      "RET_BLOSSOM_CHEST_GUEST_WORLD_LEVEL\020\261\006\022(" +
-      "\n#RET_MP_PLAY_REWARD_NO_QUALIFICATION\020\262\006" +
-      "\022!\n\034RET_MP_PLAY_REWARD_HAS_TAKEN\020\263\006\022(\n#R" +
-      "ET_GENERAL_REWARD_NO_QUALIFICATION\020\264\006\022&\n" +
-      "!RET_GENERAL_REWARD_LIFE_TIME_OVER\020\265\006\022!\n" +
-      "\034RET_GENERAL_REWARD_HAS_TAKEN\020\266\006\022\033\n\026RET_" +
-      "GADGET_NOT_VEHICLE\020\267\006\022\036\n\031RET_VEHICLE_SLO" +
-      "T_OCCUPIED\020\270\006\022\027\n\022RET_NOT_IN_VEHICLE\020\271\006\022\035" +
-      "\n\030RET_CREATE_VEHICLE_IN_CD\020\272\006\022#\n\036RET_CRE" +
-      "ATE_VEHICLE_POS_INVALID\020\273\006\022!\n\034RET_VEHICL" +
-      "E_POINT_NOT_UNLOCK\020\274\006\022&\n!RET_GADGET_INTE" +
-      "RACT_COND_NOT_MEET\020\275\006\022$\n\037RET_GADGET_INTE" +
-      "RACT_PARAM_ERROR\020\276\006\022*\n%RET_GADGET_CUSTOM" +
-      "_COMBINATION_INVALID\020\277\006\022\027\n\022RET_ACTIVITY_" +
-      "CLOSE\020\334\006\022\034\n\027RET_ACTIVITY_ITEM_ERROR\020\335\006\022)" +
-      "\n$RET_ACTIVITY_CONTRIBUTION_NOT_ENOUGH\020\336" +
-      "\006\022\"\n\035RET_SEA_LAMP_PHASE_NOT_FINISH\020\337\006\022\037\n" +
-      "\032RET_SEA_LAMP_FLY_NUM_LIMIT\020\340\006\022\'\n\"RET_SE" +
-      "A_LAMP_FLY_LAMP_WORD_ILLEGAL\020\341\006\022&\n!RET_A" +
-      "CTIVITY_WATCHER_REWARD_TAKEN\020\342\006\022-\n(RET_A" +
-      "CTIVITY_WATCHER_REWARD_NOT_FINISHED\020\343\006\022#" +
-      "\n\036RET_SALESMAN_ALREADY_DELIVERED\020\344\006\022)\n$R" +
-      "ET_SALESMAN_REWARD_COUNT_NOT_ENOUGH\020\345\006\022\"" +
-      "\n\035RET_SALESMAN_POSITION_INVALID\020\346\006\022%\n RE" +
-      "T_DELIVER_NOT_FINISH_ALL_QUEST\020\347\006\022*\n%RET" +
-      "_DELIVER_ALREADY_TAKE_DAILY_REWARD\020\350\006\022$\n" +
-      "\037RET_ASTER_PROGRESS_EXCEED_LIMIT\020\351\006\022\"\n\035R" +
-      "ET_ASTER_CREDIT_EXCEED_LIMIT\020\352\006\022!\n\034RET_A" +
-      "STER_TOKEN_EXCEED_LIMIT\020\353\006\022 \n\033RET_ASTER_" +
-      "CREDIT_NOT_ENOUGH\020\354\006\022\037\n\032RET_ASTER_TOKEN_" +
-      "NOT_ENOUGH\020\355\006\022\'\n\"RET_ASTER_SPECIAL_REWAR" +
-      "D_HAS_TAKEN\020\356\006\022*\n%RET_FLIGHT_GROUP_ACTIV" +
-      "ITY_NOT_STARTED\020\357\006\022/\n*RET_ASTER_MID_PREV" +
-      "IOUS_BATTLE_NOT_FINISHED\020\360\006\0225\n0RET_DRAGO" +
-      "N_SPINE_SHIMMERING_ESSENCE_EXCEED_LIMIT\020" +
-      "\361\006\022/\n*RET_DRAGON_SPINE_WARM_ESSENCE_EXCE" +
-      "ED_LIMIT\020\362\006\0223\n.RET_DRAGON_SPINE_WONDROUS" +
-      "_ESSENCE_EXCEED_LIMIT\020\363\006\0223\n.RET_DRAGON_S" +
-      "PINE_SHIMMERING_ESSENCE_NOT_ENOUGH\020\364\006\022-\n" +
-      "(RET_DRAGON_SPINE_WARM_ESSENCE_NOT_ENOUG" +
-      "H\020\365\006\0221\n,RET_DRAGON_SPINE_WONDROUS_ESSENC" +
-      "E_NOT_ENOUGH\020\366\006\022+\n&RET_EFFIGY_FIRST_PASS" +
-      "_REWARD_HAS_TAKEN\020\373\006\022 \n\033RET_EFFIGY_REWAR" +
-      "D_HAS_TAKEN\020\374\006\022,\n\'RET_TREASURE_MAP_ADD_T" +
-      "OKEN_EXCEED_LIMIT\020\375\006\022\'\n\"RET_TREASURE_MAP" +
-      "_TOKEN_NOT_ENOUGHT\020\376\006\022#\n\036RET_SEA_LAMP_CO" +
-      "IN_EXCEED_LIMIT\020\377\006\022!\n\034RET_SEA_LAMP_COIN_" +
-      "NOT_ENOUGH\020\200\007\022)\n$RET_SEA_LAMP_POPULARITY" +
-      "_EXCEED_LIMIT\020\201\007\022(\n#RET_ACTIVITY_AVATAR_" +
-      "REWARD_NOT_OPEN\020\202\007\022)\n$RET_ACTIVITY_AVATA" +
-      "R_REWARD_HAS_TAKEN\020\203\007\022\'\n\"RET_ARENA_ACTIV" +
-      "ITY_ALREADY_STARTED\020\204\007\022\037\n\032RET_TALENT_ALR" +
-      "EAY_UNLOCKED\020\205\007\022!\n\034RET_PREV_TALENT_NOT_U" +
-      "NLOCKED\020\206\007\022$\n\037RET_BIG_TALENT_POINT_NOT_E" +
-      "NOUGH\020\207\007\022&\n!RET_SMALL_TALENT_POINT_NOT_E" +
-      "NOUGH\020\210\007\022 \n\033RET_PROUD_SKILL_ALREADY_GOT\020" +
-      "\211\007\022!\n\034RET_PREV_PROUD_SKILL_NOT_GET\020\212\007\022\036\n" +
-      "\031RET_PROUD_SKILL_MAX_LEVEL\020\213\007\022*\n%RET_CAN" +
-      "DIDATE_SKILL_DEPOT_ID_NOT_FIND\020\216\007\022 \n\033RET" +
-      "_SKILL_DEPOT_IS_THE_SAME\020\217\007\022\032\n\025RET_MONST" +
-      "ER_NOT_EXIST\020\351\007\022\034\n\027RET_MONSTER_CREATE_FA" +
-      "IL\020\352\007\022\033\n\026RET_DUNGEON_ENTER_FAIL\020\315\010\022\032\n\025RE" +
-      "T_DUNGEON_QUIT_FAIL\020\316\010\022\'\n\"RET_DUNGEON_EN" +
-      "TER_EXCEED_DAY_COUNT\020\317\010\022(\n#RET_DUNGEON_R" +
-      "EVIVE_EXCEED_MAX_COUNT\020\320\010\022\034\n\027RET_DUNGEON" +
-      "_REVIVE_FAIL\020\321\010\022\034\n\027RET_DUNGEON_NOT_SUCCE" +
-      "ED\020\322\010\022\037\n\032RET_DUNGEON_CAN_NOT_CANCEL\020\323\010\022\035" +
-      "\n\030RET_DEST_DUNGEON_SETTLED\020\324\010\022\'\n\"RET_DUN" +
-      "GEON_CANDIDATE_TEAM_IS_FULL\020\325\010\022*\n%RET_DU" +
-      "NGEON_CANDIDATE_TEAM_IS_DISMISS\020\326\010\022-\n(RE" +
-      "T_DUNGEON_CANDIDATE_TEAM_NOT_ALL_READY\020\327" +
-      "\010\0221\n,RET_DUNGEON_CANDIDATE_TEAM_HAS_REPE" +
-      "AT_AVATAR\020\330\010\022*\n%RET_DUNGEON_CANDIDATE_NO" +
-      "T_SINGEL_PASS\020\331\010\022+\n&RET_DUNGEON_REPLAY_N" +
-      "EED_ALL_PLAYER_DIE\020\332\010\022(\n#RET_DUNGEON_REP" +
-      "LAY_HAS_REVIVE_COUNT\020\333\010\022\035\n\030RET_DUNGEON_O" +
-      "THERS_LEAVE\020\334\010\022\"\n\035RET_DUNGEON_ENTER_LEVE" +
-      "L_LIMIT\020\335\010\022(\n#RET_DUNGEON_CANNOT_ENTER_P" +
-      "LOT_IN_MP\020\336\010\022$\n\037RET_DUNGEON_DROP_SUBFIEL" +
-      "D_LIMIT\020\337\010\0220\n+RET_DUNGEON_BE_INVITE_PLAY" +
-      "ER_AVATAR_ALL_DIE\020\340\010\022\034\n\027RET_DUNGEON_CANN" +
-      "OT_KICK\020\341\010\0223\n.RET_DUNGEON_CANDIDATE_TEAM" +
-      "_SOMEONE_LEVEL_LIMIT\020\342\010\022\036\n\031RET_DUNGEON_I" +
-      "N_FORCE_QUIT\020\343\010\022#\n\036RET_DUNGEON_GUEST_QUI" +
-      "T_DUNGEON\020\344\010\022\034\n\027RET_DUNGEON_TICKET_FAIL\020" +
-      "\345\010\022\033\n\026RET_MP_NOT_IN_MY_WORLD\020\261\t\022\026\n\021RET_M" +
-      "P_IN_MP_MODE\020\262\t\022\031\n\024RET_MP_SCENE_IS_FULL\020" +
-      "\263\t\022\036\n\031RET_MP_MODE_NOT_AVAILABLE\020\264\t\022 \n\033RE" +
-      "T_MP_PLAYER_NOT_ENTERABLE\020\265\t\022\032\n\025RET_MP_Q" +
-      "UEST_BLOCK_MP\020\266\t\022\031\n\024RET_MP_IN_ROOM_SCENE" +
-      "\020\267\t\022\031\n\024RET_MP_WORLD_IS_FULL\020\270\t\022\"\n\035RET_MP" +
-      "_PLAYER_NOT_ALLOW_ENTER\020\271\t\022\037\n\032RET_MP_PLA" +
-      "YER_DISCONNECTED\020\272\t\022\032\n\025RET_MP_NOT_IN_MP_" +
-      "MODE\020\273\t\022\033\n\026RET_MP_OWNER_NOT_ENTER\020\274\t\022#\n\036" +
-      "RET_MP_ALLOW_ENTER_PLAYER_FULL\020\275\t\022%\n RET" +
-      "_MP_TARGET_PLAYER_IN_TRANSFER\020\276\t\022!\n\034RET_" +
-      "MP_TARGET_ENTERING_OTHER\020\277\t\022\032\n\025RET_MP_OT" +
-      "HER_ENTERING\020\300\t\022%\n RET_MP_ENTER_MAIN_PLA" +
-      "YER_IN_PLOT\020\301\t\022\031\n\024RET_MP_NOT_PS_PLAYER\020\302" +
-      "\t\022\033\n\026RET_MP_PLAY_NOT_ACTIVE\020\303\t\022\037\n\032RET_MP" +
-      "_PLAY_REMAIN_REWARDS\020\304\t\022\032\n\025RET_MP_PLAY_N" +
-      "O_REWARD\020\305\t\022\033\n\026RET_MP_OPEN_STATE_FAIL\020\307\t" +
-      "\022\037\n\032RET_MP_PLAYER_IN_BLACKLIST\020\310\t\022\031\n\024RET" +
-      "_MP_REPLY_TIMEOUT\020\311\t\022\024\n\017RET_MP_IS_BLOCK\020" +
-      "\312\t\022(\n#RET_MP_ENTER_MAIN_PLAYER_IN_MP_PLA" +
-      "Y\020\313\t\022\035\n\030RET_MP_IN_MP_PLAY_BATTLE\020\314\t\022%\n R" +
-      "ET_MP_GUEST_HAS_REWARD_REMAINED\020\315\t\022\033\n\026RE" +
-      "T_MP_QUIT_MP_INVALID\020\316\t\022)\n$RET_MP_OTHER_" +
-      "DATA_VERSION_NOT_LATEST\020\317\t\022#\n\036RET_MP_DAT" +
-      "A_VERSION_NOT_LATEST\020\320\t\022#\n\036RET_MP_CUR_WO" +
-      "RLD_NOT_ENTERABLE\020\321\t\022\037\n\032RET_MP_ANY_GALLE" +
-      "RY_STARTED\020\322\t\022\034\n\027RET_MP_HAS_ACTIVE_DRAFT" +
-      "\020\323\t\022\035\n\030RET_MP_PLAYER_IN_DUNGEON\020\324\t\022\026\n\021RE" +
-      "T_MP_MATCH_FULL\020\325\t\022\027\n\022RET_MP_MATCH_LIMIT" +
-      "\020\326\t\022\033\n\026RET_MP_MATCH_IN_PUNISH\020\327\t\022\034\n\027RET_" +
-      "MP_IS_IN_MULTISTAGE\020\330\t\022\037\n\032RET_MP_MATCH_P" +
-      "LAY_NOT_OPEN\020\331\t\022\"\n\035RET_MP_ONLY_MP_WITH_P" +
-      "S_PLAYER\020\332\t\022%\n RET_MP_GUEST_LOADING_FIRS" +
-      "T_ENTER\020\333\t\022+\n&RET_MP_SUMMER_TIME_SPRINT_" +
-      "BOAT_ONGOING\020\334\t\0220\n+RET_MP_BLITZ_RUSH_PAR" +
-      "KOUR_CHALLENGE_ONGOING\020\335\t\022\036\n\031RET_MP_MUSI" +
-      "C_GAME_ONGOING\020\336\t\022\031\n\024RET_MP_IN_MPING_MOD" +
-      "E\020\337\t\022!\n\034RET_MP_OWNER_IN_SINGLE_SCENE\020\340\t\022" +
-      "\033\n\026RET_MP_IN_SINGLE_SCENE\020\341\t\022!\n\034RET_MP_R" +
-      "EPLY_NO_VALID_AVATAR\020\342\t\022\026\n\021RET_MAIL_PARA" +
-      "_ERR\020\225\n\022\025\n\020RET_MAIL_MAX_NUM\020\226\n\022\035\n\030RET_MA" +
-      "IL_ITEM_NUM_EXCEED\020\227\n\022\036\n\031RET_MAIL_TITLE_" +
-      "LEN_EXCEED\020\230\n\022 \n\033RET_MAIL_CONTENT_LEN_EX" +
-      "CEED\020\231\n\022\037\n\032RET_MAIL_SENDER_LEN_EXCEED\020\232\n" +
-      "\022\037\n\032RET_MAIL_PARSE_PACKET_FAIL\020\233\n\022\034\n\027RET" +
-      "_OFFLINE_MSG_MAX_NUM\020\234\n\022 \n\033RET_OFFLINE_M" +
-      "SG_SAME_TICKET\020\235\n\022#\n\036RET_MAIL_EXCEL_MAIL" +
-      "_TYPE_ERROR\020\236\n\022\037\n\032RET_MAIL_CANNOT_SEND_M" +
-      "COIN\020\237\n\022 \n\033RET_MAIL_HCOIN_EXCEED_LIMIT\020\240" +
-      "\n\022 \n\033RET_MAIL_SCOIN_EXCEED_LIMIT\020\241\n\022!\n\034R" +
-      "ET_MAIL_MATERIAL_ID_INVALID\020\242\n\022!\n\034RET_MA" +
-      "IL_AVATAR_EXCEED_LIMIT\020\243\n\022+\n&RET_MAIL_GA" +
-      "CHA_TICKET_ETC_EXCEED_LIMIT\020\244\n\022%\n RET_MA" +
-      "IL_ITEM_EXCEED_CEHUA_LIMIT\020\245\n\022*\n%RET_MAI" +
-      "L_SPACE_OR_REST_NUM_NOT_ENOUGH\020\246\n\022\035\n\030RET" +
-      "_MAIL_TICKET_IS_EMPTY\020\247\n\022\"\n\035RET_MAIL_TRA" +
-      "NSACTION_IS_EMPTY\020\250\n\022\036\n\031RET_MAIL_DELETE_" +
-      "COLLECTED\020\251\n\022\036\n\031RET_DAILY_TASK_NOT_FINIS" +
-      "H\020\262\n\022\035\n\030RET_DAILY_TAKS_HAS_TAKEN\020\263\n\022&\n!R" +
-      "ET_SOCIAL_OFFLINE_MSG_NUM_EXCEED\020\264\n\022(\n#R" +
-      "ET_DAILY_TASK_FILTER_CITY_NOT_OPEN\020\265\n\022\032\n" +
-      "\025RET_GACHA_INAVAILABLE\020\371\n\022\037\n\032RET_GACHA_R" +
-      "ANDOM_NOT_MATCH\020\372\n\022!\n\034RET_GACHA_SCHEDULE" +
-      "_NOT_MATCH\020\373\n\022\034\n\027RET_GACHA_INVALID_TIMES" +
-      "\020\374\n\022#\n\036RET_GACHA_COST_ITEM_NOT_ENOUGH\020\375\n" +
-      "\022\032\n\025RET_GACHA_TIMES_LIMIT\020\376\n\022\035\n\030RET_GACH" +
-      "A_WISH_SAME_ITEM\020\377\n\022 \n\033RET_GACHA_WISH_IN" +
-      "VALID_ITEM\020\200\013\022!\n\034RET_GACHA_MINORS_TIMES_" +
-      "LIMIT\020\201\013\022&\n!RET_INVESTIGAITON_NOT_IN_PRO" +
-      "GRESS\020\335\013\022!\n\034RET_INVESTIGAITON_UNCOMPLETE" +
-      "\020\336\013\022#\n\036RET_INVESTIGAITON_REWARD_TAKEN\020\337\013" +
-      "\022)\n$RET_INVESTIGAITON_TARGET_STATE_ERROR" +
-      "\020\340\013\022\034\n\027RET_PUSH_TIPS_NOT_FOUND\020\341\013\022!\n\034RET" +
-      "_SIGN_IN_RECORD_NOT_FOUND\020\342\013\022\037\n\032RET_ALRE" +
-      "ADY_HAVE_SIGNED_IN\020\343\013\022#\n\036RET_SIGN_IN_CON" +
-      "D_NOT_SATISFIED\020\344\013\022&\n!RET_BONUS_ACTIVITY" +
-      "_NOT_UNREWARDED\020\345\013\022\031\n\024RET_SIGN_IN_REWARD" +
-      "ED\020\346\013\022\027\n\022RET_TOWER_NOT_OPEN\020\361\013\022 \n\033RET_TO" +
-      "WER_HAVE_DAILY_RECORD\020\362\013\022\031\n\024RET_TOWER_NO" +
-      "T_RECORD\020\363\013\022\032\n\025RET_TOWER_HAVE_RECORD\020\364\013\022" +
-      "\035\n\030RET_TOWER_TEAM_NUM_ERROR\020\365\013\022\035\n\030RET_TO" +
-      "WER_FLOOR_NOT_OPEN\020\366\013\022#\n\036RET_TOWER_NO_FL" +
-      "OOR_STAR_RECORD\020\367\013\022\037\n\032RET_ALREADY_HAS_TO" +
-      "WER_BUFF\020\370\013\022\036\n\031RET_DUPLICATE_ENTER_LEVEL" +
-      "\020\371\013\022\033\n\026RET_NOT_IN_TOWER_LEVEL\020\372\013\022\027\n\022RET_" +
-      "IN_TOWER_LEVEL\020\373\013\022$\n\037RET_TOWER_PREV_FLOO" +
-      "R_NOT_FINISH\020\374\013\022\036\n\031RET_TOWER_STAR_NOT_EN" +
-      "OUGH\020\375\013\022 \n\033RET_BATTLE_PASS_NO_SCHEDULE\020\205" +
-      "\014\022\036\n\031RET_BATTLE_PASS_HAS_BUYED\020\206\014\022#\n\036RET" +
-      "_BATTLE_PASS_LEVEL_OVERFLOW\020\207\014\022$\n\037RET_BA" +
-      "TTLE_PASS_PRODUCT_EXPIRED\020\210\014\022\030\n\023RET_MATC" +
-      "H_HOST_QUIT\020\231\014\022\037\n\032RET_MATCH_ALREADY_IN_M" +
-      "ATCH\020\232\014\022\033\n\026RET_MATCH_NOT_IN_MATCH\020\233\014\022 \n\033" +
-      "RET_MATCH_APPLYING_ENTER_MP\020\234\014\022\'\n\"RET_WI" +
-      "DGET_TREASURE_SPOT_NOT_FOUND\020\255\014\022&\n!RET_W" +
-      "IDGET_TREASURE_ENTITY_EXISTS\020\256\014\022&\n!RET_W" +
-      "IDGET_TREASURE_SPOT_FAR_AWAY\020\257\014\022\'\n\"RET_W" +
-      "IDGET_TREASURE_FINISHED_TODAY\020\260\014\022)\n$RET_" +
-      "WIDGET_QUICK_USE_REQ_PARAM_ERROR\020\261\014\022$\n\037R" +
-      "ET_WIDGET_CAMERA_SCAN_ID_ERROR\020\262\014\022\032\n\025RET",
-      "_WIDGET_NOT_ACTIVE\020\263\014\022\"\n\035RET_WIDGET_FEAT" +
-      "HER_NOT_ACTIVE\020\264\014\022+\n&RET_WIDGET_FEATHER_" +
-      "GADGET_TOO_FAR_AWAY\020\265\014\022(\n#RET_WIDGET_CAP" +
-      "TURE_ANIMAL_NOT_EXIST\020\266\014\022-\n(RET_WIDGET_C" +
-      "APTURE_ANIMAL_DROP_BAG_LIMIT\020\267\014\022.\n)RET_W" +
-      "IDGET_CAPTURE_ANIMAL_CAN_NOT_CAPTURE\020\270\014\022" +
-      ")\n$RET_WIDGET_SKY_CRYSTAL_ALL_COLLECTED\020" +
-      "\271\014\022.\n)RET_WIDGET_SKY_CRYSTAL_HINT_ALREAD" +
-      "Y_EXIST\020\272\014\022%\n RET_WIDGET_SKY_CRYSTAL_NOT" +
-      "_FOUND\020\273\014\022,\n\'RET_WIDGET_SKY_CRYSTAL_NO_H" +
-      "INT_TO_CLEAR\020\274\014\022-\n(RET_WIDGET_LIGHT_STON" +
-      "E_ENERGY_NOT_ENOUGH\020\275\014\022-\n(RET_WIDGET_TOY" +
-      "_CRYSTAL_ENERGY_NOT_ENOUGH\020\276\014\022,\n\'RET_WID" +
-      "GET_LIGHT_STONE_LEVEL_NOT_ENOUGH\020\277\014\022\026\n\021R" +
-      "ET_UID_NOT_EXIST\020\321\017\022\030\n\023RET_PARSE_BIN_ERR" +
-      "OR\020\322\017\022\037\n\032RET_ACCOUNT_INFO_NOT_EXIST\020\323\017\022\035" +
-      "\n\030RET_ORDER_INFO_NOT_EXIST\020\324\017\022\035\n\030RET_SNA" +
-      "PSHOT_INDEX_ERROR\020\325\017\022\033\n\026RET_MAIL_HAS_BEE" +
-      "N_SENT\020\326\017\022\032\n\025RET_PRODUCT_NOT_EXIST\020\327\017\022\027\n" +
-      "\022RET_UNFINISH_ORDER\020\330\017\022\025\n\020RET_ID_NOT_EXI" +
-      "ST\020\331\017\022\032\n\025RET_ORDER_TRADE_EARLY\020\332\017\022\027\n\022RET" +
-      "_ORDER_FINISHED\020\333\017\022!\n\034RET_GAMESERVER_VER" +
-      "SION_WRONG\020\334\017\022\037\n\032RET_OFFLINE_OP_FULL_LEN" +
-      "GTH\020\335\017\022%\n RET_CONCERT_PRODUCT_OBTAIN_LIM" +
-      "IT\020\336\017\022*\n%RET_CONCERT_PRODUCT_TICKET_DUPL" +
-      "ICATED\020\337\017\022%\n RET_CONCERT_PRODUCT_TICKET_" +
-      "EMPTY\020\340\017\022\027\n\022RET_REDIS_MODIFIED\020\211\'\022\034\n\027RET" +
-      "_REDIS_UID_NOT_EXIST\020\212\'\022#\n\036RET_PATHFINDI" +
-      "NG_DATA_NOT_EXIST\020\361.\022*\n%RET_PATHFINDING_" +
-      "DESTINATION_NOT_EXIST\020\362.\022 \n\033RET_PATHFIND" +
-      "ING_ERROR_SCENE\020\363.\022\'\n\"RET_PATHFINDING_SC" +
-      "ENE_DATA_LOADING\020\364.\022\036\n\031RET_FRIEND_COUNT_" +
-      "EXCEEDED\020\3316\022\031\n\024RET_PLAYER_NOT_EXIST\020\3326\022!" +
-      "\n\034RET_ALREADY_SENT_ADD_REQUEST\020\3336\022\035\n\030RET" +
-      "_ASK_FRIEND_LIST_FULL\020\3346\022!\n\034RET_PLAYER_A" +
-      "LREADY_IS_FRIEND\020\3356\022\036\n\031RET_PLAYER_NOT_AS" +
-      "K_FRIEND\020\3366\022#\n\036RET_TARGET_FRIEND_COUNT_E" +
-      "XCEED\020\3376\022\023\n\016RET_NOT_FRIEND\020\3406\022%\n RET_BIR" +
-      "THDAY_CANNOT_BE_SET_TWICE\020\3416\022\037\n\032RET_CANN" +
-      "OT_ADD_SELF_FRIEND\020\3426\022\032\n\025RET_SIGNATURE_I" +
-      "LLEGAL\020\3436\022%\n RET_PS_PLAYER_CANNOT_ADD_FR" +
-      "IENDS\020\3446\022(\n#RET_PS_PLAYER_CANNOT_REMOVE_" +
-      "FRIENDS\020\3456\022\037\n\032RET_NAME_CARD_NOT_UNLOCKED" +
-      "\020\3466\022\035\n\030RET_ALREADY_IN_BLACKLIST\020\3476\022(\n#RE" +
-      "T_PS_PALEYRS_CANNOT_ADD_BLACKLIST\020\3506\022\036\n\031" +
-      "RET_PLAYER_BLACKLIST_FULL\020\3516\022 \n\033RET_PLAY" +
-      "ER_NOT_IN_BLACKLIST\020\3526\022+\n&RET_BLACKLIST_" +
-      "PLAYER_CANNOT_ADD_FRIEND\020\3536\022\034\n\027RET_IN_TA" +
-      "RGET_BLACKLIST\020\3546\022!\n\034RET_CANNOT_ADD_TARG" +
-      "ET_FRIEND\020\3556\022\036\n\031RET_BIRTHDAY_FORMAT_ERRO" +
-      "R\020\3566\022\035\n\030RET_ONLINE_ID_NOT_EXISTS\020\3576\022%\n R" +
-      "ET_FIRST_SHARE_REWARD_HAS_TAKEN\020\3606\022*\n%RE" +
-      "T_PS_PLAYER_CANNOT_REMOVE_BLACKLIST\020\3616\022\022" +
-      "\n\rRET_REPORT_CD\020\3626\022\037\n\032RET_REPORT_CONTENT" +
-      "_ILLEGAL\020\3636\022\034\n\027RET_REMARK_WORD_ILLEGAL\020\364" +
-      "6\022\030\n\023RET_REMARK_TOO_LONG\020\3656\022\033\n\026RET_REMAR" +
-      "K_UTF_8_ERROR\020\3666\022\030\n\023RET_REMARK_IS_EMPTY\020" +
-      "\3676\022\032\n\025RET_ASK_ADD_FRIEND_CD\020\3706\022#\n\036RET_SH" +
-      "OW_AVATAR_INFO_NOT_EXIST\020\3716\022\037\n\032RET_PLAYE" +
-      "R_NOT_SHOW_AVATAR\020\3726\022*\n%RET_SOCIAL_UPDAT" +
-      "E_SHOW_LIST_REPEAT_ID\020\3736\022\031\n\024RET_PSN_ID_N" +
-      "OT_FOUND\020\3746\022*\n%RET_EMOJI_COLLECTION_NUM_" +
-      "EXCEED_LIMIT\020\3756\022\025\n\020RET_REMARK_EMPTY\020\3766\022 " +
-      "\n\033RET_IN_TARGET_PSN_BLACKLIST\020\3776\022\036\n\031RET_" +
-      "SIGNATURE_NOT_CHANGED\020\2007\022 \n\033RET_SIGNATUR" +
-      "E_MONTHLY_LIMIT\020\2017\022\032\n\025RET_OFFERING_NOT_O" +
-      "PEN\020\2517\022\035\n\030RET_OFFERING_LEVEL_LIMIT\020\2527\022!\n" +
-      "\034RET_OFFERING_LEVEL_NOT_REACH\020\2537\022!\n\034RET_" +
-      "OFFERING_LEVEL_HAS_TAKEN\020\2547\022!\n\034RET_CITY_" +
-      "REPUTATION_NOT_OPEN\020\2757\022$\n\037RET_CITY_REPUT" +
-      "ATION_LEVEL_TAKEN\020\2767\022(\n#RET_CITY_REPUTAT" +
-      "ION_LEVEL_NOT_REACH\020\2777\022+\n&RET_CITY_REPUT" +
-      "ATION_PARENT_QUEST_TAKEN\020\3007\022.\n)RET_CITY_" +
-      "REPUTATION_PARENT_QUEST_UNFINISH\020\3017\022\'\n\"R" +
-      "ET_CITY_REPUTATION_ACCEPT_REQUEST\020\3027\022+\n&" +
-      "RET_CITY_REPUTATION_NOT_ACCEPT_REQUEST\020\303" +
-      "7\022-\n(RET_CITY_REPUTATION_ACCEPT_REQUEST_" +
-      "LIMIT\020\3047\022*\n%RET_CITY_REPUTATION_ENTRANCE" +
-      "_NOT_OPEN\020\3057\022-\n(RET_CITY_REPUTATION_TAKE" +
-      "N_REQUEST_REWARD\020\3067\022%\n RET_CITY_REPUTATI" +
-      "ON_SWITCH_CLOSE\020\3077\022-\n(RET_CITY_REPUTATIO" +
-      "N_ENTRACE_SWITCH_CLOSE\020\3107\022-\n(RET_CITY_RE" +
-      "PUTATION_TAKEN_EXPLORE_REWARD\020\3117\022*\n%RET_" +
-      "CITY_REPUTATION_EXPLORE_NOT_REACH\020\3127\022\034\n\027" +
-      "RET_MECHANICUS_NOT_OPEN\020\3207\022\037\n\032RET_MECHAN" +
-      "ICUS_GEAR_UNLOCK\020\3217\022\035\n\030RET_MECHANICUS_GE" +
-      "AR_LOCK\020\3227\022$\n\037RET_MECHANICUS_GEAR_LEVEL_" +
-      "LIMIT\020\3237\022#\n\036RET_MECHANICUS_COIN_NOT_ENOU" +
-      "GH\020\3247\022\037\n\032RET_MECHANICUS_NO_SEQUENCE\020\3257\022(" +
-      "\n#RET_MECHANICUS_SEQUENCE_LIMIT_LEVEL\020\3267" +
-      "\022\'\n\"RET_MECHANICUS_SEQUENCE_LIMIT_OPEN\020\327" +
-      "7\022)\n$RET_MECHANICUS_DIFFICULT_NOT_SUPPOR" +
-      "T\020\3307\022%\n RET_MECHANICUS_TICKET_NOT_ENOUGH" +
-      "\020\3317\022$\n\037RET_MECHANICUS_TEACH_NOT_FINISH\020\332" +
-      "7\022\"\n\035RET_MECHANICUS_TEACH_FINISHED\020\3337\022.\n" +
-      ")RET_MECHANICUS_PREV_DIFFICULT_LEVEL_BLO" +
-      "CK\020\3347\022 \n\033RET_MECHANICUS_PLAYER_LIMIT\020\3357\022" +
-      "\037\n\032RET_MECHANICUS_PUNISH_TIME\020\3367\022 \n\033RET_" +
-      "MECHANICUS_SWITCH_CLOSE\020\3377\022)\n$RET_MECHAN" +
-      "ICUS_BATTLE_NOT_IN_DUNGEON\020\3567\022)\n$RET_MEC" +
-      "HANICUS_BATTLE_PLAY_NOT_FOUND\020\3577\022.\n)RET_" +
-      "MECHANICUS_BATTLE_DUPLICATE_PICK_CARD\020\3607" +
-      "\022-\n(RET_MECHANICUS_BATTLE_PLAYER_NOT_IN_" +
-      "PLAY\020\3617\022-\n(RET_MECHANICUS_BATTLE_CARD_NO" +
-      "T_AVAILABLE\020\3627\022,\n\'RET_MECHANICUS_BATTLE_" +
-      "NOT_IN_CARD_STAGE\020\3637\022*\n%RET_MECHANICUS_B" +
-      "ATTLE_CARD_IS_WAITING\020\3647\022-\n(RET_MECHANIC" +
-      "US_BATTLE_CARD_ALL_CONFIRMED\020\3657\0221\n,RET_M" +
-      "ECHANICUS_BATTLE_CARD_ALREADY_CONFIRMED\020" +
-      "\3667\0222\n-RET_MECHANICUS_BATTLE_CARD_CONFIRM" +
-      "ED_BY_OTHER\020\3677\0221\n,RET_MECHANICUS_BATTLE_" +
-      "CARD_NOT_ENOUGH_POINTS\020\3707\022/\n*RET_MECHANI" +
-      "CUS_BATTLE_CARD_ALREADY_SKIPPED\020\3717\022!\n\034RE" +
-      "T_LEGENDARY_KEY_NOT_ENOUGH\020\301>\022#\n\036RET_LEG" +
-      "ENDARY_KEY_EXCEED_LIMIT\020\302>\022(\n#RET_DAILY_" +
-      "TASK_NOT_ENOUGH_TO_REDEEM\020\303>\022%\n RET_PERS" +
-      "ONAL_LINE_OPEN_STATE_OFF\020\304>\022\'\n\"RET_PERSO" +
-      "NAL_LINE_LEVEL_NOT_ENOUGH\020\305>\022\037\n\032RET_PERS" +
-      "ONAL_LINE_NOT_OPEN\020\306>\022+\n&RET_PERSONAL_LI" +
-      "NE_PRE_QUEST_NOT_FINISH\020\307>\022+\n&RET_HUNTIN" +
-      "G_ALREADY_FINISH_OFFER_LIMIT\020\211@\022%\n RET_H" +
-      "UNTING_HAS_UNFINISHED_OFFER\020\212@\022*\n%RET_HU" +
-      "NTING_FAILED_OFFER_NOT_CD_READY\020\213@\022\037\n\032RE" +
-      "T_HUNTING_NOT_TAKE_OFFER\020\214@\022\"\n\035RET_HUNTI" +
-      "NG_CANNOT_TAKE_TWICE\020\215@\022*\n%RET_RPIVATE_C" +
-      "HAT_INVALID_CONTENT_TYPE\020\305E\022*\n%RET_PRIVA" +
-      "TE_CHAT_TARGET_IS_NOT_FRIEND\020\306E\022+\n&RET_P" +
-      "RIVATE_CHAT_CONTENT_NOT_SUPPORTED\020\307E\022&\n!" +
-      "RET_PRIVATE_CHAT_CONTENT_TOO_LONG\020\310E\022#\n\036" +
-      "RET_PRIVATE_CHAT_PULL_TOO_FAST\020\311E\022!\n\034RET" +
-      "_PRIVATE_CHAT_REPEAT_READ\020\312E\022%\n RET_PRIV" +
-      "ATE_CHAT_READ_NOT_FRIEND\020\313E\022\031\n\024RET_REUNI" +
-      "ON_FINISHED\020\251F\022\036\n\031RET_REUNION_NOT_ACTIVA" +
-      "TED\020\252F\022*\n%RET_REUNION_ALREADY_TAKE_FIRST" +
-      "_REWARD\020\253F\022!\n\034RET_REUNION_SIGN_IN_REWARD" +
-      "ED\020\254F\022!\n\034RET_REUNION_WATCHER_REWARDED\020\255F" +
-      "\022#\n\036RET_REUNION_WATCHER_NOT_FINISH\020\256F\022!\n" +
-      "\034RET_REUNION_MISSION_REWARDED\020\257F\022#\n\036RET_" +
-      "REUNION_MISSION_NOT_FINISH\020\260F\022,\n\'RET_REU" +
-      "NION_WATCHER_REWARD_NOT_UNLOCKED\020\261F\022 \n\033R" +
-      "ET_BLESSING_CONTENT_CLOSED\020\215G\022\034\n\027RET_BLE" +
-      "SSING_NOT_ACTIVE\020\216G\022\"\n\035RET_BLESSING_NOT_" +
-      "TODAY_ENTITY\020\217G\022.\n)RET_BLESSING_ENTITY_E" +
-      "XCEED_SCAN_NUM_LIMIT\020\220G\022-\n(RET_BLESSING_" +
-      "DAILY_SCAN_NUM_EXCEED_LIMIT\020\221G\0220\n+RET_BL" +
-      "ESSING_REDEEM_REWARD_NUM_EXCEED_LIMIT\020\222G" +
-      "\022+\n&RET_BLESSING_REDEEM_PIC_NUM_NOT_ENOU" +
-      "GH\020\223G\022 \n\033RET_BLESSING_PIC_NOT_ENOUGH\020\224G\022" +
-      "\"\n\035RET_BLESSING_PIC_HAS_RECEIVED\020\225G\022(\n#R" +
-      "ET_BLESSING_TARGET_RECV_NUM_EXCEED\020\226G\022\'\n" +
-      "\"RET_FLEUR_FAIR_CREDIT_EXCEED_LIMIT\020\227G\022%" +
-      "\n RET_FLEUR_FAIR_CREDIT_NOT_ENOUGH\020\230G\022&\n" +
-      "!RET_FLEUR_FAIR_TOKEN_EXCEED_LIMIT\020\231G\022$\n" +
-      "\037RET_FLEUR_FAIR_TOKEN_NOT_ENOUGH\020\232G\022%\n R" +
-      "ET_FLEUR_FAIR_MINIGAME_NOT_OPEN\020\233G\0224\n/RE" +
-      "T_FLEUR_FAIR_MUSIC_GAME_DIFFICULTY_NOT_U" +
-      "NLOCK\020\234G\022\"\n\035RET_FLEUR_FAIR_DUNGEON_LOCKE" +
-      "D\020\235G\022\'\n\"RET_FLEUR_FAIR_DUNGEON_PUNISH_TI" +
-      "ME\020\236G\0222\n-RET_FLEUR_FAIR_ONLY_OWNER_CAN_R" +
-      "ESTART_MINIGAM\020\237G\022\'\n\"RET_WATER_SPIRIT_CO" +
-      "IN_EXCEED_LIMIT\020\240G\022%\n RET_WATER_SPIRIT_C" +
-      "OIN_NOT_ENOUGH\020\241G\022 \n\033RET_REGION_SEARCH_N" +
-      "O_SEARCH\020\242G\022\"\n\035RET_REGION_SEARCH_STATE_E" +
-      "RROR\020\243G\0224\n/RET_CHANNELLER_SLAB_LOOP_DUNG" +
-      "EON_STAGE_NOT_OPEN\020\252G\022.\n)RET_CHANNELLER_" +
-      "SLAB_LOOP_DUNGEON_NOT_OPEN\020\253G\022A\n<RET_CHA" +
-      "NNELLER_SLAB_LOOP_DUNGEON_FIRST_PASS_REW" +
-      "ARD_HAS_TAKEN\020\254G\022<\n7RET_CHANNELLER_SLAB_" +
-      "LOOP_DUNGEON_SCORE_REWARD_HAS_TAKEN\020\255G\0220" +
-      "\n+RET_CHANNELLER_SLAB_INVALID_ONE_OFF_DU" +
-      "NGEON\020\256G\022-\n(RET_CHANNELLER_SLAB_ONE_OFF_" +
-      "DUNGEON_DONE\020\257G\0227\n2RET_CHANNELLER_SLAB_O" +
-      "NE_OFF_DUNGEON_STAGE_NOT_OPEN\020\260G\022+\n&RET_" +
-      "CHANNELLER_SLAB_TOKEN_EXCEED_LIMIT\020\261G\022)\n" +
-      "$RET_CHANNELLER_SLAB_TOKEN_NOT_ENOUGH\020\262G" +
-      "\0226\n1RET_CHANNELLER_SLAB_PLAYER_NOT_IN_ON" +
-      "E_OFF_DUNGEON\020\263G\0223\n.RET_MIST_TRIAL_SELEC" +
-      "T_CHARACTER_NUM_NOT_ENOUGH\020\276G\022$\n\037RET_HID" +
-      "E_AND_SEEK_PLAY_NOT_OPEN\020\310G\022(\n#RET_HIDE_" +
-      "AND_SEEK_PLAY_MAP_NOT_OPEN\020\311G\022-\n(RET_SUM" +
-      "MER_TIME_DRAFT_WOORD_EXCEED_LIMIT\020\322G\022+\n&" +
-      "RET_SUMMER_TIME_DRAFT_WOORD_NOT_ENOUGH\020\323" +
-      "G\0220\n+RET_SUMMER_TIME_MINI_HARPASTUM_EXCE" +
-      "ED_LIMIT\020\324G\022-\n(RET_SUMMER_TIME_MINI_HARP" +
-      "ASTUMNOT_ENOUGH\020\325G\022+\n&RET_BOUNCE_CONJURI" +
-      "NG_COIN_EXCEED_LIMIT\020\334G\022)\n$RET_BOUNCE_CO" +
-      "NJURING_COIN_NOT_ENOUGH\020\335G\022!\n\034RET_CHESS_" +
-      "TEACH_MAP_FINISHED\020\337G\022#\n\036RET_CHESS_TEACH" +
-      "_MAP_UNFINISHED\020\340G\022 \n\033RET_CHESS_COIN_EXC" +
-      "EED_LIMIT\020\341G\022\036\n\031RET_CHESS_COIN_NOT_ENOUG" +
-      "H\020\342G\022\035\n\030RET_CHESS_IN_PUNISH_TIME\020\343G\022\"\n\035R" +
-      "ET_CHESS_PREV_MAP_UNFINISHED\020\344G\022\031\n\024RET_C" +
-      "HESS_MAP_LOCKED\020\345G\022\034\n\027RET_BLITZ_RUSH_NOT" +
-      "_OPEN\020\350G\022$\n\037RET_BLITZ_RUSH_DUNGEON_NOT_O" +
-      "PEN\020\351G\022\'\n\"RET_BLITZ_RUSH_COIN_A_EXCEED_L" +
-      "IMIT\020\352G\022\'\n\"RET_BLITZ_RUSH_COIN_B_EXCEED_" +
-      "LIMIT\020\353G\022%\n RET_BLITZ_RUSH_COIN_A_NOT_EN" +
-      "OUGH\020\354G\022%\n RET_BLITZ_RUSH_COIN_B_NOT_ENO" +
-      "UGH\020\355G\022&\n!RET_MIRACLE_RING_VALUE_NOT_ENO" +
-      "UGH\020\361G\022\030\n\023RET_MIRACLE_RING_CD\020\362G\022&\n!RET_" +
-      "MIRACLE_RING_REWARD_NOT_TAKEN\020\363G\022!\n\034RET_" +
-      "MIRACLE_RING_NOT_DELIVER\020\364G\022$\n\037RET_MIRAC" +
-      "LE_RING_DELIVER_EXCEED\020\365G\022!\n\034RET_MIRACLE" +
-      "_RING_HAS_CREATED\020\366G\022%\n RET_MIRACLE_RING" +
-      "_HAS_NOT_CREATED\020\367G\022\037\n\032RET_MIRACLE_RING_" +
-      "NOT_YOURS\020\370G\022\'\n\"RET_GADGET_FOUNDATION_UN" +
-      "AUTHORIZED\020\243H\022*\n%RET_GADGET_FOUNDATION_S" +
-      "CENE_NOT_FOUND\020\244H\022,\n\'RET_GADGET_FOUNDATI" +
-      "ON_NOT_IN_INIT_STATE\020\245H\0224\n/RET_GADGET_FO" +
-      "UNDATION_BILDING_POINT_NOT_ENOUGHT\020\246H\022-\n" +
-      "(RET_GADGET_FOUNDATION_NOT_IN_BUILT_STAT" +
-      "E\020\247H\022+\n&RET_GADGET_FOUNDATION_OP_NOT_SUP" +
-      "PORTED\020\250H\0222\n-RET_GADGET_FOUNDATION_REQ_P" +
-      "LAYER_NOT_IN_SCENE\020\251H\0223\n.RET_GADGET_FOUN" +
-      "DATION_LOCKED_BY_ANOTHER_PLAYER\020\252H\022%\n RE" +
-      "T_GADGET_FOUNDATION_NOT_LOCKED\020\253H\022)\n$RET" +
-      "_GADGET_FOUNDATION_DUPLICATE_LOCK\020\254H\022+\n&" +
-      "RET_GADGET_FOUNDATION_PLAYER_NOT_FOUND\020\255" +
-      "H\0220\n+RET_GADGET_FOUNDATION_PLAYER_GEAR_N" +
-      "OT_FOUND\020\256H\022+\n&RET_GADGET_FOUNDATION_ROT" +
-      "AION_DISABLED\020\257H\0223\n.RET_GADGET_FOUNDATIO" +
-      "N_REACH_DUNGEON_GEAR_LIMIT\020\260H\0222\n-RET_GAD" +
-      "GET_FOUNDATION_REACH_SINGLE_GEAR_LIMIT\020\261" +
-      "H\022,\n\'RET_GADGET_FOUNDATION_ROTATION_ON_G" +
-      "OING\020\262H\022$\n\037RET_OP_ACTIVITY_BONUS_NOT_FOU" +
-      "ND\020\325H\022\035\n\030RET_OP_ACTIVITY_NOT_OPEN\020\326H\022,\n\'" +
-      "RET_MULTISTAGE_PLAY_PLAYER_NOT_IN_SCENE\020" +
-      "\235J\022\"\n\035RET_MULTISTAGE_PLAY_NOT_FOUND\020\236J\022\036" +
-      "\n\031RET_COOP_CHAPTER_NOT_OPEN\020\201K\022\033\n\026RET_CO" +
-      "OP_COND_NOT_MEET\020\202K\022\032\n\025RET_COOP_POINT_LO" +
-      "CKED\020\203K\022\037\n\032RET_COOP_NOT_HAVE_PROGRESS\020\204K" +
-      "\022\036\n\031RET_COOP_REWARD_HAS_TAKEN\020\205K\022\037\n\032RET_" +
-      "DRAFT_HAS_ACTIVE_DRAFT\020\263K\022\036\n\031RET_DRAFT_N" +
-      "OT_IN_MY_WORLD\020\264K\022\035\n\030RET_DRAFT_NOT_SUPPO" +
-      "RT_MP\020\265K\022 \n\033RET_DRAFT_PLAYER_NOT_ENOUGH\020" +
-      "\266K\022\036\n\031RET_DRAFT_INCORRECT_SCENE\020\267K\022$\n\037RE" +
-      "T_DRAFT_OTHER_PLAYER_ENTERING\020\270K\022$\n\037RET_" +
-      "DRAFT_GUEST_IS_TRANSFERRING\020\271K\022\'\n\"RET_DR" +
-      "AFT_GUEST_NOT_IN_DRAFT_SCENE\020\272K\022\037\n\032RET_D" +
-      "RAFT_INVITE_OVER_TIME\020\273K\022\'\n\"RET_DRAFT_TW" +
-      "ICE_CONFIRM_OVER_TIMER\020\274K\022\024\n\017RET_HOME_UN" +
-      "KOWN\020\345K\022\"\n\035RET_HOME_INVALID_CLIENT_PARAM" +
-      "\020\346K\022&\n!RET_HOME_TARGE_PLAYER_HAS_NO_HOME" +
-      "\020\347K\022\030\n\023RET_HOME_NOT_ONLINE\020\350K\022\031\n\024RET_HOM" +
-      "E_PLAYER_FULL\020\351K\022\025\n\020RET_HOME_BLOCKED\020\352K\022" +
-      "*\n%RET_HOME_ALREADY_IN_TARGET_HOME_WORLD" +
-      "\020\353K\022\032\n\025RET_HOME_IN_EDIT_MODE\020\354K\022\036\n\031RET_H" +
-      "OME_NOT_IN_EDIT_MODE\020\355K\022\027\n\022RET_HOME_HAS_" +
-      "GUEST\020\356K\022(\n#RET_HOME_CANT_ENTER_BY_IN_ED" +
-      "IT_MODE\020\357K\022\"\n\035RET_HOME_CLIENT_PARAM_INVA" +
-      "LID\020\360K\022&\n!RET_HOME_PLAYER_NOT_IN_HOME_WO" +
-      "RLD\020\361K\022+\n&RET_HOME_PLAYER_NOT_IN_SELF_HO" +
-      "ME_WORLD\020\362K\022\036\n\031RET_HOME_NOT_FOUND_IN_MEM" +
-      "\020\363K\022\'\n\"RET_HOME_PLAYER_IN_HOME_ROOM_SCEN" +
-      "E\020\364K\022%\n RET_HOME_HOME_REFUSE_GUEST_ENTER" +
-      "\020\365K\022(\n#RET_HOME_OWNER_REFUSE_TO_ENTER_HO" +
-      "ME\020\366K\022\033\n\026RET_HOME_OWNER_OFFLINE\020\367K\022$\n\037RE" +
-      "T_HOME_FURNITURE_EXCEED_LIMIT\020\370K\022(\n#RET_" +
-      "HOME_FURNITURE_COUNT_NOT_ENOUGH\020\371K\022\"\n\035RE" +
-      "T_HOME_IN_TRY_ENTER_PROCESS\020\372K\022%\n RET_HO" +
-      "ME_ALREADY_IN_TARGET_SCENE\020\373K\022\037\n\032RET_HOM" +
-      "E_COIN_EXCEED_LIMIT\020\374K\022\035\n\030RET_HOME_COIN_" +
-      "NOT_ENOUGH\020\375K\022!\n\034RET_HOME_MODULE_NOT_UNL" +
-      "OCKED\020\376K\022\037\n\032RET_HOME_CUR_MODULE_CLOSED\020\377" +
-      "K\022*\n%RET_HOME_FURNITURE_SUITE_NOT_UNLOCK" +
-      "ED\020\200L\022\026\n\021RET_HOME_IN_MATCH\020\201L\022\027\n\022RET_HOM" +
-      "E_IN_COMBAT\020\202L\022\032\n\025RET_HOME_EDIT_MODE_CD\020" +
-      "\203L\022!\n\034RET_HOME_UPDATE_FURNITURE_CD\020\204L\022#\n" +
-      "\036RET_HOME_BLOCK_FURNITURE_LIMIT\020\205L\022\031\n\024RE" +
-      "T_HOME_NOT_SUPPORT\020\206L\022\034\n\027RET_HOME_STATE_" +
-      "NOT_OPEN\020\207L\022#\n\036RET_HOME_TARGET_STATE_NOT" +
-      "_OPEN\020\210L\022)\n$RET_HOME_APPLY_ENTER_OTHER_H" +
-      "OME_FAIL\020\211L\022 \n\033RET_HOME_SAVE_NO_MAIN_HOU" +
-      "SE\020\212L\022\030\n\023RET_HOME_IN_DUNGEON\020\213L\022!\n\034RET_H" +
-      "OME_ANY_GALLERY_STARTED\020\214L\022\036\n\031RET_HOME_Q" +
-      "UEST_BLOCK_HOME\020\215L\022!\n\034RET_HOME_WAITING_P" +
-      "RIOR_CHECK\020\216L\022#\n\036RET_HOME_PERSISTENT_CHE" +
-      "CK_FAIL\020\217L\022#\n\036RET_HOME_FIND_ONLINE_HOME_" +
-      "FAIL\020\220L\022\035\n\030RET_HOME_JOIN_SCENE_FAIL\020\221L\022\030" +
-      "\n\023RET_HOME_MAX_PLAYER\020\222L\022\031\n\024RET_HOME_IN_" +
-      "TRANSFER\020\223L\022&\n!RET_HOME_ANY_HOME_GALLERY" +
-      "_STARTED\020\224L\022$\n\037RET_HOME_CAN_NOT_ENTER_IN" +
-      "_AUDIT\020\225L\022#\n\036RET_FURNITURE_MAKE_INDEX_ER" +
-      "ROR\020\226L\022\036\n\031RET_FURNITURE_MAKE_LOCKED\020\227L\022$" +
-      "\n\037RET_FURNITURE_MAKE_CONFIG_ERROR\020\230L\022!\n\034" +
-      "RET_FURNITURE_MAKE_SLOT_FULL\020\231L\022*\n%RET_F" +
-      "URNITURE_MAKE_ADD_FURNITURE_FAIL\020\232L\022 \n\033R" +
-      "ET_FURNITURE_MAKE_UNFINISH\020\233L\022!\n\034RET_FUR" +
-      "NITURE_MAKE_IS_FINISH\020\234L\022+\n&RET_FURNITUR" +
-      "E_MAKE_NOT_IN_CORRECT_HOME\020\235L\022 \n\033RET_FUR" +
-      "NITURE_MAKE_NO_COUNT\020\236L\022(\n#RET_FURNITURE" +
-      "_MAKE_ACCELERATE_LIMIT\020\237L\022$\n\037RET_FURNITU" +
-      "RE_MAKE_NO_MAKE_DATA\020\240L\022 \n\033RET_HOME_LIMI" +
-      "TED_SHOP_CLOSE\020\241L\022\035\n\030RET_HOME_AVATAR_NOT" +
-      "_SHOW\020\242L\022&\n!RET_HOME_EVENT_COND_NOT_SATI" +
-      "SFIED\020\243L\022*\n%RET_HOME_INVALID_ARRANGE_ANI" +
-      "MAL_PARAM\020\244L\022\'\n\"RET_HOME_INVALID_ARRANGE" +
-      "_NPC_PARAM\020\245L\022)\n$RET_HOME_INVALID_ARRANG" +
-      "E_SUITE_PARAM\020\246L\022.\n)RET_HOME_INVALID_ARR" +
-      "ANGE_MAIN_HOUSE_PARAM\020\247L\022#\n\036RET_HOME_AVA" +
-      "TAR_STATE_NOT_OPEN\020\250L\022#\n\036RET_HOME_PLANT_" +
-      "FIELD_NOT_EMPTY\020\251L\022\037\n\032RET_HOME_PLANT_FIE" +
-      "LD_EMPTY\020\252L\022$\n\037RET_HOME_PLANT_FIELD_TYPE" +
-      "_ERROR\020\253L\022#\n\036RET_HOME_PLANT_TIME_NOT_ENO" +
-      "UGH\020\254L\022,\n\'RET_HOME_PLANT_SUB_FIELD_NUM_N" +
-      "OT_ENOUGH\020\255L\022%\n RET_HOME_PLANT_FIELD_PAR" +
-      "AM_ERROR\020\256L\022\"\n\035RET_HOME_FURNITURE_GUID_E" +
-      "RROR\020\257L\022%\n RET_HOME_FURNITURE_ARRANGE_LI" +
-      "MIT\020\260L\022 \n\033RET_HOME_FISH_FARMING_LIMIT\020\261L" +
-      "\022#\n\036RET_HOME_FISH_COUNT_NOT_ENOUGH\020\262L\022\"\n" +
-      "\035RET_HOME_FURNITURE_COST_LIMIT\020\263L\022&\n!RET" +
-      "_HOME_CUSTOM_FURNITURE_INVALID\020\264L\022)\n$RET" +
-      "_HOME_INVALID_ARRANGE_GROUP_PARAM\020\265L\022+\n&" +
-      "RET_HOME_FURNITURE_ARRANGE_GROUP_LIMIT\020\266" +
-      "L\0220\n+RET_HOME_PICTURE_FRAME_COOP_CG_GEND" +
-      "ER_ERROR\020\267L\022.\n)RET_HOME_PICTURE_FRAME_CO" +
-      "OP_CG_NOT_UNLOCK\020\270L\022&\n!RET_HOME_FURNITUR" +
-      "E_CANNOT_ARRANGE\020\271L\022*\n%RET_HOME_FURNITUR" +
-      "E_IN_DUPLICATE_SUITE\020\272L\022.\n)RET_HOME_FURN" +
-      "ITURE_CUSTOM_SUITE_TOO_SMALL\020\273L\022,\n\'RET_H" +
-      "OME_FURNITURE_CUSTOM_SUITE_TOO_BIG\020\274L\022*\n" +
-      "%RET_HOME_FURNITURE_SUITE_EXCEED_LIMIT\020\275" +
-      "L\0221\n,RET_HOME_FURNITURE_CUSTOM_SUITE_EXC" +
-      "EED_LIMIT\020\276L\0229\n4RET_HOME_FURNITURE_CUSTO" +
-      "M_SUITE_INVALID_SURFACE_TYPE\020\277L\022\036\n\031RET_H" +
-      "OME_BGM_ID_NOT_FOUND\020\300L\022\036\n\031RET_HOME_BGM_" +
-      "NOT_UNLOCKED\020\301L\022%\n RET_HOME_BGM_FURNITUR" +
-      "E_NOT_FOUND\020\302L\022*\n%RET_HOME_BGM_NOT_SUPPO" +
-      "RT_BY_CUR_SCENE\020\303L\022(\n#RET_HOME_LIMITED_S" +
-      "HOP_GOODS_DISABLE\020\304L\022%\n RET_SUMO_ACTIVIT" +
-      "Y_STAGE_NOT_OPEN\020\220N\022(\n#RET_SUMO_ACTIVITY" +
-      "_SWITCH_TEAM_IN_CD\020\221N\022)\n$RET_SUMO_ACTIVI" +
-      "TY_TEAM_NUM_INCORRECT\020\222N\022)\n$RET_LUNA_RIT" +
-      "E_ACTIVITY_AREA_ID_ERROR\020\224N\022-\n(RET_LUNA_" +
-      "RITE_ACTIVITY_BATTLE_NOT_FINISH\020\225N\022-\n(RE" +
-      "T_LUNA_RITE_ACTIVITY_ALREADY_SACRIFICE\020\226" +
-      "N\022/\n*RET_LUNA_RITE_ACTIVITY_ALREADY_TAKE" +
-      "_REWARD\020\227N\0220\n+RET_LUNA_RITE_ACTIVITY_SAC" +
-      "RIFICE_NOT_ENOUGH\020\230N\0223\n.RET_LUNA_RITE_AC" +
-      "TIVITY_SEARCHING_COND_NOT_MEET\020\231N\022\'\n\"RET" +
-      "_DIG_GADGET_CONFIG_ID_NOT_MATCH\020\237N\022\"\n\035RE" +
-      "T_DIG_FIND_NEAREST_POS_FAIL\020\240N\022\"\n\035RET_MU" +
-      "SIC_GAME_LEVEL_NOT_OPEN\020\245N\022$\n\037RET_MUSIC_" +
-      "GAME_LEVEL_NOT_UNLOCK\020\246N\022%\n RET_MUSIC_GA" +
-      "ME_LEVEL_NOT_STARTED\020\247N\022*\n%RET_MUSIC_GAM" +
-      "E_LEVEL_CONFIG_NOT_FOUND\020\250N\022&\n!RET_MUSIC" +
-      "_GAME_LEVEL_ID_NOT_MATCH\020\251N\022$\n\037RET_ROGUE" +
-      "LIKE_COIN_A_NOT_ENOUGH\020\257N\022$\n\037RET_ROGUELI" +
-      "KE_COIN_B_NOT_ENOUGH\020\260N\022$\n\037RET_ROGUELIKE" +
-      "_COIN_C_NOT_ENOUGH\020\261N\022&\n!RET_ROGUELIKE_C" +
-      "OIN_A_EXCEED_LIMIT\020\262N\022&\n!RET_ROGUELIKE_C" +
-      "OIN_B_EXCEED_LIMIT\020\263N\022&\n!RET_ROGUELIKE_C" +
-      "OIN_C_EXCEED_LIMIT\020\264N\022(\n#RET_ROGUELIKE_R" +
-      "UNE_COUNT_NOT_ENOUGH\020\265N\022\'\n\"RET_ROGUELIKE" +
-      "_NOT_IN_ROGUE_DUNGEON\020\266N\022!\n\034RET_ROGUELIK" +
-      "E_CELL_NOT_FOUND\020\267N\022&\n!RET_ROGUELIKE_CEL" +
-      "L_TYPE_INCORRECT\020\270N\022(\n#RET_ROGUELIKE_CEL" +
-      "L_ALREADY_FINISHED\020\271N\0223\n.RET_ROGUELIKE_D" +
-      "UNGEON_HAVE_UNFINISHED_PROGRESS\020\272N\022%\n RE" +
-      "T_ROGUELIKE_STAGE_NOT_FINISHED\020\273N\0224\n/RET" +
-      "_ROGUELIKE_STAGE_FIRST_PASS_REWARD_HAS_T" +
-      "AKEN\020\275N\022*\n%RET_ROGUELIKE_ACTIVITY_CONTEN" +
-      "T_CLOSED\020\276N\0221\n,RET_ROGUELIKE_DUNGEON_PRE" +
-      "_QUEST_NOT_FINISHED\020\277N\022#\n\036RET_ROGUELIKE_" +
-      "DUNGEON_NOT_OPEN\020\300N\022#\n\036RET_ROGUELIKE_SPR" +
-      "INT_IS_BANNED\020\301N\0221\n,RET_ROGUELIKE_DUNGEO" +
-      "N_PRE_STAGE_NOT_FINISHED\020\302N\022/\n*RET_ROGUE" +
-      "LIKE_ALL_AVATAR_DIE_CANNOT_RESUME\020\303N\022\'\n\"" +
-      "RET_PLANT_FLOWER_ALREADY_TAKE_SEED\020\310N\022.\n" +
-      ")RET_PLANT_FLOWER_FRIEND_HAVE_FLOWER_LIM" +
-      "IT\020\311N\0220\n+RET_PLANT_FLOWER_CAN_GIVE_FLOWE" +
-      "R_NOT_ENOUGH\020\312N\022-\n(RET_PLANT_FLOWER_WISH" +
-      "_FLOWER_KINDS_LIMIT\020\313N\022,\n\'RET_PLANT_FLOW" +
-      "ER_HAVE_FLOWER_NOT_ENOUGH\020\314N\0220\n+RET_PLAN" +
-      "T_FLOWER_FLOWER_COMBINATION_INVALID\020\315N\022 " +
-      "\n\033RET_HACHI_DUNGEON_NOT_VALID\020\304N\022%\n RET_" +
-      "HACHI_DUNGEON_STAGE_NOT_OPEN\020\305N\022(\n#RET_H" +
-      "ACHI_DUNGEON_TEAMMATE_NOT_PASS\020\306N\022&\n!RET" +
-      "_WINTER_CAMP_COIN_A_NOT_ENOUGH\020\327N\022&\n!RET" +
-      "_WINTER_CAMP_COIN_B_NOT_ENOUGH\020\330N\022(\n#RET" +
-      "_WINTER_CAMP_COIN_A_EXCEED_LIMIT\020\331N\022(\n#R" +
-      "ET_WINTER_CAMP_COIN_B_EXCEED_LIMIT\020\332N\022$\n" +
-      "\037RET_WINTER_CAMP_WISH_ID_INVALID\020\333N\022-\n(R" +
-      "ET_WINTER_CAMP_NOT_FOUND_RECV_ITEM_DATA\020" +
-      "\334N\022/\n*RET_WINTER_CAMP_FRIEND_ITEM_COUNT_" +
-      "OVERFLOW\020\335N\022-\n(RET_WINTER_CAMP_SELECT_IT" +
-      "EM_DATA_INVALID\020\336N\022$\n\037RET_WINTER_CAMP_IT" +
-      "EM_LIST_EMPTY\020\337N\022)\n$RET_WINTER_CAMP_REWA" +
-      "RD_ALREADY_TAKEN\020\340N\022%\n RET_WINTER_CAMP_S" +
-      "TAGE_NOT_FINISH\020\341N\022#\n\036RET_WINTER_CAMP_GA" +
-      "DGET_INVALID\020\342N\022\'\n\"RET_LANTERN_RITE_COIN" +
-      "_A_NOT_ENOUGH\020\352N\022\'\n\"RET_LANTERN_RITE_COI" +
-      "N_B_NOT_ENOUGH\020\353N\022\'\n\"RET_LANTERN_RITE_CO" +
-      "IN_C_NOT_ENOUGH\020\354N\022)\n$RET_LANTERN_RITE_C" +
-      "OIN_A_EXCEED_LIMIT\020\355N\022)\n$RET_LANTERN_RIT" +
-      "E_COIN_B_EXCEED_LIMIT\020\356N\022)\n$RET_LANTERN_" +
-      "RITE_COIN_C_EXCEED_LIMIT\020\357N\022/\n*RET_LANTE" +
-      "RN_RITE_PROJECTION_CONTENT_CLOSED\020\360N\022.\n)" +
-      "RET_LANTERN_RITE_PROJECTION_CAN_NOT_STAR" +
-      "T\020\361N\022&\n!RET_LANTERN_RITE_DUNGEON_NOT_OPE",
-      "N\020\362N\022+\n&RET_LANTERN_RITE_HAS_TAKEN_SKIN_" +
-      "REWARD\020\363N\0220\n+RET_LANTERN_RITE_NOT_FINISH" +
-      "ED_SKIN_WATCHERS\020\364N\022.\n)RET_LANTERN_RITE_" +
-      "FIREWORKS_CONTENT_CLOSED\020\365N\0223\n.RET_LANTE" +
-      "RN_RITE_FIREWORKS_CHALLENGE_NOT_START\020\366N" +
-      "\0222\n-RET_LANTERN_RITE_FIREWORKS_REFORM_PA" +
-      "RAM_ERROR\020\367N\0221\n,RET_LANTERN_RITE_FIREWOR" +
-      "KS_REFORM_SKILL_LOCK\020\370N\0229\n4RET_LANTERN_R" +
-      "ITE_FIREWORKS_REFORM_STAMINA_NOT_ENOUGH\020" +
-      "\371N\022\'\n\"RET_POTION_ACTIVITY_STAGE_NOT_OPEN" +
-      "\020\376N\022(\n#RET_POTION_ACTIVITY_LEVEL_HAVE_PA" +
-      "SS\020\377N\022+\n&RET_POTION_ACTIVITY_TEAM_NUM_IN" +
-      "CORRECT\020\200O\022%\n RET_POTION_ACTIVITY_AVATAR" +
-      "_IN_CD\020\201O\022#\n\036RET_POTION_ACTIVITY_BUFF_IN" +
-      "_CD\020\202O\022\'\n\"RET_IRODORI_POETRY_INVALID_LIN" +
-      "E_ID\020\210O\022(\n#RET_IRODORI_POETRY_INVALID_TH" +
-      "EME_ID\020\211O\022/\n*RET_IRODORI_POETRY_NOT_GET_" +
-      "ALL_INSPIRATION\020\212O\022/\n*RET_IRODORI_POETRY" +
-      "_INSPIRATION_REACH_LIMIE\020\213O\022.\n)RET_IRODO" +
-      "RI_POETRY_ENTITY_ALREADY_SCANNED\020\214O\022(\n#R" +
-      "ET_ACTIVITY_BANNER_ALREADY_CLEARED\020\274P\022\037\n" +
-      "\032RET_IRODORI_CHESS_NOT_OPEN\020\275P\022%\n RET_IR" +
-      "ODORI_CHESS_LEVEL_NOT_OPEN\020\276P\022#\n\036RET_IRO" +
-      "DORI_CHESS_MAP_NOT_OPEN\020\277P\022/\n*RET_IRODOR" +
-      "I_CHESS_MAP_CARD_ALREADY_EQUIPED\020\300P\022.\n)R" +
-      "ET_IRODORI_CHESS_EQUIP_CARD_EXCEED_LIMIT" +
-      "\020\301P\022+\n&RET_IRODORI_CHESS_MAP_CARD_NOT_EQ" +
-      "UIPED\020\302P\0223\n.RET_IRODORI_CHESS_ENTER_FAIL" +
-      "_CARD_EXCEED_LIMIT\020\303P\022(\n#RET_ACTIVITY_FR" +
-      "IEND_HAVE_GIFT_LIMIT\020\306P\022)\n$RET_GACHA_ACT" +
-      "IVITY_HAVE_REWARD_LIMIT\020\313P\022(\n#RET_GACHA_" +
-      "ACTIVITY_HAVE_ROBOT_LIMIT\020\314P\022*\n%RET_SUMM" +
-      "ER_TIME_V_2_COIN_EXCEED_LIMIT\020\315P\022(\n#RET_" +
-      "SUMMER_TIME_V_2_COIN_NOT_ENOUGH\020\316P\022/\n*RE" +
-      "T_SUMMER_TIME_V_2_DUNGEON_STAGE_NOT_OPEN" +
-      "\020\317P\0222\n-RET_SUMMER_TIME_V_2_PREV_DUNGEON_" +
-      "NOT_COMPLETE\020\320P\022!\n\034RET_ROGUE_DIARY_AVATA" +
-      "R_DEATH\020\356P\022!\n\034RET_ROGUE_DIARY_AVATAR_TIR" +
-      "ED\020\357P\022&\n!RET_ROGUE_DIARY_AVATAR_DUPLICAT" +
-      "ED\020\360P\022$\n\037RET_ROGUE_DIARY_COIN_NOT_ENOUGH" +
-      "\020\361P\022.\n)RET_ROGUE_DIARY_VIRTUAL_COIN_EXCE" +
-      "ED_LIMIT\020\362P\022,\n\'RET_ROGUE_DIARY_VIRTUAL_C" +
-      "OIN_NOT_ENOUGH\020\363P\022#\n\036RET_ROGUE_DIARY_CON" +
-      "TENT_CLOSED\020\376P\022$\n\037RET_ISLAND_PARTY_STAGE" +
-      "_NOT_OPEN\020\203Q\022\027\n\022RET_NOT_IN_FISHING\020\371U\022\031\n" +
-      "\024RET_FISH_STATE_ERROR\020\372U\022\030\n\023RET_FISH_BAI" +
-      "T_LIMIT\020\373U\022\035\n\030RET_FISHING_MAX_DISTANCE\020\374" +
-      "U\022\032\n\025RET_FISHING_IN_COMBAT\020\375U\022!\n\034RET_FIS" +
-      "HING_BATTLE_TOO_SHORT\020\376U\022\027\n\022RET_FISH_GON" +
-      "E_AWAY\020\377U\022#\n\036RET_CAN_NOT_EDIT_OTHER_DUNG" +
-      "EON\020\253V\022 \n\033RET_CUSTOM_DUNGEON_DISMATCH\020\254V" +
-      "\022\037\n\032RET_NO_CUSTOM_DUNGEON_DATA\020\255V\022\"\n\035RET" +
-      "_BUILD_CUSTOM_DUNGEON_FAIL\020\256V\022\'\n\"RET_CUS" +
-      "TOM_DUNGEON_ROOM_CHECK_FAIL\020\257V\022%\n RET_CU" +
-      "STOM_DUNGEON_SAVE_MAY_FAIL\020\260V\022\036\n\031RET_NOT" +
-      "_IN_CUSTOM_DUNGEON\020\261V\022%\n RET_CUSTOM_DUNG" +
-      "EON_INTERNAL_FAIL\020\262V\022#\n\036RET_CUSTOM_DUNGE" +
-      "ON_CAN_NOT_TRY\020\263V\022%\n RET_CUSTOM_DUNGEON_" +
-      "NO_START_ROOM\020\264V\022$\n\037RET_CUSTOM_DUNGEON_N" +
-      "O_ROOM_DATA\020\265V\022)\n$RET_CUSTOM_DUNGEON_SAV" +
-      "E_TOO_FREQUENT\020\266V\022%\n RET_CUSTOM_DUNGEON_" +
-      "NOT_SELF_PASS\020\267V\022!\n\034RET_CUSTOM_DUNGEON_L" +
-      "ACK_COIN\020\270V\022\'\n\"RET_CUSTOM_DUNGEON_NO_FIN" +
-      "ISH_BRICK\020\271V\022$\n\037RET_CUSTOM_DUNGEON_MULTI" +
-      "_FINISH\020\272V\022%\n RET_CUSTOM_DUNGEON_NOT_PUB" +
-      "LISHED\020\273V\022\"\n\035RET_CUSTOM_DUNGEON_FULL_STO" +
-      "RE\020\274V\022$\n\037RET_CUSTOM_DUNGEON_STORE_REPEAT" +
-      "\020\275V\022*\n%RET_CUSTOM_DUNGEON_CAN_NOT_STORE_" +
-      "SELF\020\276V\022%\n RET_CUSTOM_DUNGEON_NOT_SAVE_S" +
-      "UCC\020\277V\022)\n$RET_CUSTOM_DUNGEON_CAN_NOT_LIK" +
-      "E_SELF\020\300V\022!\n\034RET_CUSTOM_DUNGEON_NOT_FOUN" +
-      "D\020\301V\022\'\n\"RET_CUSTOM_DUNGEON_INVALID_SETTI" +
-      "NG\020\302V\022)\n$RET_CUSTOM_DUNGEON_NO_FINISH_SE" +
-      "TTING\020\303V\022$\n\037RET_CUSTOM_DUNGEON_SAVE_NOTH" +
-      "ING\020\304V\022$\n\037RET_CUSTOM_DUNGEON_NOT_IN_GROU" +
-      "P\020\305V\022$\n\037RET_CUSTOM_DUNGEON_NOT_OFFICIAL\020" +
-      "\306V\022&\n!RET_CUSTOM_DUNGEON_LIFE_NUM_ERROR\020" +
-      "\307V\022$\n\037RET_CUSTOM_DUNGEON_NO_OPEN_ROOM\020\310V" +
-      "\022*\n%RET_CUSTOM_DUNGEON_BRICK_EXCEED_LIMI" +
-      "T\020\311V\022+\n&RET_CUSTOM_DUNGEON_OFFICIAL_NOT_" +
-      "UNLOCK\020\312V\022&\n!RET_CAN_NOT_EDIT_OFFICIAL_S" +
-      "ETTING\020\313V\022#\n\036RET_CUSTOM_DUNGEON_BAN_PUBL" +
-      "ISH\020\314V\022&\n!RET_CUSTOM_DUNGEON_CAN_NOT_REP" +
-      "LAY\020\315V\022&\n!RET_CUSTOM_DUNGEON_NOT_OPEN_GR" +
-      "OUP\020\316V\022$\n\037RET_CUSTOM_DUNGEON_MAX_EDIT_NU" +
-      "M\020\317V\022)\n$RET_CUSTOM_DUNGEON_CAN_NOT_OUT_S" +
-      "TUCK\020\320V\022\037\n\032RET_CUSTOM_DUNGEON_MAX_TAG\020\321V" +
-      "\022#\n\036RET_CUSTOM_DUNGEON_INVALID_TAG\020\322V\022 \n" +
-      "\033RET_CUSTOM_DUNGEON_MAX_COST\020\323V\022,\n\'RET_C" +
-      "USTOM_DUNGEON_REQUEST_TOO_FREQUENT\020\324V\022 \n" +
-      "\033RET_CUSTOM_DUNGEON_NOT_OPEN\020\325V\022\032\n\025RET_S" +
-      "HARE_CD_ID_ERROR\020\335V\022\035\n\030RET_SHARE_CD_INDE" +
-      "X_ERROR\020\336V\022\027\n\022RET_SHARE_CD_IN_CD\020\337V\022\"\n\035R" +
-      "ET_SHARE_CD_TOKEN_NOT_ENOUGH\020\340V\022\025\n\020RET_U" +
-      "GC_DISMATCH\020\217W\022\033\n\026RET_UGC_DATA_NOT_FOUND" +
-      "\020\220W\022\034\n\027RET_UGC_BRIEF_NOT_FOUND\020\221W\022\025\n\020RET" +
-      "_UGC_DISABLED\020\222W\022\024\n\017RET_UGC_LIMITED\020\223W\022\023" +
-      "\n\016RET_UGC_LOCKED\020\224W\022\025\n\020RET_UGC_NOT_AUTH\020" +
-      "\225W\022\025\n\020RET_UGC_NOT_OPEN\020\226W\022\030\n\023RET_UGC_BAN" +
-      "_PUBLISH\020\227WB\033\n\031emu.grasscutter.net.proto" +
-      "b\006proto3"
+      "RET_AVATAR_IN_COMBAT\020\200\001\022\034\n\027RET_NICKNAME_" +
+      "UTF8_ERROR\020\202\001\022\032\n\025RET_NICKNAME_TOO_LONG\020\203" +
+      "\001\022\036\n\031RET_NICKNAME_WORD_ILLEGAL\020\204\001\022!\n\034RET" +
+      "_NICKNAME_TOO_MANY_DIGITS\020\205\001\022\032\n\025RET_NICK" +
+      "NAME_IS_EMPTY\020\206\001\022\037\n\032RET_NICKNAME_MONTHLY" +
+      "_LIMIT\020\207\001\022\035\n\030RET_NICKNAME_NOT_CHANGED\020\210\001" +
+      "\022\032\n\025RET_PLAYER_NOT_ONLINE\020\214\001\022\034\n\027RET_OPEN" +
+      "_STATE_NOT_OPEN\020\215\001\022\027\n\022RET_FEATURE_CLOSED" +
+      "\020\216\001\022%\n RET_AVATAR_EXPEDITION_AVATAR_DIE\020" +
+      "\230\001\022&\n!RET_AVATAR_EXPEDITION_COUNT_LIMIT\020" +
+      "\231\001\022&\n!RET_AVATAR_EXPEDITION_MAIN_FORBID\020" +
+      "\232\001\022\'\n\"RET_AVATAR_EXPEDITION_TRIAL_FORBID" +
+      "\020\233\001\022\032\n\025RET_TEAM_NAME_ILLEGAL\020\234\001\022\032\n\025RET_I" +
+      "S_NOT_IN_STANDBY\020\235\001\022\026\n\021RET_IS_IN_DUNGEON" +
+      "\020\236\001\022 \n\033RET_IS_IN_LOCK_AVATAR_QUEST\020\237\001\022\036\n" +
+      "\031RET_IS_USING_TRIAL_AVATAR\020\240\001\022\035\n\030RET_IS_" +
+      "USING_TEMP_AVATAR\020\241\001\022\031\n\024RET_NOT_HAS_FLYC" +
+      "LOAK\020\242\001\022\"\n\035RET_FETTER_REWARD_ALREADY_GOT" +
+      "\020\243\001\022\'\n\"RET_FETTER_REWARD_LEVEL_NOT_ENOUG" +
+      "H\020\244\001\022%\n RET_WORLD_LEVEL_ADJUST_MIN_LEVEL" +
+      "\020\245\001\022\036\n\031RET_WORLD_LEVEL_ADJUST_CD\020\246\001\022\030\n\023R" +
+      "ET_NOT_HAS_COSTUME\020\247\001\022\035\n\030RET_COSTUME_AVA" +
+      "TAR_ERROR\020\250\001\022#\n\036RET_FLYCLOAK_PLATFORM_TY" +
+      "PE_ERR\020\251\001\022\024\n\017RET_IN_TRANSFER\020\252\001\022\032\n\025RET_I" +
+      "S_IN_LOCK_AVATAR\020\253\001\022\031\n\024RET_FULL_BACKUP_T" +
+      "EAM\020\254\001\022!\n\034RET_BACKUP_TEAM_ID_NOT_VALID\020\255" +
+      "\001\022 \n\033RET_BACKUP_TEAM_IS_CUR_TEAM\020\256\001\022\024\n\017R" +
+      "ET_FLOAT_ERROR\020\311\001\022\026\n\021RET_NPC_NOT_EXIST\020\255" +
+      "\002\022\024\n\017RET_NPC_TOO_FAR\020\256\002\022\031\n\024RET_NOT_CURRE" +
+      "NT_TALK\020\257\002\022\030\n\023RET_NPC_CREATE_FAIL\020\260\002\022\026\n\021" +
+      "RET_NPC_MOVE_FAIL\020\261\002\022\030\n\023RET_QUEST_NOT_EX" +
+      "IST\020\221\003\022\026\n\021RET_QUEST_IS_FAIL\020\222\003\022\034\n\027RET_QU" +
+      "EST_CONTENT_ERROR\020\223\003\022\036\n\031RET_BARGAIN_NOT_" +
+      "ACTIVATED\020\224\003\022\031\n\024RET_BARGAIN_FINISHED\020\225\003\022" +
+      "\'\n\"RET_INFERENCE_ASSOCIATE_WORD_ERROR\020\226\003" +
+      "\022,\n\'RET_INFERENCE_SUBMIT_WORD_NO_CONCLUS" +
+      "ION\020\227\003\022\033\n\026RET_POINT_NOT_UNLOCKED\020\365\003\022\026\n\021R" +
+      "ET_POINT_TOO_FAR\020\366\003\022\036\n\031RET_POINT_ALREAY_" +
+      "UNLOCKED\020\367\003\022\031\n\024RET_ENTITY_NOT_EXIST\020\370\003\022\031" +
+      "\n\024RET_ENTER_SCENE_FAIL\020\371\003\022\036\n\031RET_PLAYER_" +
+      "IS_ENTER_SCENE\020\372\003\022\027\n\022RET_CITY_MAX_LEVEL\020" +
+      "\373\003\022\024\n\017RET_AREA_LOCKED\020\374\003\022\030\n\023RET_JOIN_OTH" +
+      "ER_WAIT\020\375\003\022\037\n\032RET_WEATHER_AREA_NOT_FOUND" +
+      "\020\376\003\022\032\n\025RET_WEATHER_IS_LOCKED\020\377\003\022\032\n\025RET_N" +
+      "OT_IN_SELF_SCENE\020\200\004\022\030\n\023RET_GROUP_NOT_EXI" +
+      "ST\020\201\004\022\032\n\025RET_MARK_NAME_ILLEGAL\020\202\004\022\034\n\027RET" +
+      "_MARK_ALREADY_EXISTS\020\203\004\022\026\n\021RET_MARK_OVER" +
+      "FLOW\020\204\004\022\030\n\023RET_MARK_NOT_EXISTS\020\205\004\022\032\n\025RET" +
+      "_MARK_UNKNOWN_TYPE\020\206\004\022\033\n\026RET_MARK_NAME_T" +
+      "OO_LONG\020\207\004\022\026\n\021RET_DISTANCE_LONG\020\210\004\022\"\n\035RE" +
+      "T_ENTER_SCENE_TOKEN_INVALID\020\211\004\022\033\n\026RET_NO" +
+      "T_IN_WORLD_SCENE\020\212\004\022\034\n\027RET_ANY_GALLERY_S" +
+      "TARTED\020\213\004\022\032\n\025RET_GALLERY_NOT_START\020\214\004\022.\n" +
+      ")RET_GALLERY_INTERRUPT_ONLY_ON_SINGLE_MO" +
+      "DE\020\215\004\022!\n\034RET_GALLERY_CANNOT_INTERRUPT\020\216\004" +
+      "\022\037\n\032RET_GALLERY_WORLD_NOT_MEET\020\217\004\022\037\n\032RET" +
+      "_GALLERY_SCENE_NOT_MEET\020\220\004\022!\n\034RET_CUR_PL" +
+      "AY_CANNOT_TRANSFER\020\221\004\022&\n!RET_CANT_USE_WI" +
+      "DGET_IN_HOME_SCENE\020\222\004\022\036\n\031RET_SCENE_GROUP" +
+      "_NOT_MATCH\020\223\004\022\030\n\023RET_POS_ROT_INVALID\020\247\004\022" +
+      "\036\n\031RET_MARK_INVALID_SCENE_ID\020\250\004\022*\n%RET_I" +
+      "NVALID_SCENE_TO_USE_ANCHOR_POINT\020\251\004\022\036\n\031R" +
+      "ET_ENTER_HOME_SCENE_FAIL\020\252\004\022\032\n\025RET_CUR_S" +
+      "CENE_IS_NULL\020\253\004\022\027\n\022RET_GROUP_ID_ERROR\020\254\004" +
+      "\022$\n\037RET_GALLERY_INTERRUPT_NOT_OWNER\020\255\004\022\032" +
+      "\n\025RET_NO_SPRING_IN_AREA\020\256\004\022\032\n\025RET_AREA_N" +
+      "OT_IN_SCENE\020\257\004\022\030\n\023RET_INVALID_CITY_ID\020\260\004" +
+      "\022\031\n\024RET_INVALID_SCENE_ID\020\261\004\022 \n\033RET_DEST_" +
+      "SCENE_IS_NOT_ALLOW\020\262\004\022\037\n\032RET_LEVEL_TAG_S" +
+      "WITCH_IN_CD\020\263\004\022 \n\033RET_LEVEL_TAG_ALREADY_" +
+      "EXIST\020\264\004\022\030\n\023RET_INVALID_AREA_ID\020\265\004\022\027\n\022RE" +
+      "T_ITEM_NOT_EXIST\020\331\004\022\037\n\032RET_PACK_EXCEED_M" +
+      "AX_WEIGHT\020\332\004\022\032\n\025RET_ITEM_NOT_DROPABLE\020\333\004" +
+      "\022\030\n\023RET_ITEM_NOT_USABLE\020\334\004\022\037\n\032RET_ITEM_I" +
+      "NVALID_USE_COUNT\020\335\004\022 \n\033RET_ITEM_INVALID_" +
+      "DROP_COUNT\020\336\004\022\033\n\026RET_ITEM_ALREADY_EXIST\020" +
+      "\337\004\022\031\n\024RET_ITEM_IN_COOLDOWN\020\340\004\022\036\n\031RET_ITE" +
+      "M_COUNT_NOT_ENOUGH\020\341\004\022\034\n\027RET_ITEM_INVALI" +
+      "D_TARGET\020\342\004\022\031\n\024RET_RECIPE_NOT_EXIST\020\343\004\022\026" +
+      "\n\021RET_RECIPE_LOCKED\020\344\004\022\030\n\023RET_RECIPE_UNL" +
+      "OCKED\020\345\004\022\034\n\027RET_COMPOUND_QUEUE_FULL\020\346\004\022\034" +
+      "\n\027RET_COMPOUND_NOT_FINISH\020\347\004\022\032\n\025RET_MAIL" +
+      "_ITEM_NOT_GET\020\350\004\022\032\n\025RET_ITEM_EXCEED_LIMI" +
+      "T\020\351\004\022\033\n\026RET_AVATAR_CAN_NOT_USE\020\352\004\022\037\n\032RET" +
+      "_ITEM_NEED_PLAYER_LEVEL\020\353\004\022\034\n\027RET_RECIPE" +
+      "_NOT_AUTO_QTE\020\354\004\022\034\n\027RET_COMPOUND_BUSY_QU" +
+      "EUE\020\355\004\022\030\n\023RET_NEED_MORE_SCOIN\020\356\004\022\036\n\031RET_" +
+      "SKILL_DEPOT_NOT_FOUND\020\357\004\022\031\n\024RET_HCOIN_NO" +
+      "T_ENOUGH\020\360\004\022\031\n\024RET_SCOIN_NOT_ENOUGH\020\361\004\022\033" +
+      "\n\026RET_HCOIN_EXCEED_LIMIT\020\362\004\022\033\n\026RET_SCOIN" +
+      "_EXCEED_LIMIT\020\363\004\022\025\n\020RET_MAIL_EXPIRED\020\364\004\022" +
+      "\031\n\024RET_REWARD_HAS_TAKEN\020\365\004\022 \n\033RET_COMBIN" +
+      "E_COUNT_TOO_LARGE\020\366\004\022\032\n\025RET_GIVING_ITEM_" +
+      "WRONG\020\367\004\022\033\n\026RET_GIVING_IS_FINISHED\020\370\004\022\033\n" +
+      "\026RET_GIVING_NOT_ACTIVED\020\371\004\022\031\n\024RET_FORGE_" +
+      "QUEUE_FULL\020\372\004\022\035\n\030RET_FORGE_QUEUE_CAPACIT" +
+      "Y\020\373\004\022\036\n\031RET_FORGE_QUEUE_NOT_FOUND\020\374\004\022\032\n\025" +
+      "RET_FORGE_QUEUE_EMPTY\020\375\004\022\031\n\024RET_NOT_SUPP" +
+      "ORT_ITEM\020\376\004\022\023\n\016RET_ITEM_EMPTY\020\377\004\022\035\n\030RET_" +
+      "VIRTUAL_EXCEED_LIMIT\020\200\005\022\036\n\031RET_MATERIAL_" +
+      "EXCEED_LIMIT\020\201\005\022\033\n\026RET_EQUIP_EXCEED_LIMI" +
+      "T\020\202\005\022\"\n\035RET_ITEM_SHOULD_HAVE_NO_LEVEL\020\203\005" +
+      "\022*\n%RET_WEAPON_PROMOTE_LEVEL_EXCEED_LIMI" +
+      "T\020\204\005\022\035\n\030RET_WEAPON_LEVEL_INVALID\020\205\005\022\031\n\024R" +
+      "ET_UNKNOW_ITEM_TYPE\020\206\005\022\033\n\026RET_ITEM_COUNT" +
+      "_IS_ZERO\020\207\005\022\030\n\023RET_ITEM_IS_EXPIRED\020\210\005\022!\n" +
+      "\034RET_ITEM_EXCEED_OUTPUT_LIMIT\020\211\005\022\033\n\026RET_" +
+      "EQUIP_LEVEL_HIGHER\020\212\005\022&\n!RET_EQUIP_CAN_N" +
+      "OT_WAKE_OFF_WEAPON\020\213\005\022\036\n\031RET_EQUIP_HAS_B" +
+      "EEN_WEARED\020\214\005\022!\n\034RET_EQUIP_WEARED_CANNOT" +
+      "_DROP\020\215\005\022\031\n\024RET_AWAKEN_LEVEL_MAX\020\216\005\022\031\n\024R" +
+      "ET_MCOIN_NOT_ENOUGH\020\217\005\022\033\n\026RET_MCOIN_EXCE" +
+      "ED_LIMIT\020\220\005\022\031\n\024RET_RESIN_NOT_ENOUGH\020\224\005\022\033" +
+      "\n\026RET_RESIN_EXCEED_LIMIT\020\225\005\022\034\n\027RET_RESIN" +
+      "_OPENSTATE_OFF\020\226\005\022$\n\037RET_RESIN_BOUGHT_CO" +
+      "UNT_EXCEEDED\020\227\005\022*\n%RET_RESIN_CARD_DAILY_" +
+      "REWARD_HAS_TAKEN\020\230\005\022\033\n\026RET_RESIN_CARD_EX" +
+      "PIRED\020\231\005\022\034\n\027RET_AVATAR_CAN_NOT_COOK\020\232\005\022\031" +
+      "\n\024RET_ATTACH_AVATAR_CD\020\233\005\022#\n\036RET_AUTO_RE" +
+      "COVER_OPENSTATE_OFF\020\234\005\022+\n&RET_AUTO_RECOV" +
+      "ER_BOUGHT_COUNT_EXCEEDED\020\235\005\022\032\n\025RET_RESIN" +
+      "_GAIN_FAILED\020\236\005\022$\n\037RET_WIDGET_ORNAMENTS_" +
+      "TYPE_ERROR\020\237\005\022\"\n\035RET_ALL_TARGET_SATIATIO" +
+      "N_FULL\020\240\005\022$\n\037RET_FORGE_WORLD_LEVEL_NOT_M" +
+      "ATCH\020\241\005\022\037\n\032RET_FORGE_POINT_NOT_ENOUGH\020\242\005" +
+      "\022!\n\034RET_WIDGET_ANCHOR_POINT_FULL\020\243\005\022&\n!R" +
+      "ET_WIDGET_ANCHOR_POINT_NOT_FOUND\020\244\005\022%\n R" +
+      "ET_ALL_BONFIRE_EXCEED_MAX_COUNT\020\245\005\022!\n\034RE" +
+      "T_BONFIRE_EXCEED_MAX_COUNT\020\246\005\022\035\n\030RET_LUN" +
+      "CH_BOX_DATA_ERROR\020\247\005\022!\n\034RET_INVALID_QUIC" +
+      "K_USE_WIDGET\020\250\005\022$\n\037RET_INVALID_REPLACE_R" +
+      "ESIN_COUNT\020\251\005\022\'\n\"RET_PREV_DETECTED_GATHE" +
+      "R_NOT_FOUND\020\252\005\022\036\n\031RET_GOT_ALL_ONEOFF_GAH" +
+      "TER\020\253\005\022#\n\036RET_INVALID_WIDGET_MATERIAL_ID" +
+      "\020\254\005\022)\n$RET_WIDGET_DETECTOR_NO_HINT_TO_CL" +
+      "EAR\020\255\005\022,\n\'RET_WIDGET_ALREADY_WITHIN_NEAR" +
+      "BY_RADIUS\020\256\005\022,\n\'RET_WIDGET_CLIENT_COLLEC" +
+      "TOR_NEED_POINTS\020\257\005\022\031\n\024RET_WIDGET_IN_COMB" +
+      "AT\020\260\005\022!\n\034RET_WIDGET_NOT_SET_QUICK_USE\020\261\005" +
+      "\022\036\n\031RET_ALREADY_ATTACH_WIDGET\020\262\005\022\030\n\023RET_" +
+      "EQUIP_IS_LOCKED\020\263\005\022\030\n\023RET_FORGE_IS_LOCKE" +
+      "D\020\264\005\022\032\n\025RET_COMBINE_IS_LOCKED\020\265\005\022!\n\034RET_" +
+      "FORGE_OUTPUT_STACK_LIMIT\020\266\005\022\037\n\032RET_ALREA" +
+      "DY_DETTACH_WIDGET\020\267\005\022(\n#RET_GADGET_BUILD" +
+      "ER_EXCEED_MAX_COUNT\020\270\005\022/\n*RET_REUNION_PR" +
+      "IVILEGE_RESIN_TYPE_IS_NORMAL\020\271\005\022(\n#RET_B" +
+      "ONUS_COUNT_EXCEED_DOUBLE_LIMIT\020\272\005\022(\n#RET" +
+      "_RELIQUARY_DECOMPOSE_PARAM_ERROR\020\273\005\022&\n!R" +
+      "ET_ITEM_COMBINE_COUNT_NOT_ENOUGH\020\274\005\022\030\n\023R" +
+      "ET_GOODS_NOT_EXIST\020\275\005\022\"\n\035RET_GOODS_MATER" +
+      "IAL_NOT_ENOUGH\020\276\005\022\032\n\025RET_GOODS_NOT_IN_TI" +
+      "ME\020\277\005\022!\n\034RET_GOODS_BUY_NUM_NOT_ENOUGH\020\300\005" +
+      "\022\034\n\027RET_GOODS_BUY_NUM_ERROR\020\301\005\022\026\n\021RET_SH" +
+      "OP_NOT_OPEN\020\302\005\022\037\n\032RET_SHOP_CONTENT_NOT_M" +
+      "ATCH\020\303\005\022\027\n\022RET_CHAT_FORBIDDEN\020\236\006\022\020\n\013RET_" +
+      "CHAT_CD\020\237\006\022\030\n\023RET_CHAT_FREQUENTLY\020\240\006\022\031\n\024" +
+      "RET_GADGET_NOT_EXIST\020\241\006\022\037\n\032RET_GADGET_NO" +
+      "T_INTERACTIVE\020\242\006\022\036\n\031RET_GADGET_NOT_GATHE" +
+      "RABLE\020\243\006\022\030\n\023RET_CHEST_IS_LOCKED\020\244\006\022\033\n\026RE" +
+      "T_GADGET_CREATE_FAIL\020\245\006\022!\n\034RET_WORKTOP_O" +
+      "PTION_NOT_EXIST\020\246\006\022!\n\034RET_GADGET_STATUE_" +
+      "NOT_ACTIVE\020\247\006\022\035\n\030RET_GADGET_STATUE_OPENE" +
+      "D\020\250\006\022$\n\037RET_BOSS_CHEST_NO_QUALIFICATION\020" +
+      "\251\006\022\"\n\035RET_BOSS_CHEST_LIFE_TIME_OVER\020\252\006\022\"" +
+      "\n\035RET_BOSS_CHEST_WEEK_NUM_LIMIT\020\253\006\022%\n RE" +
+      "T_BOSS_CHEST_GUEST_WORLD_LEVEL\020\254\006\022\035\n\030RET" +
+      "_BOSS_CHEST_HAS_TAKEN\020\255\006\022\'\n\"RET_BLOSSOM_" +
+      "CHEST_NO_QUALIFICATION\020\256\006\022%\n RET_BLOSSOM" +
+      "_CHEST_LIFE_TIME_OVER\020\257\006\022 \n\033RET_BLOSSOM_" +
+      "CHEST_HAS_TAKEN\020\260\006\022(\n#RET_BLOSSOM_CHEST_" +
+      "GUEST_WORLD_LEVEL\020\261\006\022(\n#RET_MP_PLAY_REWA" +
+      "RD_NO_QUALIFICATION\020\262\006\022!\n\034RET_MP_PLAY_RE" +
+      "WARD_HAS_TAKEN\020\263\006\022(\n#RET_GENERAL_REWARD_" +
+      "NO_QUALIFICATION\020\264\006\022&\n!RET_GENERAL_REWAR" +
+      "D_LIFE_TIME_OVER\020\265\006\022!\n\034RET_GENERAL_REWAR" +
+      "D_HAS_TAKEN\020\266\006\022\033\n\026RET_GADGET_NOT_VEHICLE" +
+      "\020\267\006\022\036\n\031RET_VEHICLE_SLOT_OCCUPIED\020\270\006\022\027\n\022R" +
+      "ET_NOT_IN_VEHICLE\020\271\006\022\035\n\030RET_CREATE_VEHIC" +
+      "LE_IN_CD\020\272\006\022#\n\036RET_CREATE_VEHICLE_POS_IN" +
+      "VALID\020\273\006\022!\n\034RET_VEHICLE_POINT_NOT_UNLOCK" +
+      "\020\274\006\022&\n!RET_GADGET_INTERACT_COND_NOT_MEET" +
+      "\020\275\006\022$\n\037RET_GADGET_INTERACT_PARAM_ERROR\020\276" +
+      "\006\022*\n%RET_GADGET_CUSTOM_COMBINATION_INVAL" +
+      "ID\020\277\006\022+\n&RET_DESHRET_OBELISK_DUPLICATE_I" +
+      "NTERACT\020\300\006\022\'\n\"RET_DESHRET_OBELISK_NO_AVA" +
+      "IL_CHEST\020\301\006\022\027\n\022RET_ACTIVITY_CLOSE\020\334\006\022\034\n\027" +
+      "RET_ACTIVITY_ITEM_ERROR\020\335\006\022)\n$RET_ACTIVI" +
+      "TY_CONTRIBUTION_NOT_ENOUGH\020\336\006\022\"\n\035RET_SEA" +
+      "_LAMP_PHASE_NOT_FINISH\020\337\006\022\037\n\032RET_SEA_LAM" +
+      "P_FLY_NUM_LIMIT\020\340\006\022\'\n\"RET_SEA_LAMP_FLY_L" +
+      "AMP_WORD_ILLEGAL\020\341\006\022&\n!RET_ACTIVITY_WATC" +
+      "HER_REWARD_TAKEN\020\342\006\022-\n(RET_ACTIVITY_WATC" +
+      "HER_REWARD_NOT_FINISHED\020\343\006\022#\n\036RET_SALESM" +
+      "AN_ALREADY_DELIVERED\020\344\006\022)\n$RET_SALESMAN_" +
+      "REWARD_COUNT_NOT_ENOUGH\020\345\006\022\"\n\035RET_SALESM" +
+      "AN_POSITION_INVALID\020\346\006\022%\n RET_DELIVER_NO" +
+      "T_FINISH_ALL_QUEST\020\347\006\022*\n%RET_DELIVER_ALR" +
+      "EADY_TAKE_DAILY_REWARD\020\350\006\022$\n\037RET_ASTER_P" +
+      "ROGRESS_EXCEED_LIMIT\020\351\006\022\"\n\035RET_ASTER_CRE" +
+      "DIT_EXCEED_LIMIT\020\352\006\022!\n\034RET_ASTER_TOKEN_E" +
+      "XCEED_LIMIT\020\353\006\022 \n\033RET_ASTER_CREDIT_NOT_E" +
+      "NOUGH\020\354\006\022\037\n\032RET_ASTER_TOKEN_NOT_ENOUGH\020\355" +
+      "\006\022\'\n\"RET_ASTER_SPECIAL_REWARD_HAS_TAKEN\020" +
+      "\356\006\022*\n%RET_FLIGHT_GROUP_ACTIVITY_NOT_STAR" +
+      "TED\020\357\006\022/\n*RET_ASTER_MID_PREVIOUS_BATTLE_" +
+      "NOT_FINISHED\020\360\006\0225\n0RET_DRAGON_SPINE_SHIM" +
+      "MERING_ESSENCE_EXCEED_LIMIT\020\361\006\022/\n*RET_DR" +
+      "AGON_SPINE_WARM_ESSENCE_EXCEED_LIMIT\020\362\006\022" +
+      "3\n.RET_DRAGON_SPINE_WONDROUS_ESSENCE_EXC" +
+      "EED_LIMIT\020\363\006\0223\n.RET_DRAGON_SPINE_SHIMMER" +
+      "ING_ESSENCE_NOT_ENOUGH\020\364\006\022-\n(RET_DRAGON_" +
+      "SPINE_WARM_ESSENCE_NOT_ENOUGH\020\365\006\0221\n,RET_" +
+      "DRAGON_SPINE_WONDROUS_ESSENCE_NOT_ENOUGH" +
+      "\020\366\006\022+\n&RET_EFFIGY_FIRST_PASS_REWARD_HAS_" +
+      "TAKEN\020\373\006\022 \n\033RET_EFFIGY_REWARD_HAS_TAKEN\020" +
+      "\374\006\022,\n\'RET_TREASURE_MAP_ADD_TOKEN_EXCEED_" +
+      "LIMIT\020\375\006\022\'\n\"RET_TREASURE_MAP_TOKEN_NOT_E" +
+      "NOUGHT\020\376\006\022#\n\036RET_SEA_LAMP_COIN_EXCEED_LI" +
+      "MIT\020\377\006\022!\n\034RET_SEA_LAMP_COIN_NOT_ENOUGH\020\200" +
+      "\007\022)\n$RET_SEA_LAMP_POPULARITY_EXCEED_LIMI" +
+      "T\020\201\007\022(\n#RET_ACTIVITY_AVATAR_REWARD_NOT_O" +
+      "PEN\020\202\007\022)\n$RET_ACTIVITY_AVATAR_REWARD_HAS" +
+      "_TAKEN\020\203\007\022\'\n\"RET_ARENA_ACTIVITY_ALREADY_" +
+      "STARTED\020\204\007\022\037\n\032RET_TALENT_ALREAY_UNLOCKED" +
+      "\020\205\007\022!\n\034RET_PREV_TALENT_NOT_UNLOCKED\020\206\007\022$" +
+      "\n\037RET_BIG_TALENT_POINT_NOT_ENOUGH\020\207\007\022&\n!" +
+      "RET_SMALL_TALENT_POINT_NOT_ENOUGH\020\210\007\022 \n\033" +
+      "RET_PROUD_SKILL_ALREADY_GOT\020\211\007\022!\n\034RET_PR" +
+      "EV_PROUD_SKILL_NOT_GET\020\212\007\022\036\n\031RET_PROUD_S" +
+      "KILL_MAX_LEVEL\020\213\007\022*\n%RET_CANDIDATE_SKILL" +
+      "_DEPOT_ID_NOT_FIND\020\216\007\022 \n\033RET_SKILL_DEPOT" +
+      "_IS_THE_SAME\020\217\007\022\032\n\025RET_MONSTER_NOT_EXIST" +
+      "\020\351\007\022\034\n\027RET_MONSTER_CREATE_FAIL\020\352\007\022\033\n\026RET" +
+      "_DUNGEON_ENTER_FAIL\020\315\010\022\032\n\025RET_DUNGEON_QU" +
+      "IT_FAIL\020\316\010\022\'\n\"RET_DUNGEON_ENTER_EXCEED_D" +
+      "AY_COUNT\020\317\010\022(\n#RET_DUNGEON_REVIVE_EXCEED" +
+      "_MAX_COUNT\020\320\010\022\034\n\027RET_DUNGEON_REVIVE_FAIL" +
+      "\020\321\010\022\034\n\027RET_DUNGEON_NOT_SUCCEED\020\322\010\022\037\n\032RET" +
+      "_DUNGEON_CAN_NOT_CANCEL\020\323\010\022\035\n\030RET_DEST_D" +
+      "UNGEON_SETTLED\020\324\010\022\'\n\"RET_DUNGEON_CANDIDA" +
+      "TE_TEAM_IS_FULL\020\325\010\022*\n%RET_DUNGEON_CANDID" +
+      "ATE_TEAM_IS_DISMISS\020\326\010\022-\n(RET_DUNGEON_CA" +
+      "NDIDATE_TEAM_NOT_ALL_READY\020\327\010\0221\n,RET_DUN" +
+      "GEON_CANDIDATE_TEAM_HAS_REPEAT_AVATAR\020\330\010" +
+      "\022*\n%RET_DUNGEON_CANDIDATE_NOT_SINGEL_PAS" +
+      "S\020\331\010\022+\n&RET_DUNGEON_REPLAY_NEED_ALL_PLAY" +
+      "ER_DIE\020\332\010\022(\n#RET_DUNGEON_REPLAY_HAS_REVI" +
+      "VE_COUNT\020\333\010\022\035\n\030RET_DUNGEON_OTHERS_LEAVE\020" +
+      "\334\010\022\"\n\035RET_DUNGEON_ENTER_LEVEL_LIMIT\020\335\010\022(" +
+      "\n#RET_DUNGEON_CANNOT_ENTER_PLOT_IN_MP\020\336\010" +
+      "\022$\n\037RET_DUNGEON_DROP_SUBFIELD_LIMIT\020\337\010\0220" +
+      "\n+RET_DUNGEON_BE_INVITE_PLAYER_AVATAR_AL" +
+      "L_DIE\020\340\010\022\034\n\027RET_DUNGEON_CANNOT_KICK\020\341\010\0223" +
+      "\n.RET_DUNGEON_CANDIDATE_TEAM_SOMEONE_LEV" +
+      "EL_LIMIT\020\342\010\022\036\n\031RET_DUNGEON_IN_FORCE_QUIT" +
+      "\020\343\010\022#\n\036RET_DUNGEON_GUEST_QUIT_DUNGEON\020\344\010" +
+      "\022\034\n\027RET_DUNGEON_TICKET_FAIL\020\345\010\022\033\n\026RET_MP" +
+      "_NOT_IN_MY_WORLD\020\261\t\022\026\n\021RET_MP_IN_MP_MODE" +
+      "\020\262\t\022\031\n\024RET_MP_SCENE_IS_FULL\020\263\t\022\036\n\031RET_MP" +
+      "_MODE_NOT_AVAILABLE\020\264\t\022 \n\033RET_MP_PLAYER_" +
+      "NOT_ENTERABLE\020\265\t\022\032\n\025RET_MP_QUEST_BLOCK_M" +
+      "P\020\266\t\022\031\n\024RET_MP_IN_ROOM_SCENE\020\267\t\022\031\n\024RET_M" +
+      "P_WORLD_IS_FULL\020\270\t\022\"\n\035RET_MP_PLAYER_NOT_" +
+      "ALLOW_ENTER\020\271\t\022\037\n\032RET_MP_PLAYER_DISCONNE" +
+      "CTED\020\272\t\022\032\n\025RET_MP_NOT_IN_MP_MODE\020\273\t\022\033\n\026R" +
+      "ET_MP_OWNER_NOT_ENTER\020\274\t\022#\n\036RET_MP_ALLOW" +
+      "_ENTER_PLAYER_FULL\020\275\t\022%\n RET_MP_TARGET_P" +
+      "LAYER_IN_TRANSFER\020\276\t\022!\n\034RET_MP_TARGET_EN" +
+      "TERING_OTHER\020\277\t\022\032\n\025RET_MP_OTHER_ENTERING" +
+      "\020\300\t\022%\n RET_MP_ENTER_MAIN_PLAYER_IN_PLOT\020" +
+      "\301\t\022\031\n\024RET_MP_NOT_PS_PLAYER\020\302\t\022\033\n\026RET_MP_" +
+      "PLAY_NOT_ACTIVE\020\303\t\022\037\n\032RET_MP_PLAY_REMAIN" +
+      "_REWARDS\020\304\t\022\032\n\025RET_MP_PLAY_NO_REWARD\020\305\t\022" +
+      "\033\n\026RET_MP_OPEN_STATE_FAIL\020\307\t\022\037\n\032RET_MP_P" +
+      "LAYER_IN_BLACKLIST\020\310\t\022\031\n\024RET_MP_REPLY_TI" +
+      "MEOUT\020\311\t\022\024\n\017RET_MP_IS_BLOCK\020\312\t\022(\n#RET_MP" +
+      "_ENTER_MAIN_PLAYER_IN_MP_PLAY\020\313\t\022\035\n\030RET_" +
+      "MP_IN_MP_PLAY_BATTLE\020\314\t\022%\n RET_MP_GUEST_" +
+      "HAS_REWARD_REMAINED\020\315\t\022\033\n\026RET_MP_QUIT_MP" +
+      "_INVALID\020\316\t\022)\n$RET_MP_OTHER_DATA_VERSION" +
+      "_NOT_LATEST\020\317\t\022#\n\036RET_MP_DATA_VERSION_NO" +
+      "T_LATEST\020\320\t\022#\n\036RET_MP_CUR_WORLD_NOT_ENTE" +
+      "RABLE\020\321\t\022\037\n\032RET_MP_ANY_GALLERY_STARTED\020\322" +
+      "\t\022\034\n\027RET_MP_HAS_ACTIVE_DRAFT\020\323\t\022\035\n\030RET_M" +
+      "P_PLAYER_IN_DUNGEON\020\324\t\022\026\n\021RET_MP_MATCH_F" +
+      "ULL\020\325\t\022\027\n\022RET_MP_MATCH_LIMIT\020\326\t\022\033\n\026RET_M" +
+      "P_MATCH_IN_PUNISH\020\327\t\022\034\n\027RET_MP_IS_IN_MUL" +
+      "TISTAGE\020\330\t\022\037\n\032RET_MP_MATCH_PLAY_NOT_OPEN" +
+      "\020\331\t\022\"\n\035RET_MP_ONLY_MP_WITH_PS_PLAYER\020\332\t\022" +
+      "%\n RET_MP_GUEST_LOADING_FIRST_ENTER\020\333\t\022+" +
+      "\n&RET_MP_SUMMER_TIME_SPRINT_BOAT_ONGOING" +
+      "\020\334\t\0220\n+RET_MP_BLITZ_RUSH_PARKOUR_CHALLEN" +
+      "GE_ONGOING\020\335\t\022\036\n\031RET_MP_MUSIC_GAME_ONGOI" +
+      "NG\020\336\t\022\031\n\024RET_MP_IN_MPING_MODE\020\337\t\022!\n\034RET_" +
+      "MP_OWNER_IN_SINGLE_SCENE\020\340\t\022\033\n\026RET_MP_IN" +
+      "_SINGLE_SCENE\020\341\t\022!\n\034RET_MP_REPLY_NO_VALI" +
+      "D_AVATAR\020\342\t\022\026\n\021RET_MAIL_PARA_ERR\020\225\n\022\025\n\020R" +
+      "ET_MAIL_MAX_NUM\020\226\n\022\035\n\030RET_MAIL_ITEM_NUM_" +
+      "EXCEED\020\227\n\022\036\n\031RET_MAIL_TITLE_LEN_EXCEED\020\230" +
+      "\n\022 \n\033RET_MAIL_CONTENT_LEN_EXCEED\020\231\n\022\037\n\032R" +
+      "ET_MAIL_SENDER_LEN_EXCEED\020\232\n\022\037\n\032RET_MAIL" +
+      "_PARSE_PACKET_FAIL\020\233\n\022\034\n\027RET_OFFLINE_MSG" +
+      "_MAX_NUM\020\234\n\022 \n\033RET_OFFLINE_MSG_SAME_TICK" +
+      "ET\020\235\n\022#\n\036RET_MAIL_EXCEL_MAIL_TYPE_ERROR\020" +
+      "\236\n\022\037\n\032RET_MAIL_CANNOT_SEND_MCOIN\020\237\n\022 \n\033R" +
+      "ET_MAIL_HCOIN_EXCEED_LIMIT\020\240\n\022 \n\033RET_MAI" +
+      "L_SCOIN_EXCEED_LIMIT\020\241\n\022!\n\034RET_MAIL_MATE" +
+      "RIAL_ID_INVALID\020\242\n\022!\n\034RET_MAIL_AVATAR_EX" +
+      "CEED_LIMIT\020\243\n\022+\n&RET_MAIL_GACHA_TICKET_E" +
+      "TC_EXCEED_LIMIT\020\244\n\022%\n RET_MAIL_ITEM_EXCE" +
+      "ED_CEHUA_LIMIT\020\245\n\022*\n%RET_MAIL_SPACE_OR_R" +
+      "EST_NUM_NOT_ENOUGH\020\246\n\022\035\n\030RET_MAIL_TICKET" +
+      "_IS_EMPTY\020\247\n\022\"\n\035RET_MAIL_TRANSACTION_IS_" +
+      "EMPTY\020\250\n\022\036\n\031RET_MAIL_DELETE_COLLECTED\020\251\n" +
+      "\022\036\n\031RET_DAILY_TASK_NOT_FINISH\020\262\n\022\035\n\030RET_" +
+      "DAILY_TAKS_HAS_TAKEN\020\263\n\022&\n!RET_SOCIAL_OF" +
+      "FLINE_MSG_NUM_EXCEED\020\264\n\022(\n#RET_DAILY_TAS" +
+      "K_FILTER_CITY_NOT_OPEN\020\265\n\022\032\n\025RET_GACHA_I" +
+      "NAVAILABLE\020\371\n\022\037\n\032RET_GACHA_RANDOM_NOT_MA" +
+      "TCH\020\372\n\022!\n\034RET_GACHA_SCHEDULE_NOT_MATCH\020\373" +
+      "\n\022\034\n\027RET_GACHA_INVALID_TIMES\020\374\n\022#\n\036RET_G" +
+      "ACHA_COST_ITEM_NOT_ENOUGH\020\375\n\022\032\n\025RET_GACH" +
+      "A_TIMES_LIMIT\020\376\n\022\035\n\030RET_GACHA_WISH_SAME_" +
+      "ITEM\020\377\n\022 \n\033RET_GACHA_WISH_INVALID_ITEM\020\200" +
+      "\013\022!\n\034RET_GACHA_MINORS_TIMES_LIMIT\020\201\013\022&\n!" +
+      "RET_INVESTIGAITON_NOT_IN_PROGRESS\020\335\013\022!\n\034" +
+      "RET_INVESTIGAITON_UNCOMPLETE\020\336\013\022#\n\036RET_I" +
+      "NVESTIGAITON_REWARD_TAKEN\020\337\013\022)\n$RET_INVE" +
+      "STIGAITON_TARGET_STATE_ERROR\020\340\013\022\034\n\027RET_P" +
+      "USH_TIPS_NOT_FOUND\020\341\013\022!\n\034RET_SIGN_IN_REC" +
+      "ORD_NOT_FOUND\020\342\013\022\037\n\032RET_ALREADY_HAVE_SIG" +
+      "NED_IN\020\343\013\022#\n\036RET_SIGN_IN_COND_NOT_SATISF" +
+      "IED\020\344\013\022&\n!RET_BONUS_ACTIVITY_NOT_UNREWAR" +
+      "DED\020\345\013\022\031\n\024RET_SIGN_IN_REWARDED\020\346\013\022\027\n\022RET" +
+      "_TOWER_NOT_OPEN\020\361\013\022 \n\033RET_TOWER_HAVE_DAI" +
+      "LY_RECORD\020\362\013\022\031\n\024RET_TOWER_NOT_RECORD\020\363\013\022" +
+      "\032\n\025RET_TOWER_HAVE_RECORD\020\364\013\022\035\n\030RET_TOWER" +
+      "_TEAM_NUM_ERROR\020\365\013\022\035\n\030RET_TOWER_FLOOR_NO" +
+      "T_OPEN\020\366\013\022#\n\036RET_TOWER_NO_FLOOR_STAR_REC" +
+      "ORD\020\367\013\022\037\n\032RET_ALREADY_HAS_TOWER_BUFF\020\370\013\022" +
+      "\036\n\031RET_DUPLICATE_ENTER_LEVEL\020\371\013\022\033\n\026RET_N" +
+      "OT_IN_TOWER_LEVEL\020\372\013\022\027\n\022RET_IN_TOWER_LEV" +
+      "EL\020\373\013\022$\n\037RET_TOWER_PREV_FLOOR_NOT_FINISH" +
+      "\020\374\013\022\036\n\031RET_TOWER_STAR_NOT_ENOUGH\020\375\013\022 \n\033R" +
+      "ET_BATTLE_PASS_NO_SCHEDULE\020\205\014\022\036\n\031RET_BAT" +
+      "TLE_PASS_HAS_BUYED\020\206\014\022#\n\036RET_BATTLE_PASS" +
+      "_LEVEL_OVERFLOW\020\207\014\022$\n\037RET_BATTLE_PASS_PR" +
+      "ODUCT_EXPIRED\020\210\014\022\030\n\023RET_MATCH_HOST_QUIT\020" +
+      "\231\014\022\037\n\032RET_MATCH_ALREADY_IN_MATCH\020\232\014\022\033\n\026R" +
+      "ET_MATCH_NOT_IN_MATCH\020\233\014\022 \n\033RET_MATCH_AP",
+      "PLYING_ENTER_MP\020\234\014\022\'\n\"RET_WIDGET_TREASUR" +
+      "E_SPOT_NOT_FOUND\020\255\014\022&\n!RET_WIDGET_TREASU" +
+      "RE_ENTITY_EXISTS\020\256\014\022&\n!RET_WIDGET_TREASU" +
+      "RE_SPOT_FAR_AWAY\020\257\014\022\'\n\"RET_WIDGET_TREASU" +
+      "RE_FINISHED_TODAY\020\260\014\022)\n$RET_WIDGET_QUICK" +
+      "_USE_REQ_PARAM_ERROR\020\261\014\022$\n\037RET_WIDGET_CA" +
+      "MERA_SCAN_ID_ERROR\020\262\014\022\032\n\025RET_WIDGET_NOT_" +
+      "ACTIVE\020\263\014\022\"\n\035RET_WIDGET_FEATHER_NOT_ACTI" +
+      "VE\020\264\014\022+\n&RET_WIDGET_FEATHER_GADGET_TOO_F" +
+      "AR_AWAY\020\265\014\022(\n#RET_WIDGET_CAPTURE_ANIMAL_" +
+      "NOT_EXIST\020\266\014\022-\n(RET_WIDGET_CAPTURE_ANIMA" +
+      "L_DROP_BAG_LIMIT\020\267\014\022.\n)RET_WIDGET_CAPTUR" +
+      "E_ANIMAL_CAN_NOT_CAPTURE\020\270\014\022)\n$RET_WIDGE" +
+      "T_SKY_CRYSTAL_ALL_COLLECTED\020\271\014\022.\n)RET_WI" +
+      "DGET_SKY_CRYSTAL_HINT_ALREADY_EXIST\020\272\014\022%" +
+      "\n RET_WIDGET_SKY_CRYSTAL_NOT_FOUND\020\273\014\022,\n" +
+      "\'RET_WIDGET_SKY_CRYSTAL_NO_HINT_TO_CLEAR" +
+      "\020\274\014\022-\n(RET_WIDGET_LIGHT_STONE_ENERGY_NOT" +
+      "_ENOUGH\020\275\014\022-\n(RET_WIDGET_TOY_CRYSTAL_ENE" +
+      "RGY_NOT_ENOUGH\020\276\014\022,\n\'RET_WIDGET_LIGHT_ST" +
+      "ONE_LEVEL_NOT_ENOUGH\020\277\014\022\026\n\021RET_UID_NOT_E" +
+      "XIST\020\321\017\022\030\n\023RET_PARSE_BIN_ERROR\020\322\017\022\037\n\032RET" +
+      "_ACCOUNT_INFO_NOT_EXIST\020\323\017\022\035\n\030RET_ORDER_" +
+      "INFO_NOT_EXIST\020\324\017\022\035\n\030RET_SNAPSHOT_INDEX_" +
+      "ERROR\020\325\017\022\033\n\026RET_MAIL_HAS_BEEN_SENT\020\326\017\022\032\n" +
+      "\025RET_PRODUCT_NOT_EXIST\020\327\017\022\027\n\022RET_UNFINIS" +
+      "H_ORDER\020\330\017\022\025\n\020RET_ID_NOT_EXIST\020\331\017\022\032\n\025RET" +
+      "_ORDER_TRADE_EARLY\020\332\017\022\027\n\022RET_ORDER_FINIS" +
+      "HED\020\333\017\022!\n\034RET_GAMESERVER_VERSION_WRONG\020\334" +
+      "\017\022\037\n\032RET_OFFLINE_OP_FULL_LENGTH\020\335\017\022%\n RE" +
+      "T_CONCERT_PRODUCT_OBTAIN_LIMIT\020\336\017\022*\n%RET" +
+      "_CONCERT_PRODUCT_TICKET_DUPLICATED\020\337\017\022%\n" +
+      " RET_CONCERT_PRODUCT_TICKET_EMPTY\020\340\017\022\027\n\022" +
+      "RET_REDIS_MODIFIED\020\211\'\022\034\n\027RET_REDIS_UID_N" +
+      "OT_EXIST\020\212\'\022#\n\036RET_PATHFINDING_DATA_NOT_" +
+      "EXIST\020\361.\022*\n%RET_PATHFINDING_DESTINATION_" +
+      "NOT_EXIST\020\362.\022 \n\033RET_PATHFINDING_ERROR_SC" +
+      "ENE\020\363.\022\'\n\"RET_PATHFINDING_SCENE_DATA_LOA" +
+      "DING\020\364.\022\036\n\031RET_FRIEND_COUNT_EXCEEDED\020\3316\022" +
+      "\031\n\024RET_PLAYER_NOT_EXIST\020\3326\022!\n\034RET_ALREAD" +
+      "Y_SENT_ADD_REQUEST\020\3336\022\035\n\030RET_ASK_FRIEND_" +
+      "LIST_FULL\020\3346\022!\n\034RET_PLAYER_ALREADY_IS_FR" +
+      "IEND\020\3356\022\036\n\031RET_PLAYER_NOT_ASK_FRIEND\020\3366\022" +
+      "#\n\036RET_TARGET_FRIEND_COUNT_EXCEED\020\3376\022\023\n\016" +
+      "RET_NOT_FRIEND\020\3406\022%\n RET_BIRTHDAY_CANNOT" +
+      "_BE_SET_TWICE\020\3416\022\037\n\032RET_CANNOT_ADD_SELF_" +
+      "FRIEND\020\3426\022\032\n\025RET_SIGNATURE_ILLEGAL\020\3436\022%\n" +
+      " RET_PS_PLAYER_CANNOT_ADD_FRIENDS\020\3446\022(\n#" +
+      "RET_PS_PLAYER_CANNOT_REMOVE_FRIENDS\020\3456\022\037" +
+      "\n\032RET_NAME_CARD_NOT_UNLOCKED\020\3466\022\035\n\030RET_A" +
+      "LREADY_IN_BLACKLIST\020\3476\022(\n#RET_PS_PALEYRS" +
+      "_CANNOT_ADD_BLACKLIST\020\3506\022\036\n\031RET_PLAYER_B" +
+      "LACKLIST_FULL\020\3516\022 \n\033RET_PLAYER_NOT_IN_BL" +
+      "ACKLIST\020\3526\022+\n&RET_BLACKLIST_PLAYER_CANNO" +
+      "T_ADD_FRIEND\020\3536\022\034\n\027RET_IN_TARGET_BLACKLI" +
+      "ST\020\3546\022!\n\034RET_CANNOT_ADD_TARGET_FRIEND\020\3556" +
+      "\022\036\n\031RET_BIRTHDAY_FORMAT_ERROR\020\3566\022\035\n\030RET_" +
+      "ONLINE_ID_NOT_EXISTS\020\3576\022%\n RET_FIRST_SHA" +
+      "RE_REWARD_HAS_TAKEN\020\3606\022*\n%RET_PS_PLAYER_" +
+      "CANNOT_REMOVE_BLACKLIST\020\3616\022\022\n\rRET_REPORT" +
+      "_CD\020\3626\022\037\n\032RET_REPORT_CONTENT_ILLEGAL\020\3636\022" +
+      "\034\n\027RET_REMARK_WORD_ILLEGAL\020\3646\022\030\n\023RET_REM" +
+      "ARK_TOO_LONG\020\3656\022\032\n\025RET_REMARK_UTF8_ERROR" +
+      "\020\3666\022\030\n\023RET_REMARK_IS_EMPTY\020\3676\022\032\n\025RET_ASK" +
+      "_ADD_FRIEND_CD\020\3706\022#\n\036RET_SHOW_AVATAR_INF" +
+      "O_NOT_EXIST\020\3716\022\037\n\032RET_PLAYER_NOT_SHOW_AV" +
+      "ATAR\020\3726\022*\n%RET_SOCIAL_UPDATE_SHOW_LIST_R" +
+      "EPEAT_ID\020\3736\022\031\n\024RET_PSN_ID_NOT_FOUND\020\3746\022*" +
+      "\n%RET_EMOJI_COLLECTION_NUM_EXCEED_LIMIT\020" +
+      "\3756\022\025\n\020RET_REMARK_EMPTY\020\3766\022 \n\033RET_IN_TARG" +
+      "ET_PSN_BLACKLIST\020\3776\022\036\n\031RET_SIGNATURE_NOT" +
+      "_CHANGED\020\2007\022 \n\033RET_SIGNATURE_MONTHLY_LIM" +
+      "IT\020\2017\022\032\n\025RET_OFFERING_NOT_OPEN\020\2517\022\035\n\030RET" +
+      "_OFFERING_LEVEL_LIMIT\020\2527\022!\n\034RET_OFFERING" +
+      "_LEVEL_NOT_REACH\020\2537\022!\n\034RET_OFFERING_LEVE" +
+      "L_HAS_TAKEN\020\2547\022!\n\034RET_CITY_REPUTATION_NO" +
+      "T_OPEN\020\2757\022$\n\037RET_CITY_REPUTATION_LEVEL_T" +
+      "AKEN\020\2767\022(\n#RET_CITY_REPUTATION_LEVEL_NOT" +
+      "_REACH\020\2777\022+\n&RET_CITY_REPUTATION_PARENT_" +
+      "QUEST_TAKEN\020\3007\022.\n)RET_CITY_REPUTATION_PA" +
+      "RENT_QUEST_UNFINISH\020\3017\022\'\n\"RET_CITY_REPUT" +
+      "ATION_ACCEPT_REQUEST\020\3027\022+\n&RET_CITY_REPU" +
+      "TATION_NOT_ACCEPT_REQUEST\020\3037\022-\n(RET_CITY" +
+      "_REPUTATION_ACCEPT_REQUEST_LIMIT\020\3047\022*\n%R" +
+      "ET_CITY_REPUTATION_ENTRANCE_NOT_OPEN\020\3057\022" +
+      "-\n(RET_CITY_REPUTATION_TAKEN_REQUEST_REW" +
+      "ARD\020\3067\022%\n RET_CITY_REPUTATION_SWITCH_CLO" +
+      "SE\020\3077\022-\n(RET_CITY_REPUTATION_ENTRACE_SWI" +
+      "TCH_CLOSE\020\3107\022-\n(RET_CITY_REPUTATION_TAKE" +
+      "N_EXPLORE_REWARD\020\3117\022*\n%RET_CITY_REPUTATI" +
+      "ON_EXPLORE_NOT_REACH\020\3127\022\034\n\027RET_MECHANICU" +
+      "S_NOT_OPEN\020\3207\022\037\n\032RET_MECHANICUS_GEAR_UNL" +
+      "OCK\020\3217\022\035\n\030RET_MECHANICUS_GEAR_LOCK\020\3227\022$\n" +
+      "\037RET_MECHANICUS_GEAR_LEVEL_LIMIT\020\3237\022#\n\036R" +
+      "ET_MECHANICUS_COIN_NOT_ENOUGH\020\3247\022\037\n\032RET_" +
+      "MECHANICUS_NO_SEQUENCE\020\3257\022(\n#RET_MECHANI" +
+      "CUS_SEQUENCE_LIMIT_LEVEL\020\3267\022\'\n\"RET_MECHA" +
+      "NICUS_SEQUENCE_LIMIT_OPEN\020\3277\022)\n$RET_MECH" +
+      "ANICUS_DIFFICULT_NOT_SUPPORT\020\3307\022%\n RET_M" +
+      "ECHANICUS_TICKET_NOT_ENOUGH\020\3317\022$\n\037RET_ME" +
+      "CHANICUS_TEACH_NOT_FINISH\020\3327\022\"\n\035RET_MECH" +
+      "ANICUS_TEACH_FINISHED\020\3337\022.\n)RET_MECHANIC" +
+      "US_PREV_DIFFICULT_LEVEL_BLOCK\020\3347\022 \n\033RET_" +
+      "MECHANICUS_PLAYER_LIMIT\020\3357\022\037\n\032RET_MECHAN" +
+      "ICUS_PUNISH_TIME\020\3367\022 \n\033RET_MECHANICUS_SW" +
+      "ITCH_CLOSE\020\3377\022)\n$RET_MECHANICUS_BATTLE_N" +
+      "OT_IN_DUNGEON\020\3567\022)\n$RET_MECHANICUS_BATTL" +
+      "E_PLAY_NOT_FOUND\020\3577\022.\n)RET_MECHANICUS_BA" +
+      "TTLE_DUPLICATE_PICK_CARD\020\3607\022-\n(RET_MECHA" +
+      "NICUS_BATTLE_PLAYER_NOT_IN_PLAY\020\3617\022-\n(RE" +
+      "T_MECHANICUS_BATTLE_CARD_NOT_AVAILABLE\020\362" +
+      "7\022,\n\'RET_MECHANICUS_BATTLE_NOT_IN_CARD_S" +
+      "TAGE\020\3637\022*\n%RET_MECHANICUS_BATTLE_CARD_IS" +
+      "_WAITING\020\3647\022-\n(RET_MECHANICUS_BATTLE_CAR" +
+      "D_ALL_CONFIRMED\020\3657\0221\n,RET_MECHANICUS_BAT" +
+      "TLE_CARD_ALREADY_CONFIRMED\020\3667\0222\n-RET_MEC" +
+      "HANICUS_BATTLE_CARD_CONFIRMED_BY_OTHER\020\367" +
+      "7\0221\n,RET_MECHANICUS_BATTLE_CARD_NOT_ENOU" +
+      "GH_POINTS\020\3707\022/\n*RET_MECHANICUS_BATTLE_CA" +
+      "RD_ALREADY_SKIPPED\020\3717\022!\n\034RET_LEGENDARY_K" +
+      "EY_NOT_ENOUGH\020\301>\022#\n\036RET_LEGENDARY_KEY_EX" +
+      "CEED_LIMIT\020\302>\022(\n#RET_DAILY_TASK_NOT_ENOU" +
+      "GH_TO_REDEEM\020\303>\022%\n RET_PERSONAL_LINE_OPE" +
+      "N_STATE_OFF\020\304>\022\'\n\"RET_PERSONAL_LINE_LEVE" +
+      "L_NOT_ENOUGH\020\305>\022\037\n\032RET_PERSONAL_LINE_NOT" +
+      "_OPEN\020\306>\022+\n&RET_PERSONAL_LINE_PRE_QUEST_" +
+      "NOT_FINISH\020\307>\022+\n&RET_HUNTING_ALREADY_FIN" +
+      "ISH_OFFER_LIMIT\020\211@\022%\n RET_HUNTING_HAS_UN" +
+      "FINISHED_OFFER\020\212@\022*\n%RET_HUNTING_FAILED_" +
+      "OFFER_NOT_CD_READY\020\213@\022\037\n\032RET_HUNTING_NOT" +
+      "_TAKE_OFFER\020\214@\022\"\n\035RET_HUNTING_CANNOT_TAK" +
+      "E_TWICE\020\215@\022*\n%RET_RPIVATE_CHAT_INVALID_C" +
+      "ONTENT_TYPE\020\305E\022*\n%RET_PRIVATE_CHAT_TARGE" +
+      "T_IS_NOT_FRIEND\020\306E\022+\n&RET_PRIVATE_CHAT_C" +
+      "ONTENT_NOT_SUPPORTED\020\307E\022&\n!RET_PRIVATE_C" +
+      "HAT_CONTENT_TOO_LONG\020\310E\022#\n\036RET_PRIVATE_C" +
+      "HAT_PULL_TOO_FAST\020\311E\022!\n\034RET_PRIVATE_CHAT" +
+      "_REPEAT_READ\020\312E\022%\n RET_PRIVATE_CHAT_READ" +
+      "_NOT_FRIEND\020\313E\022\031\n\024RET_REUNION_FINISHED\020\251" +
+      "F\022\036\n\031RET_REUNION_NOT_ACTIVATED\020\252F\022*\n%RET" +
+      "_REUNION_ALREADY_TAKE_FIRST_REWARD\020\253F\022!\n" +
+      "\034RET_REUNION_SIGN_IN_REWARDED\020\254F\022!\n\034RET_" +
+      "REUNION_WATCHER_REWARDED\020\255F\022#\n\036RET_REUNI" +
+      "ON_WATCHER_NOT_FINISH\020\256F\022!\n\034RET_REUNION_" +
+      "MISSION_REWARDED\020\257F\022#\n\036RET_REUNION_MISSI" +
+      "ON_NOT_FINISH\020\260F\022,\n\'RET_REUNION_WATCHER_" +
+      "REWARD_NOT_UNLOCKED\020\261F\022 \n\033RET_BLESSING_C" +
+      "ONTENT_CLOSED\020\215G\022\034\n\027RET_BLESSING_NOT_ACT" +
+      "IVE\020\216G\022\"\n\035RET_BLESSING_NOT_TODAY_ENTITY\020" +
+      "\217G\022.\n)RET_BLESSING_ENTITY_EXCEED_SCAN_NU" +
+      "M_LIMIT\020\220G\022-\n(RET_BLESSING_DAILY_SCAN_NU" +
+      "M_EXCEED_LIMIT\020\221G\0220\n+RET_BLESSING_REDEEM" +
+      "_REWARD_NUM_EXCEED_LIMIT\020\222G\022+\n&RET_BLESS" +
+      "ING_REDEEM_PIC_NUM_NOT_ENOUGH\020\223G\022 \n\033RET_" +
+      "BLESSING_PIC_NOT_ENOUGH\020\224G\022\"\n\035RET_BLESSI" +
+      "NG_PIC_HAS_RECEIVED\020\225G\022(\n#RET_BLESSING_T" +
+      "ARGET_RECV_NUM_EXCEED\020\226G\022\'\n\"RET_FLEUR_FA" +
+      "IR_CREDIT_EXCEED_LIMIT\020\227G\022%\n RET_FLEUR_F" +
+      "AIR_CREDIT_NOT_ENOUGH\020\230G\022&\n!RET_FLEUR_FA" +
+      "IR_TOKEN_EXCEED_LIMIT\020\231G\022$\n\037RET_FLEUR_FA" +
+      "IR_TOKEN_NOT_ENOUGH\020\232G\022%\n RET_FLEUR_FAIR" +
+      "_MINIGAME_NOT_OPEN\020\233G\0224\n/RET_FLEUR_FAIR_" +
+      "MUSIC_GAME_DIFFICULTY_NOT_UNLOCK\020\234G\022\"\n\035R" +
+      "ET_FLEUR_FAIR_DUNGEON_LOCKED\020\235G\022\'\n\"RET_F" +
+      "LEUR_FAIR_DUNGEON_PUNISH_TIME\020\236G\0222\n-RET_" +
+      "FLEUR_FAIR_ONLY_OWNER_CAN_RESTART_MINIGA" +
+      "M\020\237G\022\'\n\"RET_WATER_SPIRIT_COIN_EXCEED_LIM" +
+      "IT\020\240G\022%\n RET_WATER_SPIRIT_COIN_NOT_ENOUG" +
+      "H\020\241G\022 \n\033RET_REGION_SEARCH_NO_SEARCH\020\242G\022\"" +
+      "\n\035RET_REGION_SEARCH_STATE_ERROR\020\243G\0224\n/RE" +
+      "T_CHANNELLER_SLAB_LOOP_DUNGEON_STAGE_NOT" +
+      "_OPEN\020\252G\022.\n)RET_CHANNELLER_SLAB_LOOP_DUN" +
+      "GEON_NOT_OPEN\020\253G\022A\n<RET_CHANNELLER_SLAB_" +
+      "LOOP_DUNGEON_FIRST_PASS_REWARD_HAS_TAKEN" +
+      "\020\254G\022<\n7RET_CHANNELLER_SLAB_LOOP_DUNGEON_" +
+      "SCORE_REWARD_HAS_TAKEN\020\255G\0220\n+RET_CHANNEL" +
+      "LER_SLAB_INVALID_ONE_OFF_DUNGEON\020\256G\022-\n(R" +
+      "ET_CHANNELLER_SLAB_ONE_OFF_DUNGEON_DONE\020" +
+      "\257G\0227\n2RET_CHANNELLER_SLAB_ONE_OFF_DUNGEO" +
+      "N_STAGE_NOT_OPEN\020\260G\022+\n&RET_CHANNELLER_SL" +
+      "AB_TOKEN_EXCEED_LIMIT\020\261G\022)\n$RET_CHANNELL" +
+      "ER_SLAB_TOKEN_NOT_ENOUGH\020\262G\0226\n1RET_CHANN" +
+      "ELLER_SLAB_PLAYER_NOT_IN_ONE_OFF_DUNGEON" +
+      "\020\263G\0223\n.RET_MIST_TRIAL_SELECT_CHARACTER_N" +
+      "UM_NOT_ENOUGH\020\276G\022$\n\037RET_HIDE_AND_SEEK_PL" +
+      "AY_NOT_OPEN\020\310G\022(\n#RET_HIDE_AND_SEEK_PLAY" +
+      "_MAP_NOT_OPEN\020\311G\022-\n(RET_SUMMER_TIME_DRAF" +
+      "T_WOORD_EXCEED_LIMIT\020\322G\022+\n&RET_SUMMER_TI" +
+      "ME_DRAFT_WOORD_NOT_ENOUGH\020\323G\0220\n+RET_SUMM" +
+      "ER_TIME_MINI_HARPASTUM_EXCEED_LIMIT\020\324G\022-" +
+      "\n(RET_SUMMER_TIME_MINI_HARPASTUMNOT_ENOU" +
+      "GH\020\325G\022+\n&RET_BOUNCE_CONJURING_COIN_EXCEE" +
+      "D_LIMIT\020\334G\022)\n$RET_BOUNCE_CONJURING_COIN_" +
+      "NOT_ENOUGH\020\335G\022!\n\034RET_CHESS_TEACH_MAP_FIN" +
+      "ISHED\020\337G\022#\n\036RET_CHESS_TEACH_MAP_UNFINISH" +
+      "ED\020\340G\022 \n\033RET_CHESS_COIN_EXCEED_LIMIT\020\341G\022" +
+      "\036\n\031RET_CHESS_COIN_NOT_ENOUGH\020\342G\022\035\n\030RET_C" +
+      "HESS_IN_PUNISH_TIME\020\343G\022\"\n\035RET_CHESS_PREV" +
+      "_MAP_UNFINISHED\020\344G\022\031\n\024RET_CHESS_MAP_LOCK" +
+      "ED\020\345G\022\034\n\027RET_BLITZ_RUSH_NOT_OPEN\020\350G\022$\n\037R" +
+      "ET_BLITZ_RUSH_DUNGEON_NOT_OPEN\020\351G\022\'\n\"RET" +
+      "_BLITZ_RUSH_COIN_A_EXCEED_LIMIT\020\352G\022\'\n\"RE" +
+      "T_BLITZ_RUSH_COIN_B_EXCEED_LIMIT\020\353G\022%\n R" +
+      "ET_BLITZ_RUSH_COIN_A_NOT_ENOUGH\020\354G\022%\n RE" +
+      "T_BLITZ_RUSH_COIN_B_NOT_ENOUGH\020\355G\022&\n!RET" +
+      "_MIRACLE_RING_VALUE_NOT_ENOUGH\020\361G\022\030\n\023RET" +
+      "_MIRACLE_RING_CD\020\362G\022&\n!RET_MIRACLE_RING_" +
+      "REWARD_NOT_TAKEN\020\363G\022!\n\034RET_MIRACLE_RING_" +
+      "NOT_DELIVER\020\364G\022$\n\037RET_MIRACLE_RING_DELIV" +
+      "ER_EXCEED\020\365G\022!\n\034RET_MIRACLE_RING_HAS_CRE" +
+      "ATED\020\366G\022%\n RET_MIRACLE_RING_HAS_NOT_CREA" +
+      "TED\020\367G\022\037\n\032RET_MIRACLE_RING_NOT_YOURS\020\370G\022" +
+      "\'\n\"RET_GADGET_FOUNDATION_UNAUTHORIZED\020\243H" +
+      "\022*\n%RET_GADGET_FOUNDATION_SCENE_NOT_FOUN" +
+      "D\020\244H\022,\n\'RET_GADGET_FOUNDATION_NOT_IN_INI" +
+      "T_STATE\020\245H\0224\n/RET_GADGET_FOUNDATION_BILD" +
+      "ING_POINT_NOT_ENOUGHT\020\246H\022-\n(RET_GADGET_F" +
+      "OUNDATION_NOT_IN_BUILT_STATE\020\247H\022+\n&RET_G" +
+      "ADGET_FOUNDATION_OP_NOT_SUPPORTED\020\250H\0222\n-" +
+      "RET_GADGET_FOUNDATION_REQ_PLAYER_NOT_IN_" +
+      "SCENE\020\251H\0223\n.RET_GADGET_FOUNDATION_LOCKED" +
+      "_BY_ANOTHER_PLAYER\020\252H\022%\n RET_GADGET_FOUN" +
+      "DATION_NOT_LOCKED\020\253H\022)\n$RET_GADGET_FOUND" +
+      "ATION_DUPLICATE_LOCK\020\254H\022+\n&RET_GADGET_FO" +
+      "UNDATION_PLAYER_NOT_FOUND\020\255H\0220\n+RET_GADG" +
+      "ET_FOUNDATION_PLAYER_GEAR_NOT_FOUND\020\256H\022+" +
+      "\n&RET_GADGET_FOUNDATION_ROTAION_DISABLED" +
+      "\020\257H\0223\n.RET_GADGET_FOUNDATION_REACH_DUNGE" +
+      "ON_GEAR_LIMIT\020\260H\0222\n-RET_GADGET_FOUNDATIO" +
+      "N_REACH_SINGLE_GEAR_LIMIT\020\261H\022,\n\'RET_GADG" +
+      "ET_FOUNDATION_ROTATION_ON_GOING\020\262H\022$\n\037RE" +
+      "T_OP_ACTIVITY_BONUS_NOT_FOUND\020\325H\022\035\n\030RET_" +
+      "OP_ACTIVITY_NOT_OPEN\020\326H\022,\n\'RET_MULTISTAG" +
+      "E_PLAY_PLAYER_NOT_IN_SCENE\020\235J\022\"\n\035RET_MUL" +
+      "TISTAGE_PLAY_NOT_FOUND\020\236J\022\036\n\031RET_COOP_CH" +
+      "APTER_NOT_OPEN\020\201K\022\033\n\026RET_COOP_COND_NOT_M" +
+      "EET\020\202K\022\032\n\025RET_COOP_POINT_LOCKED\020\203K\022\037\n\032RE" +
+      "T_COOP_NOT_HAVE_PROGRESS\020\204K\022\036\n\031RET_COOP_" +
+      "REWARD_HAS_TAKEN\020\205K\022\037\n\032RET_DRAFT_HAS_ACT" +
+      "IVE_DRAFT\020\263K\022\036\n\031RET_DRAFT_NOT_IN_MY_WORL" +
+      "D\020\264K\022\035\n\030RET_DRAFT_NOT_SUPPORT_MP\020\265K\022 \n\033R" +
+      "ET_DRAFT_PLAYER_NOT_ENOUGH\020\266K\022\036\n\031RET_DRA" +
+      "FT_INCORRECT_SCENE\020\267K\022$\n\037RET_DRAFT_OTHER" +
+      "_PLAYER_ENTERING\020\270K\022$\n\037RET_DRAFT_GUEST_I" +
+      "S_TRANSFERRING\020\271K\022\'\n\"RET_DRAFT_GUEST_NOT" +
+      "_IN_DRAFT_SCENE\020\272K\022\037\n\032RET_DRAFT_INVITE_O" +
+      "VER_TIME\020\273K\022\'\n\"RET_DRAFT_TWICE_CONFIRM_O" +
+      "VER_TIMER\020\274K\022\024\n\017RET_HOME_UNKOWN\020\345K\022\"\n\035RE" +
+      "T_HOME_INVALID_CLIENT_PARAM\020\346K\022&\n!RET_HO" +
+      "ME_TARGE_PLAYER_HAS_NO_HOME\020\347K\022\030\n\023RET_HO" +
+      "ME_NOT_ONLINE\020\350K\022\031\n\024RET_HOME_PLAYER_FULL" +
+      "\020\351K\022\025\n\020RET_HOME_BLOCKED\020\352K\022*\n%RET_HOME_A" +
+      "LREADY_IN_TARGET_HOME_WORLD\020\353K\022\032\n\025RET_HO" +
+      "ME_IN_EDIT_MODE\020\354K\022\036\n\031RET_HOME_NOT_IN_ED" +
+      "IT_MODE\020\355K\022\027\n\022RET_HOME_HAS_GUEST\020\356K\022(\n#R" +
+      "ET_HOME_CANT_ENTER_BY_IN_EDIT_MODE\020\357K\022\"\n" +
+      "\035RET_HOME_CLIENT_PARAM_INVALID\020\360K\022&\n!RET" +
+      "_HOME_PLAYER_NOT_IN_HOME_WORLD\020\361K\022+\n&RET" +
+      "_HOME_PLAYER_NOT_IN_SELF_HOME_WORLD\020\362K\022\036" +
+      "\n\031RET_HOME_NOT_FOUND_IN_MEM\020\363K\022\'\n\"RET_HO" +
+      "ME_PLAYER_IN_HOME_ROOM_SCENE\020\364K\022%\n RET_H" +
+      "OME_HOME_REFUSE_GUEST_ENTER\020\365K\022(\n#RET_HO" +
+      "ME_OWNER_REFUSE_TO_ENTER_HOME\020\366K\022\033\n\026RET_" +
+      "HOME_OWNER_OFFLINE\020\367K\022$\n\037RET_HOME_FURNIT" +
+      "URE_EXCEED_LIMIT\020\370K\022(\n#RET_HOME_FURNITUR" +
+      "E_COUNT_NOT_ENOUGH\020\371K\022\"\n\035RET_HOME_IN_TRY" +
+      "_ENTER_PROCESS\020\372K\022%\n RET_HOME_ALREADY_IN" +
+      "_TARGET_SCENE\020\373K\022\037\n\032RET_HOME_COIN_EXCEED" +
+      "_LIMIT\020\374K\022\035\n\030RET_HOME_COIN_NOT_ENOUGH\020\375K" +
+      "\022!\n\034RET_HOME_MODULE_NOT_UNLOCKED\020\376K\022\037\n\032R" +
+      "ET_HOME_CUR_MODULE_CLOSED\020\377K\022*\n%RET_HOME" +
+      "_FURNITURE_SUITE_NOT_UNLOCKED\020\200L\022\026\n\021RET_" +
+      "HOME_IN_MATCH\020\201L\022\027\n\022RET_HOME_IN_COMBAT\020\202" +
+      "L\022\032\n\025RET_HOME_EDIT_MODE_CD\020\203L\022!\n\034RET_HOM" +
+      "E_UPDATE_FURNITURE_CD\020\204L\022#\n\036RET_HOME_BLO" +
+      "CK_FURNITURE_LIMIT\020\205L\022\031\n\024RET_HOME_NOT_SU" +
+      "PPORT\020\206L\022\034\n\027RET_HOME_STATE_NOT_OPEN\020\207L\022#" +
+      "\n\036RET_HOME_TARGET_STATE_NOT_OPEN\020\210L\022)\n$R" +
+      "ET_HOME_APPLY_ENTER_OTHER_HOME_FAIL\020\211L\022 " +
+      "\n\033RET_HOME_SAVE_NO_MAIN_HOUSE\020\212L\022\030\n\023RET_" +
+      "HOME_IN_DUNGEON\020\213L\022!\n\034RET_HOME_ANY_GALLE" +
+      "RY_STARTED\020\214L\022\036\n\031RET_HOME_QUEST_BLOCK_HO" +
+      "ME\020\215L\022!\n\034RET_HOME_WAITING_PRIOR_CHECK\020\216L" +
+      "\022#\n\036RET_HOME_PERSISTENT_CHECK_FAIL\020\217L\022#\n" +
+      "\036RET_HOME_FIND_ONLINE_HOME_FAIL\020\220L\022\035\n\030RE" +
+      "T_HOME_JOIN_SCENE_FAIL\020\221L\022\030\n\023RET_HOME_MA" +
+      "X_PLAYER\020\222L\022\031\n\024RET_HOME_IN_TRANSFER\020\223L\022&" +
+      "\n!RET_HOME_ANY_HOME_GALLERY_STARTED\020\224L\022$" +
+      "\n\037RET_HOME_CAN_NOT_ENTER_IN_AUDIT\020\225L\022#\n\036" +
+      "RET_FURNITURE_MAKE_INDEX_ERROR\020\226L\022\036\n\031RET" +
+      "_FURNITURE_MAKE_LOCKED\020\227L\022$\n\037RET_FURNITU" +
+      "RE_MAKE_CONFIG_ERROR\020\230L\022!\n\034RET_FURNITURE" +
+      "_MAKE_SLOT_FULL\020\231L\022*\n%RET_FURNITURE_MAKE" +
+      "_ADD_FURNITURE_FAIL\020\232L\022 \n\033RET_FURNITURE_" +
+      "MAKE_UNFINISH\020\233L\022!\n\034RET_FURNITURE_MAKE_I" +
+      "S_FINISH\020\234L\022+\n&RET_FURNITURE_MAKE_NOT_IN" +
+      "_CORRECT_HOME\020\235L\022 \n\033RET_FURNITURE_MAKE_N" +
+      "O_COUNT\020\236L\022(\n#RET_FURNITURE_MAKE_ACCELER" +
+      "ATE_LIMIT\020\237L\022$\n\037RET_FURNITURE_MAKE_NO_MA" +
+      "KE_DATA\020\240L\022 \n\033RET_HOME_LIMITED_SHOP_CLOS" +
+      "E\020\241L\022\035\n\030RET_HOME_AVATAR_NOT_SHOW\020\242L\022&\n!R" +
+      "ET_HOME_EVENT_COND_NOT_SATISFIED\020\243L\022*\n%R" +
+      "ET_HOME_INVALID_ARRANGE_ANIMAL_PARAM\020\244L\022" +
+      "\'\n\"RET_HOME_INVALID_ARRANGE_NPC_PARAM\020\245L" +
+      "\022)\n$RET_HOME_INVALID_ARRANGE_SUITE_PARAM" +
+      "\020\246L\022.\n)RET_HOME_INVALID_ARRANGE_MAIN_HOU" +
+      "SE_PARAM\020\247L\022#\n\036RET_HOME_AVATAR_STATE_NOT" +
+      "_OPEN\020\250L\022#\n\036RET_HOME_PLANT_FIELD_NOT_EMP" +
+      "TY\020\251L\022\037\n\032RET_HOME_PLANT_FIELD_EMPTY\020\252L\022$" +
+      "\n\037RET_HOME_PLANT_FIELD_TYPE_ERROR\020\253L\022#\n\036" +
+      "RET_HOME_PLANT_TIME_NOT_ENOUGH\020\254L\022,\n\'RET" +
+      "_HOME_PLANT_SUB_FIELD_NUM_NOT_ENOUGH\020\255L\022" +
+      "%\n RET_HOME_PLANT_FIELD_PARAM_ERROR\020\256L\022\"" +
+      "\n\035RET_HOME_FURNITURE_GUID_ERROR\020\257L\022%\n RE" +
+      "T_HOME_FURNITURE_ARRANGE_LIMIT\020\260L\022 \n\033RET" +
+      "_HOME_FISH_FARMING_LIMIT\020\261L\022#\n\036RET_HOME_" +
+      "FISH_COUNT_NOT_ENOUGH\020\262L\022\"\n\035RET_HOME_FUR" +
+      "NITURE_COST_LIMIT\020\263L\022&\n!RET_HOME_CUSTOM_" +
+      "FURNITURE_INVALID\020\264L\022)\n$RET_HOME_INVALID" +
+      "_ARRANGE_GROUP_PARAM\020\265L\022+\n&RET_HOME_FURN" +
+      "ITURE_ARRANGE_GROUP_LIMIT\020\266L\0220\n+RET_HOME" +
+      "_PICTURE_FRAME_COOP_CG_GENDER_ERROR\020\267L\022." +
+      "\n)RET_HOME_PICTURE_FRAME_COOP_CG_NOT_UNL" +
+      "OCK\020\270L\022&\n!RET_HOME_FURNITURE_CANNOT_ARRA" +
+      "NGE\020\271L\022*\n%RET_HOME_FURNITURE_IN_DUPLICAT" +
+      "E_SUITE\020\272L\022.\n)RET_HOME_FURNITURE_CUSTOM_" +
+      "SUITE_TOO_SMALL\020\273L\022,\n\'RET_HOME_FURNITURE" +
+      "_CUSTOM_SUITE_TOO_BIG\020\274L\022*\n%RET_HOME_FUR" +
+      "NITURE_SUITE_EXCEED_LIMIT\020\275L\0221\n,RET_HOME" +
+      "_FURNITURE_CUSTOM_SUITE_EXCEED_LIMIT\020\276L\022" +
+      "9\n4RET_HOME_FURNITURE_CUSTOM_SUITE_INVAL" +
+      "ID_SURFACE_TYPE\020\277L\022\036\n\031RET_HOME_BGM_ID_NO" +
+      "T_FOUND\020\300L\022\036\n\031RET_HOME_BGM_NOT_UNLOCKED\020" +
+      "\301L\022%\n RET_HOME_BGM_FURNITURE_NOT_FOUND\020\302" +
+      "L\022*\n%RET_HOME_BGM_NOT_SUPPORT_BY_CUR_SCE" +
+      "NE\020\303L\022(\n#RET_HOME_LIMITED_SHOP_GOODS_DIS" +
+      "ABLE\020\304L\022\'\n\"RET_HOME_WORLD_WOOD_MATERIAL_" +
+      "EMPTY\020\305L\022+\n&RET_HOME_WORLD_WOOD_MATERIAL" +
+      "_NOT_FOUND\020\306L\022/\n*RET_HOME_WORLD_WOOD_MAT" +
+      "ERIAL_COUNT_INVALID\020\307L\022.\n)RET_HOME_WORLD" +
+      "_WOOD_EXCHANGE_EXCEED_LIMIT\020\310L\022%\n RET_SU" +
+      "MO_ACTIVITY_STAGE_NOT_OPEN\020\220N\022(\n#RET_SUM" +
+      "O_ACTIVITY_SWITCH_TEAM_IN_CD\020\221N\022)\n$RET_S" +
+      "UMO_ACTIVITY_TEAM_NUM_INCORRECT\020\222N\022)\n$RE" +
+      "T_LUNA_RITE_ACTIVITY_AREA_ID_ERROR\020\224N\022-\n" +
+      "(RET_LUNA_RITE_ACTIVITY_BATTLE_NOT_FINIS" +
+      "H\020\225N\022-\n(RET_LUNA_RITE_ACTIVITY_ALREADY_S" +
+      "ACRIFICE\020\226N\022/\n*RET_LUNA_RITE_ACTIVITY_AL" +
+      "READY_TAKE_REWARD\020\227N\0220\n+RET_LUNA_RITE_AC" +
+      "TIVITY_SACRIFICE_NOT_ENOUGH\020\230N\0223\n.RET_LU" +
+      "NA_RITE_ACTIVITY_SEARCHING_COND_NOT_MEET" +
+      "\020\231N\022\'\n\"RET_DIG_GADGET_CONFIG_ID_NOT_MATC" +
+      "H\020\237N\022\"\n\035RET_DIG_FIND_NEAREST_POS_FAIL\020\240N" +
+      "\022\"\n\035RET_MUSIC_GAME_LEVEL_NOT_OPEN\020\245N\022$\n\037" +
+      "RET_MUSIC_GAME_LEVEL_NOT_UNLOCK\020\246N\022%\n RE" +
+      "T_MUSIC_GAME_LEVEL_NOT_STARTED\020\247N\022*\n%RET" +
+      "_MUSIC_GAME_LEVEL_CONFIG_NOT_FOUND\020\250N\022&\n" +
+      "!RET_MUSIC_GAME_LEVEL_ID_NOT_MATCH\020\251N\022$\n" +
+      "\037RET_ROGUELIKE_COIN_A_NOT_ENOUGH\020\257N\022$\n\037R" +
+      "ET_ROGUELIKE_COIN_B_NOT_ENOUGH\020\260N\022$\n\037RET" +
+      "_ROGUELIKE_COIN_C_NOT_ENOUGH\020\261N\022&\n!RET_R" +
+      "OGUELIKE_COIN_A_EXCEED_LIMIT\020\262N\022&\n!RET_R" +
+      "OGUELIKE_COIN_B_EXCEED_LIMIT\020\263N\022&\n!RET_R" +
+      "OGUELIKE_COIN_C_EXCEED_LIMIT\020\264N\022(\n#RET_R" +
+      "OGUELIKE_RUNE_COUNT_NOT_ENOUGH\020\265N\022\'\n\"RET" +
+      "_ROGUELIKE_NOT_IN_ROGUE_DUNGEON\020\266N\022!\n\034RE" +
+      "T_ROGUELIKE_CELL_NOT_FOUND\020\267N\022&\n!RET_ROG" +
+      "UELIKE_CELL_TYPE_INCORRECT\020\270N\022(\n#RET_ROG" +
+      "UELIKE_CELL_ALREADY_FINISHED\020\271N\0223\n.RET_R" +
+      "OGUELIKE_DUNGEON_HAVE_UNFINISHED_PROGRES" +
+      "S\020\272N\022%\n RET_ROGUELIKE_STAGE_NOT_FINISHED" +
+      "\020\273N\0224\n/RET_ROGUELIKE_STAGE_FIRST_PASS_RE" +
+      "WARD_HAS_TAKEN\020\275N\022*\n%RET_ROGUELIKE_ACTIV" +
+      "ITY_CONTENT_CLOSED\020\276N\0221\n,RET_ROGUELIKE_D" +
+      "UNGEON_PRE_QUEST_NOT_FINISHED\020\277N\022#\n\036RET_" +
+      "ROGUELIKE_DUNGEON_NOT_OPEN\020\300N\022#\n\036RET_ROG" +
+      "UELIKE_SPRINT_IS_BANNED\020\301N\0221\n,RET_ROGUEL" +
+      "IKE_DUNGEON_PRE_STAGE_NOT_FINISHED\020\302N\022/\n" +
+      "*RET_ROGUELIKE_ALL_AVATAR_DIE_CANNOT_RES" +
+      "UME\020\303N\022\'\n\"RET_PLANT_FLOWER_ALREADY_TAKE_" +
+      "SEED\020\310N\022.\n)RET_PLANT_FLOWER_FRIEND_HAVE_" +
+      "FLOWER_LIMIT\020\311N\0220\n+RET_PLANT_FLOWER_CAN_" +
+      "GIVE_FLOWER_NOT_ENOUGH\020\312N\022-\n(RET_PLANT_F" +
+      "LOWER_WISH_FLOWER_KINDS_LIMIT\020\313N\022,\n\'RET_" +
+      "PLANT_FLOWER_HAVE_FLOWER_NOT_ENOUGH\020\314N\0220" +
+      "\n+RET_PLANT_FLOWER_FLOWER_COMBINATION_IN" +
+      "VALID\020\315N\022 \n\033RET_HACHI_DUNGEON_NOT_VALID\020" +
+      "\304N\022%\n RET_HACHI_DUNGEON_STAGE_NOT_OPEN\020\305" +
+      "N\022(\n#RET_HACHI_DUNGEON_TEAMMATE_NOT_PASS" +
+      "\020\306N\022&\n!RET_WINTER_CAMP_COIN_A_NOT_ENOUGH" +
+      "\020\327N\022&\n!RET_WINTER_CAMP_COIN_B_NOT_ENOUGH" +
+      "\020\330N\022(\n#RET_WINTER_CAMP_COIN_A_EXCEED_LIM" +
+      "IT\020\331N\022(\n#RET_WINTER_CAMP_COIN_B_EXCEED_L" +
+      "IMIT\020\332N\022$\n\037RET_WINTER_CAMP_WISH_ID_INVAL" +
+      "ID\020\333N\022-\n(RET_WINTER_CAMP_NOT_FOUND_RECV_" +
+      "ITEM_DATA\020\334N\022/\n*RET_WINTER_CAMP_FRIEND_I" +
+      "TEM_COUNT_OVERFLOW\020\335N\022-\n(RET_WINTER_CAMP" +
+      "_SELECT_ITEM_DATA_INVALID\020\336N\022$\n\037RET_WINT" +
+      "ER_CAMP_ITEM_LIST_EMPTY\020\337N\022)\n$RET_WINTER" +
+      "_CAMP_REWARD_ALREADY_TAKEN\020\340N\022%\n RET_WIN",
+      "TER_CAMP_STAGE_NOT_FINISH\020\341N\022#\n\036RET_WINT" +
+      "ER_CAMP_GADGET_INVALID\020\342N\022\'\n\"RET_LANTERN" +
+      "_RITE_COIN_A_NOT_ENOUGH\020\352N\022\'\n\"RET_LANTER" +
+      "N_RITE_COIN_B_NOT_ENOUGH\020\353N\022\'\n\"RET_LANTE" +
+      "RN_RITE_COIN_C_NOT_ENOUGH\020\354N\022)\n$RET_LANT" +
+      "ERN_RITE_COIN_A_EXCEED_LIMIT\020\355N\022)\n$RET_L" +
+      "ANTERN_RITE_COIN_B_EXCEED_LIMIT\020\356N\022)\n$RE" +
+      "T_LANTERN_RITE_COIN_C_EXCEED_LIMIT\020\357N\022/\n" +
+      "*RET_LANTERN_RITE_PROJECTION_CONTENT_CLO" +
+      "SED\020\360N\022.\n)RET_LANTERN_RITE_PROJECTION_CA" +
+      "N_NOT_START\020\361N\022&\n!RET_LANTERN_RITE_DUNGE" +
+      "ON_NOT_OPEN\020\362N\022+\n&RET_LANTERN_RITE_HAS_T" +
+      "AKEN_SKIN_REWARD\020\363N\0220\n+RET_LANTERN_RITE_" +
+      "NOT_FINISHED_SKIN_WATCHERS\020\364N\022.\n)RET_LAN" +
+      "TERN_RITE_FIREWORKS_CONTENT_CLOSED\020\365N\0223\n" +
+      ".RET_LANTERN_RITE_FIREWORKS_CHALLENGE_NO" +
+      "T_START\020\366N\0222\n-RET_LANTERN_RITE_FIREWORKS" +
+      "_REFORM_PARAM_ERROR\020\367N\0221\n,RET_LANTERN_RI" +
+      "TE_FIREWORKS_REFORM_SKILL_LOCK\020\370N\0229\n4RET" +
+      "_LANTERN_RITE_FIREWORKS_REFORM_STAMINA_N" +
+      "OT_ENOUGH\020\371N\022\'\n\"RET_POTION_ACTIVITY_STAG" +
+      "E_NOT_OPEN\020\376N\022(\n#RET_POTION_ACTIVITY_LEV" +
+      "EL_HAVE_PASS\020\377N\022+\n&RET_POTION_ACTIVITY_T" +
+      "EAM_NUM_INCORRECT\020\200O\022%\n RET_POTION_ACTIV" +
+      "ITY_AVATAR_IN_CD\020\201O\022#\n\036RET_POTION_ACTIVI" +
+      "TY_BUFF_IN_CD\020\202O\022\'\n\"RET_IRODORI_POETRY_I" +
+      "NVALID_LINE_ID\020\210O\022(\n#RET_IRODORI_POETRY_" +
+      "INVALID_THEME_ID\020\211O\022/\n*RET_IRODORI_POETR" +
+      "Y_NOT_GET_ALL_INSPIRATION\020\212O\022/\n*RET_IROD" +
+      "ORI_POETRY_INSPIRATION_REACH_LIMIE\020\213O\022.\n" +
+      ")RET_IRODORI_POETRY_ENTITY_ALREADY_SCANN" +
+      "ED\020\214O\022(\n#RET_ACTIVITY_BANNER_ALREADY_CLE" +
+      "ARED\020\274P\022\037\n\032RET_IRODORI_CHESS_NOT_OPEN\020\275P" +
+      "\022%\n RET_IRODORI_CHESS_LEVEL_NOT_OPEN\020\276P\022" +
+      "#\n\036RET_IRODORI_CHESS_MAP_NOT_OPEN\020\277P\022/\n*" +
+      "RET_IRODORI_CHESS_MAP_CARD_ALREADY_EQUIP" +
+      "ED\020\300P\022.\n)RET_IRODORI_CHESS_EQUIP_CARD_EX" +
+      "CEED_LIMIT\020\301P\022+\n&RET_IRODORI_CHESS_MAP_C" +
+      "ARD_NOT_EQUIPED\020\302P\0223\n.RET_IRODORI_CHESS_" +
+      "ENTER_FAIL_CARD_EXCEED_LIMIT\020\303P\022(\n#RET_A" +
+      "CTIVITY_FRIEND_HAVE_GIFT_LIMIT\020\306P\022)\n$RET" +
+      "_GACHA_ACTIVITY_HAVE_REWARD_LIMIT\020\313P\022(\n#" +
+      "RET_GACHA_ACTIVITY_HAVE_ROBOT_LIMIT\020\314P\022)" +
+      "\n$RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT\020\315" +
+      "P\022\'\n\"RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH\020" +
+      "\316P\022.\n)RET_SUMMER_TIME_V2_DUNGEON_STAGE_N" +
+      "OT_OPEN\020\317P\0221\n,RET_SUMMER_TIME_V2_PREV_DU" +
+      "NGEON_NOT_COMPLETE\020\320P\022!\n\034RET_ROGUE_DIARY" +
+      "_AVATAR_DEATH\020\356P\022!\n\034RET_ROGUE_DIARY_AVAT" +
+      "AR_TIRED\020\357P\022&\n!RET_ROGUE_DIARY_AVATAR_DU" +
+      "PLICATED\020\360P\022$\n\037RET_ROGUE_DIARY_COIN_NOT_" +
+      "ENOUGH\020\361P\022.\n)RET_ROGUE_DIARY_VIRTUAL_COI" +
+      "N_EXCEED_LIMIT\020\362P\022,\n\'RET_ROGUE_DIARY_VIR" +
+      "TUAL_COIN_NOT_ENOUGH\020\363P\022#\n\036RET_ROGUE_DIA" +
+      "RY_CONTENT_CLOSED\020\376P\022+\n&RET_GRAVEN_INNOC" +
+      "ENCE_COIN_A_NOT_ENOUGH\020\214Q\022+\n&RET_GRAVEN_" +
+      "INNOCENCE_COIN_B_NOT_ENOUGH\020\215Q\022-\n(RET_GR" +
+      "AVEN_INNOCENCE_COIN_A_EXCEED_LIMIT\020\216Q\022-\n" +
+      "(RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMI" +
+      "T\020\217Q\022$\n\037RET_ISLAND_PARTY_STAGE_NOT_OPEN\020" +
+      "\203Q\022\027\n\022RET_NOT_IN_FISHING\020\371U\022\031\n\024RET_FISH_" +
+      "STATE_ERROR\020\372U\022\030\n\023RET_FISH_BAIT_LIMIT\020\373U" +
+      "\022\035\n\030RET_FISHING_MAX_DISTANCE\020\374U\022\032\n\025RET_F" +
+      "ISHING_IN_COMBAT\020\375U\022!\n\034RET_FISHING_BATTL" +
+      "E_TOO_SHORT\020\376U\022\027\n\022RET_FISH_GONE_AWAY\020\377U\022" +
+      "#\n\036RET_CAN_NOT_EDIT_OTHER_DUNGEON\020\253V\022 \n\033" +
+      "RET_CUSTOM_DUNGEON_DISMATCH\020\254V\022\037\n\032RET_NO" +
+      "_CUSTOM_DUNGEON_DATA\020\255V\022\"\n\035RET_BUILD_CUS" +
+      "TOM_DUNGEON_FAIL\020\256V\022\'\n\"RET_CUSTOM_DUNGEO" +
+      "N_ROOM_CHECK_FAIL\020\257V\022%\n RET_CUSTOM_DUNGE" +
+      "ON_SAVE_MAY_FAIL\020\260V\022\036\n\031RET_NOT_IN_CUSTOM" +
+      "_DUNGEON\020\261V\022%\n RET_CUSTOM_DUNGEON_INTERN" +
+      "AL_FAIL\020\262V\022#\n\036RET_CUSTOM_DUNGEON_CAN_NOT" +
+      "_TRY\020\263V\022%\n RET_CUSTOM_DUNGEON_NO_START_R" +
+      "OOM\020\264V\022$\n\037RET_CUSTOM_DUNGEON_NO_ROOM_DAT" +
+      "A\020\265V\022)\n$RET_CUSTOM_DUNGEON_SAVE_TOO_FREQ" +
+      "UENT\020\266V\022%\n RET_CUSTOM_DUNGEON_NOT_SELF_P" +
+      "ASS\020\267V\022!\n\034RET_CUSTOM_DUNGEON_LACK_COIN\020\270" +
+      "V\022\'\n\"RET_CUSTOM_DUNGEON_NO_FINISH_BRICK\020" +
+      "\271V\022$\n\037RET_CUSTOM_DUNGEON_MULTI_FINISH\020\272V" +
+      "\022%\n RET_CUSTOM_DUNGEON_NOT_PUBLISHED\020\273V\022" +
+      "\"\n\035RET_CUSTOM_DUNGEON_FULL_STORE\020\274V\022$\n\037R" +
+      "ET_CUSTOM_DUNGEON_STORE_REPEAT\020\275V\022*\n%RET" +
+      "_CUSTOM_DUNGEON_CAN_NOT_STORE_SELF\020\276V\022%\n" +
+      " RET_CUSTOM_DUNGEON_NOT_SAVE_SUCC\020\277V\022)\n$" +
+      "RET_CUSTOM_DUNGEON_CAN_NOT_LIKE_SELF\020\300V\022" +
+      "!\n\034RET_CUSTOM_DUNGEON_NOT_FOUND\020\301V\022\'\n\"RE" +
+      "T_CUSTOM_DUNGEON_INVALID_SETTING\020\302V\022)\n$R" +
+      "ET_CUSTOM_DUNGEON_NO_FINISH_SETTING\020\303V\022$" +
+      "\n\037RET_CUSTOM_DUNGEON_SAVE_NOTHING\020\304V\022$\n\037" +
+      "RET_CUSTOM_DUNGEON_NOT_IN_GROUP\020\305V\022$\n\037RE" +
+      "T_CUSTOM_DUNGEON_NOT_OFFICIAL\020\306V\022&\n!RET_" +
+      "CUSTOM_DUNGEON_LIFE_NUM_ERROR\020\307V\022$\n\037RET_" +
+      "CUSTOM_DUNGEON_NO_OPEN_ROOM\020\310V\022*\n%RET_CU" +
+      "STOM_DUNGEON_BRICK_EXCEED_LIMIT\020\311V\022+\n&RE" +
+      "T_CUSTOM_DUNGEON_OFFICIAL_NOT_UNLOCK\020\312V\022" +
+      "&\n!RET_CAN_NOT_EDIT_OFFICIAL_SETTING\020\313V\022" +
+      "#\n\036RET_CUSTOM_DUNGEON_BAN_PUBLISH\020\314V\022&\n!" +
+      "RET_CUSTOM_DUNGEON_CAN_NOT_REPLAY\020\315V\022&\n!" +
+      "RET_CUSTOM_DUNGEON_NOT_OPEN_GROUP\020\316V\022$\n\037" +
+      "RET_CUSTOM_DUNGEON_MAX_EDIT_NUM\020\317V\022)\n$RE" +
+      "T_CUSTOM_DUNGEON_CAN_NOT_OUT_STUCK\020\320V\022\037\n" +
+      "\032RET_CUSTOM_DUNGEON_MAX_TAG\020\321V\022#\n\036RET_CU" +
+      "STOM_DUNGEON_INVALID_TAG\020\322V\022 \n\033RET_CUSTO" +
+      "M_DUNGEON_MAX_COST\020\323V\022,\n\'RET_CUSTOM_DUNG" +
+      "EON_REQUEST_TOO_FREQUENT\020\324V\022 \n\033RET_CUSTO" +
+      "M_DUNGEON_NOT_OPEN\020\325V\022\032\n\025RET_SHARE_CD_ID" +
+      "_ERROR\020\335V\022\035\n\030RET_SHARE_CD_INDEX_ERROR\020\336V" +
+      "\022\027\n\022RET_SHARE_CD_IN_CD\020\337V\022\"\n\035RET_SHARE_C" +
+      "D_TOKEN_NOT_ENOUGH\020\340V\022\025\n\020RET_UGC_DISMATC" +
+      "H\020\217W\022\033\n\026RET_UGC_DATA_NOT_FOUND\020\220W\022\034\n\027RET" +
+      "_UGC_BRIEF_NOT_FOUND\020\221W\022\025\n\020RET_UGC_DISAB" +
+      "LED\020\222W\022\024\n\017RET_UGC_LIMITED\020\223W\022\023\n\016RET_UGC_" +
+      "LOCKED\020\224W\022\025\n\020RET_UGC_NOT_AUTH\020\225W\022\025\n\020RET_" +
+      "UGC_NOT_OPEN\020\226W\022\030\n\023RET_UGC_BAN_PUBLISH\020\227" +
+      "W\022&\n!RET_COMPOUND_BOOST_ITEM_NOT_EXIST\020\301" +
+      "W\022(\n#RET_COMPOUND_BOOST_TARGET_NOT_EXIST" +
+      "\020\302W\022#\n\036RET_QUICK_HIT_TREE_EMPTY_TREES\020\313W" +
+      "B\033\n\031emu.grasscutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaUnlockNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaUnlockNotifyOuterClass.java
index 8e4b4732..293ff485 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaUnlockNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaUnlockNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class SceneAreaUnlockNotifyOuterClass {
    * <pre>
    * CmdId: 293
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneAreaUnlockNotify}
@@ -381,7 +382,8 @@ public final class SceneAreaUnlockNotifyOuterClass {
      * <pre>
      * CmdId: 293
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneAreaUnlockNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaWeatherNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaWeatherNotifyOuterClass.java
index 9f3d617b..811fd34a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaWeatherNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneAreaWeatherNotifyOuterClass.java
@@ -80,7 +80,8 @@ public final class SceneAreaWeatherNotifyOuterClass {
    * <pre>
    * CmdId: 230
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneAreaWeatherNotify}
@@ -546,7 +547,8 @@ public final class SceneAreaWeatherNotifyOuterClass {
      * <pre>
      * CmdId: 230
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneAreaWeatherNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAppearNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAppearNotifyOuterClass.java
index 85ee0ecb..4c709aec 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAppearNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAppearNotifyOuterClass.java
@@ -63,7 +63,8 @@ public final class SceneEntityAppearNotifyOuterClass {
    * <pre>
    * CmdId: 221
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneEntityAppearNotify}
@@ -420,7 +421,8 @@ public final class SceneEntityAppearNotifyOuterClass {
      * <pre>
      * CmdId: 221
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneEntityAppearNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDisappearNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDisappearNotifyOuterClass.java
index c161f84c..6f9388c0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDisappearNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDisappearNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class SceneEntityDisappearNotifyOuterClass {
    * <pre>
    * CmdId: 203
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneEntityDisappearNotify}
@@ -428,7 +429,8 @@ public final class SceneEntityDisappearNotifyOuterClass {
      * <pre>
      * CmdId: 203
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneEntityDisappearNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java
index 8a47ec1a..13337fd7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java
@@ -28,7 +28,7 @@ public final class SceneEntityDrownReqOuterClass {
    * <pre>
    * CmdId: 227
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class SceneEntityDrownReqOuterClass {
      * <pre>
      * CmdId: 227
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java
index b56c920c..3118dd0b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java
@@ -34,7 +34,8 @@ public final class SceneEntityDrownRspOuterClass {
    * <pre>
    * CmdId: 294
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneEntityDrownRsp}
@@ -315,7 +316,8 @@ public final class SceneEntityDrownRspOuterClass {
      * <pre>
      * CmdId: 294
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneEntityDrownRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityMoveNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityMoveNotifyOuterClass.java
index a356c369..d2891f77 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityMoveNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneEntityMoveNotifyOuterClass.java
@@ -54,8 +54,9 @@ public final class SceneEntityMoveNotifyOuterClass {
   /**
    * <pre>
    * CmdId: 275
-   * EnetChannelId: 1
+   * EnetChannelId: 0
    * EnetIsReliable: true
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneEntityMoveNotify}
@@ -417,8 +418,9 @@ public final class SceneEntityMoveNotifyOuterClass {
     /**
      * <pre>
      * CmdId: 275
-     * EnetChannelId: 1
+     * EnetChannelId: 0
      * EnetIsReliable: true
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneEntityMoveNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneForceUnlockNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneForceUnlockNotifyOuterClass.java
index 472f1461..b42b05bd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneForceUnlockNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneForceUnlockNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class SceneForceUnlockNotifyOuterClass {
    * <pre>
    * CmdId: 206
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneForceUnlockNotify}
@@ -382,7 +383,8 @@ public final class SceneForceUnlockNotifyOuterClass {
      * <pre>
      * CmdId: 206
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneForceUnlockNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneGadgetInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneGadgetInfoOuterClass.java
index 7530e5de..fcfedf16 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneGadgetInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneGadgetInfoOuterClass.java
@@ -460,6 +460,21 @@ public final class SceneGadgetInfoOuterClass {
      */
     emu.grasscutter.net.proto.Unk2800FHMOLALLEEN.Unk2800_FHMOLALLEENOrBuilder getNightCrowGadgetInfoOrBuilder();
 
+    /**
+     * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+     * @return Whether the deshretObeliskGadgetInfo field is set.
+     */
+    boolean hasDeshretObeliskGadgetInfo();
+    /**
+     * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+     * @return The deshretObeliskGadgetInfo.
+     */
+    emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF getDeshretObeliskGadgetInfo();
+    /**
+     * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder getDeshretObeliskGadgetInfoOrBuilder();
+
     public emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo.ContentCase getContentCase();
   }
   /**
@@ -900,6 +915,20 @@ public final class SceneGadgetInfoOuterClass {
               contentCase_ = 62;
               break;
             }
+            case 506: {
+              emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder subBuilder = null;
+              if (contentCase_ == 63) {
+                subBuilder = ((emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_).toBuilder();
+              }
+              content_ =
+                  input.readMessage(emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_);
+                content_ = subBuilder.buildPartial();
+              }
+              contentCase_ = 63;
+              break;
+            }
             case 802: {
               emu.grasscutter.net.proto.GadgetPlayInfoOuterClass.GadgetPlayInfo.Builder subBuilder = null;
               if (playInfo_ != null) {
@@ -973,6 +1002,7 @@ public final class SceneGadgetInfoOuterClass {
       CUSTOM_GADGET_TREE_INFO(60),
       ROGUELIKE_GADGET_INFO(61),
       NIGHT_CROW_GADGET_INFO(62),
+      DESHRET_OBELISK_GADGET_INFO(63),
       CONTENT_NOT_SET(0);
       private final int value;
       private ContentCase(int value) {
@@ -1010,6 +1040,7 @@ public final class SceneGadgetInfoOuterClass {
           case 60: return CUSTOM_GADGET_TREE_INFO;
           case 61: return ROGUELIKE_GADGET_INFO;
           case 62: return NIGHT_CROW_GADGET_INFO;
+          case 63: return DESHRET_OBELISK_GADGET_INFO;
           case 0: return CONTENT_NOT_SET;
           default: return null;
         }
@@ -1898,6 +1929,37 @@ public final class SceneGadgetInfoOuterClass {
       return emu.grasscutter.net.proto.Unk2800FHMOLALLEEN.Unk2800_FHMOLALLEEN.getDefaultInstance();
     }
 
+    public static final int DESHRET_OBELISK_GADGET_INFO_FIELD_NUMBER = 63;
+    /**
+     * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+     * @return Whether the deshretObeliskGadgetInfo field is set.
+     */
+    @java.lang.Override
+    public boolean hasDeshretObeliskGadgetInfo() {
+      return contentCase_ == 63;
+    }
+    /**
+     * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+     * @return The deshretObeliskGadgetInfo.
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF getDeshretObeliskGadgetInfo() {
+      if (contentCase_ == 63) {
+         return (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_;
+      }
+      return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+    }
+    /**
+     * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder getDeshretObeliskGadgetInfoOrBuilder() {
+      if (contentCase_ == 63) {
+         return (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_;
+      }
+      return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -2028,6 +2090,9 @@ public final class SceneGadgetInfoOuterClass {
       if (contentCase_ == 62) {
         output.writeMessage(62, (emu.grasscutter.net.proto.Unk2800FHMOLALLEEN.Unk2800_FHMOLALLEEN) content_);
       }
+      if (contentCase_ == 63) {
+        output.writeMessage(63, (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_);
+      }
       if (playInfo_ != null) {
         output.writeMessage(100, getPlayInfo());
       }
@@ -2198,6 +2263,10 @@ public final class SceneGadgetInfoOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(62, (emu.grasscutter.net.proto.Unk2800FHMOLALLEEN.Unk2800_FHMOLALLEEN) content_);
       }
+      if (contentCase_ == 63) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(63, (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_);
+      }
       if (playInfo_ != null) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(100, getPlayInfo());
@@ -2340,6 +2409,10 @@ public final class SceneGadgetInfoOuterClass {
           if (!getNightCrowGadgetInfo()
               .equals(other.getNightCrowGadgetInfo())) return false;
           break;
+        case 63:
+          if (!getDeshretObeliskGadgetInfo()
+              .equals(other.getDeshretObeliskGadgetInfo())) return false;
+          break;
         case 0:
         default:
       }
@@ -2479,6 +2552,10 @@ public final class SceneGadgetInfoOuterClass {
           hash = (37 * hash) + NIGHT_CROW_GADGET_INFO_FIELD_NUMBER;
           hash = (53 * hash) + getNightCrowGadgetInfo().hashCode();
           break;
+        case 63:
+          hash = (37 * hash) + DESHRET_OBELISK_GADGET_INFO_FIELD_NUMBER;
+          hash = (53 * hash) + getDeshretObeliskGadgetInfo().hashCode();
+          break;
         case 0:
         default:
       }
@@ -2858,6 +2935,13 @@ public final class SceneGadgetInfoOuterClass {
             result.content_ = nightCrowGadgetInfoBuilder_.build();
           }
         }
+        if (contentCase_ == 63) {
+          if (deshretObeliskGadgetInfoBuilder_ == null) {
+            result.content_ = content_;
+          } else {
+            result.content_ = deshretObeliskGadgetInfoBuilder_.build();
+          }
+        }
         result.contentCase_ = contentCase_;
         onBuilt();
         return result;
@@ -3049,6 +3133,10 @@ public final class SceneGadgetInfoOuterClass {
             mergeNightCrowGadgetInfo(other.getNightCrowGadgetInfo());
             break;
           }
+          case DESHRET_OBELISK_GADGET_INFO: {
+            mergeDeshretObeliskGadgetInfo(other.getDeshretObeliskGadgetInfo());
+            break;
+          }
           case CONTENT_NOT_SET: {
             break;
           }
@@ -6722,6 +6810,147 @@ public final class SceneGadgetInfoOuterClass {
         onChanged();;
         return nightCrowGadgetInfoBuilder_;
       }
+
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder> deshretObeliskGadgetInfoBuilder_;
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       * @return Whether the deshretObeliskGadgetInfo field is set.
+       */
+      @java.lang.Override
+      public boolean hasDeshretObeliskGadgetInfo() {
+        return contentCase_ == 63;
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       * @return The deshretObeliskGadgetInfo.
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF getDeshretObeliskGadgetInfo() {
+        if (deshretObeliskGadgetInfoBuilder_ == null) {
+          if (contentCase_ == 63) {
+            return (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_;
+          }
+          return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+        } else {
+          if (contentCase_ == 63) {
+            return deshretObeliskGadgetInfoBuilder_.getMessage();
+          }
+          return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+        }
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      public Builder setDeshretObeliskGadgetInfo(emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF value) {
+        if (deshretObeliskGadgetInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          content_ = value;
+          onChanged();
+        } else {
+          deshretObeliskGadgetInfoBuilder_.setMessage(value);
+        }
+        contentCase_ = 63;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      public Builder setDeshretObeliskGadgetInfo(
+          emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder builderForValue) {
+        if (deshretObeliskGadgetInfoBuilder_ == null) {
+          content_ = builderForValue.build();
+          onChanged();
+        } else {
+          deshretObeliskGadgetInfoBuilder_.setMessage(builderForValue.build());
+        }
+        contentCase_ = 63;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      public Builder mergeDeshretObeliskGadgetInfo(emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF value) {
+        if (deshretObeliskGadgetInfoBuilder_ == null) {
+          if (contentCase_ == 63 &&
+              content_ != emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance()) {
+            content_ = emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.newBuilder((emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_)
+                .mergeFrom(value).buildPartial();
+          } else {
+            content_ = value;
+          }
+          onChanged();
+        } else {
+          if (contentCase_ == 63) {
+            deshretObeliskGadgetInfoBuilder_.mergeFrom(value);
+          }
+          deshretObeliskGadgetInfoBuilder_.setMessage(value);
+        }
+        contentCase_ = 63;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      public Builder clearDeshretObeliskGadgetInfo() {
+        if (deshretObeliskGadgetInfoBuilder_ == null) {
+          if (contentCase_ == 63) {
+            contentCase_ = 0;
+            content_ = null;
+            onChanged();
+          }
+        } else {
+          if (contentCase_ == 63) {
+            contentCase_ = 0;
+            content_ = null;
+          }
+          deshretObeliskGadgetInfoBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder getDeshretObeliskGadgetInfoBuilder() {
+        return getDeshretObeliskGadgetInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder getDeshretObeliskGadgetInfoOrBuilder() {
+        if ((contentCase_ == 63) && (deshretObeliskGadgetInfoBuilder_ != null)) {
+          return deshretObeliskGadgetInfoBuilder_.getMessageOrBuilder();
+        } else {
+          if (contentCase_ == 63) {
+            return (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_;
+          }
+          return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+        }
+      }
+      /**
+       * <code>.Unk3000_FANANGGCLOF deshret_obelisk_gadget_info = 63;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder> 
+          getDeshretObeliskGadgetInfoFieldBuilder() {
+        if (deshretObeliskGadgetInfoBuilder_ == null) {
+          if (!(contentCase_ == 63)) {
+            content_ = emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+          }
+          deshretObeliskGadgetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder>(
+                  (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) content_,
+                  getParentForChildren(),
+                  isClean());
+          content_ = null;
+        }
+        contentCase_ = 63;
+        onChanged();;
+        return deshretObeliskGadgetInfoBuilder_;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -6801,42 +7030,45 @@ public final class SceneGadgetInfoOuterClass {
       "oto\032\022PlatformInfo.proto\032\031RoguelikeGadget" +
       "Info.proto\032\020ScreenInfo.proto\032\026StatueGadg" +
       "etInfo.proto\032\031Unk2800_FHMOLALLEEN.proto\032" +
-      "\021VehicleInfo.proto\032\021WeatherInfo.proto\032\021W" +
-      "orktopInfo.proto\"\273\n\n\017SceneGadgetInfo\022\021\n\t" +
-      "gadget_id\030\001 \001(\r\022\020\n\010group_id\030\002 \001(\r\022\021\n\tcon" +
-      "fig_id\030\003 \001(\r\022\027\n\017owner_entity_id\030\004 \001(\r\022\"\n" +
-      "\tborn_type\030\005 \001(\0162\017.GadgetBornType\022\024\n\014gad" +
-      "get_state\030\006 \001(\r\022\023\n\013gadget_type\030\007 \001(\r\022\030\n\020" +
-      "is_show_cutscene\030\010 \001(\010\022\031\n\021authority_peer" +
-      "_id\030\t \001(\r\022\032\n\022is_enable_interact\030\n \001(\010\022\023\n" +
-      "\013interact_id\030\013 \001(\r\022\021\n\tmark_flag\030\025 \001(\r\022\034\n" +
-      "\024prop_owner_entity_id\030\026 \001(\r\022\037\n\010platform\030" +
-      "\027 \001(\0132\r.PlatformInfo\022\031\n\021interact_uid_lis" +
-      "t\030\030 \003(\r\022\020\n\010draft_id\030\031 \001(\r\022\031\n\021gadget_talk" +
-      "_state\030\032 \001(\r\022\"\n\tplay_info\030d \001(\0132\017.Gadget" +
-      "PlayInfo\022\034\n\013trifle_item\030\014 \001(\0132\005.ItemH\000\022*" +
-      "\n\rgather_gadget\030\r \001(\0132\021.GatherGadgetInfo" +
-      "H\000\022\037\n\007worktop\030\016 \001(\0132\014.WorktopInfoH\000\022*\n\rc" +
-      "lient_gadget\030\017 \001(\0132\021.ClientGadgetInfoH\000\022" +
-      "\037\n\007weather\030\021 \001(\0132\014.WeatherInfoH\000\022,\n\016abil" +
-      "ity_gadget\030\022 \001(\0132\022.AbilityGadgetInfoH\000\022*" +
-      "\n\rstatue_gadget\030\023 \001(\0132\021.StatueGadgetInfo" +
-      "H\000\022$\n\nboss_chest\030\024 \001(\0132\016.BossChestInfoH\000" +
-      "\022*\n\rblossom_chest\030) \001(\0132\021.BlossomChestIn" +
-      "foH\000\022+\n\016mp_play_reward\030* \001(\0132\021.MpPlayRew" +
-      "ardInfoH\000\0222\n\016general_reward\030+ \001(\0132\030.Gadg" +
-      "etGeneralRewardInfoH\000\022&\n\roffering_info\030," +
-      " \001(\0132\r.OfferingInfoH\000\022*\n\017foundation_info" +
-      "\030- \001(\0132\017.FoundationInfoH\000\022$\n\014vehicle_inf" +
-      "o\030. \001(\0132\014.VehicleInfoH\000\022$\n\nshell_info\030/ " +
-      "\001(\0132\016.EchoShellInfoH\000\022\"\n\013screen_info\0300 \001" +
-      "(\0132\013.ScreenInfoH\000\022\'\n\016fish_pool_info\030; \001(" +
-      "\0132\r.FishPoolInfoH\000\0228\n\027custom_gadget_tree" +
-      "_info\030< \001(\0132\025.CustomGadgetTreeInfoH\000\0225\n\025" +
-      "roguelike_gadget_info\030= \001(\0132\024.RoguelikeG" +
-      "adgetInfoH\000\0226\n\026night_crow_gadget_info\030> " +
-      "\001(\0132\024.Unk2800_FHMOLALLEENH\000B\t\n\007contentB\033" +
-      "\n\031emu.grasscutter.net.protob\006proto3"
+      "\031Unk3000_FANANGGCLOF.proto\032\021VehicleInfo." +
+      "proto\032\021WeatherInfo.proto\032\021WorktopInfo.pr" +
+      "oto\"\370\n\n\017SceneGadgetInfo\022\021\n\tgadget_id\030\001 \001" +
+      "(\r\022\020\n\010group_id\030\002 \001(\r\022\021\n\tconfig_id\030\003 \001(\r\022" +
+      "\027\n\017owner_entity_id\030\004 \001(\r\022\"\n\tborn_type\030\005 " +
+      "\001(\0162\017.GadgetBornType\022\024\n\014gadget_state\030\006 \001" +
+      "(\r\022\023\n\013gadget_type\030\007 \001(\r\022\030\n\020is_show_cutsc" +
+      "ene\030\010 \001(\010\022\031\n\021authority_peer_id\030\t \001(\r\022\032\n\022" +
+      "is_enable_interact\030\n \001(\010\022\023\n\013interact_id\030" +
+      "\013 \001(\r\022\021\n\tmark_flag\030\025 \001(\r\022\034\n\024prop_owner_e" +
+      "ntity_id\030\026 \001(\r\022\037\n\010platform\030\027 \001(\0132\r.Platf" +
+      "ormInfo\022\031\n\021interact_uid_list\030\030 \003(\r\022\020\n\010dr" +
+      "aft_id\030\031 \001(\r\022\031\n\021gadget_talk_state\030\032 \001(\r\022" +
+      "\"\n\tplay_info\030d \001(\0132\017.GadgetPlayInfo\022\034\n\013t" +
+      "rifle_item\030\014 \001(\0132\005.ItemH\000\022*\n\rgather_gadg" +
+      "et\030\r \001(\0132\021.GatherGadgetInfoH\000\022\037\n\007worktop" +
+      "\030\016 \001(\0132\014.WorktopInfoH\000\022*\n\rclient_gadget\030" +
+      "\017 \001(\0132\021.ClientGadgetInfoH\000\022\037\n\007weather\030\021 " +
+      "\001(\0132\014.WeatherInfoH\000\022,\n\016ability_gadget\030\022 " +
+      "\001(\0132\022.AbilityGadgetInfoH\000\022*\n\rstatue_gadg" +
+      "et\030\023 \001(\0132\021.StatueGadgetInfoH\000\022$\n\nboss_ch" +
+      "est\030\024 \001(\0132\016.BossChestInfoH\000\022*\n\rblossom_c" +
+      "hest\030) \001(\0132\021.BlossomChestInfoH\000\022+\n\016mp_pl" +
+      "ay_reward\030* \001(\0132\021.MpPlayRewardInfoH\000\0222\n\016" +
+      "general_reward\030+ \001(\0132\030.GadgetGeneralRewa" +
+      "rdInfoH\000\022&\n\roffering_info\030, \001(\0132\r.Offeri" +
+      "ngInfoH\000\022*\n\017foundation_info\030- \001(\0132\017.Foun" +
+      "dationInfoH\000\022$\n\014vehicle_info\030. \001(\0132\014.Veh" +
+      "icleInfoH\000\022$\n\nshell_info\030/ \001(\0132\016.EchoShe" +
+      "llInfoH\000\022\"\n\013screen_info\0300 \001(\0132\013.ScreenIn" +
+      "foH\000\022\'\n\016fish_pool_info\030; \001(\0132\r.FishPoolI" +
+      "nfoH\000\0228\n\027custom_gadget_tree_info\030< \001(\0132\025" +
+      ".CustomGadgetTreeInfoH\000\0225\n\025roguelike_gad" +
+      "get_info\030= \001(\0132\024.RoguelikeGadgetInfoH\000\0226" +
+      "\n\026night_crow_gadget_info\030> \001(\0132\024.Unk2800" +
+      "_FHMOLALLEENH\000\022;\n\033deshret_obelisk_gadget" +
+      "_info\030? \001(\0132\024.Unk3000_FANANGGCLOFH\000B\t\n\007c" +
+      "ontentB\033\n\031emu.grasscutter.net.protob\006pro" +
+      "to3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -6861,6 +7093,7 @@ public final class SceneGadgetInfoOuterClass {
           emu.grasscutter.net.proto.ScreenInfoOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.StatueGadgetInfoOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.Unk2800FHMOLALLEEN.getDescriptor(),
+          emu.grasscutter.net.proto.Unk3000FANANGGCLOF.getDescriptor(),
           emu.grasscutter.net.proto.VehicleInfoOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.WeatherInfoOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.WorktopInfoOuterClass.getDescriptor(),
@@ -6870,7 +7103,7 @@ public final class SceneGadgetInfoOuterClass {
     internal_static_SceneGadgetInfo_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_SceneGadgetInfo_descriptor,
-        new java.lang.String[] { "GadgetId", "GroupId", "ConfigId", "OwnerEntityId", "BornType", "GadgetState", "GadgetType", "IsShowCutscene", "AuthorityPeerId", "IsEnableInteract", "InteractId", "MarkFlag", "PropOwnerEntityId", "Platform", "InteractUidList", "DraftId", "GadgetTalkState", "PlayInfo", "TrifleItem", "GatherGadget", "Worktop", "ClientGadget", "Weather", "AbilityGadget", "StatueGadget", "BossChest", "BlossomChest", "MpPlayReward", "GeneralReward", "OfferingInfo", "FoundationInfo", "VehicleInfo", "ShellInfo", "ScreenInfo", "FishPoolInfo", "CustomGadgetTreeInfo", "RoguelikeGadgetInfo", "NightCrowGadgetInfo", "Content", });
+        new java.lang.String[] { "GadgetId", "GroupId", "ConfigId", "OwnerEntityId", "BornType", "GadgetState", "GadgetType", "IsShowCutscene", "AuthorityPeerId", "IsEnableInteract", "InteractId", "MarkFlag", "PropOwnerEntityId", "Platform", "InteractUidList", "DraftId", "GadgetTalkState", "PlayInfo", "TrifleItem", "GatherGadget", "Worktop", "ClientGadget", "Weather", "AbilityGadget", "StatueGadget", "BossChest", "BlossomChest", "MpPlayReward", "GeneralReward", "OfferingInfo", "FoundationInfo", "VehicleInfo", "ShellInfo", "ScreenInfo", "FishPoolInfo", "CustomGadgetTreeInfo", "RoguelikeGadgetInfo", "NightCrowGadgetInfo", "DeshretObeliskGadgetInfo", "Content", });
     emu.grasscutter.net.proto.AbilityGadgetInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.BlossomChestInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.BossChestInfoOuterClass.getDescriptor();
@@ -6891,6 +7124,7 @@ public final class SceneGadgetInfoOuterClass {
     emu.grasscutter.net.proto.ScreenInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.StatueGadgetInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.Unk2800FHMOLALLEEN.getDescriptor();
+    emu.grasscutter.net.proto.Unk3000FANANGGCLOF.getDescriptor();
     emu.grasscutter.net.proto.VehicleInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.WeatherInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.WorktopInfoOuterClass.getDescriptor();
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneInitFinishRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneInitFinishRspOuterClass.java
index e42e8eb2..a6e6e54b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneInitFinishRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneInitFinishRspOuterClass.java
@@ -34,7 +34,7 @@ public final class SceneInitFinishRspOuterClass {
    * <pre>
    * CmdId: 207
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class SceneInitFinishRspOuterClass {
      * <pre>
      * CmdId: 207
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerNotifyOuterClass.java
index 97f5e183..14f29f1c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerNotifyOuterClass.java
@@ -34,7 +34,7 @@ public final class SceneKickPlayerNotifyOuterClass {
    * <pre>
    * CmdId: 211
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class SceneKickPlayerNotifyOuterClass {
      * <pre>
      * CmdId: 211
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerReqOuterClass.java
index 8f12d077..cd46c3c4 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerReqOuterClass.java
@@ -28,7 +28,7 @@ public final class SceneKickPlayerReqOuterClass {
    * <pre>
    * CmdId: 264
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class SceneKickPlayerReqOuterClass {
      * <pre>
      * CmdId: 264
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerRspOuterClass.java
index 903d7299..605ccb83 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerRspOuterClass.java
@@ -34,7 +34,8 @@ public final class SceneKickPlayerRspOuterClass {
    * <pre>
    * CmdId: 238
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneKickPlayerRsp}
@@ -315,7 +316,8 @@ public final class SceneKickPlayerRspOuterClass {
      * <pre>
      * CmdId: 238
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneKickPlayerRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneMonsterInfoOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneMonsterInfoOuterClass.java
index f58caf8a..2488cca8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneMonsterInfoOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneMonsterInfoOuterClass.java
@@ -221,6 +221,12 @@ public final class SceneMonsterInfoOuterClass {
      */
     boolean getUnk2800JEGLENPDPNI();
 
+    /**
+     * <code>uint32 Unk3000_CCKJDCBDEKD = 23;</code>
+     * @return The unk3000CCKJDCBDEKD.
+     */
+    int getUnk3000CCKJDCBDEKD();
+
     /**
      * <code>.SceneFishInfo fish_info = 50;</code>
      * @return Whether the fishInfo field is set.
@@ -236,6 +242,21 @@ public final class SceneMonsterInfoOuterClass {
      */
     emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfoOrBuilder getFishInfoOrBuilder();
 
+    /**
+     * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+     * @return Whether the fishtankFishInfo field is set.
+     */
+    boolean hasFishtankFishInfo();
+    /**
+     * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+     * @return The fishtankFishInfo.
+     */
+    emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH getFishtankFishInfo();
+    /**
+     * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder getFishtankFishInfoOrBuilder();
+
     public emu.grasscutter.net.proto.SceneMonsterInfoOuterClass.SceneMonsterInfo.ContentCase getContentCase();
   }
   /**
@@ -434,6 +455,11 @@ public final class SceneMonsterInfoOuterClass {
               unk2800JEGLENPDPNI_ = input.readBool();
               break;
             }
+            case 184: {
+
+              unk3000CCKJDCBDEKD_ = input.readUInt32();
+              break;
+            }
             case 402: {
               emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfo.Builder subBuilder = null;
               if (contentCase_ == 50) {
@@ -448,6 +474,20 @@ public final class SceneMonsterInfoOuterClass {
               contentCase_ = 50;
               break;
             }
+            case 410: {
+              emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder subBuilder = null;
+              if (contentCase_ == 51) {
+                subBuilder = ((emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_).toBuilder();
+              }
+              content_ =
+                  input.readMessage(emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom((emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_);
+                content_ = subBuilder.buildPartial();
+              }
+              contentCase_ = 51;
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -504,6 +544,7 @@ public final class SceneMonsterInfoOuterClass {
         implements com.google.protobuf.Internal.EnumLite,
             com.google.protobuf.AbstractMessage.InternalOneOfEnum {
       FISH_INFO(50),
+      FISHTANK_FISH_INFO(51),
       CONTENT_NOT_SET(0);
       private final int value;
       private ContentCase(int value) {
@@ -522,6 +563,7 @@ public final class SceneMonsterInfoOuterClass {
       public static ContentCase forNumber(int value) {
         switch (value) {
           case 50: return FISH_INFO;
+          case 51: return FISHTANK_FISH_INFO;
           case 0: return CONTENT_NOT_SET;
           default: return null;
         }
@@ -918,6 +960,17 @@ public final class SceneMonsterInfoOuterClass {
       return unk2800JEGLENPDPNI_;
     }
 
+    public static final int UNK3000_CCKJDCBDEKD_FIELD_NUMBER = 23;
+    private int unk3000CCKJDCBDEKD_;
+    /**
+     * <code>uint32 Unk3000_CCKJDCBDEKD = 23;</code>
+     * @return The unk3000CCKJDCBDEKD.
+     */
+    @java.lang.Override
+    public int getUnk3000CCKJDCBDEKD() {
+      return unk3000CCKJDCBDEKD_;
+    }
+
     public static final int FISH_INFO_FIELD_NUMBER = 50;
     /**
      * <code>.SceneFishInfo fish_info = 50;</code>
@@ -949,6 +1002,37 @@ public final class SceneMonsterInfoOuterClass {
       return emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfo.getDefaultInstance();
     }
 
+    public static final int FISHTANK_FISH_INFO_FIELD_NUMBER = 51;
+    /**
+     * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+     * @return Whether the fishtankFishInfo field is set.
+     */
+    @java.lang.Override
+    public boolean hasFishtankFishInfo() {
+      return contentCase_ == 51;
+    }
+    /**
+     * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+     * @return The fishtankFishInfo.
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH getFishtankFishInfo() {
+      if (contentCase_ == 51) {
+         return (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_;
+      }
+      return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+    }
+    /**
+     * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder getFishtankFishInfoOrBuilder() {
+      if (contentCase_ == 51) {
+         return (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_;
+      }
+      return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -1037,9 +1121,15 @@ public final class SceneMonsterInfoOuterClass {
       if (unk2800JEGLENPDPNI_ != false) {
         output.writeBool(22, unk2800JEGLENPDPNI_);
       }
+      if (unk3000CCKJDCBDEKD_ != 0) {
+        output.writeUInt32(23, unk3000CCKJDCBDEKD_);
+      }
       if (contentCase_ == 50) {
         output.writeMessage(50, (emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfo) content_);
       }
+      if (contentCase_ == 51) {
+        output.writeMessage(51, (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_);
+      }
       unknownFields.writeTo(output);
     }
 
@@ -1153,10 +1243,18 @@ public final class SceneMonsterInfoOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeBoolSize(22, unk2800JEGLENPDPNI_);
       }
+      if (unk3000CCKJDCBDEKD_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(23, unk3000CCKJDCBDEKD_);
+      }
       if (contentCase_ == 50) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(50, (emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfo) content_);
       }
+      if (contentCase_ == 51) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(51, (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_);
+      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -1218,12 +1316,18 @@ public final class SceneMonsterInfoOuterClass {
           != other.getInitPoseId()) return false;
       if (getUnk2800JEGLENPDPNI()
           != other.getUnk2800JEGLENPDPNI()) return false;
+      if (getUnk3000CCKJDCBDEKD()
+          != other.getUnk3000CCKJDCBDEKD()) return false;
       if (!getContentCase().equals(other.getContentCase())) return false;
       switch (contentCase_) {
         case 50:
           if (!getFishInfo()
               .equals(other.getFishInfo())) return false;
           break;
+        case 51:
+          if (!getFishtankFishInfo()
+              .equals(other.getFishtankFishInfo())) return false;
+          break;
         case 0:
         default:
       }
@@ -1292,11 +1396,17 @@ public final class SceneMonsterInfoOuterClass {
       hash = (37 * hash) + UNK2800_JEGLENPDPNI_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getUnk2800JEGLENPDPNI());
+      hash = (37 * hash) + UNK3000_CCKJDCBDEKD_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk3000CCKJDCBDEKD();
       switch (contentCase_) {
         case 50:
           hash = (37 * hash) + FISH_INFO_FIELD_NUMBER;
           hash = (53 * hash) + getFishInfo().hashCode();
           break;
+        case 51:
+          hash = (37 * hash) + FISHTANK_FISH_INFO_FIELD_NUMBER;
+          hash = (53 * hash) + getFishtankFishInfo().hashCode();
+          break;
         case 0:
         default:
       }
@@ -1507,6 +1617,8 @@ public final class SceneMonsterInfoOuterClass {
 
         unk2800JEGLENPDPNI_ = false;
 
+        unk3000CCKJDCBDEKD_ = 0;
+
         contentCase_ = 0;
         content_ = null;
         return this;
@@ -1575,6 +1687,7 @@ public final class SceneMonsterInfoOuterClass {
         result.levelRouteId_ = levelRouteId_;
         result.initPoseId_ = initPoseId_;
         result.unk2800JEGLENPDPNI_ = unk2800JEGLENPDPNI_;
+        result.unk3000CCKJDCBDEKD_ = unk3000CCKJDCBDEKD_;
         if (contentCase_ == 50) {
           if (fishInfoBuilder_ == null) {
             result.content_ = content_;
@@ -1582,6 +1695,13 @@ public final class SceneMonsterInfoOuterClass {
             result.content_ = fishInfoBuilder_.build();
           }
         }
+        if (contentCase_ == 51) {
+          if (fishtankFishInfoBuilder_ == null) {
+            result.content_ = content_;
+          } else {
+            result.content_ = fishtankFishInfoBuilder_.build();
+          }
+        }
         result.contentCase_ = contentCase_;
         onBuilt();
         return result;
@@ -1726,11 +1846,18 @@ public final class SceneMonsterInfoOuterClass {
         if (other.getUnk2800JEGLENPDPNI() != false) {
           setUnk2800JEGLENPDPNI(other.getUnk2800JEGLENPDPNI());
         }
+        if (other.getUnk3000CCKJDCBDEKD() != 0) {
+          setUnk3000CCKJDCBDEKD(other.getUnk3000CCKJDCBDEKD());
+        }
         switch (other.getContentCase()) {
           case FISH_INFO: {
             mergeFishInfo(other.getFishInfo());
             break;
           }
+          case FISHTANK_FISH_INFO: {
+            mergeFishtankFishInfo(other.getFishtankFishInfo());
+            break;
+          }
           case CONTENT_NOT_SET: {
             break;
           }
@@ -2927,6 +3054,37 @@ public final class SceneMonsterInfoOuterClass {
         return this;
       }
 
+      private int unk3000CCKJDCBDEKD_ ;
+      /**
+       * <code>uint32 Unk3000_CCKJDCBDEKD = 23;</code>
+       * @return The unk3000CCKJDCBDEKD.
+       */
+      @java.lang.Override
+      public int getUnk3000CCKJDCBDEKD() {
+        return unk3000CCKJDCBDEKD_;
+      }
+      /**
+       * <code>uint32 Unk3000_CCKJDCBDEKD = 23;</code>
+       * @param value The unk3000CCKJDCBDEKD to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000CCKJDCBDEKD(int value) {
+        
+        unk3000CCKJDCBDEKD_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 Unk3000_CCKJDCBDEKD = 23;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000CCKJDCBDEKD() {
+        
+        unk3000CCKJDCBDEKD_ = 0;
+        onChanged();
+        return this;
+      }
+
       private com.google.protobuf.SingleFieldBuilderV3<
           emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfo, emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfo.Builder, emu.grasscutter.net.proto.SceneFishInfoOuterClass.SceneFishInfoOrBuilder> fishInfoBuilder_;
       /**
@@ -3067,6 +3225,147 @@ public final class SceneMonsterInfoOuterClass {
         onChanged();;
         return fishInfoBuilder_;
       }
+
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder> fishtankFishInfoBuilder_;
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       * @return Whether the fishtankFishInfo field is set.
+       */
+      @java.lang.Override
+      public boolean hasFishtankFishInfo() {
+        return contentCase_ == 51;
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       * @return The fishtankFishInfo.
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH getFishtankFishInfo() {
+        if (fishtankFishInfoBuilder_ == null) {
+          if (contentCase_ == 51) {
+            return (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_;
+          }
+          return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+        } else {
+          if (contentCase_ == 51) {
+            return fishtankFishInfoBuilder_.getMessage();
+          }
+          return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+        }
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      public Builder setFishtankFishInfo(emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH value) {
+        if (fishtankFishInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          content_ = value;
+          onChanged();
+        } else {
+          fishtankFishInfoBuilder_.setMessage(value);
+        }
+        contentCase_ = 51;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      public Builder setFishtankFishInfo(
+          emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder builderForValue) {
+        if (fishtankFishInfoBuilder_ == null) {
+          content_ = builderForValue.build();
+          onChanged();
+        } else {
+          fishtankFishInfoBuilder_.setMessage(builderForValue.build());
+        }
+        contentCase_ = 51;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      public Builder mergeFishtankFishInfo(emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH value) {
+        if (fishtankFishInfoBuilder_ == null) {
+          if (contentCase_ == 51 &&
+              content_ != emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance()) {
+            content_ = emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.newBuilder((emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_)
+                .mergeFrom(value).buildPartial();
+          } else {
+            content_ = value;
+          }
+          onChanged();
+        } else {
+          if (contentCase_ == 51) {
+            fishtankFishInfoBuilder_.mergeFrom(value);
+          }
+          fishtankFishInfoBuilder_.setMessage(value);
+        }
+        contentCase_ = 51;
+        return this;
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      public Builder clearFishtankFishInfo() {
+        if (fishtankFishInfoBuilder_ == null) {
+          if (contentCase_ == 51) {
+            contentCase_ = 0;
+            content_ = null;
+            onChanged();
+          }
+        } else {
+          if (contentCase_ == 51) {
+            contentCase_ = 0;
+            content_ = null;
+          }
+          fishtankFishInfoBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder getFishtankFishInfoBuilder() {
+        return getFishtankFishInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder getFishtankFishInfoOrBuilder() {
+        if ((contentCase_ == 51) && (fishtankFishInfoBuilder_ != null)) {
+          return fishtankFishInfoBuilder_.getMessageOrBuilder();
+        } else {
+          if (contentCase_ == 51) {
+            return (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_;
+          }
+          return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+        }
+      }
+      /**
+       * <code>.Unk3000_GNOPDGELABH fishtank_fish_info = 51;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder> 
+          getFishtankFishInfoFieldBuilder() {
+        if (fishtankFishInfoBuilder_ == null) {
+          if (!(contentCase_ == 51)) {
+            content_ = emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+          }
+          fishtankFishInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder>(
+                  (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) content_,
+                  getParentForChildren(),
+                  isClean());
+          content_ = null;
+        }
+        contentCase_ = 51;
+        onChanged();;
+        return fishtankFishInfoBuilder_;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -3141,25 +3440,28 @@ public final class SceneMonsterInfoOuterClass {
     java.lang.String[] descriptorData = {
       "\n\026SceneMonsterInfo.proto\032\025MonsterBornTyp" +
       "e.proto\032\022MonsterRoute.proto\032\023SceneFishIn" +
-      "fo.proto\032\025SceneWeaponInfo.proto\"\253\005\n\020Scen" +
-      "eMonsterInfo\022\022\n\nmonster_id\030\001 \001(\r\022\020\n\010grou" +
-      "p_id\030\002 \001(\r\022\021\n\tconfig_id\030\003 \001(\r\022%\n\013weapon_" +
-      "list\030\004 \003(\0132\020.SceneWeaponInfo\022\031\n\021authorit" +
-      "y_peer_id\030\005 \001(\r\022\022\n\naffix_list\030\006 \003(\r\022\020\n\010i" +
-      "s_elite\030\007 \001(\010\022\027\n\017owner_entity_id\030\010 \001(\r\022\024" +
-      "\n\014summoned_tag\030\t \001(\r\022;\n\016summon_tag_map\030\n" +
-      " \003(\0132#.SceneMonsterInfo.SummonTagMapEntr" +
-      "y\022\017\n\007pose_id\030\013 \001(\r\022#\n\tborn_type\030\014 \001(\0162\020." +
-      "MonsterBornType\022\020\n\010block_id\030\r \001(\r\022\021\n\tmar" +
-      "k_flag\030\016 \001(\r\022\020\n\010title_id\030\017 \001(\r\022\027\n\017specia" +
-      "l_name_id\030\020 \001(\r\022\030\n\020attack_target_id\030\021 \001(" +
-      "\r\022$\n\rmonster_route\030\022 \001(\0132\r.MonsterRoute\022" +
-      "\024\n\014ai_config_id\030\023 \001(\r\022\026\n\016level_route_id\030" +
-      "\024 \001(\r\022\024\n\014init_pose_id\030\025 \001(\r\022\033\n\023Unk2800_J" +
-      "EGLENPDPNI\030\026 \001(\010\022#\n\tfish_info\0302 \001(\0132\016.Sc" +
-      "eneFishInfoH\000\0323\n\021SummonTagMapEntry\022\013\n\003ke" +
-      "y\030\001 \001(\r\022\r\n\005value\030\002 \001(\r:\0028\001B\t\n\007contentB\033\n" +
-      "\031emu.grasscutter.net.protob\006proto3"
+      "fo.proto\032\025SceneWeaponInfo.proto\032\031Unk3000" +
+      "_GNOPDGELABH.proto\"\374\005\n\020SceneMonsterInfo\022" +
+      "\022\n\nmonster_id\030\001 \001(\r\022\020\n\010group_id\030\002 \001(\r\022\021\n" +
+      "\tconfig_id\030\003 \001(\r\022%\n\013weapon_list\030\004 \003(\0132\020." +
+      "SceneWeaponInfo\022\031\n\021authority_peer_id\030\005 \001" +
+      "(\r\022\022\n\naffix_list\030\006 \003(\r\022\020\n\010is_elite\030\007 \001(\010" +
+      "\022\027\n\017owner_entity_id\030\010 \001(\r\022\024\n\014summoned_ta" +
+      "g\030\t \001(\r\022;\n\016summon_tag_map\030\n \003(\0132#.SceneM" +
+      "onsterInfo.SummonTagMapEntry\022\017\n\007pose_id\030" +
+      "\013 \001(\r\022#\n\tborn_type\030\014 \001(\0162\020.MonsterBornTy" +
+      "pe\022\020\n\010block_id\030\r \001(\r\022\021\n\tmark_flag\030\016 \001(\r\022" +
+      "\020\n\010title_id\030\017 \001(\r\022\027\n\017special_name_id\030\020 \001" +
+      "(\r\022\030\n\020attack_target_id\030\021 \001(\r\022$\n\rmonster_" +
+      "route\030\022 \001(\0132\r.MonsterRoute\022\024\n\014ai_config_" +
+      "id\030\023 \001(\r\022\026\n\016level_route_id\030\024 \001(\r\022\024\n\014init" +
+      "_pose_id\030\025 \001(\r\022\033\n\023Unk2800_JEGLENPDPNI\030\026 " +
+      "\001(\010\022\033\n\023Unk3000_CCKJDCBDEKD\030\027 \001(\r\022#\n\tfish" +
+      "_info\0302 \001(\0132\016.SceneFishInfoH\000\0222\n\022fishtan" +
+      "k_fish_info\0303 \001(\0132\024.Unk3000_GNOPDGELABHH" +
+      "\000\0323\n\021SummonTagMapEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005v" +
+      "alue\030\002 \001(\r:\0028\001B\t\n\007contentB\033\n\031emu.grasscu" +
+      "tter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -3168,13 +3470,14 @@ public final class SceneMonsterInfoOuterClass {
           emu.grasscutter.net.proto.MonsterRouteOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.SceneFishInfoOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.SceneWeaponInfoOuterClass.getDescriptor(),
+          emu.grasscutter.net.proto.Unk3000GNOPDGELABH.getDescriptor(),
         });
     internal_static_SceneMonsterInfo_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_SceneMonsterInfo_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_SceneMonsterInfo_descriptor,
-        new java.lang.String[] { "MonsterId", "GroupId", "ConfigId", "WeaponList", "AuthorityPeerId", "AffixList", "IsElite", "OwnerEntityId", "SummonedTag", "SummonTagMap", "PoseId", "BornType", "BlockId", "MarkFlag", "TitleId", "SpecialNameId", "AttackTargetId", "MonsterRoute", "AiConfigId", "LevelRouteId", "InitPoseId", "Unk2800JEGLENPDPNI", "FishInfo", "Content", });
+        new java.lang.String[] { "MonsterId", "GroupId", "ConfigId", "WeaponList", "AuthorityPeerId", "AffixList", "IsElite", "OwnerEntityId", "SummonedTag", "SummonTagMap", "PoseId", "BornType", "BlockId", "MarkFlag", "TitleId", "SpecialNameId", "AttackTargetId", "MonsterRoute", "AiConfigId", "LevelRouteId", "InitPoseId", "Unk2800JEGLENPDPNI", "Unk3000CCKJDCBDEKD", "FishInfo", "FishtankFishInfo", "Content", });
     internal_static_SceneMonsterInfo_SummonTagMapEntry_descriptor =
       internal_static_SceneMonsterInfo_descriptor.getNestedTypes().get(0);
     internal_static_SceneMonsterInfo_SummonTagMapEntry_fieldAccessorTable = new
@@ -3185,6 +3488,7 @@ public final class SceneMonsterInfoOuterClass {
     emu.grasscutter.net.proto.MonsterRouteOuterClass.getDescriptor();
     emu.grasscutter.net.proto.SceneFishInfoOuterClass.getDescriptor();
     emu.grasscutter.net.proto.SceneWeaponInfoOuterClass.getDescriptor();
+    emu.grasscutter.net.proto.Unk3000GNOPDGELABH.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoNotifyOuterClass.java
index ba133af5..0abd7598 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class ScenePlayerInfoNotifyOuterClass {
    * <pre>
    * CmdId: 267
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ScenePlayerInfoNotify}
@@ -340,7 +341,8 @@ public final class ScenePlayerInfoNotifyOuterClass {
      * <pre>
      * CmdId: 267
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ScenePlayerInfoNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerLocationNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerLocationNotifyOuterClass.java
index 851ceb7e..be515d7d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerLocationNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerLocationNotifyOuterClass.java
@@ -75,8 +75,9 @@ public final class ScenePlayerLocationNotifyOuterClass {
   /**
    * <pre>
    * CmdId: 248
-   * EnetChannelId: 1
+   * EnetChannelId: 0
    * EnetIsReliable: true
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ScenePlayerLocationNotify}
@@ -462,8 +463,9 @@ public final class ScenePlayerLocationNotifyOuterClass {
     /**
      * <pre>
      * CmdId: 248
-     * EnetChannelId: 1
+     * EnetChannelId: 0
      * EnetIsReliable: true
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ScenePlayerLocationNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java
index 5a326fe8..e0f1bb13 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java
@@ -96,7 +96,8 @@ public final class ScenePointUnlockNotifyOuterClass {
    * <pre>
    * CmdId: 247
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ScenePointUnlockNotify}
@@ -672,7 +673,8 @@ public final class ScenePointUnlockNotifyOuterClass {
      * <pre>
      * CmdId: 247
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ScenePointUnlockNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneTeamUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneTeamUpdateNotifyOuterClass.java
index 79e78b41..9a6464ba 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneTeamUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneTeamUpdateNotifyOuterClass.java
@@ -52,7 +52,8 @@ public final class SceneTeamUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 1775
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneTeamUpdateNotify}
@@ -374,7 +375,8 @@ public final class SceneTeamUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 1775
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneTeamUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneTimeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneTimeNotifyOuterClass.java
index 7d96d49a..c9d08314 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneTimeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneTimeNotifyOuterClass.java
@@ -40,7 +40,8 @@ public final class SceneTimeNotifyOuterClass {
    * <pre>
    * CmdId: 245
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneTimeNotify}
@@ -350,7 +351,8 @@ public final class SceneTimeNotifyOuterClass {
      * <pre>
      * CmdId: 245
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneTimeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointReqOuterClass.java
index 44d12db4..9277db3d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointReqOuterClass.java
@@ -34,7 +34,7 @@ public final class SceneTransToPointReqOuterClass {
    * <pre>
    * CmdId: 239
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class SceneTransToPointReqOuterClass {
      * <pre>
      * CmdId: 239
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointRspOuterClass.java
index 04528f21..cf0e7f51 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointRspOuterClass.java
@@ -40,7 +40,8 @@ public final class SceneTransToPointRspOuterClass {
    * <pre>
    * CmdId: 253
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SceneTransToPointRsp}
@@ -348,7 +349,8 @@ public final class SceneTransToPointRspOuterClass {
      * <pre>
      * CmdId: 253
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SceneTransToPointRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionReqOuterClass.java
index 82a60ab2..7bb7a618 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionReqOuterClass.java
@@ -34,7 +34,7 @@ public final class SelectWorktopOptionReqOuterClass {
    * <pre>
    * CmdId: 807
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class SelectWorktopOptionReqOuterClass {
      * <pre>
      * CmdId: 807
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionRspOuterClass.java
index 0e441b67..00763281 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionRspOuterClass.java
@@ -40,7 +40,8 @@ public final class SelectWorktopOptionRspOuterClass {
    * <pre>
    * CmdId: 821
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SelectWorktopOptionRsp}
@@ -348,7 +349,8 @@ public final class SelectWorktopOptionRspOuterClass {
      * <pre>
      * CmdId: 821
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SelectWorktopOptionRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceNotifyOuterClass.java
index 5ff7b813..7c8438fd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class ServerAnnounceNotifyOuterClass {
    * <pre>
    * CmdId: 2197
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ServerAnnounceNotify}
@@ -340,7 +341,8 @@ public final class ServerAnnounceNotifyOuterClass {
      * <pre>
      * CmdId: 2197
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ServerAnnounceNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceRevokeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceRevokeNotifyOuterClass.java
index 48872072..8575d9b7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceRevokeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceRevokeNotifyOuterClass.java
@@ -39,7 +39,8 @@ public final class ServerAnnounceRevokeNotifyOuterClass {
    * <pre>
    * CmdId: 2092
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ServerAnnounceRevokeNotify}
@@ -348,7 +349,8 @@ public final class ServerAnnounceRevokeNotifyOuterClass {
      * <pre>
      * CmdId: 2092
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ServerAnnounceRevokeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ServerBuffChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ServerBuffChangeNotifyOuterClass.java
index 2be554eb..98f30992 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ServerBuffChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ServerBuffChangeNotifyOuterClass.java
@@ -97,7 +97,8 @@ public final class ServerBuffChangeNotifyOuterClass {
    * <pre>
    * CmdId: 361
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ServerBuffChangeNotify}
@@ -724,7 +725,8 @@ public final class ServerBuffChangeNotifyOuterClass {
      * <pre>
      * CmdId: 361
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ServerBuffChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ServerCondMeetQuestListUpdateNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ServerCondMeetQuestListUpdateNotifyOuterClass.java
index e79bf6b8..92e02a88 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ServerCondMeetQuestListUpdateNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ServerCondMeetQuestListUpdateNotifyOuterClass.java
@@ -56,7 +56,8 @@ public final class ServerCondMeetQuestListUpdateNotifyOuterClass {
    * <pre>
    * CmdId: 406
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ServerCondMeetQuestListUpdateNotify}
@@ -445,7 +446,8 @@ public final class ServerCondMeetQuestListUpdateNotifyOuterClass {
      * <pre>
      * CmdId: 406
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ServerCondMeetQuestListUpdateNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ServerTimeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ServerTimeNotifyOuterClass.java
index ab2424af..41f80a94 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ServerTimeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ServerTimeNotifyOuterClass.java
@@ -27,8 +27,9 @@ public final class ServerTimeNotifyOuterClass {
   /**
    * <pre>
    * CmdId: 99
-   * EnetChannelId: 1
+   * EnetChannelId: 0
    * EnetIsReliable: true
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code ServerTimeNotify}
@@ -282,8 +283,9 @@ public final class ServerTimeNotifyOuterClass {
     /**
      * <pre>
      * CmdId: 99
-     * EnetChannelId: 1
+     * EnetChannelId: 0
      * EnetIsReliable: true
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code ServerTimeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedReqOuterClass.java
index 97a0ce84..701ce16f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedReqOuterClass.java
@@ -28,7 +28,7 @@ public final class SetBattlePassViewedReqOuterClass {
    * <pre>
    * CmdId: 2641
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class SetBattlePassViewedReqOuterClass {
      * <pre>
      * CmdId: 2641
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedRspOuterClass.java
index 9522fad5..3c7ddbd7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedRspOuterClass.java
@@ -18,23 +18,24 @@ public final class SetBattlePassViewedRspOuterClass {
       // @@protoc_insertion_point(interface_extends:SetBattlePassViewedRsp)
       com.google.protobuf.MessageOrBuilder {
 
-    /**
-     * <code>int32 retcode = 3;</code>
-     * @return The retcode.
-     */
-    int getRetcode();
-
     /**
      * <code>uint32 schedule_id = 2;</code>
      * @return The scheduleId.
      */
     int getScheduleId();
+
+    /**
+     * <code>int32 retcode = 3;</code>
+     * @return The retcode.
+     */
+    int getRetcode();
   }
   /**
    * <pre>
    * CmdId: 2642
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetBattlePassViewedRsp}
@@ -123,17 +124,6 @@ public final class SetBattlePassViewedRspOuterClass {
               emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp.class, emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp.Builder.class);
     }
 
-    public static final int RETCODE_FIELD_NUMBER = 3;
-    private int retcode_;
-    /**
-     * <code>int32 retcode = 3;</code>
-     * @return The retcode.
-     */
-    @java.lang.Override
-    public int getRetcode() {
-      return retcode_;
-    }
-
     public static final int SCHEDULE_ID_FIELD_NUMBER = 2;
     private int scheduleId_;
     /**
@@ -145,6 +135,17 @@ public final class SetBattlePassViewedRspOuterClass {
       return scheduleId_;
     }
 
+    public static final int RETCODE_FIELD_NUMBER = 3;
+    private int retcode_;
+    /**
+     * <code>int32 retcode = 3;</code>
+     * @return The retcode.
+     */
+    @java.lang.Override
+    public int getRetcode() {
+      return retcode_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -197,10 +198,10 @@ public final class SetBattlePassViewedRspOuterClass {
       }
       emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp other = (emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp) obj;
 
-      if (getRetcode()
-          != other.getRetcode()) return false;
       if (getScheduleId()
           != other.getScheduleId()) return false;
+      if (getRetcode()
+          != other.getRetcode()) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -212,10 +213,10 @@ public final class SetBattlePassViewedRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
-      hash = (53 * hash) + getRetcode();
       hash = (37 * hash) + SCHEDULE_ID_FIELD_NUMBER;
       hash = (53 * hash) + getScheduleId();
+      hash = (37 * hash) + RETCODE_FIELD_NUMBER;
+      hash = (53 * hash) + getRetcode();
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -315,7 +316,8 @@ public final class SetBattlePassViewedRspOuterClass {
      * <pre>
      * CmdId: 2642
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetBattlePassViewedRsp}
@@ -355,10 +357,10 @@ public final class SetBattlePassViewedRspOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        retcode_ = 0;
-
         scheduleId_ = 0;
 
+        retcode_ = 0;
+
         return this;
       }
 
@@ -385,8 +387,8 @@ public final class SetBattlePassViewedRspOuterClass {
       @java.lang.Override
       public emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp buildPartial() {
         emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp result = new emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp(this);
-        result.retcode_ = retcode_;
         result.scheduleId_ = scheduleId_;
+        result.retcode_ = retcode_;
         onBuilt();
         return result;
       }
@@ -435,12 +437,12 @@ public final class SetBattlePassViewedRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp other) {
         if (other == emu.grasscutter.net.proto.SetBattlePassViewedRspOuterClass.SetBattlePassViewedRsp.getDefaultInstance()) return this;
-        if (other.getRetcode() != 0) {
-          setRetcode(other.getRetcode());
-        }
         if (other.getScheduleId() != 0) {
           setScheduleId(other.getScheduleId());
         }
+        if (other.getRetcode() != 0) {
+          setRetcode(other.getRetcode());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -470,64 +472,64 @@ public final class SetBattlePassViewedRspOuterClass {
         return this;
       }
 
-      private int retcode_ ;
+      private int scheduleId_ ;
       /**
-       * <code>int32 retcode = 3;</code>
-       * @return The retcode.
+       * <code>uint32 schedule_id = 2;</code>
+       * @return The scheduleId.
        */
       @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
+      public int getScheduleId() {
+        return scheduleId_;
       }
       /**
-       * <code>int32 retcode = 3;</code>
-       * @param value The retcode to set.
+       * <code>uint32 schedule_id = 2;</code>
+       * @param value The scheduleId to set.
        * @return This builder for chaining.
        */
-      public Builder setRetcode(int value) {
+      public Builder setScheduleId(int value) {
         
-        retcode_ = value;
+        scheduleId_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>int32 retcode = 3;</code>
+       * <code>uint32 schedule_id = 2;</code>
        * @return This builder for chaining.
        */
-      public Builder clearRetcode() {
+      public Builder clearScheduleId() {
         
-        retcode_ = 0;
+        scheduleId_ = 0;
         onChanged();
         return this;
       }
 
-      private int scheduleId_ ;
+      private int retcode_ ;
       /**
-       * <code>uint32 schedule_id = 2;</code>
-       * @return The scheduleId.
+       * <code>int32 retcode = 3;</code>
+       * @return The retcode.
        */
       @java.lang.Override
-      public int getScheduleId() {
-        return scheduleId_;
+      public int getRetcode() {
+        return retcode_;
       }
       /**
-       * <code>uint32 schedule_id = 2;</code>
-       * @param value The scheduleId to set.
+       * <code>int32 retcode = 3;</code>
+       * @param value The retcode to set.
        * @return This builder for chaining.
        */
-      public Builder setScheduleId(int value) {
+      public Builder setRetcode(int value) {
         
-        scheduleId_ = value;
+        retcode_ = value;
         onChanged();
         return this;
       }
       /**
-       * <code>uint32 schedule_id = 2;</code>
+       * <code>int32 retcode = 3;</code>
        * @return This builder for chaining.
        */
-      public Builder clearScheduleId() {
+      public Builder clearRetcode() {
         
-        scheduleId_ = 0;
+        retcode_ = 0;
         onChanged();
         return this;
       }
@@ -599,8 +601,8 @@ public final class SetBattlePassViewedRspOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\034SetBattlePassViewedRsp.proto\">\n\026SetBat" +
-      "tlePassViewedRsp\022\017\n\007retcode\030\003 \001(\005\022\023\n\013sch" +
-      "edule_id\030\002 \001(\rB\033\n\031emu.grasscutter.net.pr" +
+      "tlePassViewedRsp\022\023\n\013schedule_id\030\002 \001(\r\022\017\n" +
+      "\007retcode\030\003 \001(\005B\033\n\031emu.grasscutter.net.pr" +
       "otob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -612,7 +614,7 @@ public final class SetBattlePassViewedRspOuterClass {
     internal_static_SetBattlePassViewedRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_SetBattlePassViewedRsp_descriptor,
-        new java.lang.String[] { "Retcode", "ScheduleId", });
+        new java.lang.String[] { "ScheduleId", "Retcode", });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetEntityClientDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetEntityClientDataNotifyOuterClass.java
index 8617252d..b9dff9c7 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetEntityClientDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetEntityClientDataNotifyOuterClass.java
@@ -43,7 +43,7 @@ public final class SetEntityClientDataNotifyOuterClass {
    * <pre>
    * CmdId: 3146
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -353,7 +353,7 @@ public final class SetEntityClientDataNotifyOuterClass {
      * <pre>
      * CmdId: 3146
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateReqOuterClass.java
index 8f5b137f..53e8022c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateReqOuterClass.java
@@ -34,7 +34,7 @@ public final class SetEquipLockStateReqOuterClass {
    * <pre>
    * CmdId: 666
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -318,7 +318,7 @@ public final class SetEquipLockStateReqOuterClass {
      * <pre>
      * CmdId: 666
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateRspOuterClass.java
index fff80559..5482b439 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateRspOuterClass.java
@@ -40,7 +40,8 @@ public final class SetEquipLockStateRspOuterClass {
    * <pre>
    * CmdId: 668
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetEquipLockStateRsp}
@@ -350,7 +351,8 @@ public final class SetEquipLockStateRspOuterClass {
      * <pre>
      * CmdId: 668
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetEquipLockStateRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardReqOuterClass.java
index cad4a546..367b0cd8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardReqOuterClass.java
@@ -28,7 +28,7 @@ public final class SetNameCardReqOuterClass {
    * <pre>
    * CmdId: 4004
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class SetNameCardReqOuterClass {
      * <pre>
      * CmdId: 4004
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardRspOuterClass.java
index 2e2f6229..421a0b0e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetNameCardRspOuterClass.java
@@ -34,7 +34,7 @@ public final class SetNameCardRspOuterClass {
    * <pre>
    * CmdId: 4093
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class SetNameCardRspOuterClass {
      * <pre>
      * CmdId: 4093
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateReqOuterClass.java
index 01a51612..34f84b4d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateReqOuterClass.java
@@ -34,7 +34,7 @@ public final class SetOpenStateReqOuterClass {
    * <pre>
    * CmdId: 165
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class SetOpenStateReqOuterClass {
      * <pre>
      * CmdId: 165
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateRspOuterClass.java
index a7a4a9b0..c889be6c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateRspOuterClass.java
@@ -40,7 +40,8 @@ public final class SetOpenStateRspOuterClass {
    * <pre>
    * CmdId: 104
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetOpenStateRsp}
@@ -348,7 +349,8 @@ public final class SetOpenStateRspOuterClass {
      * <pre>
      * CmdId: 104
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetOpenStateRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayReqOuterClass.java
index f66f98f6..fe27279b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayReqOuterClass.java
@@ -37,7 +37,7 @@ public final class SetPlayerBirthdayReqOuterClass {
    * <pre>
    * CmdId: 4048
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -320,7 +320,7 @@ public final class SetPlayerBirthdayReqOuterClass {
      * <pre>
      * CmdId: 4048
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayRspOuterClass.java
index a04e074f..60a6d350 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayRspOuterClass.java
@@ -43,7 +43,8 @@ public final class SetPlayerBirthdayRspOuterClass {
    * <pre>
    * CmdId: 4097
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetPlayerBirthdayRsp}
@@ -352,7 +353,8 @@ public final class SetPlayerBirthdayRspOuterClass {
      * <pre>
      * CmdId: 4097
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetPlayerBirthdayRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataReqOuterClass.java
index 9905d5be..79a9a852 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataReqOuterClass.java
@@ -40,7 +40,7 @@ public final class SetPlayerBornDataReqOuterClass {
    * <pre>
    * CmdId: 105
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class SetPlayerBornDataReqOuterClass {
      * <pre>
      * CmdId: 105
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataRspOuterClass.java
index af89a8d9..88e5c44a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataRspOuterClass.java
@@ -28,7 +28,8 @@ public final class SetPlayerBornDataRspOuterClass {
    * <pre>
    * CmdId: 182
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetPlayerBornDataRsp}
@@ -282,7 +283,8 @@ public final class SetPlayerBornDataRspOuterClass {
      * <pre>
      * CmdId: 182
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetPlayerBornDataRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageReqOuterClass.java
index 34d054d4..b23bb81c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageReqOuterClass.java
@@ -28,7 +28,7 @@ public final class SetPlayerHeadImageReqOuterClass {
    * <pre>
    * CmdId: 4082
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class SetPlayerHeadImageReqOuterClass {
      * <pre>
      * CmdId: 4082
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageRspOuterClass.java
index 91fc4a12..74910f33 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageRspOuterClass.java
@@ -49,7 +49,8 @@ public final class SetPlayerHeadImageRspOuterClass {
    * <pre>
    * CmdId: 4047
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetPlayerHeadImageRsp}
@@ -385,7 +386,8 @@ public final class SetPlayerHeadImageRspOuterClass {
      * <pre>
      * CmdId: 4047
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetPlayerHeadImageRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameReqOuterClass.java
index e883bc50..b3ea8174 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameReqOuterClass.java
@@ -34,7 +34,7 @@ public final class SetPlayerNameReqOuterClass {
    * <pre>
    * CmdId: 153
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class SetPlayerNameReqOuterClass {
      * <pre>
      * CmdId: 153
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameRspOuterClass.java
index ea12f4a5..9d376879 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameRspOuterClass.java
@@ -40,7 +40,8 @@ public final class SetPlayerNameRspOuterClass {
    * <pre>
    * CmdId: 122
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetPlayerNameRsp}
@@ -349,7 +350,8 @@ public final class SetPlayerNameRspOuterClass {
      * <pre>
      * CmdId: 122
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetPlayerNameRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropReqOuterClass.java
index b048e335..d42cc3be 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropReqOuterClass.java
@@ -46,7 +46,7 @@ public final class SetPlayerPropReqOuterClass {
    * <pre>
    * CmdId: 197
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class SetPlayerPropReqOuterClass {
      * <pre>
      * CmdId: 197
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropRspOuterClass.java
index 1dabaeb9..76fb05be 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropRspOuterClass.java
@@ -28,7 +28,8 @@ public final class SetPlayerPropRspOuterClass {
    * <pre>
    * CmdId: 181
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetPlayerPropRsp}
@@ -282,7 +283,8 @@ public final class SetPlayerPropRspOuterClass {
      * <pre>
      * CmdId: 181
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetPlayerPropRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureReqOuterClass.java
index f567ea93..bba1c34a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureReqOuterClass.java
@@ -34,7 +34,7 @@ public final class SetPlayerSignatureReqOuterClass {
    * <pre>
    * CmdId: 4081
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class SetPlayerSignatureReqOuterClass {
      * <pre>
      * CmdId: 4081
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureRspOuterClass.java
index 0a058ad1..9b403a43 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureRspOuterClass.java
@@ -40,7 +40,8 @@ public final class SetPlayerSignatureRspOuterClass {
    * <pre>
    * CmdId: 4005
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetPlayerSignatureRsp}
@@ -349,7 +350,8 @@ public final class SetPlayerSignatureRspOuterClass {
      * <pre>
      * CmdId: 4005
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetPlayerSignatureRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamReqOuterClass.java
index 778a8c7f..6bf3e097 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamReqOuterClass.java
@@ -51,7 +51,7 @@ public final class SetUpAvatarTeamReqOuterClass {
    * <pre>
    * CmdId: 1690
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -416,7 +416,7 @@ public final class SetUpAvatarTeamReqOuterClass {
      * <pre>
      * CmdId: 1690
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamRspOuterClass.java
index f7fd8419..2ab54584 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamRspOuterClass.java
@@ -57,7 +57,8 @@ public final class SetUpAvatarTeamRspOuterClass {
    * <pre>
    * CmdId: 1646
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetUpAvatarTeamRsp}
@@ -448,7 +449,8 @@ public final class SetUpAvatarTeamRspOuterClass {
      * <pre>
      * CmdId: 1646
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetUpAvatarTeamRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetReqOuterClass.java
index 7aabb6ce..956fe03a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetReqOuterClass.java
@@ -37,7 +37,7 @@ public final class SetUpLunchBoxWidgetReqOuterClass {
    * <pre>
    * CmdId: 4272
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -320,7 +320,7 @@ public final class SetUpLunchBoxWidgetReqOuterClass {
      * <pre>
      * CmdId: 4272
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetRspOuterClass.java
index 06a1ec53..9889e24a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetRspOuterClass.java
@@ -43,7 +43,8 @@ public final class SetUpLunchBoxWidgetRspOuterClass {
    * <pre>
    * CmdId: 4294
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetUpLunchBoxWidgetRsp}
@@ -352,7 +353,8 @@ public final class SetUpLunchBoxWidgetRspOuterClass {
      * <pre>
      * CmdId: 4294
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetUpLunchBoxWidgetRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotReqOuterClass.java
index 9c738c1f..5cea7832 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotReqOuterClass.java
@@ -68,7 +68,7 @@ public final class SetWidgetSlotReqOuterClass {
    * <pre>
    * CmdId: 4259
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -470,7 +470,7 @@ public final class SetWidgetSlotReqOuterClass {
      * <pre>
      * CmdId: 4259
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotRspOuterClass.java
index 4999765f..38b20600 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotRspOuterClass.java
@@ -74,7 +74,8 @@ public final class SetWidgetSlotRspOuterClass {
    * <pre>
    * CmdId: 4277
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SetWidgetSlotRsp}
@@ -502,7 +503,8 @@ public final class SetWidgetSlotRspOuterClass {
      * <pre>
      * CmdId: 4277
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SetWidgetSlotRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/ShopCardProductOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/ShopCardProductOuterClass.java
index ab66b707..76910939 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/ShopCardProductOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/ShopCardProductOuterClass.java
@@ -2566,22 +2566,21 @@ public final class ShopCardProductOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\025ShopCardProduct.proto\032\017ResinCard.proto" +
-      "\032\017ItemParam.proto\"\306\002\n\017ShopCardProduct\022\022\n" +
-      "\nproduct_id\030\001 \001(\t\022\022\n\nprice_tier\030\002 \001(\t\022\022\n" +
-      "\nmcoin_base\030\003 \001(\r\022\025\n\rhcoin_per_day\030\004 \001(\r" +
-      "\022\014\n\004days\030\005 \001(\r\022\032\n\022remain_reward_days\030\006 \001" +
-      "(\r\022\031\n\021card_product_type\030\007 \001(\r\0220\n\nresin_c" +
-      "ard\030e \001(\0132\032.ShopCardProduct.ResinCardH\000\032" +
-      "V\n\tResinCard\022\"\n\016base_item_list\030\001 \003(\0132\n.I" +
-      "temParam\022%\n\021per_day_item_list\030\002 \003(\0132\n.It" +
-      "emParamB\021\n\017extra_card_dataB\033\n\031emu.grassc" +
-      "utter.net.protob\006proto3"
+      "\n\025ShopCardProduct.proto\032\017ItemParam.proto" +
+      "\"\306\002\n\017ShopCardProduct\022\022\n\nproduct_id\030\001 \001(\t" +
+      "\022\022\n\nprice_tier\030\002 \001(\t\022\022\n\nmcoin_base\030\003 \001(\r" +
+      "\022\025\n\rhcoin_per_day\030\004 \001(\r\022\014\n\004days\030\005 \001(\r\022\032\n" +
+      "\022remain_reward_days\030\006 \001(\r\022\031\n\021card_produc" +
+      "t_type\030\007 \001(\r\0220\n\nresin_card\030e \001(\0132\032.ShopC" +
+      "ardProduct.ResinCardH\000\032V\n\tResinCard\022\"\n\016b" +
+      "ase_item_list\030\001 \003(\0132\n.ItemParam\022%\n\021per_d" +
+      "ay_item_list\030\002 \003(\0132\n.ItemParamB\021\n\017extra_" +
+      "card_dataB\033\n\031emu.grasscutter.net.protob\006" +
+      "proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
-          emu.grasscutter.net.proto.ResinCardOuterClass.getDescriptor(),
           emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(),
         });
     internal_static_ShopCardProduct_descriptor =
@@ -2596,7 +2595,6 @@ public final class ShopCardProductOuterClass {
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_ShopCardProduct_ResinCard_descriptor,
         new java.lang.String[] { "BaseItemList", "PerDayItemList", });
-    emu.grasscutter.net.proto.ResinCardOuterClass.getDescriptor();
     emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor();
   }
 
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/StoreItemChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/StoreItemChangeNotifyOuterClass.java
index efcbb487..932d48db 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/StoreItemChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/StoreItemChangeNotifyOuterClass.java
@@ -57,7 +57,8 @@ public final class StoreItemChangeNotifyOuterClass {
    * <pre>
    * CmdId: 612
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code StoreItemChangeNotify}
@@ -387,7 +388,8 @@ public final class StoreItemChangeNotifyOuterClass {
      * <pre>
      * CmdId: 612
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code StoreItemChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/StoreItemDelNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/StoreItemDelNotifyOuterClass.java
index ea4308db..9f8e236c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/StoreItemDelNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/StoreItemDelNotifyOuterClass.java
@@ -50,7 +50,8 @@ public final class StoreItemDelNotifyOuterClass {
    * <pre>
    * CmdId: 635
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code StoreItemDelNotify}
@@ -395,7 +396,8 @@ public final class StoreItemDelNotifyOuterClass {
      * <pre>
      * CmdId: 635
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code StoreItemDelNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/StoreWeightLimitNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/StoreWeightLimitNotifyOuterClass.java
index 4ed5c78d..ec390954 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/StoreWeightLimitNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/StoreWeightLimitNotifyOuterClass.java
@@ -63,7 +63,8 @@ public final class StoreWeightLimitNotifyOuterClass {
    * <pre>
    * CmdId: 698
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code StoreWeightLimitNotify}
@@ -461,7 +462,8 @@ public final class StoreWeightLimitNotifyOuterClass {
      * <pre>
      * CmdId: 698
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code StoreWeightLimitNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SyncScenePlayTeamEntityNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SyncScenePlayTeamEntityNotifyOuterClass.java
index fdf94e74..6479eefb 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SyncScenePlayTeamEntityNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SyncScenePlayTeamEntityNotifyOuterClass.java
@@ -52,7 +52,8 @@ public final class SyncScenePlayTeamEntityNotifyOuterClass {
    * <pre>
    * CmdId: 3333
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SyncScenePlayTeamEntityNotify}
@@ -373,7 +374,8 @@ public final class SyncScenePlayTeamEntityNotifyOuterClass {
      * <pre>
      * CmdId: 3333
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SyncScenePlayTeamEntityNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/SyncTeamEntityNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/SyncTeamEntityNotifyOuterClass.java
index ee7df1bb..bea944fe 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/SyncTeamEntityNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/SyncTeamEntityNotifyOuterClass.java
@@ -52,7 +52,8 @@ public final class SyncTeamEntityNotifyOuterClass {
    * <pre>
    * CmdId: 317
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code SyncTeamEntityNotify}
@@ -373,7 +374,8 @@ public final class SyncTeamEntityNotifyOuterClass {
      * <pre>
      * CmdId: 317
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code SyncTeamEntityNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardReqOuterClass.java
index 2776932d..1ec6c2c9 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardReqOuterClass.java
@@ -39,7 +39,7 @@ public final class TakeAchievementRewardReqOuterClass {
    * <pre>
    * CmdId: 2675
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class TakeAchievementRewardReqOuterClass {
      * <pre>
      * CmdId: 2675
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointReqOuterClass.java
index 399f0074..0b7cb13f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointReqOuterClass.java
@@ -39,7 +39,7 @@ public final class TakeBattlePassMissionPointReqOuterClass {
    * <pre>
    * CmdId: 2629
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -349,7 +349,7 @@ public final class TakeBattlePassMissionPointReqOuterClass {
      * <pre>
      * CmdId: 2629
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointRspOuterClass.java
index c27ba9ea..c110b909 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointRspOuterClass.java
@@ -45,7 +45,8 @@ public final class TakeBattlePassMissionPointRspOuterClass {
    * <pre>
    * CmdId: 2622
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TakeBattlePassMissionPointRsp}
@@ -381,7 +382,8 @@ public final class TakeBattlePassMissionPointRspOuterClass {
      * <pre>
      * CmdId: 2622
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TakeBattlePassMissionPointRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardReqOuterClass.java
index 3b4d62ce..09cfb50b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardReqOuterClass.java
@@ -46,7 +46,7 @@ public final class TakeBattlePassRewardReqOuterClass {
    * <pre>
    * CmdId: 2602
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class TakeBattlePassRewardReqOuterClass {
      * <pre>
      * CmdId: 2602
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardRspOuterClass.java
index ac5c1d78..0b37bb57 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardRspOuterClass.java
@@ -18,6 +18,30 @@ public final class TakeBattlePassRewardRspOuterClass {
       // @@protoc_insertion_point(interface_extends:TakeBattlePassRewardRsp)
       com.google.protobuf.MessageOrBuilder {
 
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> 
+        getItemListList();
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index);
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    int getItemListCount();
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+        getItemListOrBuilderList();
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
+        int index);
+
     /**
      * <code>int32 retcode = 13;</code>
      * @return The retcode.
@@ -47,36 +71,13 @@ public final class TakeBattlePassRewardRspOuterClass {
      */
     emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder getTakeOptionListOrBuilder(
         int index);
-
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> 
-        getItemListList();
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index);
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    int getItemListCount();
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-        getItemListOrBuilderList();
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
-        int index);
   }
   /**
    * <pre>
    * CmdId: 2631
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TakeBattlePassRewardRsp}
@@ -91,8 +92,8 @@ public final class TakeBattlePassRewardRspOuterClass {
       super(builder);
     }
     private TakeBattlePassRewardRsp() {
-      takeOptionList_ = java.util.Collections.emptyList();
       itemList_ = java.util.Collections.emptyList();
+      takeOptionList_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -127,18 +128,18 @@ public final class TakeBattlePassRewardRspOuterClass {
               done = true;
               break;
             case 58: {
-              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                 itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>();
-                mutable_bitField0_ |= 0x00000002;
+                mutable_bitField0_ |= 0x00000001;
               }
               itemList_.add(
                   input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry));
               break;
             }
             case 74: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                 takeOptionList_ = new java.util.ArrayList<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption>();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000002;
               }
               takeOptionList_.add(
                   input.readMessage(emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.parser(), extensionRegistry));
@@ -164,10 +165,10 @@ public final class TakeBattlePassRewardRspOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
           itemList_ = java.util.Collections.unmodifiableList(itemList_);
         }
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
           takeOptionList_ = java.util.Collections.unmodifiableList(takeOptionList_);
         }
         this.unknownFields = unknownFields.build();
@@ -187,6 +188,46 @@ public final class TakeBattlePassRewardRspOuterClass {
               emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp.class, emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp.Builder.class);
     }
 
+    public static final int ITEM_LIST_FIELD_NUMBER = 7;
+    private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_;
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    @java.lang.Override
+    public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getItemListList() {
+      return itemList_;
+    }
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+        getItemListOrBuilderList() {
+      return itemList_;
+    }
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    @java.lang.Override
+    public int getItemListCount() {
+      return itemList_.size();
+    }
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index) {
+      return itemList_.get(index);
+    }
+    /**
+     * <code>repeated .ItemParam item_list = 7;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
+        int index) {
+      return itemList_.get(index);
+    }
+
     public static final int RETCODE_FIELD_NUMBER = 13;
     private int retcode_;
     /**
@@ -238,46 +279,6 @@ public final class TakeBattlePassRewardRspOuterClass {
       return takeOptionList_.get(index);
     }
 
-    public static final int ITEM_LIST_FIELD_NUMBER = 7;
-    private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_;
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    @java.lang.Override
-    public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getItemListList() {
-      return itemList_;
-    }
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    @java.lang.Override
-    public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-        getItemListOrBuilderList() {
-      return itemList_;
-    }
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    @java.lang.Override
-    public int getItemListCount() {
-      return itemList_.size();
-    }
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index) {
-      return itemList_.get(index);
-    }
-    /**
-     * <code>repeated .ItemParam item_list = 7;</code>
-     */
-    @java.lang.Override
-    public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
-        int index) {
-      return itemList_.get(index);
-    }
-
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -337,12 +338,12 @@ public final class TakeBattlePassRewardRspOuterClass {
       }
       emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp other = (emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp) obj;
 
+      if (!getItemListList()
+          .equals(other.getItemListList())) return false;
       if (getRetcode()
           != other.getRetcode()) return false;
       if (!getTakeOptionListList()
           .equals(other.getTakeOptionListList())) return false;
-      if (!getItemListList()
-          .equals(other.getItemListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -354,16 +355,16 @@ public final class TakeBattlePassRewardRspOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
+      if (getItemListCount() > 0) {
+        hash = (37 * hash) + ITEM_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getItemListList().hashCode();
+      }
       hash = (37 * hash) + RETCODE_FIELD_NUMBER;
       hash = (53 * hash) + getRetcode();
       if (getTakeOptionListCount() > 0) {
         hash = (37 * hash) + TAKE_OPTION_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getTakeOptionListList().hashCode();
       }
-      if (getItemListCount() > 0) {
-        hash = (37 * hash) + ITEM_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getItemListList().hashCode();
-      }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -463,7 +464,8 @@ public final class TakeBattlePassRewardRspOuterClass {
      * <pre>
      * CmdId: 2631
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TakeBattlePassRewardRsp}
@@ -498,26 +500,26 @@ public final class TakeBattlePassRewardRspOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
-          getTakeOptionListFieldBuilder();
           getItemListFieldBuilder();
+          getTakeOptionListFieldBuilder();
         }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        if (itemListBuilder_ == null) {
+          itemList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          itemListBuilder_.clear();
+        }
         retcode_ = 0;
 
         if (takeOptionListBuilder_ == null) {
           takeOptionList_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
-        } else {
-          takeOptionListBuilder_.clear();
-        }
-        if (itemListBuilder_ == null) {
-          itemList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000002);
         } else {
-          itemListBuilder_.clear();
+          takeOptionListBuilder_.clear();
         }
         return this;
       }
@@ -546,24 +548,24 @@ public final class TakeBattlePassRewardRspOuterClass {
       public emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp buildPartial() {
         emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp result = new emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp(this);
         int from_bitField0_ = bitField0_;
-        result.retcode_ = retcode_;
-        if (takeOptionListBuilder_ == null) {
+        if (itemListBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
-            takeOptionList_ = java.util.Collections.unmodifiableList(takeOptionList_);
+            itemList_ = java.util.Collections.unmodifiableList(itemList_);
             bitField0_ = (bitField0_ & ~0x00000001);
           }
-          result.takeOptionList_ = takeOptionList_;
+          result.itemList_ = itemList_;
         } else {
-          result.takeOptionList_ = takeOptionListBuilder_.build();
+          result.itemList_ = itemListBuilder_.build();
         }
-        if (itemListBuilder_ == null) {
+        result.retcode_ = retcode_;
+        if (takeOptionListBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0)) {
-            itemList_ = java.util.Collections.unmodifiableList(itemList_);
+            takeOptionList_ = java.util.Collections.unmodifiableList(takeOptionList_);
             bitField0_ = (bitField0_ & ~0x00000002);
           }
-          result.itemList_ = itemList_;
+          result.takeOptionList_ = takeOptionList_;
         } else {
-          result.itemList_ = itemListBuilder_.build();
+          result.takeOptionList_ = takeOptionListBuilder_.build();
         }
         onBuilt();
         return result;
@@ -613,6 +615,32 @@ public final class TakeBattlePassRewardRspOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp other) {
         if (other == emu.grasscutter.net.proto.TakeBattlePassRewardRspOuterClass.TakeBattlePassRewardRsp.getDefaultInstance()) return this;
+        if (itemListBuilder_ == null) {
+          if (!other.itemList_.isEmpty()) {
+            if (itemList_.isEmpty()) {
+              itemList_ = other.itemList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureItemListIsMutable();
+              itemList_.addAll(other.itemList_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.itemList_.isEmpty()) {
+            if (itemListBuilder_.isEmpty()) {
+              itemListBuilder_.dispose();
+              itemListBuilder_ = null;
+              itemList_ = other.itemList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              itemListBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getItemListFieldBuilder() : null;
+            } else {
+              itemListBuilder_.addAllMessages(other.itemList_);
+            }
+          }
+        }
         if (other.getRetcode() != 0) {
           setRetcode(other.getRetcode());
         }
@@ -620,7 +648,7 @@ public final class TakeBattlePassRewardRspOuterClass {
           if (!other.takeOptionList_.isEmpty()) {
             if (takeOptionList_.isEmpty()) {
               takeOptionList_ = other.takeOptionList_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000002);
             } else {
               ensureTakeOptionListIsMutable();
               takeOptionList_.addAll(other.takeOptionList_);
@@ -633,7 +661,7 @@ public final class TakeBattlePassRewardRspOuterClass {
               takeOptionListBuilder_.dispose();
               takeOptionListBuilder_ = null;
               takeOptionList_ = other.takeOptionList_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000002);
               takeOptionListBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getTakeOptionListFieldBuilder() : null;
@@ -642,32 +670,6 @@ public final class TakeBattlePassRewardRspOuterClass {
             }
           }
         }
-        if (itemListBuilder_ == null) {
-          if (!other.itemList_.isEmpty()) {
-            if (itemList_.isEmpty()) {
-              itemList_ = other.itemList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
-            } else {
-              ensureItemListIsMutable();
-              itemList_.addAll(other.itemList_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.itemList_.isEmpty()) {
-            if (itemListBuilder_.isEmpty()) {
-              itemListBuilder_.dispose();
-              itemListBuilder_ = null;
-              itemList_ = other.itemList_;
-              bitField0_ = (bitField0_ & ~0x00000002);
-              itemListBuilder_ = 
-                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                   getItemListFieldBuilder() : null;
-            } else {
-              itemListBuilder_.addAllMessages(other.itemList_);
-            }
-          }
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -698,515 +700,515 @@ public final class TakeBattlePassRewardRspOuterClass {
       }
       private int bitField0_;
 
-      private int retcode_ ;
-      /**
-       * <code>int32 retcode = 13;</code>
-       * @return The retcode.
-       */
-      @java.lang.Override
-      public int getRetcode() {
-        return retcode_;
-      }
-      /**
-       * <code>int32 retcode = 13;</code>
-       * @param value The retcode to set.
-       * @return This builder for chaining.
-       */
-      public Builder setRetcode(int value) {
-        
-        retcode_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>int32 retcode = 13;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearRetcode() {
-        
-        retcode_ = 0;
-        onChanged();
-        return this;
-      }
-
-      private java.util.List<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption> takeOptionList_ =
+      private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_ =
         java.util.Collections.emptyList();
-      private void ensureTakeOptionListIsMutable() {
+      private void ensureItemListIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          takeOptionList_ = new java.util.ArrayList<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption>(takeOptionList_);
+          itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(itemList_);
           bitField0_ |= 0x00000001;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder> takeOptionListBuilder_;
+          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> itemListBuilder_;
 
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption> getTakeOptionListList() {
-        if (takeOptionListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(takeOptionList_);
+      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getItemListList() {
+        if (itemListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(itemList_);
         } else {
-          return takeOptionListBuilder_.getMessageList();
+          return itemListBuilder_.getMessageList();
         }
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public int getTakeOptionListCount() {
-        if (takeOptionListBuilder_ == null) {
-          return takeOptionList_.size();
+      public int getItemListCount() {
+        if (itemListBuilder_ == null) {
+          return itemList_.size();
         } else {
-          return takeOptionListBuilder_.getCount();
+          return itemListBuilder_.getCount();
         }
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption getTakeOptionList(int index) {
-        if (takeOptionListBuilder_ == null) {
-          return takeOptionList_.get(index);
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index) {
+        if (itemListBuilder_ == null) {
+          return itemList_.get(index);
         } else {
-          return takeOptionListBuilder_.getMessage(index);
+          return itemListBuilder_.getMessage(index);
         }
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder setTakeOptionList(
-          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption value) {
-        if (takeOptionListBuilder_ == null) {
+      public Builder setItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
+        if (itemListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.set(index, value);
+          ensureItemListIsMutable();
+          itemList_.set(index, value);
           onChanged();
         } else {
-          takeOptionListBuilder_.setMessage(index, value);
+          itemListBuilder_.setMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder setTakeOptionList(
-          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder builderForValue) {
-        if (takeOptionListBuilder_ == null) {
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.set(index, builderForValue.build());
+      public Builder setItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
+        if (itemListBuilder_ == null) {
+          ensureItemListIsMutable();
+          itemList_.set(index, builderForValue.build());
           onChanged();
         } else {
-          takeOptionListBuilder_.setMessage(index, builderForValue.build());
+          itemListBuilder_.setMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder addTakeOptionList(emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption value) {
-        if (takeOptionListBuilder_ == null) {
+      public Builder addItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
+        if (itemListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.add(value);
+          ensureItemListIsMutable();
+          itemList_.add(value);
           onChanged();
         } else {
-          takeOptionListBuilder_.addMessage(value);
+          itemListBuilder_.addMessage(value);
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder addTakeOptionList(
-          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption value) {
-        if (takeOptionListBuilder_ == null) {
+      public Builder addItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
+        if (itemListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.add(index, value);
+          ensureItemListIsMutable();
+          itemList_.add(index, value);
           onChanged();
         } else {
-          takeOptionListBuilder_.addMessage(index, value);
+          itemListBuilder_.addMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder addTakeOptionList(
-          emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder builderForValue) {
-        if (takeOptionListBuilder_ == null) {
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.add(builderForValue.build());
+      public Builder addItemList(
+          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
+        if (itemListBuilder_ == null) {
+          ensureItemListIsMutable();
+          itemList_.add(builderForValue.build());
           onChanged();
         } else {
-          takeOptionListBuilder_.addMessage(builderForValue.build());
+          itemListBuilder_.addMessage(builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder addTakeOptionList(
-          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder builderForValue) {
-        if (takeOptionListBuilder_ == null) {
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.add(index, builderForValue.build());
+      public Builder addItemList(
+          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
+        if (itemListBuilder_ == null) {
+          ensureItemListIsMutable();
+          itemList_.add(index, builderForValue.build());
           onChanged();
         } else {
-          takeOptionListBuilder_.addMessage(index, builderForValue.build());
+          itemListBuilder_.addMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder addAllTakeOptionList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption> values) {
-        if (takeOptionListBuilder_ == null) {
-          ensureTakeOptionListIsMutable();
+      public Builder addAllItemList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
+        if (itemListBuilder_ == null) {
+          ensureItemListIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, takeOptionList_);
+              values, itemList_);
           onChanged();
         } else {
-          takeOptionListBuilder_.addAllMessages(values);
+          itemListBuilder_.addAllMessages(values);
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder clearTakeOptionList() {
-        if (takeOptionListBuilder_ == null) {
-          takeOptionList_ = java.util.Collections.emptyList();
+      public Builder clearItemList() {
+        if (itemListBuilder_ == null) {
+          itemList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000001);
           onChanged();
         } else {
-          takeOptionListBuilder_.clear();
+          itemListBuilder_.clear();
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public Builder removeTakeOptionList(int index) {
-        if (takeOptionListBuilder_ == null) {
-          ensureTakeOptionListIsMutable();
-          takeOptionList_.remove(index);
+      public Builder removeItemList(int index) {
+        if (itemListBuilder_ == null) {
+          ensureItemListIsMutable();
+          itemList_.remove(index);
           onChanged();
         } else {
-          takeOptionListBuilder_.remove(index);
+          itemListBuilder_.remove(index);
         }
         return this;
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder getTakeOptionListBuilder(
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getItemListBuilder(
           int index) {
-        return getTakeOptionListFieldBuilder().getBuilder(index);
+        return getItemListFieldBuilder().getBuilder(index);
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder getTakeOptionListOrBuilder(
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
           int index) {
-        if (takeOptionListBuilder_ == null) {
-          return takeOptionList_.get(index);  } else {
-          return takeOptionListBuilder_.getMessageOrBuilder(index);
+        if (itemListBuilder_ == null) {
+          return itemList_.get(index);  } else {
+          return itemListBuilder_.getMessageOrBuilder(index);
         }
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder> 
-           getTakeOptionListOrBuilderList() {
-        if (takeOptionListBuilder_ != null) {
-          return takeOptionListBuilder_.getMessageOrBuilderList();
+      public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+           getItemListOrBuilderList() {
+        if (itemListBuilder_ != null) {
+          return itemListBuilder_.getMessageOrBuilderList();
         } else {
-          return java.util.Collections.unmodifiableList(takeOptionList_);
+          return java.util.Collections.unmodifiableList(itemList_);
         }
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder addTakeOptionListBuilder() {
-        return getTakeOptionListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.getDefaultInstance());
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addItemListBuilder() {
+        return getItemListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder addTakeOptionListBuilder(
+      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addItemListBuilder(
           int index) {
-        return getTakeOptionListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.getDefaultInstance());
+        return getItemListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
       }
       /**
-       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
+       * <code>repeated .ItemParam item_list = 7;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder> 
-           getTakeOptionListBuilderList() {
-        return getTakeOptionListFieldBuilder().getBuilderList();
+      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder> 
+           getItemListBuilderList() {
+        return getItemListFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder> 
-          getTakeOptionListFieldBuilder() {
-        if (takeOptionListBuilder_ == null) {
-          takeOptionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder>(
-                  takeOptionList_,
+          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
+          getItemListFieldBuilder() {
+        if (itemListBuilder_ == null) {
+          itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
+                  itemList_,
                   ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
                   isClean());
-          takeOptionList_ = null;
+          itemList_ = null;
         }
-        return takeOptionListBuilder_;
+        return itemListBuilder_;
       }
 
-      private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> itemList_ =
+      private int retcode_ ;
+      /**
+       * <code>int32 retcode = 13;</code>
+       * @return The retcode.
+       */
+      @java.lang.Override
+      public int getRetcode() {
+        return retcode_;
+      }
+      /**
+       * <code>int32 retcode = 13;</code>
+       * @param value The retcode to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRetcode(int value) {
+        
+        retcode_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 retcode = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRetcode() {
+        
+        retcode_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption> takeOptionList_ =
         java.util.Collections.emptyList();
-      private void ensureItemListIsMutable() {
+      private void ensureTakeOptionListIsMutable() {
         if (!((bitField0_ & 0x00000002) != 0)) {
-          itemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(itemList_);
+          takeOptionList_ = new java.util.ArrayList<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption>(takeOptionList_);
           bitField0_ |= 0x00000002;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> itemListBuilder_;
+          emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder> takeOptionListBuilder_;
 
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getItemListList() {
-        if (itemListBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(itemList_);
+      public java.util.List<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption> getTakeOptionListList() {
+        if (takeOptionListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(takeOptionList_);
         } else {
-          return itemListBuilder_.getMessageList();
+          return takeOptionListBuilder_.getMessageList();
         }
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public int getItemListCount() {
-        if (itemListBuilder_ == null) {
-          return itemList_.size();
+      public int getTakeOptionListCount() {
+        if (takeOptionListBuilder_ == null) {
+          return takeOptionList_.size();
         } else {
-          return itemListBuilder_.getCount();
+          return takeOptionListBuilder_.getCount();
         }
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getItemList(int index) {
-        if (itemListBuilder_ == null) {
-          return itemList_.get(index);
+      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption getTakeOptionList(int index) {
+        if (takeOptionListBuilder_ == null) {
+          return takeOptionList_.get(index);
         } else {
-          return itemListBuilder_.getMessage(index);
+          return takeOptionListBuilder_.getMessage(index);
         }
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder setItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
-        if (itemListBuilder_ == null) {
+      public Builder setTakeOptionList(
+          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption value) {
+        if (takeOptionListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureItemListIsMutable();
-          itemList_.set(index, value);
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.set(index, value);
           onChanged();
         } else {
-          itemListBuilder_.setMessage(index, value);
+          takeOptionListBuilder_.setMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder setItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
-        if (itemListBuilder_ == null) {
-          ensureItemListIsMutable();
-          itemList_.set(index, builderForValue.build());
+      public Builder setTakeOptionList(
+          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder builderForValue) {
+        if (takeOptionListBuilder_ == null) {
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.set(index, builderForValue.build());
           onChanged();
         } else {
-          itemListBuilder_.setMessage(index, builderForValue.build());
+          takeOptionListBuilder_.setMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder addItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
-        if (itemListBuilder_ == null) {
+      public Builder addTakeOptionList(emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption value) {
+        if (takeOptionListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureItemListIsMutable();
-          itemList_.add(value);
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.add(value);
           onChanged();
         } else {
-          itemListBuilder_.addMessage(value);
+          takeOptionListBuilder_.addMessage(value);
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder addItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
-        if (itemListBuilder_ == null) {
+      public Builder addTakeOptionList(
+          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption value) {
+        if (takeOptionListBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
           }
-          ensureItemListIsMutable();
-          itemList_.add(index, value);
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.add(index, value);
           onChanged();
         } else {
-          itemListBuilder_.addMessage(index, value);
+          takeOptionListBuilder_.addMessage(index, value);
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder addItemList(
-          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
-        if (itemListBuilder_ == null) {
-          ensureItemListIsMutable();
-          itemList_.add(builderForValue.build());
+      public Builder addTakeOptionList(
+          emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder builderForValue) {
+        if (takeOptionListBuilder_ == null) {
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.add(builderForValue.build());
           onChanged();
         } else {
-          itemListBuilder_.addMessage(builderForValue.build());
+          takeOptionListBuilder_.addMessage(builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder addItemList(
-          int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
-        if (itemListBuilder_ == null) {
-          ensureItemListIsMutable();
-          itemList_.add(index, builderForValue.build());
+      public Builder addTakeOptionList(
+          int index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder builderForValue) {
+        if (takeOptionListBuilder_ == null) {
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.add(index, builderForValue.build());
           onChanged();
         } else {
-          itemListBuilder_.addMessage(index, builderForValue.build());
+          takeOptionListBuilder_.addMessage(index, builderForValue.build());
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder addAllItemList(
-          java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
-        if (itemListBuilder_ == null) {
-          ensureItemListIsMutable();
+      public Builder addAllTakeOptionList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption> values) {
+        if (takeOptionListBuilder_ == null) {
+          ensureTakeOptionListIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
-              values, itemList_);
+              values, takeOptionList_);
           onChanged();
         } else {
-          itemListBuilder_.addAllMessages(values);
+          takeOptionListBuilder_.addAllMessages(values);
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder clearItemList() {
-        if (itemListBuilder_ == null) {
-          itemList_ = java.util.Collections.emptyList();
+      public Builder clearTakeOptionList() {
+        if (takeOptionListBuilder_ == null) {
+          takeOptionList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000002);
           onChanged();
         } else {
-          itemListBuilder_.clear();
+          takeOptionListBuilder_.clear();
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public Builder removeItemList(int index) {
-        if (itemListBuilder_ == null) {
-          ensureItemListIsMutable();
-          itemList_.remove(index);
+      public Builder removeTakeOptionList(int index) {
+        if (takeOptionListBuilder_ == null) {
+          ensureTakeOptionListIsMutable();
+          takeOptionList_.remove(index);
           onChanged();
         } else {
-          itemListBuilder_.remove(index);
+          takeOptionListBuilder_.remove(index);
         }
         return this;
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getItemListBuilder(
+      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder getTakeOptionListBuilder(
           int index) {
-        return getItemListFieldBuilder().getBuilder(index);
+        return getTakeOptionListFieldBuilder().getBuilder(index);
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getItemListOrBuilder(
+      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder getTakeOptionListOrBuilder(
           int index) {
-        if (itemListBuilder_ == null) {
-          return itemList_.get(index);  } else {
-          return itemListBuilder_.getMessageOrBuilder(index);
+        if (takeOptionListBuilder_ == null) {
+          return takeOptionList_.get(index);  } else {
+          return takeOptionListBuilder_.getMessageOrBuilder(index);
         }
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-           getItemListOrBuilderList() {
-        if (itemListBuilder_ != null) {
-          return itemListBuilder_.getMessageOrBuilderList();
+      public java.util.List<? extends emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder> 
+           getTakeOptionListOrBuilderList() {
+        if (takeOptionListBuilder_ != null) {
+          return takeOptionListBuilder_.getMessageOrBuilderList();
         } else {
-          return java.util.Collections.unmodifiableList(itemList_);
+          return java.util.Collections.unmodifiableList(takeOptionList_);
         }
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addItemListBuilder() {
-        return getItemListFieldBuilder().addBuilder(
-            emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
+      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder addTakeOptionListBuilder() {
+        return getTakeOptionListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.getDefaultInstance());
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addItemListBuilder(
+      public emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder addTakeOptionListBuilder(
           int index) {
-        return getItemListFieldBuilder().addBuilder(
-            index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
+        return getTakeOptionListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.getDefaultInstance());
       }
       /**
-       * <code>repeated .ItemParam item_list = 7;</code>
+       * <code>repeated .BattlePassRewardTakeOption take_option_list = 9;</code>
        */
-      public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder> 
-           getItemListBuilderList() {
-        return getItemListFieldBuilder().getBuilderList();
+      public java.util.List<emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder> 
+           getTakeOptionListBuilderList() {
+        return getTakeOptionListFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
-          getItemListFieldBuilder() {
-        if (itemListBuilder_ == null) {
-          itemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
-                  itemList_,
+          emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder> 
+          getTakeOptionListFieldBuilder() {
+        if (takeOptionListBuilder_ == null) {
+          takeOptionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOption.Builder, emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.BattlePassRewardTakeOptionOrBuilder>(
+                  takeOptionList_,
                   ((bitField0_ & 0x00000002) != 0),
                   getParentForChildren(),
                   isClean());
-          itemList_ = null;
+          takeOptionList_ = null;
         }
-        return itemListBuilder_;
+        return takeOptionListBuilder_;
       }
       @java.lang.Override
       public final Builder setUnknownFields(
@@ -1277,10 +1279,10 @@ public final class TakeBattlePassRewardRspOuterClass {
     java.lang.String[] descriptorData = {
       "\n\035TakeBattlePassRewardRsp.proto\032 BattleP" +
       "assRewardTakeOption.proto\032\017ItemParam.pro" +
-      "to\"\200\001\n\027TakeBattlePassRewardRsp\022\017\n\007retcod" +
-      "e\030\r \001(\005\0225\n\020take_option_list\030\t \003(\0132\033.Batt" +
-      "lePassRewardTakeOption\022\035\n\titem_list\030\007 \003(" +
-      "\0132\n.ItemParamB\033\n\031emu.grasscutter.net.pro" +
+      "to\"\200\001\n\027TakeBattlePassRewardRsp\022\035\n\titem_l" +
+      "ist\030\007 \003(\0132\n.ItemParam\022\017\n\007retcode\030\r \001(\005\0225" +
+      "\n\020take_option_list\030\t \003(\0132\033.BattlePassRew" +
+      "ardTakeOptionB\033\n\031emu.grasscutter.net.pro" +
       "tob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
@@ -1294,7 +1296,7 @@ public final class TakeBattlePassRewardRspOuterClass {
     internal_static_TakeBattlePassRewardRsp_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_TakeBattlePassRewardRsp_descriptor,
-        new java.lang.String[] { "Retcode", "TakeOptionList", "ItemList", });
+        new java.lang.String[] { "ItemList", "Retcode", "TakeOptionList", });
     emu.grasscutter.net.proto.BattlePassRewardTakeOptionOuterClass.getDescriptor();
     emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor();
   }
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeReqOuterClass.java
index ddd987ae..61de67dd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeReqOuterClass.java
@@ -40,7 +40,7 @@ public final class TakeFurnitureMakeReqOuterClass {
    * <pre>
    * CmdId: 4772
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -350,7 +350,7 @@ public final class TakeFurnitureMakeReqOuterClass {
      * <pre>
      * CmdId: 4772
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeRspOuterClass.java
index 050f2cdb..066c822c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeRspOuterClass.java
@@ -97,7 +97,8 @@ public final class TakeFurnitureMakeRspOuterClass {
    * <pre>
    * CmdId: 4769
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TakeFurnitureMakeRsp}
@@ -566,7 +567,8 @@ public final class TakeFurnitureMakeRspOuterClass {
      * <pre>
      * CmdId: 4769
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TakeFurnitureMakeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardReqOuterClass.java
index 0922e86a..058fedc6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardReqOuterClass.java
@@ -28,7 +28,7 @@ public final class TakePlayerLevelRewardReqOuterClass {
    * <pre>
    * CmdId: 129
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class TakePlayerLevelRewardReqOuterClass {
      * <pre>
      * CmdId: 129
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardRspOuterClass.java
index 259a5065..e7a8d553 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardRspOuterClass.java
@@ -40,7 +40,8 @@ public final class TakePlayerLevelRewardRspOuterClass {
    * <pre>
    * CmdId: 157
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TakePlayerLevelRewardRsp}
@@ -348,7 +349,8 @@ public final class TakePlayerLevelRewardRspOuterClass {
      * <pre>
      * CmdId: 157
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TakePlayerLevelRewardRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipReqOuterClass.java
index df1f011a..1d616503 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipReqOuterClass.java
@@ -34,7 +34,7 @@ public final class TakeoffEquipReqOuterClass {
    * <pre>
    * CmdId: 605
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class TakeoffEquipReqOuterClass {
      * <pre>
      * CmdId: 605
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipRspOuterClass.java
index 3cd57acf..577c5159 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipRspOuterClass.java
@@ -40,7 +40,8 @@ public final class TakeoffEquipRspOuterClass {
    * <pre>
    * CmdId: 682
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TakeoffEquipRsp}
@@ -349,7 +350,8 @@ public final class TakeoffEquipRspOuterClass {
      * <pre>
      * CmdId: 682
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TakeoffEquipRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TeamResonanceChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TeamResonanceChangeNotifyOuterClass.java
index 8a9b2164..656316fe 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TeamResonanceChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TeamResonanceChangeNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class TeamResonanceChangeNotifyOuterClass {
    * <pre>
    * CmdId: 1082
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TeamResonanceChangeNotify}
@@ -340,7 +341,8 @@ public final class TeamResonanceChangeNotifyOuterClass {
      * <pre>
      * CmdId: 1082
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TeamResonanceChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataRspOuterClass.java
index 6dff123e..771522ad 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataRspOuterClass.java
@@ -225,7 +225,8 @@ public final class TowerAllDataRspOuterClass {
    * <pre>
    * CmdId: 2473
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerAllDataRsp}
@@ -1229,7 +1230,8 @@ public final class TowerAllDataRspOuterClass {
      * <pre>
      * CmdId: 2473
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerAllDataRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectReqOuterClass.java
index 9ae15adf..bcee7aad 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectReqOuterClass.java
@@ -28,7 +28,7 @@ public final class TowerBuffSelectReqOuterClass {
    * <pre>
    * CmdId: 2448
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class TowerBuffSelectReqOuterClass {
      * <pre>
      * CmdId: 2448
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectRspOuterClass.java
index 291985df..0d024655 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerBuffSelectRspOuterClass.java
@@ -34,7 +34,8 @@ public final class TowerBuffSelectRspOuterClass {
    * <pre>
    * CmdId: 2497
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerBuffSelectRsp}
@@ -315,7 +316,8 @@ public final class TowerBuffSelectRspOuterClass {
      * <pre>
      * CmdId: 2497
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerBuffSelectRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordChangeNotifyOuterClass.java
index b5ca1a78..03e1973d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordChangeNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class TowerCurLevelRecordChangeNotifyOuterClass {
    * <pre>
    * CmdId: 2412
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerCurLevelRecordChangeNotify}
@@ -319,7 +320,8 @@ public final class TowerCurLevelRecordChangeNotifyOuterClass {
      * <pre>
      * CmdId: 2412
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerCurLevelRecordChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelReqOuterClass.java
index 8c849526..dd47ebd5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelReqOuterClass.java
@@ -28,7 +28,7 @@ public final class TowerEnterLevelReqOuterClass {
    * <pre>
    * CmdId: 2431
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class TowerEnterLevelReqOuterClass {
      * <pre>
      * CmdId: 2431
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelRspOuterClass.java
index 9a7c4df4..8aa7f9ac 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelRspOuterClass.java
@@ -57,7 +57,8 @@ public final class TowerEnterLevelRspOuterClass {
    * <pre>
    * CmdId: 2475
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerEnterLevelRsp}
@@ -447,7 +448,8 @@ public final class TowerEnterLevelRspOuterClass {
      * <pre>
      * CmdId: 2475
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerEnterLevelRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordChangeNotifyOuterClass.java
index b101c070..f04420c5 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordChangeNotifyOuterClass.java
@@ -52,7 +52,8 @@ public final class TowerFloorRecordChangeNotifyOuterClass {
    * <pre>
    * CmdId: 2498
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerFloorRecordChangeNotify}
@@ -374,7 +375,8 @@ public final class TowerFloorRecordChangeNotifyOuterClass {
      * <pre>
      * CmdId: 2498
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerFloorRecordChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelEndNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelEndNotifyOuterClass.java
index 7ba06090..1a163990 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelEndNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelEndNotifyOuterClass.java
@@ -81,7 +81,8 @@ public final class TowerLevelEndNotifyOuterClass {
    * <pre>
    * CmdId: 2495
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerLevelEndNotify}
@@ -655,7 +656,8 @@ public final class TowerLevelEndNotifyOuterClass {
      * <pre>
      * CmdId: 2495
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerLevelEndNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondNotifyOuterClass.java
index e228641c..bc9dc722 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondNotifyOuterClass.java
@@ -58,7 +58,8 @@ public final class TowerLevelStarCondNotifyOuterClass {
    * <pre>
    * CmdId: 2406
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerLevelStarCondNotify}
@@ -406,7 +407,8 @@ public final class TowerLevelStarCondNotifyOuterClass {
      * <pre>
      * CmdId: 2406
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerLevelStarCondNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerMiddleLevelChangeTeamNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerMiddleLevelChangeTeamNotifyOuterClass.java
index ed4777f0..b83dbfa8 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerMiddleLevelChangeTeamNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerMiddleLevelChangeTeamNotifyOuterClass.java
@@ -22,7 +22,8 @@ public final class TowerMiddleLevelChangeTeamNotifyOuterClass {
    * <pre>
    * CmdId: 2434
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerMiddleLevelChangeTeamNotify}
@@ -249,7 +250,8 @@ public final class TowerMiddleLevelChangeTeamNotifyOuterClass {
      * <pre>
      * CmdId: 2434
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerMiddleLevelChangeTeamNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectReqOuterClass.java
index 05bcf127..94754914 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectReqOuterClass.java
@@ -52,7 +52,7 @@ public final class TowerTeamSelectReqOuterClass {
    * <pre>
    * CmdId: 2421
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -374,7 +374,7 @@ public final class TowerTeamSelectReqOuterClass {
      * <pre>
      * CmdId: 2421
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectRspOuterClass.java
index aaf48c03..31ee9010 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectRspOuterClass.java
@@ -28,7 +28,8 @@ public final class TowerTeamSelectRspOuterClass {
    * <pre>
    * CmdId: 2403
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TowerTeamSelectRsp}
@@ -282,7 +283,8 @@ public final class TowerTeamSelectRspOuterClass {
      * <pre>
      * CmdId: 2403
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TowerTeamSelectRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarFirstPassDungeonNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarFirstPassDungeonNotifyOuterClass.java
index 2b85e56e..a0487829 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarFirstPassDungeonNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarFirstPassDungeonNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class TrialAvatarFirstPassDungeonNotifyOuterClass {
    * <pre>
    * CmdId: 2013
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TrialAvatarFirstPassDungeonNotify}
@@ -282,7 +283,8 @@ public final class TrialAvatarFirstPassDungeonNotifyOuterClass {
      * <pre>
      * CmdId: 2013
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TrialAvatarFirstPassDungeonNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarGrantRecordOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarGrantRecordOuterClass.java
index 68407d9e..43c30cb1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarGrantRecordOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarGrantRecordOuterClass.java
@@ -162,6 +162,14 @@ public final class TrialAvatarGrantRecordOuterClass {
        * <code>GRANT_REASON_Unk2800_FIIDJHAKMOI = 9;</code>
        */
       GRANT_REASON_Unk2800_FIIDJHAKMOI(9),
+      /**
+       * <code>GRANT_REASON_Unk3000_ANPCNHCADHG = 10;</code>
+       */
+      GRANT_REASON_Unk3000_ANPCNHCADHG(10),
+      /**
+       * <code>GRANT_REASON_Unk3000_AJIFFOLFKLO = 11;</code>
+       */
+      GRANT_REASON_Unk3000_AJIFFOLFKLO(11),
       UNRECOGNIZED(-1),
       ;
 
@@ -205,6 +213,14 @@ public final class TrialAvatarGrantRecordOuterClass {
        * <code>GRANT_REASON_Unk2800_FIIDJHAKMOI = 9;</code>
        */
       public static final int GRANT_REASON_Unk2800_FIIDJHAKMOI_VALUE = 9;
+      /**
+       * <code>GRANT_REASON_Unk3000_ANPCNHCADHG = 10;</code>
+       */
+      public static final int GRANT_REASON_Unk3000_ANPCNHCADHG_VALUE = 10;
+      /**
+       * <code>GRANT_REASON_Unk3000_AJIFFOLFKLO = 11;</code>
+       */
+      public static final int GRANT_REASON_Unk3000_AJIFFOLFKLO_VALUE = 11;
 
 
       public final int getNumber() {
@@ -241,6 +257,8 @@ public final class TrialAvatarGrantRecordOuterClass {
           case 7: return GRANT_REASON_Unk2700_FALPDBLGHJB;
           case 8: return GRANT_REASON_Unk2700_GAMADMGGMBC;
           case 9: return GRANT_REASON_Unk2800_FIIDJHAKMOI;
+          case 10: return GRANT_REASON_Unk3000_ANPCNHCADHG;
+          case 11: return GRANT_REASON_Unk3000_AJIFFOLFKLO;
           default: return null;
         }
       }
@@ -766,9 +784,9 @@ public final class TrialAvatarGrantRecordOuterClass {
       descriptor;
   static {
     java.lang.String[] descriptorData = {
-      "\n\034TrialAvatarGrantRecord.proto\"\317\003\n\026Trial" +
+      "\n\034TrialAvatarGrantRecord.proto\"\233\004\n\026Trial" +
       "AvatarGrantRecord\022\024\n\014grant_reason\030\001 \001(\r\022" +
-      "\034\n\024from_parent_quest_id\030\002 \001(\r\"\200\003\n\013GrantR" +
+      "\034\n\024from_parent_quest_id\030\002 \001(\r\"\314\003\n\013GrantR" +
       "eason\022\030\n\024GRANT_REASON_INVALID\020\000\022\031\n\025GRANT" +
       "_REASON_BY_QUEST\020\001\022)\n%GRANT_REASON_BY_TR" +
       "IAL_AVATAR_ACTIVITY\020\002\022-\n)GRANT_REASON_BY" +
@@ -778,8 +796,10 @@ public final class TrialAvatarGrantRecordOuterClass {
       "_Unk2700_ELPMDIEIOHP\020\006\022$\n GRANT_REASON_U" +
       "nk2700_FALPDBLGHJB\020\007\022$\n GRANT_REASON_Unk" +
       "2700_GAMADMGGMBC\020\010\022$\n GRANT_REASON_Unk28" +
-      "00_FIIDJHAKMOI\020\tB\033\n\031emu.grasscutter.net." +
-      "protob\006proto3"
+      "00_FIIDJHAKMOI\020\t\022$\n GRANT_REASON_Unk3000" +
+      "_ANPCNHCADHG\020\n\022$\n GRANT_REASON_Unk3000_A" +
+      "JIFFOLFKLO\020\013B\033\n\031emu.grasscutter.net.prot" +
+      "ob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeReqOuterClass.java
index fd83dff4..af038f26 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeReqOuterClass.java
@@ -34,7 +34,7 @@ public final class TryEnterHomeReqOuterClass {
    * <pre>
    * CmdId: 4482
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class TryEnterHomeReqOuterClass {
      * <pre>
      * CmdId: 4482
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeRspOuterClass.java
index 2c96df2f..ede7e78f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeRspOuterClass.java
@@ -51,7 +51,8 @@ public final class TryEnterHomeRspOuterClass {
    * <pre>
    * CmdId: 4653
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code TryEnterHomeRsp}
@@ -414,7 +415,8 @@ public final class TryEnterHomeRspOuterClass {
      * <pre>
      * CmdId: 4653
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code TryEnterHomeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnionCmdNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnionCmdNotifyOuterClass.java
index f0712973..fbc3858f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnionCmdNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnionCmdNotifyOuterClass.java
@@ -46,7 +46,7 @@ public final class UnionCmdNotifyOuterClass {
    * <pre>
    * CmdId: 5
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -341,7 +341,7 @@ public final class UnionCmdNotifyOuterClass {
      * <pre>
      * CmdId: 5
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/Unk3000CCCOFNABDMB.java b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000CCCOFNABDMB.java
new file mode 100644
index 00000000..829157d7
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000CCCOFNABDMB.java
@@ -0,0 +1,876 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: Unk3000_CCCOFNABDMB.proto
+
+package emu.grasscutter.net.proto;
+
+public final class Unk3000CCCOFNABDMB {
+  private Unk3000CCCOFNABDMB() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface Unk3000_CCCOFNABDMBOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Unk3000_CCCOFNABDMB)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>uint32 stage_id = 1;</code>
+     * @return The stageId.
+     */
+    int getStageId();
+
+    /**
+     * <code>repeated uint32 score_list = 4;</code>
+     * @return A list containing the scoreList.
+     */
+    java.util.List<java.lang.Integer> getScoreListList();
+    /**
+     * <code>repeated uint32 score_list = 4;</code>
+     * @return The count of scoreList.
+     */
+    int getScoreListCount();
+    /**
+     * <code>repeated uint32 score_list = 4;</code>
+     * @param index The index of the element to return.
+     * @return The scoreList at the given index.
+     */
+    int getScoreList(int index);
+
+    /**
+     * <code>bool is_new_record = 13;</code>
+     * @return The isNewRecord.
+     */
+    boolean getIsNewRecord();
+
+    /**
+     * <code>uint32 difficulty = 5;</code>
+     * @return The difficulty.
+     */
+    int getDifficulty();
+  }
+  /**
+   * Protobuf type {@code Unk3000_CCCOFNABDMB}
+   */
+  public static final class Unk3000_CCCOFNABDMB extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Unk3000_CCCOFNABDMB)
+      Unk3000_CCCOFNABDMBOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use Unk3000_CCCOFNABDMB.newBuilder() to construct.
+    private Unk3000_CCCOFNABDMB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Unk3000_CCCOFNABDMB() {
+      scoreList_ = emptyIntList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new Unk3000_CCCOFNABDMB();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Unk3000_CCCOFNABDMB(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              stageId_ = input.readUInt32();
+              break;
+            }
+            case 32: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                scoreList_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              scoreList_.addInt(input.readUInt32());
+              break;
+            }
+            case 34: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                scoreList_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                scoreList_.addInt(input.readUInt32());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 40: {
+
+              difficulty_ = input.readUInt32();
+              break;
+            }
+            case 104: {
+
+              isNewRecord_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          scoreList_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.internal_static_Unk3000_CCCOFNABDMB_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.internal_static_Unk3000_CCCOFNABDMB_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.class, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder.class);
+    }
+
+    public static final int STAGE_ID_FIELD_NUMBER = 1;
+    private int stageId_;
+    /**
+     * <code>uint32 stage_id = 1;</code>
+     * @return The stageId.
+     */
+    @java.lang.Override
+    public int getStageId() {
+      return stageId_;
+    }
+
+    public static final int SCORE_LIST_FIELD_NUMBER = 4;
+    private com.google.protobuf.Internal.IntList scoreList_;
+    /**
+     * <code>repeated uint32 score_list = 4;</code>
+     * @return A list containing the scoreList.
+     */
+    @java.lang.Override
+    public java.util.List<java.lang.Integer>
+        getScoreListList() {
+      return scoreList_;
+    }
+    /**
+     * <code>repeated uint32 score_list = 4;</code>
+     * @return The count of scoreList.
+     */
+    public int getScoreListCount() {
+      return scoreList_.size();
+    }
+    /**
+     * <code>repeated uint32 score_list = 4;</code>
+     * @param index The index of the element to return.
+     * @return The scoreList at the given index.
+     */
+    public int getScoreList(int index) {
+      return scoreList_.getInt(index);
+    }
+    private int scoreListMemoizedSerializedSize = -1;
+
+    public static final int IS_NEW_RECORD_FIELD_NUMBER = 13;
+    private boolean isNewRecord_;
+    /**
+     * <code>bool is_new_record = 13;</code>
+     * @return The isNewRecord.
+     */
+    @java.lang.Override
+    public boolean getIsNewRecord() {
+      return isNewRecord_;
+    }
+
+    public static final int DIFFICULTY_FIELD_NUMBER = 5;
+    private int difficulty_;
+    /**
+     * <code>uint32 difficulty = 5;</code>
+     * @return The difficulty.
+     */
+    @java.lang.Override
+    public int getDifficulty() {
+      return difficulty_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (stageId_ != 0) {
+        output.writeUInt32(1, stageId_);
+      }
+      if (getScoreListList().size() > 0) {
+        output.writeUInt32NoTag(34);
+        output.writeUInt32NoTag(scoreListMemoizedSerializedSize);
+      }
+      for (int i = 0; i < scoreList_.size(); i++) {
+        output.writeUInt32NoTag(scoreList_.getInt(i));
+      }
+      if (difficulty_ != 0) {
+        output.writeUInt32(5, difficulty_);
+      }
+      if (isNewRecord_ != false) {
+        output.writeBool(13, isNewRecord_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (stageId_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(1, stageId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < scoreList_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeUInt32SizeNoTag(scoreList_.getInt(i));
+        }
+        size += dataSize;
+        if (!getScoreListList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        scoreListMemoizedSerializedSize = dataSize;
+      }
+      if (difficulty_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(5, difficulty_);
+      }
+      if (isNewRecord_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(13, isNewRecord_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB)) {
+        return super.equals(obj);
+      }
+      emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB other = (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) obj;
+
+      if (getStageId()
+          != other.getStageId()) return false;
+      if (!getScoreListList()
+          .equals(other.getScoreListList())) return false;
+      if (getIsNewRecord()
+          != other.getIsNewRecord()) return false;
+      if (getDifficulty()
+          != other.getDifficulty()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + STAGE_ID_FIELD_NUMBER;
+      hash = (53 * hash) + getStageId();
+      if (getScoreListCount() > 0) {
+        hash = (37 * hash) + SCORE_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getScoreListList().hashCode();
+      }
+      hash = (37 * hash) + IS_NEW_RECORD_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsNewRecord());
+      hash = (37 * hash) + DIFFICULTY_FIELD_NUMBER;
+      hash = (53 * hash) + getDifficulty();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Unk3000_CCCOFNABDMB}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Unk3000_CCCOFNABDMB)
+        emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMBOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.internal_static_Unk3000_CCCOFNABDMB_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.internal_static_Unk3000_CCCOFNABDMB_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.class, emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.Builder.class);
+      }
+
+      // Construct using emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        stageId_ = 0;
+
+        scoreList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        isNewRecord_ = false;
+
+        difficulty_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.internal_static_Unk3000_CCCOFNABDMB_descriptor;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB getDefaultInstanceForType() {
+        return emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB build() {
+        emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB buildPartial() {
+        emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB result = new emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB(this);
+        int from_bitField0_ = bitField0_;
+        result.stageId_ = stageId_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          scoreList_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.scoreList_ = scoreList_;
+        result.isNewRecord_ = isNewRecord_;
+        result.difficulty_ = difficulty_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) {
+          return mergeFrom((emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB other) {
+        if (other == emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB.getDefaultInstance()) return this;
+        if (other.getStageId() != 0) {
+          setStageId(other.getStageId());
+        }
+        if (!other.scoreList_.isEmpty()) {
+          if (scoreList_.isEmpty()) {
+            scoreList_ = other.scoreList_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureScoreListIsMutable();
+            scoreList_.addAll(other.scoreList_);
+          }
+          onChanged();
+        }
+        if (other.getIsNewRecord() != false) {
+          setIsNewRecord(other.getIsNewRecord());
+        }
+        if (other.getDifficulty() != 0) {
+          setDifficulty(other.getDifficulty());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private int stageId_ ;
+      /**
+       * <code>uint32 stage_id = 1;</code>
+       * @return The stageId.
+       */
+      @java.lang.Override
+      public int getStageId() {
+        return stageId_;
+      }
+      /**
+       * <code>uint32 stage_id = 1;</code>
+       * @param value The stageId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStageId(int value) {
+        
+        stageId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 stage_id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearStageId() {
+        
+        stageId_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.IntList scoreList_ = emptyIntList();
+      private void ensureScoreListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          scoreList_ = mutableCopy(scoreList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @return A list containing the scoreList.
+       */
+      public java.util.List<java.lang.Integer>
+          getScoreListList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(scoreList_) : scoreList_;
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @return The count of scoreList.
+       */
+      public int getScoreListCount() {
+        return scoreList_.size();
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @param index The index of the element to return.
+       * @return The scoreList at the given index.
+       */
+      public int getScoreList(int index) {
+        return scoreList_.getInt(index);
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @param index The index to set the value at.
+       * @param value The scoreList to set.
+       * @return This builder for chaining.
+       */
+      public Builder setScoreList(
+          int index, int value) {
+        ensureScoreListIsMutable();
+        scoreList_.setInt(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @param value The scoreList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addScoreList(int value) {
+        ensureScoreListIsMutable();
+        scoreList_.addInt(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @param values The scoreList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllScoreList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureScoreListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, scoreList_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 score_list = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearScoreList() {
+        scoreList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private boolean isNewRecord_ ;
+      /**
+       * <code>bool is_new_record = 13;</code>
+       * @return The isNewRecord.
+       */
+      @java.lang.Override
+      public boolean getIsNewRecord() {
+        return isNewRecord_;
+      }
+      /**
+       * <code>bool is_new_record = 13;</code>
+       * @param value The isNewRecord to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsNewRecord(boolean value) {
+        
+        isNewRecord_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool is_new_record = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsNewRecord() {
+        
+        isNewRecord_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int difficulty_ ;
+      /**
+       * <code>uint32 difficulty = 5;</code>
+       * @return The difficulty.
+       */
+      @java.lang.Override
+      public int getDifficulty() {
+        return difficulty_;
+      }
+      /**
+       * <code>uint32 difficulty = 5;</code>
+       * @param value The difficulty to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDifficulty(int value) {
+        
+        difficulty_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 difficulty = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDifficulty() {
+        
+        difficulty_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Unk3000_CCCOFNABDMB)
+    }
+
+    // @@protoc_insertion_point(class_scope:Unk3000_CCCOFNABDMB)
+    private static final emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB();
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<Unk3000_CCCOFNABDMB>
+        PARSER = new com.google.protobuf.AbstractParser<Unk3000_CCCOFNABDMB>() {
+      @java.lang.Override
+      public Unk3000_CCCOFNABDMB parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new Unk3000_CCCOFNABDMB(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<Unk3000_CCCOFNABDMB> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<Unk3000_CCCOFNABDMB> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000CCCOFNABDMB.Unk3000_CCCOFNABDMB getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Unk3000_CCCOFNABDMB_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Unk3000_CCCOFNABDMB_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031Unk3000_CCCOFNABDMB.proto\"f\n\023Unk3000_C" +
+      "CCOFNABDMB\022\020\n\010stage_id\030\001 \001(\r\022\022\n\nscore_li" +
+      "st\030\004 \003(\r\022\025\n\ris_new_record\030\r \001(\010\022\022\n\ndiffi" +
+      "culty\030\005 \001(\rB\033\n\031emu.grasscutter.net.proto" +
+      "b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Unk3000_CCCOFNABDMB_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Unk3000_CCCOFNABDMB_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Unk3000_CCCOFNABDMB_descriptor,
+        new java.lang.String[] { "StageId", "ScoreList", "IsNewRecord", "Difficulty", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/Unk3000ENLDIHLGNCK.java b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000ENLDIHLGNCK.java
new file mode 100644
index 00000000..037b207d
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000ENLDIHLGNCK.java
@@ -0,0 +1,915 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: Unk3000_ENLDIHLGNCK.proto
+
+package emu.grasscutter.net.proto;
+
+public final class Unk3000ENLDIHLGNCK {
+  private Unk3000ENLDIHLGNCK() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface Unk3000_ENLDIHLGNCKOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Unk3000_ENLDIHLGNCK)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>uint32 Unk3000_CIOLEGEHDAC = 3;</code>
+     * @return The unk3000CIOLEGEHDAC.
+     */
+    int getUnk3000CIOLEGEHDAC();
+
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    java.util.List<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH> 
+        getUnk3000NLFPKDOBNCDList();
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH getUnk3000NLFPKDOBNCD(int index);
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    int getUnk3000NLFPKDOBNCDCount();
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder> 
+        getUnk3000NLFPKDOBNCDOrBuilderList();
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder getUnk3000NLFPKDOBNCDOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Unk3000_ENLDIHLGNCK}
+   */
+  public static final class Unk3000_ENLDIHLGNCK extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Unk3000_ENLDIHLGNCK)
+      Unk3000_ENLDIHLGNCKOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use Unk3000_ENLDIHLGNCK.newBuilder() to construct.
+    private Unk3000_ENLDIHLGNCK(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Unk3000_ENLDIHLGNCK() {
+      unk3000NLFPKDOBNCD_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new Unk3000_ENLDIHLGNCK();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Unk3000_ENLDIHLGNCK(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 24: {
+
+              unk3000CIOLEGEHDAC_ = input.readUInt32();
+              break;
+            }
+            case 122: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                unk3000NLFPKDOBNCD_ = new java.util.ArrayList<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              unk3000NLFPKDOBNCD_.add(
+                  input.readMessage(emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          unk3000NLFPKDOBNCD_ = java.util.Collections.unmodifiableList(unk3000NLFPKDOBNCD_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.internal_static_Unk3000_ENLDIHLGNCK_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.internal_static_Unk3000_ENLDIHLGNCK_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.class, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder.class);
+    }
+
+    public static final int UNK3000_CIOLEGEHDAC_FIELD_NUMBER = 3;
+    private int unk3000CIOLEGEHDAC_;
+    /**
+     * <code>uint32 Unk3000_CIOLEGEHDAC = 3;</code>
+     * @return The unk3000CIOLEGEHDAC.
+     */
+    @java.lang.Override
+    public int getUnk3000CIOLEGEHDAC() {
+      return unk3000CIOLEGEHDAC_;
+    }
+
+    public static final int UNK3000_NLFPKDOBNCD_FIELD_NUMBER = 15;
+    private java.util.List<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH> unk3000NLFPKDOBNCD_;
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    @java.lang.Override
+    public java.util.List<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH> getUnk3000NLFPKDOBNCDList() {
+      return unk3000NLFPKDOBNCD_;
+    }
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder> 
+        getUnk3000NLFPKDOBNCDOrBuilderList() {
+      return unk3000NLFPKDOBNCD_;
+    }
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    @java.lang.Override
+    public int getUnk3000NLFPKDOBNCDCount() {
+      return unk3000NLFPKDOBNCD_.size();
+    }
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH getUnk3000NLFPKDOBNCD(int index) {
+      return unk3000NLFPKDOBNCD_.get(index);
+    }
+    /**
+     * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder getUnk3000NLFPKDOBNCDOrBuilder(
+        int index) {
+      return unk3000NLFPKDOBNCD_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (unk3000CIOLEGEHDAC_ != 0) {
+        output.writeUInt32(3, unk3000CIOLEGEHDAC_);
+      }
+      for (int i = 0; i < unk3000NLFPKDOBNCD_.size(); i++) {
+        output.writeMessage(15, unk3000NLFPKDOBNCD_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (unk3000CIOLEGEHDAC_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(3, unk3000CIOLEGEHDAC_);
+      }
+      for (int i = 0; i < unk3000NLFPKDOBNCD_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(15, unk3000NLFPKDOBNCD_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK)) {
+        return super.equals(obj);
+      }
+      emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK other = (emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK) obj;
+
+      if (getUnk3000CIOLEGEHDAC()
+          != other.getUnk3000CIOLEGEHDAC()) return false;
+      if (!getUnk3000NLFPKDOBNCDList()
+          .equals(other.getUnk3000NLFPKDOBNCDList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + UNK3000_CIOLEGEHDAC_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk3000CIOLEGEHDAC();
+      if (getUnk3000NLFPKDOBNCDCount() > 0) {
+        hash = (37 * hash) + UNK3000_NLFPKDOBNCD_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk3000NLFPKDOBNCDList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Unk3000_ENLDIHLGNCK}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Unk3000_ENLDIHLGNCK)
+        emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCKOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.internal_static_Unk3000_ENLDIHLGNCK_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.internal_static_Unk3000_ENLDIHLGNCK_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.class, emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.Builder.class);
+      }
+
+      // Construct using emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getUnk3000NLFPKDOBNCDFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        unk3000CIOLEGEHDAC_ = 0;
+
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          unk3000NLFPKDOBNCD_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.internal_static_Unk3000_ENLDIHLGNCK_descriptor;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK getDefaultInstanceForType() {
+        return emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK build() {
+        emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK buildPartial() {
+        emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK result = new emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK(this);
+        int from_bitField0_ = bitField0_;
+        result.unk3000CIOLEGEHDAC_ = unk3000CIOLEGEHDAC_;
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            unk3000NLFPKDOBNCD_ = java.util.Collections.unmodifiableList(unk3000NLFPKDOBNCD_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.unk3000NLFPKDOBNCD_ = unk3000NLFPKDOBNCD_;
+        } else {
+          result.unk3000NLFPKDOBNCD_ = unk3000NLFPKDOBNCDBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK) {
+          return mergeFrom((emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK other) {
+        if (other == emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK.getDefaultInstance()) return this;
+        if (other.getUnk3000CIOLEGEHDAC() != 0) {
+          setUnk3000CIOLEGEHDAC(other.getUnk3000CIOLEGEHDAC());
+        }
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          if (!other.unk3000NLFPKDOBNCD_.isEmpty()) {
+            if (unk3000NLFPKDOBNCD_.isEmpty()) {
+              unk3000NLFPKDOBNCD_ = other.unk3000NLFPKDOBNCD_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureUnk3000NLFPKDOBNCDIsMutable();
+              unk3000NLFPKDOBNCD_.addAll(other.unk3000NLFPKDOBNCD_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.unk3000NLFPKDOBNCD_.isEmpty()) {
+            if (unk3000NLFPKDOBNCDBuilder_.isEmpty()) {
+              unk3000NLFPKDOBNCDBuilder_.dispose();
+              unk3000NLFPKDOBNCDBuilder_ = null;
+              unk3000NLFPKDOBNCD_ = other.unk3000NLFPKDOBNCD_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              unk3000NLFPKDOBNCDBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getUnk3000NLFPKDOBNCDFieldBuilder() : null;
+            } else {
+              unk3000NLFPKDOBNCDBuilder_.addAllMessages(other.unk3000NLFPKDOBNCD_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private int unk3000CIOLEGEHDAC_ ;
+      /**
+       * <code>uint32 Unk3000_CIOLEGEHDAC = 3;</code>
+       * @return The unk3000CIOLEGEHDAC.
+       */
+      @java.lang.Override
+      public int getUnk3000CIOLEGEHDAC() {
+        return unk3000CIOLEGEHDAC_;
+      }
+      /**
+       * <code>uint32 Unk3000_CIOLEGEHDAC = 3;</code>
+       * @param value The unk3000CIOLEGEHDAC to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000CIOLEGEHDAC(int value) {
+        
+        unk3000CIOLEGEHDAC_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 Unk3000_CIOLEGEHDAC = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000CIOLEGEHDAC() {
+        
+        unk3000CIOLEGEHDAC_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH> unk3000NLFPKDOBNCD_ =
+        java.util.Collections.emptyList();
+      private void ensureUnk3000NLFPKDOBNCDIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          unk3000NLFPKDOBNCD_ = new java.util.ArrayList<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH>(unk3000NLFPKDOBNCD_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder> unk3000NLFPKDOBNCDBuilder_;
+
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH> getUnk3000NLFPKDOBNCDList() {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(unk3000NLFPKDOBNCD_);
+        } else {
+          return unk3000NLFPKDOBNCDBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public int getUnk3000NLFPKDOBNCDCount() {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          return unk3000NLFPKDOBNCD_.size();
+        } else {
+          return unk3000NLFPKDOBNCDBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH getUnk3000NLFPKDOBNCD(int index) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          return unk3000NLFPKDOBNCD_.get(index);
+        } else {
+          return unk3000NLFPKDOBNCDBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder setUnk3000NLFPKDOBNCD(
+          int index, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH value) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.set(index, value);
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder setUnk3000NLFPKDOBNCD(
+          int index, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder builderForValue) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder addUnk3000NLFPKDOBNCD(emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH value) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.add(value);
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder addUnk3000NLFPKDOBNCD(
+          int index, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH value) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.add(index, value);
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder addUnk3000NLFPKDOBNCD(
+          emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder builderForValue) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.add(builderForValue.build());
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder addUnk3000NLFPKDOBNCD(
+          int index, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder builderForValue) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder addAllUnk3000NLFPKDOBNCD(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH> values) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, unk3000NLFPKDOBNCD_);
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder clearUnk3000NLFPKDOBNCD() {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          unk3000NLFPKDOBNCD_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public Builder removeUnk3000NLFPKDOBNCD(int index) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          ensureUnk3000NLFPKDOBNCDIsMutable();
+          unk3000NLFPKDOBNCD_.remove(index);
+          onChanged();
+        } else {
+          unk3000NLFPKDOBNCDBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder getUnk3000NLFPKDOBNCDBuilder(
+          int index) {
+        return getUnk3000NLFPKDOBNCDFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder getUnk3000NLFPKDOBNCDOrBuilder(
+          int index) {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          return unk3000NLFPKDOBNCD_.get(index);  } else {
+          return unk3000NLFPKDOBNCDBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder> 
+           getUnk3000NLFPKDOBNCDOrBuilderList() {
+        if (unk3000NLFPKDOBNCDBuilder_ != null) {
+          return unk3000NLFPKDOBNCDBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(unk3000NLFPKDOBNCD_);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder addUnk3000NLFPKDOBNCDBuilder() {
+        return getUnk3000NLFPKDOBNCDFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder addUnk3000NLFPKDOBNCDBuilder(
+          int index) {
+        return getUnk3000NLFPKDOBNCDFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder> 
+           getUnk3000NLFPKDOBNCDBuilderList() {
+        return getUnk3000NLFPKDOBNCDFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder> 
+          getUnk3000NLFPKDOBNCDFieldBuilder() {
+        if (unk3000NLFPKDOBNCDBuilder_ == null) {
+          unk3000NLFPKDOBNCDBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder>(
+                  unk3000NLFPKDOBNCD_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          unk3000NLFPKDOBNCD_ = null;
+        }
+        return unk3000NLFPKDOBNCDBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Unk3000_ENLDIHLGNCK)
+    }
+
+    // @@protoc_insertion_point(class_scope:Unk3000_ENLDIHLGNCK)
+    private static final emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK();
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<Unk3000_ENLDIHLGNCK>
+        PARSER = new com.google.protobuf.AbstractParser<Unk3000_ENLDIHLGNCK>() {
+      @java.lang.Override
+      public Unk3000_ENLDIHLGNCK parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new Unk3000_ENLDIHLGNCK(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<Unk3000_ENLDIHLGNCK> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<Unk3000_ENLDIHLGNCK> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000ENLDIHLGNCK.Unk3000_ENLDIHLGNCK getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Unk3000_ENLDIHLGNCK_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Unk3000_ENLDIHLGNCK_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031Unk3000_ENLDIHLGNCK.proto\032\031Unk3000_GDD" +
+      "GGJIFNCH.proto\"e\n\023Unk3000_ENLDIHLGNCK\022\033\n" +
+      "\023Unk3000_CIOLEGEHDAC\030\003 \001(\r\0221\n\023Unk3000_NL" +
+      "FPKDOBNCD\030\017 \003(\0132\024.Unk3000_GDDGGJIFNCHB\033\n" +
+      "\031emu.grasscutter.net.protob\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.getDescriptor(),
+        });
+    internal_static_Unk3000_ENLDIHLGNCK_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Unk3000_ENLDIHLGNCK_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Unk3000_ENLDIHLGNCK_descriptor,
+        new java.lang.String[] { "Unk3000CIOLEGEHDAC", "Unk3000NLFPKDOBNCD", });
+    emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/Unk3000FANANGGCLOF.java b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000FANANGGCLOF.java
new file mode 100644
index 00000000..2d43525a
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000FANANGGCLOF.java
@@ -0,0 +1,663 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: Unk3000_FANANGGCLOF.proto
+
+package emu.grasscutter.net.proto;
+
+public final class Unk3000FANANGGCLOF {
+  private Unk3000FANANGGCLOF() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface Unk3000_FANANGGCLOFOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Unk3000_FANANGGCLOF)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>repeated uint32 argument_list = 1;</code>
+     * @return A list containing the argumentList.
+     */
+    java.util.List<java.lang.Integer> getArgumentListList();
+    /**
+     * <code>repeated uint32 argument_list = 1;</code>
+     * @return The count of argumentList.
+     */
+    int getArgumentListCount();
+    /**
+     * <code>repeated uint32 argument_list = 1;</code>
+     * @param index The index of the element to return.
+     * @return The argumentList at the given index.
+     */
+    int getArgumentList(int index);
+  }
+  /**
+   * Protobuf type {@code Unk3000_FANANGGCLOF}
+   */
+  public static final class Unk3000_FANANGGCLOF extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Unk3000_FANANGGCLOF)
+      Unk3000_FANANGGCLOFOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use Unk3000_FANANGGCLOF.newBuilder() to construct.
+    private Unk3000_FANANGGCLOF(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Unk3000_FANANGGCLOF() {
+      argumentList_ = emptyIntList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new Unk3000_FANANGGCLOF();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Unk3000_FANANGGCLOF(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                argumentList_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              argumentList_.addInt(input.readUInt32());
+              break;
+            }
+            case 10: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                argumentList_ = newIntList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                argumentList_.addInt(input.readUInt32());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          argumentList_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.internal_static_Unk3000_FANANGGCLOF_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.internal_static_Unk3000_FANANGGCLOF_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.class, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder.class);
+    }
+
+    public static final int ARGUMENT_LIST_FIELD_NUMBER = 1;
+    private com.google.protobuf.Internal.IntList argumentList_;
+    /**
+     * <code>repeated uint32 argument_list = 1;</code>
+     * @return A list containing the argumentList.
+     */
+    @java.lang.Override
+    public java.util.List<java.lang.Integer>
+        getArgumentListList() {
+      return argumentList_;
+    }
+    /**
+     * <code>repeated uint32 argument_list = 1;</code>
+     * @return The count of argumentList.
+     */
+    public int getArgumentListCount() {
+      return argumentList_.size();
+    }
+    /**
+     * <code>repeated uint32 argument_list = 1;</code>
+     * @param index The index of the element to return.
+     * @return The argumentList at the given index.
+     */
+    public int getArgumentList(int index) {
+      return argumentList_.getInt(index);
+    }
+    private int argumentListMemoizedSerializedSize = -1;
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (getArgumentListList().size() > 0) {
+        output.writeUInt32NoTag(10);
+        output.writeUInt32NoTag(argumentListMemoizedSerializedSize);
+      }
+      for (int i = 0; i < argumentList_.size(); i++) {
+        output.writeUInt32NoTag(argumentList_.getInt(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      {
+        int dataSize = 0;
+        for (int i = 0; i < argumentList_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeUInt32SizeNoTag(argumentList_.getInt(i));
+        }
+        size += dataSize;
+        if (!getArgumentListList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        argumentListMemoizedSerializedSize = dataSize;
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF)) {
+        return super.equals(obj);
+      }
+      emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF other = (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) obj;
+
+      if (!getArgumentListList()
+          .equals(other.getArgumentListList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (getArgumentListCount() > 0) {
+        hash = (37 * hash) + ARGUMENT_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getArgumentListList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Unk3000_FANANGGCLOF}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Unk3000_FANANGGCLOF)
+        emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOFOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.internal_static_Unk3000_FANANGGCLOF_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.internal_static_Unk3000_FANANGGCLOF_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.class, emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.Builder.class);
+      }
+
+      // Construct using emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        argumentList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.internal_static_Unk3000_FANANGGCLOF_descriptor;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF getDefaultInstanceForType() {
+        return emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF build() {
+        emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF buildPartial() {
+        emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF result = new emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF(this);
+        int from_bitField0_ = bitField0_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          argumentList_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.argumentList_ = argumentList_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) {
+          return mergeFrom((emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF other) {
+        if (other == emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF.getDefaultInstance()) return this;
+        if (!other.argumentList_.isEmpty()) {
+          if (argumentList_.isEmpty()) {
+            argumentList_ = other.argumentList_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureArgumentListIsMutable();
+            argumentList_.addAll(other.argumentList_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private com.google.protobuf.Internal.IntList argumentList_ = emptyIntList();
+      private void ensureArgumentListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          argumentList_ = mutableCopy(argumentList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @return A list containing the argumentList.
+       */
+      public java.util.List<java.lang.Integer>
+          getArgumentListList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(argumentList_) : argumentList_;
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @return The count of argumentList.
+       */
+      public int getArgumentListCount() {
+        return argumentList_.size();
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @param index The index of the element to return.
+       * @return The argumentList at the given index.
+       */
+      public int getArgumentList(int index) {
+        return argumentList_.getInt(index);
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @param index The index to set the value at.
+       * @param value The argumentList to set.
+       * @return This builder for chaining.
+       */
+      public Builder setArgumentList(
+          int index, int value) {
+        ensureArgumentListIsMutable();
+        argumentList_.setInt(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @param value The argumentList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addArgumentList(int value) {
+        ensureArgumentListIsMutable();
+        argumentList_.addInt(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @param values The argumentList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllArgumentList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensureArgumentListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, argumentList_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 argument_list = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearArgumentList() {
+        argumentList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Unk3000_FANANGGCLOF)
+    }
+
+    // @@protoc_insertion_point(class_scope:Unk3000_FANANGGCLOF)
+    private static final emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF();
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<Unk3000_FANANGGCLOF>
+        PARSER = new com.google.protobuf.AbstractParser<Unk3000_FANANGGCLOF>() {
+      @java.lang.Override
+      public Unk3000_FANANGGCLOF parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new Unk3000_FANANGGCLOF(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<Unk3000_FANANGGCLOF> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<Unk3000_FANANGGCLOF> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000FANANGGCLOF.Unk3000_FANANGGCLOF getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Unk3000_FANANGGCLOF_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Unk3000_FANANGGCLOF_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031Unk3000_FANANGGCLOF.proto\",\n\023Unk3000_F" +
+      "ANANGGCLOF\022\025\n\rargument_list\030\001 \003(\rB\033\n\031emu" +
+      ".grasscutter.net.protob\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Unk3000_FANANGGCLOF_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Unk3000_FANANGGCLOF_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Unk3000_FANANGGCLOF_descriptor,
+        new java.lang.String[] { "ArgumentList", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/Unk3000GDDGGJIFNCH.java b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000GDDGGJIFNCH.java
new file mode 100644
index 00000000..d7401321
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000GDDGGJIFNCH.java
@@ -0,0 +1,822 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: Unk3000_GDDGGJIFNCH.proto
+
+package emu.grasscutter.net.proto;
+
+public final class Unk3000GDDGGJIFNCH {
+  private Unk3000GDDGGJIFNCH() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface Unk3000_GDDGGJIFNCHOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Unk3000_GDDGGJIFNCH)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>uint32 Unk3000_CFDMLGKNLKL = 8;</code>
+     * @return The unk3000CFDMLGKNLKL.
+     */
+    int getUnk3000CFDMLGKNLKL();
+
+    /**
+     * <code>bool Unk3000_HONINDEHLNO = 15;</code>
+     * @return The unk3000HONINDEHLNO.
+     */
+    boolean getUnk3000HONINDEHLNO();
+
+    /**
+     * <code>bool Unk3000_FIMENALCAKG = 10;</code>
+     * @return The unk3000FIMENALCAKG.
+     */
+    boolean getUnk3000FIMENALCAKG();
+
+    /**
+     * <code>bool Unk3000_BJGNKDEGLGC = 6;</code>
+     * @return The unk3000BJGNKDEGLGC.
+     */
+    boolean getUnk3000BJGNKDEGLGC();
+
+    /**
+     * <code>uint32 Unk3000_HPHLGFDHBON = 5;</code>
+     * @return The unk3000HPHLGFDHBON.
+     */
+    int getUnk3000HPHLGFDHBON();
+  }
+  /**
+   * Protobuf type {@code Unk3000_GDDGGJIFNCH}
+   */
+  public static final class Unk3000_GDDGGJIFNCH extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Unk3000_GDDGGJIFNCH)
+      Unk3000_GDDGGJIFNCHOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use Unk3000_GDDGGJIFNCH.newBuilder() to construct.
+    private Unk3000_GDDGGJIFNCH(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Unk3000_GDDGGJIFNCH() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new Unk3000_GDDGGJIFNCH();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Unk3000_GDDGGJIFNCH(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 40: {
+
+              unk3000HPHLGFDHBON_ = input.readUInt32();
+              break;
+            }
+            case 48: {
+
+              unk3000BJGNKDEGLGC_ = input.readBool();
+              break;
+            }
+            case 64: {
+
+              unk3000CFDMLGKNLKL_ = input.readUInt32();
+              break;
+            }
+            case 80: {
+
+              unk3000FIMENALCAKG_ = input.readBool();
+              break;
+            }
+            case 120: {
+
+              unk3000HONINDEHLNO_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.internal_static_Unk3000_GDDGGJIFNCH_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.internal_static_Unk3000_GDDGGJIFNCH_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.class, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder.class);
+    }
+
+    public static final int UNK3000_CFDMLGKNLKL_FIELD_NUMBER = 8;
+    private int unk3000CFDMLGKNLKL_;
+    /**
+     * <code>uint32 Unk3000_CFDMLGKNLKL = 8;</code>
+     * @return The unk3000CFDMLGKNLKL.
+     */
+    @java.lang.Override
+    public int getUnk3000CFDMLGKNLKL() {
+      return unk3000CFDMLGKNLKL_;
+    }
+
+    public static final int UNK3000_HONINDEHLNO_FIELD_NUMBER = 15;
+    private boolean unk3000HONINDEHLNO_;
+    /**
+     * <code>bool Unk3000_HONINDEHLNO = 15;</code>
+     * @return The unk3000HONINDEHLNO.
+     */
+    @java.lang.Override
+    public boolean getUnk3000HONINDEHLNO() {
+      return unk3000HONINDEHLNO_;
+    }
+
+    public static final int UNK3000_FIMENALCAKG_FIELD_NUMBER = 10;
+    private boolean unk3000FIMENALCAKG_;
+    /**
+     * <code>bool Unk3000_FIMENALCAKG = 10;</code>
+     * @return The unk3000FIMENALCAKG.
+     */
+    @java.lang.Override
+    public boolean getUnk3000FIMENALCAKG() {
+      return unk3000FIMENALCAKG_;
+    }
+
+    public static final int UNK3000_BJGNKDEGLGC_FIELD_NUMBER = 6;
+    private boolean unk3000BJGNKDEGLGC_;
+    /**
+     * <code>bool Unk3000_BJGNKDEGLGC = 6;</code>
+     * @return The unk3000BJGNKDEGLGC.
+     */
+    @java.lang.Override
+    public boolean getUnk3000BJGNKDEGLGC() {
+      return unk3000BJGNKDEGLGC_;
+    }
+
+    public static final int UNK3000_HPHLGFDHBON_FIELD_NUMBER = 5;
+    private int unk3000HPHLGFDHBON_;
+    /**
+     * <code>uint32 Unk3000_HPHLGFDHBON = 5;</code>
+     * @return The unk3000HPHLGFDHBON.
+     */
+    @java.lang.Override
+    public int getUnk3000HPHLGFDHBON() {
+      return unk3000HPHLGFDHBON_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (unk3000HPHLGFDHBON_ != 0) {
+        output.writeUInt32(5, unk3000HPHLGFDHBON_);
+      }
+      if (unk3000BJGNKDEGLGC_ != false) {
+        output.writeBool(6, unk3000BJGNKDEGLGC_);
+      }
+      if (unk3000CFDMLGKNLKL_ != 0) {
+        output.writeUInt32(8, unk3000CFDMLGKNLKL_);
+      }
+      if (unk3000FIMENALCAKG_ != false) {
+        output.writeBool(10, unk3000FIMENALCAKG_);
+      }
+      if (unk3000HONINDEHLNO_ != false) {
+        output.writeBool(15, unk3000HONINDEHLNO_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (unk3000HPHLGFDHBON_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(5, unk3000HPHLGFDHBON_);
+      }
+      if (unk3000BJGNKDEGLGC_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(6, unk3000BJGNKDEGLGC_);
+      }
+      if (unk3000CFDMLGKNLKL_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(8, unk3000CFDMLGKNLKL_);
+      }
+      if (unk3000FIMENALCAKG_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(10, unk3000FIMENALCAKG_);
+      }
+      if (unk3000HONINDEHLNO_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(15, unk3000HONINDEHLNO_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH)) {
+        return super.equals(obj);
+      }
+      emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH other = (emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH) obj;
+
+      if (getUnk3000CFDMLGKNLKL()
+          != other.getUnk3000CFDMLGKNLKL()) return false;
+      if (getUnk3000HONINDEHLNO()
+          != other.getUnk3000HONINDEHLNO()) return false;
+      if (getUnk3000FIMENALCAKG()
+          != other.getUnk3000FIMENALCAKG()) return false;
+      if (getUnk3000BJGNKDEGLGC()
+          != other.getUnk3000BJGNKDEGLGC()) return false;
+      if (getUnk3000HPHLGFDHBON()
+          != other.getUnk3000HPHLGFDHBON()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + UNK3000_CFDMLGKNLKL_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk3000CFDMLGKNLKL();
+      hash = (37 * hash) + UNK3000_HONINDEHLNO_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getUnk3000HONINDEHLNO());
+      hash = (37 * hash) + UNK3000_FIMENALCAKG_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getUnk3000FIMENALCAKG());
+      hash = (37 * hash) + UNK3000_BJGNKDEGLGC_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getUnk3000BJGNKDEGLGC());
+      hash = (37 * hash) + UNK3000_HPHLGFDHBON_FIELD_NUMBER;
+      hash = (53 * hash) + getUnk3000HPHLGFDHBON();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Unk3000_GDDGGJIFNCH}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Unk3000_GDDGGJIFNCH)
+        emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCHOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.internal_static_Unk3000_GDDGGJIFNCH_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.internal_static_Unk3000_GDDGGJIFNCH_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.class, emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.Builder.class);
+      }
+
+      // Construct using emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        unk3000CFDMLGKNLKL_ = 0;
+
+        unk3000HONINDEHLNO_ = false;
+
+        unk3000FIMENALCAKG_ = false;
+
+        unk3000BJGNKDEGLGC_ = false;
+
+        unk3000HPHLGFDHBON_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.internal_static_Unk3000_GDDGGJIFNCH_descriptor;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH getDefaultInstanceForType() {
+        return emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH build() {
+        emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH buildPartial() {
+        emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH result = new emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH(this);
+        result.unk3000CFDMLGKNLKL_ = unk3000CFDMLGKNLKL_;
+        result.unk3000HONINDEHLNO_ = unk3000HONINDEHLNO_;
+        result.unk3000FIMENALCAKG_ = unk3000FIMENALCAKG_;
+        result.unk3000BJGNKDEGLGC_ = unk3000BJGNKDEGLGC_;
+        result.unk3000HPHLGFDHBON_ = unk3000HPHLGFDHBON_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH) {
+          return mergeFrom((emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH other) {
+        if (other == emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH.getDefaultInstance()) return this;
+        if (other.getUnk3000CFDMLGKNLKL() != 0) {
+          setUnk3000CFDMLGKNLKL(other.getUnk3000CFDMLGKNLKL());
+        }
+        if (other.getUnk3000HONINDEHLNO() != false) {
+          setUnk3000HONINDEHLNO(other.getUnk3000HONINDEHLNO());
+        }
+        if (other.getUnk3000FIMENALCAKG() != false) {
+          setUnk3000FIMENALCAKG(other.getUnk3000FIMENALCAKG());
+        }
+        if (other.getUnk3000BJGNKDEGLGC() != false) {
+          setUnk3000BJGNKDEGLGC(other.getUnk3000BJGNKDEGLGC());
+        }
+        if (other.getUnk3000HPHLGFDHBON() != 0) {
+          setUnk3000HPHLGFDHBON(other.getUnk3000HPHLGFDHBON());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int unk3000CFDMLGKNLKL_ ;
+      /**
+       * <code>uint32 Unk3000_CFDMLGKNLKL = 8;</code>
+       * @return The unk3000CFDMLGKNLKL.
+       */
+      @java.lang.Override
+      public int getUnk3000CFDMLGKNLKL() {
+        return unk3000CFDMLGKNLKL_;
+      }
+      /**
+       * <code>uint32 Unk3000_CFDMLGKNLKL = 8;</code>
+       * @param value The unk3000CFDMLGKNLKL to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000CFDMLGKNLKL(int value) {
+        
+        unk3000CFDMLGKNLKL_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 Unk3000_CFDMLGKNLKL = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000CFDMLGKNLKL() {
+        
+        unk3000CFDMLGKNLKL_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private boolean unk3000HONINDEHLNO_ ;
+      /**
+       * <code>bool Unk3000_HONINDEHLNO = 15;</code>
+       * @return The unk3000HONINDEHLNO.
+       */
+      @java.lang.Override
+      public boolean getUnk3000HONINDEHLNO() {
+        return unk3000HONINDEHLNO_;
+      }
+      /**
+       * <code>bool Unk3000_HONINDEHLNO = 15;</code>
+       * @param value The unk3000HONINDEHLNO to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000HONINDEHLNO(boolean value) {
+        
+        unk3000HONINDEHLNO_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool Unk3000_HONINDEHLNO = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000HONINDEHLNO() {
+        
+        unk3000HONINDEHLNO_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean unk3000FIMENALCAKG_ ;
+      /**
+       * <code>bool Unk3000_FIMENALCAKG = 10;</code>
+       * @return The unk3000FIMENALCAKG.
+       */
+      @java.lang.Override
+      public boolean getUnk3000FIMENALCAKG() {
+        return unk3000FIMENALCAKG_;
+      }
+      /**
+       * <code>bool Unk3000_FIMENALCAKG = 10;</code>
+       * @param value The unk3000FIMENALCAKG to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000FIMENALCAKG(boolean value) {
+        
+        unk3000FIMENALCAKG_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool Unk3000_FIMENALCAKG = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000FIMENALCAKG() {
+        
+        unk3000FIMENALCAKG_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean unk3000BJGNKDEGLGC_ ;
+      /**
+       * <code>bool Unk3000_BJGNKDEGLGC = 6;</code>
+       * @return The unk3000BJGNKDEGLGC.
+       */
+      @java.lang.Override
+      public boolean getUnk3000BJGNKDEGLGC() {
+        return unk3000BJGNKDEGLGC_;
+      }
+      /**
+       * <code>bool Unk3000_BJGNKDEGLGC = 6;</code>
+       * @param value The unk3000BJGNKDEGLGC to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000BJGNKDEGLGC(boolean value) {
+        
+        unk3000BJGNKDEGLGC_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool Unk3000_BJGNKDEGLGC = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000BJGNKDEGLGC() {
+        
+        unk3000BJGNKDEGLGC_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int unk3000HPHLGFDHBON_ ;
+      /**
+       * <code>uint32 Unk3000_HPHLGFDHBON = 5;</code>
+       * @return The unk3000HPHLGFDHBON.
+       */
+      @java.lang.Override
+      public int getUnk3000HPHLGFDHBON() {
+        return unk3000HPHLGFDHBON_;
+      }
+      /**
+       * <code>uint32 Unk3000_HPHLGFDHBON = 5;</code>
+       * @param value The unk3000HPHLGFDHBON to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000HPHLGFDHBON(int value) {
+        
+        unk3000HPHLGFDHBON_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 Unk3000_HPHLGFDHBON = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000HPHLGFDHBON() {
+        
+        unk3000HPHLGFDHBON_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Unk3000_GDDGGJIFNCH)
+    }
+
+    // @@protoc_insertion_point(class_scope:Unk3000_GDDGGJIFNCH)
+    private static final emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH();
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<Unk3000_GDDGGJIFNCH>
+        PARSER = new com.google.protobuf.AbstractParser<Unk3000_GDDGGJIFNCH>() {
+      @java.lang.Override
+      public Unk3000_GDDGGJIFNCH parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new Unk3000_GDDGGJIFNCH(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<Unk3000_GDDGGJIFNCH> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<Unk3000_GDDGGJIFNCH> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000GDDGGJIFNCH.Unk3000_GDDGGJIFNCH getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Unk3000_GDDGGJIFNCH_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Unk3000_GDDGGJIFNCH_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031Unk3000_GDDGGJIFNCH.proto\"\246\001\n\023Unk3000_" +
+      "GDDGGJIFNCH\022\033\n\023Unk3000_CFDMLGKNLKL\030\010 \001(\r" +
+      "\022\033\n\023Unk3000_HONINDEHLNO\030\017 \001(\010\022\033\n\023Unk3000" +
+      "_FIMENALCAKG\030\n \001(\010\022\033\n\023Unk3000_BJGNKDEGLG" +
+      "C\030\006 \001(\010\022\033\n\023Unk3000_HPHLGFDHBON\030\005 \001(\rB\033\n\031" +
+      "emu.grasscutter.net.protob\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Unk3000_GDDGGJIFNCH_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Unk3000_GDDGGJIFNCH_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Unk3000_GDDGGJIFNCH_descriptor,
+        new java.lang.String[] { "Unk3000CFDMLGKNLKL", "Unk3000HONINDEHLNO", "Unk3000FIMENALCAKG", "Unk3000BJGNKDEGLGC", "Unk3000HPHLGFDHBON", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/Unk3000GNOPDGELABH.java b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000GNOPDGELABH.java
new file mode 100644
index 00000000..773d7b12
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000GNOPDGELABH.java
@@ -0,0 +1,684 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: Unk3000_GNOPDGELABH.proto
+
+package emu.grasscutter.net.proto;
+
+public final class Unk3000GNOPDGELABH {
+  private Unk3000GNOPDGELABH() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface Unk3000_GNOPDGELABHOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Unk3000_GNOPDGELABH)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>float Unk3000_KNOBDDHIONH = 1;</code>
+     * @return The unk3000KNOBDDHIONH.
+     */
+    float getUnk3000KNOBDDHIONH();
+
+    /**
+     * <code>float Unk3000_NDBJCJEIEEO = 2;</code>
+     * @return The unk3000NDBJCJEIEEO.
+     */
+    float getUnk3000NDBJCJEIEEO();
+
+    /**
+     * <code>float Unk3000_CGBHKPEGBOD = 3;</code>
+     * @return The unk3000CGBHKPEGBOD.
+     */
+    float getUnk3000CGBHKPEGBOD();
+  }
+  /**
+   * Protobuf type {@code Unk3000_GNOPDGELABH}
+   */
+  public static final class Unk3000_GNOPDGELABH extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Unk3000_GNOPDGELABH)
+      Unk3000_GNOPDGELABHOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use Unk3000_GNOPDGELABH.newBuilder() to construct.
+    private Unk3000_GNOPDGELABH(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Unk3000_GNOPDGELABH() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new Unk3000_GNOPDGELABH();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Unk3000_GNOPDGELABH(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 13: {
+
+              unk3000KNOBDDHIONH_ = input.readFloat();
+              break;
+            }
+            case 21: {
+
+              unk3000NDBJCJEIEEO_ = input.readFloat();
+              break;
+            }
+            case 29: {
+
+              unk3000CGBHKPEGBOD_ = input.readFloat();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.internal_static_Unk3000_GNOPDGELABH_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.internal_static_Unk3000_GNOPDGELABH_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.class, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder.class);
+    }
+
+    public static final int UNK3000_KNOBDDHIONH_FIELD_NUMBER = 1;
+    private float unk3000KNOBDDHIONH_;
+    /**
+     * <code>float Unk3000_KNOBDDHIONH = 1;</code>
+     * @return The unk3000KNOBDDHIONH.
+     */
+    @java.lang.Override
+    public float getUnk3000KNOBDDHIONH() {
+      return unk3000KNOBDDHIONH_;
+    }
+
+    public static final int UNK3000_NDBJCJEIEEO_FIELD_NUMBER = 2;
+    private float unk3000NDBJCJEIEEO_;
+    /**
+     * <code>float Unk3000_NDBJCJEIEEO = 2;</code>
+     * @return The unk3000NDBJCJEIEEO.
+     */
+    @java.lang.Override
+    public float getUnk3000NDBJCJEIEEO() {
+      return unk3000NDBJCJEIEEO_;
+    }
+
+    public static final int UNK3000_CGBHKPEGBOD_FIELD_NUMBER = 3;
+    private float unk3000CGBHKPEGBOD_;
+    /**
+     * <code>float Unk3000_CGBHKPEGBOD = 3;</code>
+     * @return The unk3000CGBHKPEGBOD.
+     */
+    @java.lang.Override
+    public float getUnk3000CGBHKPEGBOD() {
+      return unk3000CGBHKPEGBOD_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (unk3000KNOBDDHIONH_ != 0F) {
+        output.writeFloat(1, unk3000KNOBDDHIONH_);
+      }
+      if (unk3000NDBJCJEIEEO_ != 0F) {
+        output.writeFloat(2, unk3000NDBJCJEIEEO_);
+      }
+      if (unk3000CGBHKPEGBOD_ != 0F) {
+        output.writeFloat(3, unk3000CGBHKPEGBOD_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (unk3000KNOBDDHIONH_ != 0F) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeFloatSize(1, unk3000KNOBDDHIONH_);
+      }
+      if (unk3000NDBJCJEIEEO_ != 0F) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeFloatSize(2, unk3000NDBJCJEIEEO_);
+      }
+      if (unk3000CGBHKPEGBOD_ != 0F) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeFloatSize(3, unk3000CGBHKPEGBOD_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH)) {
+        return super.equals(obj);
+      }
+      emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH other = (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) obj;
+
+      if (java.lang.Float.floatToIntBits(getUnk3000KNOBDDHIONH())
+          != java.lang.Float.floatToIntBits(
+              other.getUnk3000KNOBDDHIONH())) return false;
+      if (java.lang.Float.floatToIntBits(getUnk3000NDBJCJEIEEO())
+          != java.lang.Float.floatToIntBits(
+              other.getUnk3000NDBJCJEIEEO())) return false;
+      if (java.lang.Float.floatToIntBits(getUnk3000CGBHKPEGBOD())
+          != java.lang.Float.floatToIntBits(
+              other.getUnk3000CGBHKPEGBOD())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + UNK3000_KNOBDDHIONH_FIELD_NUMBER;
+      hash = (53 * hash) + java.lang.Float.floatToIntBits(
+          getUnk3000KNOBDDHIONH());
+      hash = (37 * hash) + UNK3000_NDBJCJEIEEO_FIELD_NUMBER;
+      hash = (53 * hash) + java.lang.Float.floatToIntBits(
+          getUnk3000NDBJCJEIEEO());
+      hash = (37 * hash) + UNK3000_CGBHKPEGBOD_FIELD_NUMBER;
+      hash = (53 * hash) + java.lang.Float.floatToIntBits(
+          getUnk3000CGBHKPEGBOD());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Unk3000_GNOPDGELABH}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Unk3000_GNOPDGELABH)
+        emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABHOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.internal_static_Unk3000_GNOPDGELABH_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.internal_static_Unk3000_GNOPDGELABH_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.class, emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.Builder.class);
+      }
+
+      // Construct using emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        unk3000KNOBDDHIONH_ = 0F;
+
+        unk3000NDBJCJEIEEO_ = 0F;
+
+        unk3000CGBHKPEGBOD_ = 0F;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.internal_static_Unk3000_GNOPDGELABH_descriptor;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH getDefaultInstanceForType() {
+        return emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH build() {
+        emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH buildPartial() {
+        emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH result = new emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH(this);
+        result.unk3000KNOBDDHIONH_ = unk3000KNOBDDHIONH_;
+        result.unk3000NDBJCJEIEEO_ = unk3000NDBJCJEIEEO_;
+        result.unk3000CGBHKPEGBOD_ = unk3000CGBHKPEGBOD_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) {
+          return mergeFrom((emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH other) {
+        if (other == emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH.getDefaultInstance()) return this;
+        if (other.getUnk3000KNOBDDHIONH() != 0F) {
+          setUnk3000KNOBDDHIONH(other.getUnk3000KNOBDDHIONH());
+        }
+        if (other.getUnk3000NDBJCJEIEEO() != 0F) {
+          setUnk3000NDBJCJEIEEO(other.getUnk3000NDBJCJEIEEO());
+        }
+        if (other.getUnk3000CGBHKPEGBOD() != 0F) {
+          setUnk3000CGBHKPEGBOD(other.getUnk3000CGBHKPEGBOD());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private float unk3000KNOBDDHIONH_ ;
+      /**
+       * <code>float Unk3000_KNOBDDHIONH = 1;</code>
+       * @return The unk3000KNOBDDHIONH.
+       */
+      @java.lang.Override
+      public float getUnk3000KNOBDDHIONH() {
+        return unk3000KNOBDDHIONH_;
+      }
+      /**
+       * <code>float Unk3000_KNOBDDHIONH = 1;</code>
+       * @param value The unk3000KNOBDDHIONH to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000KNOBDDHIONH(float value) {
+        
+        unk3000KNOBDDHIONH_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>float Unk3000_KNOBDDHIONH = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000KNOBDDHIONH() {
+        
+        unk3000KNOBDDHIONH_ = 0F;
+        onChanged();
+        return this;
+      }
+
+      private float unk3000NDBJCJEIEEO_ ;
+      /**
+       * <code>float Unk3000_NDBJCJEIEEO = 2;</code>
+       * @return The unk3000NDBJCJEIEEO.
+       */
+      @java.lang.Override
+      public float getUnk3000NDBJCJEIEEO() {
+        return unk3000NDBJCJEIEEO_;
+      }
+      /**
+       * <code>float Unk3000_NDBJCJEIEEO = 2;</code>
+       * @param value The unk3000NDBJCJEIEEO to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000NDBJCJEIEEO(float value) {
+        
+        unk3000NDBJCJEIEEO_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>float Unk3000_NDBJCJEIEEO = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000NDBJCJEIEEO() {
+        
+        unk3000NDBJCJEIEEO_ = 0F;
+        onChanged();
+        return this;
+      }
+
+      private float unk3000CGBHKPEGBOD_ ;
+      /**
+       * <code>float Unk3000_CGBHKPEGBOD = 3;</code>
+       * @return The unk3000CGBHKPEGBOD.
+       */
+      @java.lang.Override
+      public float getUnk3000CGBHKPEGBOD() {
+        return unk3000CGBHKPEGBOD_;
+      }
+      /**
+       * <code>float Unk3000_CGBHKPEGBOD = 3;</code>
+       * @param value The unk3000CGBHKPEGBOD to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnk3000CGBHKPEGBOD(float value) {
+        
+        unk3000CGBHKPEGBOD_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>float Unk3000_CGBHKPEGBOD = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnk3000CGBHKPEGBOD() {
+        
+        unk3000CGBHKPEGBOD_ = 0F;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Unk3000_GNOPDGELABH)
+    }
+
+    // @@protoc_insertion_point(class_scope:Unk3000_GNOPDGELABH)
+    private static final emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH();
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<Unk3000_GNOPDGELABH>
+        PARSER = new com.google.protobuf.AbstractParser<Unk3000_GNOPDGELABH>() {
+      @java.lang.Override
+      public Unk3000_GNOPDGELABH parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new Unk3000_GNOPDGELABH(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<Unk3000_GNOPDGELABH> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<Unk3000_GNOPDGELABH> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000GNOPDGELABH.Unk3000_GNOPDGELABH getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Unk3000_GNOPDGELABH_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Unk3000_GNOPDGELABH_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031Unk3000_GNOPDGELABH.proto\"l\n\023Unk3000_G" +
+      "NOPDGELABH\022\033\n\023Unk3000_KNOBDDHIONH\030\001 \001(\002\022" +
+      "\033\n\023Unk3000_NDBJCJEIEEO\030\002 \001(\002\022\033\n\023Unk3000_" +
+      "CGBHKPEGBOD\030\003 \001(\002B\033\n\031emu.grasscutter.net" +
+      ".protob\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Unk3000_GNOPDGELABH_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Unk3000_GNOPDGELABH_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Unk3000_GNOPDGELABH_descriptor,
+        new java.lang.String[] { "Unk3000KNOBDDHIONH", "Unk3000NDBJCJEIEEO", "Unk3000CGBHKPEGBOD", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/Unk3000HKHFFDEMNKN.java b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000HKHFFDEMNKN.java
new file mode 100644
index 00000000..9f701a80
--- /dev/null
+++ b/src/generated/main/java/emu/grasscutter/net/proto/Unk3000HKHFFDEMNKN.java
@@ -0,0 +1,914 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: Unk3000_HKHFFDEMNKN.proto
+
+package emu.grasscutter.net.proto;
+
+public final class Unk3000HKHFFDEMNKN {
+  private Unk3000HKHFFDEMNKN() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface Unk3000_HKHFFDEMNKNOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Unk3000_HKHFFDEMNKN)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>uint32 uid = 14;</code>
+     * @return The uid.
+     */
+    int getUid();
+
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> 
+        getSlotListList();
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index);
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    int getSlotListCount();
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+        getSlotListOrBuilderList();
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Unk3000_HKHFFDEMNKN}
+   */
+  public static final class Unk3000_HKHFFDEMNKN extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Unk3000_HKHFFDEMNKN)
+      Unk3000_HKHFFDEMNKNOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use Unk3000_HKHFFDEMNKN.newBuilder() to construct.
+    private Unk3000_HKHFFDEMNKN(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Unk3000_HKHFFDEMNKN() {
+      slotList_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new Unk3000_HKHFFDEMNKN();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Unk3000_HKHFFDEMNKN(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 106: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                slotList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              slotList_.add(
+                  input.readMessage(emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.parser(), extensionRegistry));
+              break;
+            }
+            case 112: {
+
+              uid_ = input.readUInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          slotList_ = java.util.Collections.unmodifiableList(slotList_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.internal_static_Unk3000_HKHFFDEMNKN_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.internal_static_Unk3000_HKHFFDEMNKN_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.class, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder.class);
+    }
+
+    public static final int UID_FIELD_NUMBER = 14;
+    private int uid_;
+    /**
+     * <code>uint32 uid = 14;</code>
+     * @return The uid.
+     */
+    @java.lang.Override
+    public int getUid() {
+      return uid_;
+    }
+
+    public static final int SLOT_LIST_FIELD_NUMBER = 13;
+    private java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> slotList_;
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    @java.lang.Override
+    public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> getSlotListList() {
+      return slotList_;
+    }
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+        getSlotListOrBuilderList() {
+      return slotList_;
+    }
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    @java.lang.Override
+    public int getSlotListCount() {
+      return slotList_.size();
+    }
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index) {
+      return slotList_.get(index);
+    }
+    /**
+     * <code>repeated .WidgetSlotData slot_list = 13;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
+        int index) {
+      return slotList_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      for (int i = 0; i < slotList_.size(); i++) {
+        output.writeMessage(13, slotList_.get(i));
+      }
+      if (uid_ != 0) {
+        output.writeUInt32(14, uid_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      for (int i = 0; i < slotList_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(13, slotList_.get(i));
+      }
+      if (uid_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(14, uid_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN)) {
+        return super.equals(obj);
+      }
+      emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN other = (emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN) obj;
+
+      if (getUid()
+          != other.getUid()) return false;
+      if (!getSlotListList()
+          .equals(other.getSlotListList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + UID_FIELD_NUMBER;
+      hash = (53 * hash) + getUid();
+      if (getSlotListCount() > 0) {
+        hash = (37 * hash) + SLOT_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getSlotListList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Unk3000_HKHFFDEMNKN}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Unk3000_HKHFFDEMNKN)
+        emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.internal_static_Unk3000_HKHFFDEMNKN_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.internal_static_Unk3000_HKHFFDEMNKN_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.class, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder.class);
+      }
+
+      // Construct using emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getSlotListFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        uid_ = 0;
+
+        if (slotListBuilder_ == null) {
+          slotList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          slotListBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.internal_static_Unk3000_HKHFFDEMNKN_descriptor;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN getDefaultInstanceForType() {
+        return emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN build() {
+        emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN buildPartial() {
+        emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN result = new emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN(this);
+        int from_bitField0_ = bitField0_;
+        result.uid_ = uid_;
+        if (slotListBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            slotList_ = java.util.Collections.unmodifiableList(slotList_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.slotList_ = slotList_;
+        } else {
+          result.slotList_ = slotListBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN) {
+          return mergeFrom((emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN other) {
+        if (other == emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.getDefaultInstance()) return this;
+        if (other.getUid() != 0) {
+          setUid(other.getUid());
+        }
+        if (slotListBuilder_ == null) {
+          if (!other.slotList_.isEmpty()) {
+            if (slotList_.isEmpty()) {
+              slotList_ = other.slotList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureSlotListIsMutable();
+              slotList_.addAll(other.slotList_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.slotList_.isEmpty()) {
+            if (slotListBuilder_.isEmpty()) {
+              slotListBuilder_.dispose();
+              slotListBuilder_ = null;
+              slotList_ = other.slotList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              slotListBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getSlotListFieldBuilder() : null;
+            } else {
+              slotListBuilder_.addAllMessages(other.slotList_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private int uid_ ;
+      /**
+       * <code>uint32 uid = 14;</code>
+       * @return The uid.
+       */
+      @java.lang.Override
+      public int getUid() {
+        return uid_;
+      }
+      /**
+       * <code>uint32 uid = 14;</code>
+       * @param value The uid to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUid(int value) {
+        
+        uid_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>uint32 uid = 14;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUid() {
+        
+        uid_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> slotList_ =
+        java.util.Collections.emptyList();
+      private void ensureSlotListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          slotList_ = new java.util.ArrayList<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData>(slotList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> slotListBuilder_;
+
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> getSlotListList() {
+        if (slotListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(slotList_);
+        } else {
+          return slotListBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public int getSlotListCount() {
+        if (slotListBuilder_ == null) {
+          return slotList_.size();
+        } else {
+          return slotListBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData getSlotList(int index) {
+        if (slotListBuilder_ == null) {
+          return slotList_.get(index);
+        } else {
+          return slotListBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder setSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
+        if (slotListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureSlotListIsMutable();
+          slotList_.set(index, value);
+          onChanged();
+        } else {
+          slotListBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder setSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          slotListBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder addSlotList(emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
+        if (slotListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureSlotListIsMutable();
+          slotList_.add(value);
+          onChanged();
+        } else {
+          slotListBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder addSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData value) {
+        if (slotListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureSlotListIsMutable();
+          slotList_.add(index, value);
+          onChanged();
+        } else {
+          slotListBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder addSlotList(
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          slotListBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder addSlotList(
+          int index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder builderForValue) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          slotListBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder addAllSlotList(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData> values) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, slotList_);
+          onChanged();
+        } else {
+          slotListBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder clearSlotList() {
+        if (slotListBuilder_ == null) {
+          slotList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          slotListBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public Builder removeSlotList(int index) {
+        if (slotListBuilder_ == null) {
+          ensureSlotListIsMutable();
+          slotList_.remove(index);
+          onChanged();
+        } else {
+          slotListBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder getSlotListBuilder(
+          int index) {
+        return getSlotListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder getSlotListOrBuilder(
+          int index) {
+        if (slotListBuilder_ == null) {
+          return slotList_.get(index);  } else {
+          return slotListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+           getSlotListOrBuilderList() {
+        if (slotListBuilder_ != null) {
+          return slotListBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(slotList_);
+        }
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder addSlotListBuilder() {
+        return getSlotListFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder addSlotListBuilder(
+          int index) {
+        return getSlotListFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .WidgetSlotData slot_list = 13;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder> 
+           getSlotListBuilderList() {
+        return getSlotListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder> 
+          getSlotListFieldBuilder() {
+        if (slotListBuilder_ == null) {
+          slotListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotData.Builder, emu.grasscutter.net.proto.WidgetSlotDataOuterClass.WidgetSlotDataOrBuilder>(
+                  slotList_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          slotList_ = null;
+        }
+        return slotListBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Unk3000_HKHFFDEMNKN)
+    }
+
+    // @@protoc_insertion_point(class_scope:Unk3000_HKHFFDEMNKN)
+    private static final emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN();
+    }
+
+    public static emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<Unk3000_HKHFFDEMNKN>
+        PARSER = new com.google.protobuf.AbstractParser<Unk3000_HKHFFDEMNKN>() {
+      @java.lang.Override
+      public Unk3000_HKHFFDEMNKN parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new Unk3000_HKHFFDEMNKN(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<Unk3000_HKHFFDEMNKN> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<Unk3000_HKHFFDEMNKN> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Unk3000_HKHFFDEMNKN_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Unk3000_HKHFFDEMNKN_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031Unk3000_HKHFFDEMNKN.proto\032\024WidgetSlotD" +
+      "ata.proto\"F\n\023Unk3000_HKHFFDEMNKN\022\013\n\003uid\030" +
+      "\016 \001(\r\022\"\n\tslot_list\030\r \003(\0132\017.WidgetSlotDat" +
+      "aB\033\n\031emu.grasscutter.net.protob\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          emu.grasscutter.net.proto.WidgetSlotDataOuterClass.getDescriptor(),
+        });
+    internal_static_Unk3000_HKHFFDEMNKN_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Unk3000_HKHFFDEMNKN_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Unk3000_HKHFFDEMNKN_descriptor,
+        new java.lang.String[] { "Uid", "SlotList", });
+    emu.grasscutter.net.proto.WidgetSlotDataOuterClass.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentReqOuterClass.java
index a32be2c9..87014323 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentReqOuterClass.java
@@ -34,7 +34,7 @@ public final class UnlockAvatarTalentReqOuterClass {
    * <pre>
    * CmdId: 1072
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -317,7 +317,7 @@ public final class UnlockAvatarTalentReqOuterClass {
      * <pre>
      * CmdId: 1072
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentRspOuterClass.java
index e75244fb..3c4f60fd 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentRspOuterClass.java
@@ -40,7 +40,8 @@ public final class UnlockAvatarTalentRspOuterClass {
    * <pre>
    * CmdId: 1098
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UnlockAvatarTalentRsp}
@@ -349,7 +350,8 @@ public final class UnlockAvatarTalentRspOuterClass {
      * <pre>
      * CmdId: 1098
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UnlockAvatarTalentRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockNameCardNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockNameCardNotifyOuterClass.java
index 5a437480..f0f029e0 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockNameCardNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockNameCardNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class UnlockNameCardNotifyOuterClass {
    * <pre>
    * CmdId: 4006
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UnlockNameCardNotify}
@@ -282,7 +283,8 @@ public final class UnlockNameCardNotifyOuterClass {
      * <pre>
      * CmdId: 4006
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UnlockNameCardNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineReqOuterClass.java
index 22a01931..1ef45fa6 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineReqOuterClass.java
@@ -28,7 +28,7 @@ public final class UnlockPersonalLineReqOuterClass {
    * <pre>
    * CmdId: 449
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class UnlockPersonalLineReqOuterClass {
      * <pre>
      * CmdId: 449
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineRspOuterClass.java
index e4ee81cd..42c3a384 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineRspOuterClass.java
@@ -58,7 +58,8 @@ public final class UnlockPersonalLineRspOuterClass {
    * <pre>
    * CmdId: 491
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UnlockPersonalLineRsp}
@@ -475,7 +476,8 @@ public final class UnlockPersonalLineRspOuterClass {
      * <pre>
      * CmdId: 491
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UnlockPersonalLineRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointReqOuterClass.java
index 636ec631..e61c94fe 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointReqOuterClass.java
@@ -33,7 +33,7 @@ public final class UnlockTransPointReqOuterClass {
   /**
    * <pre>
    * CmdId: 3035
-   * EnetChannelId: 1
+   * EnetChannelId: 0
    * EnetIsReliable: true
    * IsAllowClient: true
    * </pre>
@@ -315,7 +315,7 @@ public final class UnlockTransPointReqOuterClass {
     /**
      * <pre>
      * CmdId: 3035
-     * EnetChannelId: 1
+     * EnetChannelId: 0
      * EnetIsReliable: true
      * IsAllowClient: true
      * </pre>
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointRspOuterClass.java
index 9bf2f122..7ec9848a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointRspOuterClass.java
@@ -27,8 +27,9 @@ public final class UnlockTransPointRspOuterClass {
   /**
    * <pre>
    * CmdId: 3426
-   * EnetChannelId: 1
+   * EnetChannelId: 0
    * EnetIsReliable: true
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UnlockTransPointRsp}
@@ -281,8 +282,9 @@ public final class UnlockTransPointRspOuterClass {
     /**
      * <pre>
      * CmdId: 3426
-     * EnetChannelId: 1
+     * EnetChannelId: 0
      * EnetIsReliable: true
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UnlockTransPointRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureFormulaDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureFormulaDataNotifyOuterClass.java
index 768606e7..9edd1039 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureFormulaDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureFormulaDataNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class UnlockedFurnitureFormulaDataNotifyOuterClass {
    * <pre>
    * CmdId: 4846
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UnlockedFurnitureFormulaDataNotify}
@@ -382,7 +383,8 @@ public final class UnlockedFurnitureFormulaDataNotifyOuterClass {
      * <pre>
      * CmdId: 4846
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UnlockedFurnitureFormulaDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureSuiteDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureSuiteDataNotifyOuterClass.java
index 58fd098b..d342633b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureSuiteDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureSuiteDataNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class UnlockedFurnitureSuiteDataNotifyOuterClass {
    * <pre>
    * CmdId: 4454
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UnlockedFurnitureSuiteDataNotify}
@@ -382,7 +383,8 @@ public final class UnlockedFurnitureSuiteDataNotifyOuterClass {
      * <pre>
      * CmdId: 4454
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UnlockedFurnitureSuiteDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListReqOuterClass.java
index 054d161c..b36bb623 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListReqOuterClass.java
@@ -45,7 +45,7 @@ public final class UpdatePlayerShowAvatarListReqOuterClass {
    * <pre>
    * CmdId: 4067
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -383,7 +383,7 @@ public final class UpdatePlayerShowAvatarListReqOuterClass {
      * <pre>
      * CmdId: 4067
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListRspOuterClass.java
index 75dc7bce..44f7b017 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListRspOuterClass.java
@@ -51,7 +51,8 @@ public final class UpdatePlayerShowAvatarListRspOuterClass {
    * <pre>
    * CmdId: 4058
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UpdatePlayerShowAvatarListRsp}
@@ -415,7 +416,8 @@ public final class UpdatePlayerShowAvatarListRspOuterClass {
      * <pre>
      * CmdId: 4058
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UpdatePlayerShowAvatarListRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UseItemReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UseItemReqOuterClass.java
index 719c5646..5775c0ac 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UseItemReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UseItemReqOuterClass.java
@@ -52,7 +52,7 @@ public final class UseItemReqOuterClass {
    * <pre>
    * CmdId: 690
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -418,7 +418,7 @@ public final class UseItemReqOuterClass {
      * <pre>
      * CmdId: 690
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UseItemRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UseItemRspOuterClass.java
index f39d150d..2bbed1d1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UseItemRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UseItemRspOuterClass.java
@@ -52,7 +52,8 @@ public final class UseItemRspOuterClass {
    * <pre>
    * CmdId: 673
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UseItemRsp}
@@ -416,7 +417,8 @@ public final class UseItemRspOuterClass {
      * <pre>
      * CmdId: 673
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UseItemRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetReqOuterClass.java
index 8649791e..c2fb4d13 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetReqOuterClass.java
@@ -58,7 +58,7 @@ public final class UseWidgetCreateGadgetReqOuterClass {
    * <pre>
    * CmdId: 4293
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -423,7 +423,7 @@ public final class UseWidgetCreateGadgetReqOuterClass {
      * <pre>
      * CmdId: 4293
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetRspOuterClass.java
index ec7f7dae..5cba422d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetCreateGadgetRspOuterClass.java
@@ -34,7 +34,8 @@ public final class UseWidgetCreateGadgetRspOuterClass {
    * <pre>
    * CmdId: 4290
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code UseWidgetCreateGadgetRsp}
@@ -315,7 +316,8 @@ public final class UseWidgetCreateGadgetRspOuterClass {
      * <pre>
      * CmdId: 4290
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code UseWidgetCreateGadgetRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetReqOuterClass.java
index 5397c99f..af180a80 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetReqOuterClass.java
@@ -28,7 +28,7 @@ public final class UseWidgetRetractGadgetReqOuterClass {
    * <pre>
    * CmdId: 4286
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -283,7 +283,7 @@ public final class UseWidgetRetractGadgetReqOuterClass {
      * <pre>
      * CmdId: 4286
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetRspOuterClass.java
index 7adf4df5..f9b6c298 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/UseWidgetRetractGadgetRspOuterClass.java
@@ -34,7 +34,7 @@ public final class UseWidgetRetractGadgetRspOuterClass {
    * <pre>
    * CmdId: 4261
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -316,7 +316,7 @@ public final class UseWidgetRetractGadgetRspOuterClass {
      * <pre>
      * CmdId: 4261
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractReqOuterClass.java
index ae59ce31..c58f15f2 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractReqOuterClass.java
@@ -45,7 +45,7 @@ public final class VehicleInteractReqOuterClass {
    * <pre>
    * CmdId: 865
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -363,7 +363,7 @@ public final class VehicleInteractReqOuterClass {
      * <pre>
      * CmdId: 865
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractRspOuterClass.java
index 072284f2..19914b7c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractRspOuterClass.java
@@ -60,7 +60,8 @@ public final class VehicleInteractRspOuterClass {
    * <pre>
    * CmdId: 804
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code VehicleInteractRsp}
@@ -432,7 +433,8 @@ public final class VehicleInteractRspOuterClass {
      * <pre>
      * CmdId: 804
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code VehicleInteractRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/VehicleStaminaNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/VehicleStaminaNotifyOuterClass.java
index 01dfb1da..2fd6a578 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/VehicleStaminaNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/VehicleStaminaNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class VehicleStaminaNotifyOuterClass {
    * <pre>
    * CmdId: 834
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code VehicleStaminaNotify}
@@ -317,7 +318,8 @@ public final class VehicleStaminaNotifyOuterClass {
      * <pre>
      * CmdId: 834
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code VehicleStaminaNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenReqOuterClass.java
index 12a9653c..77a22d23 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenReqOuterClass.java
@@ -68,7 +68,7 @@ public final class WeaponAwakenReqOuterClass {
    * <pre>
    * CmdId: 695
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -481,7 +481,7 @@ public final class WeaponAwakenReqOuterClass {
      * <pre>
      * CmdId: 695
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenRspOuterClass.java
index 418118c1..41b6bc74 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenRspOuterClass.java
@@ -114,7 +114,8 @@ public final class WeaponAwakenRspOuterClass {
    * <pre>
    * CmdId: 606
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WeaponAwakenRsp}
@@ -698,7 +699,8 @@ public final class WeaponAwakenRspOuterClass {
      * <pre>
      * CmdId: 606
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WeaponAwakenRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteReqOuterClass.java
index 306bd26b..36c8c342 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteReqOuterClass.java
@@ -28,7 +28,7 @@ public final class WeaponPromoteReqOuterClass {
    * <pre>
    * CmdId: 622
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -284,7 +284,7 @@ public final class WeaponPromoteReqOuterClass {
      * <pre>
      * CmdId: 622
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteRspOuterClass.java
index 6804ea01..c7d6c8e2 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteRspOuterClass.java
@@ -46,7 +46,8 @@ public final class WeaponPromoteRspOuterClass {
    * <pre>
    * CmdId: 665
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WeaponPromoteRsp}
@@ -382,7 +383,8 @@ public final class WeaponPromoteRspOuterClass {
      * <pre>
      * CmdId: 665
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WeaponPromoteRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeReqOuterClass.java
index 4ea0ab57..8a3de762 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeReqOuterClass.java
@@ -69,7 +69,7 @@ public final class WeaponUpgradeReqOuterClass {
    * <pre>
    * CmdId: 639
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -473,7 +473,7 @@ public final class WeaponUpgradeReqOuterClass {
      * <pre>
      * CmdId: 639
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeRspOuterClass.java
index 9ebae557..5eda8e46 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeRspOuterClass.java
@@ -70,7 +70,8 @@ public final class WeaponUpgradeRspOuterClass {
    * <pre>
    * CmdId: 653
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WeaponUpgradeRsp}
@@ -473,7 +474,8 @@ public final class WeaponUpgradeRspOuterClass {
      * <pre>
      * CmdId: 653
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WeaponUpgradeRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WearEquipReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WearEquipReqOuterClass.java
index 433b9896..b8473c52 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WearEquipReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WearEquipReqOuterClass.java
@@ -34,7 +34,7 @@ public final class WearEquipReqOuterClass {
    * <pre>
    * CmdId: 697
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -318,7 +318,7 @@ public final class WearEquipReqOuterClass {
      * <pre>
      * CmdId: 697
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WearEquipRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WearEquipRspOuterClass.java
index b928bbd2..f1294ed1 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WearEquipRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WearEquipRspOuterClass.java
@@ -40,7 +40,8 @@ public final class WearEquipRspOuterClass {
    * <pre>
    * CmdId: 681
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WearEquipRsp}
@@ -350,7 +351,8 @@ public final class WearEquipRspOuterClass {
      * <pre>
      * CmdId: 681
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WearEquipRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetActiveChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetActiveChangeNotifyOuterClass.java
index 5d20b371..8bc74436 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetActiveChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetActiveChangeNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class WidgetActiveChangeNotifyOuterClass {
    * <pre>
    * CmdId: 4280
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetActiveChangeNotify}
@@ -340,7 +341,8 @@ public final class WidgetActiveChangeNotifyOuterClass {
      * <pre>
      * CmdId: 4280
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetActiveChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownNotifyOuterClass.java
index 04955843..aca45344 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownNotifyOuterClass.java
@@ -70,7 +70,8 @@ public final class WidgetCoolDownNotifyOuterClass {
    * <pre>
    * CmdId: 4295
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetCoolDownNotify}
@@ -430,7 +431,8 @@ public final class WidgetCoolDownNotifyOuterClass {
      * <pre>
      * CmdId: 4295
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetCoolDownNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagReqOuterClass.java
index 7ab87801..4b782e3c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagReqOuterClass.java
@@ -60,7 +60,7 @@ public final class WidgetDoBagReqOuterClass {
    * <pre>
    * CmdId: 4255
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -485,7 +485,7 @@ public final class WidgetDoBagReqOuterClass {
      * <pre>
      * CmdId: 4255
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagRspOuterClass.java
index 12a2c5e0..17b9f77e 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagRspOuterClass.java
@@ -34,7 +34,8 @@ public final class WidgetDoBagRspOuterClass {
    * <pre>
    * CmdId: 4296
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetDoBagRsp}
@@ -315,7 +316,8 @@ public final class WidgetDoBagRspOuterClass {
      * <pre>
      * CmdId: 4296
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetDoBagRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetAllDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetAllDataNotifyOuterClass.java
index eef52e15..080295de 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetAllDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetAllDataNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class WidgetGadgetAllDataNotifyOuterClass {
    * <pre>
    * CmdId: 4284
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetGadgetAllDataNotify}
@@ -340,7 +341,8 @@ public final class WidgetGadgetAllDataNotifyOuterClass {
      * <pre>
      * CmdId: 4284
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetGadgetAllDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataNotifyOuterClass.java
index 78e8e536..abe80111 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataNotifyOuterClass.java
@@ -37,7 +37,8 @@ public final class WidgetGadgetDataNotifyOuterClass {
    * <pre>
    * CmdId: 4266
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetGadgetDataNotify}
@@ -319,7 +320,8 @@ public final class WidgetGadgetDataNotifyOuterClass {
      * <pre>
      * CmdId: 4266
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetGadgetDataNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDestroyNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDestroyNotifyOuterClass.java
index 034e8f26..d25e377b 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDestroyNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDestroyNotifyOuterClass.java
@@ -28,7 +28,8 @@ public final class WidgetGadgetDestroyNotifyOuterClass {
    * <pre>
    * CmdId: 4274
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetGadgetDestroyNotify}
@@ -282,7 +283,8 @@ public final class WidgetGadgetDestroyNotifyOuterClass {
      * <pre>
      * CmdId: 4274
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetGadgetDestroyNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportReqOuterClass.java
index 406144e4..968968a3 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportReqOuterClass.java
@@ -46,7 +46,7 @@ public final class WidgetReportReqOuterClass {
    * <pre>
    * CmdId: 4291
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -385,7 +385,7 @@ public final class WidgetReportReqOuterClass {
      * <pre>
      * CmdId: 4291
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportRspOuterClass.java
index b923b228..eed96109 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetReportRspOuterClass.java
@@ -34,7 +34,8 @@ public final class WidgetReportRspOuterClass {
    * <pre>
    * CmdId: 4292
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetReportRsp}
@@ -315,7 +316,8 @@ public final class WidgetReportRspOuterClass {
      * <pre>
      * CmdId: 4292
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetReportRsp}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotChangeNotifyOuterClass.java
index eeb9e2c4..7e93a707 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotChangeNotifyOuterClass.java
@@ -48,7 +48,8 @@ public final class WidgetSlotChangeNotifyOuterClass {
    * <pre>
    * CmdId: 4267
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetSlotChangeNotify}
@@ -366,7 +367,8 @@ public final class WidgetSlotChangeNotifyOuterClass {
      * <pre>
      * CmdId: 4267
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetSlotChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WidgetUseAttachAbilityGroupChangeNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WidgetUseAttachAbilityGroupChangeNotifyOuterClass.java
index 228c8c7d..ec83d97a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WidgetUseAttachAbilityGroupChangeNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WidgetUseAttachAbilityGroupChangeNotifyOuterClass.java
@@ -34,7 +34,8 @@ public final class WidgetUseAttachAbilityGroupChangeNotifyOuterClass {
    * <pre>
    * CmdId: 4258
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WidgetUseAttachAbilityGroupChangeNotify}
@@ -316,7 +317,8 @@ public final class WidgetUseAttachAbilityGroupChangeNotifyOuterClass {
      * <pre>
      * CmdId: 4258
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WidgetUseAttachAbilityGroupChangeNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorktopOptionNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorktopOptionNotifyOuterClass.java
index 52888161..873baccf 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorktopOptionNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorktopOptionNotifyOuterClass.java
@@ -45,7 +45,8 @@ public final class WorktopOptionNotifyOuterClass {
    * <pre>
    * CmdId: 835
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WorktopOptionNotify}
@@ -381,7 +382,8 @@ public final class WorktopOptionNotifyOuterClass {
      * <pre>
      * CmdId: 835
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WorktopOptionNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldDataNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldDataNotifyOuterClass.java
index 22eb1785..d230a52f 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldDataNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldDataNotifyOuterClass.java
@@ -56,7 +56,7 @@ public final class WorldDataNotifyOuterClass {
    * <pre>
    * CmdId: 3308
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -530,7 +530,7 @@ public final class WorldDataNotifyOuterClass {
      * <pre>
      * CmdId: 3308
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerDieNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerDieNotifyOuterClass.java
index ebbdf5ec..c86ce45c 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerDieNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerDieNotifyOuterClass.java
@@ -63,7 +63,8 @@ public final class WorldPlayerDieNotifyOuterClass {
    * <pre>
    * CmdId: 285
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WorldPlayerDieNotify}
@@ -489,7 +490,8 @@ public final class WorldPlayerDieNotifyOuterClass {
      * <pre>
      * CmdId: 285
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WorldPlayerDieNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerInfoNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerInfoNotifyOuterClass.java
index 9b0cc94e..22ad33de 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerInfoNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerInfoNotifyOuterClass.java
@@ -19,21 +19,28 @@ public final class WorldPlayerInfoNotifyOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>repeated uint32 player_uid_list = 11;</code>
-     * @return A list containing the playerUidList.
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
      */
-    java.util.List<java.lang.Integer> getPlayerUidListList();
+    java.util.List<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN> 
+        getUnk3000GCJLJCJAADGList();
     /**
-     * <code>repeated uint32 player_uid_list = 11;</code>
-     * @return The count of playerUidList.
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
      */
-    int getPlayerUidListCount();
+    emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN getUnk3000GCJLJCJAADG(int index);
     /**
-     * <code>repeated uint32 player_uid_list = 11;</code>
-     * @param index The index of the element to return.
-     * @return The playerUidList at the given index.
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
      */
-    int getPlayerUidList(int index);
+    int getUnk3000GCJLJCJAADGCount();
+    /**
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+     */
+    java.util.List<? extends emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder> 
+        getUnk3000GCJLJCJAADGOrBuilderList();
+    /**
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+     */
+    emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder getUnk3000GCJLJCJAADGOrBuilder(
+        int index);
 
     /**
      * <code>repeated .OnlinePlayerInfo player_info_list = 14;</code>
@@ -58,12 +65,29 @@ public final class WorldPlayerInfoNotifyOuterClass {
      */
     emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.OnlinePlayerInfoOrBuilder getPlayerInfoListOrBuilder(
         int index);
+
+    /**
+     * <code>repeated uint32 player_uid_list = 11;</code>
+     * @return A list containing the playerUidList.
+     */
+    java.util.List<java.lang.Integer> getPlayerUidListList();
+    /**
+     * <code>repeated uint32 player_uid_list = 11;</code>
+     * @return The count of playerUidList.
+     */
+    int getPlayerUidListCount();
+    /**
+     * <code>repeated uint32 player_uid_list = 11;</code>
+     * @param index The index of the element to return.
+     * @return The playerUidList at the given index.
+     */
+    int getPlayerUidList(int index);
   }
   /**
    * <pre>
    * CmdId: 3116
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -79,8 +103,9 @@ public final class WorldPlayerInfoNotifyOuterClass {
       super(builder);
     }
     private WorldPlayerInfoNotify() {
-      playerUidList_ = emptyIntList();
+      unk3000GCJLJCJAADG_ = java.util.Collections.emptyList();
       playerInfoList_ = java.util.Collections.emptyList();
+      playerUidList_ = emptyIntList();
     }
 
     @java.lang.Override
@@ -114,20 +139,29 @@ public final class WorldPlayerInfoNotifyOuterClass {
             case 0:
               done = true;
               break;
-            case 88: {
+            case 66: {
               if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                playerUidList_ = newIntList();
+                unk3000GCJLJCJAADG_ = new java.util.ArrayList<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN>();
                 mutable_bitField0_ |= 0x00000001;
               }
+              unk3000GCJLJCJAADG_.add(
+                  input.readMessage(emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.parser(), extensionRegistry));
+              break;
+            }
+            case 88: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                playerUidList_ = newIntList();
+                mutable_bitField0_ |= 0x00000004;
+              }
               playerUidList_.addInt(input.readUInt32());
               break;
             }
             case 90: {
               int length = input.readRawVarint32();
               int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
                 playerUidList_ = newIntList();
-                mutable_bitField0_ |= 0x00000001;
+                mutable_bitField0_ |= 0x00000004;
               }
               while (input.getBytesUntilLimit() > 0) {
                 playerUidList_.addInt(input.readUInt32());
@@ -160,6 +194,9 @@ public final class WorldPlayerInfoNotifyOuterClass {
             e).setUnfinishedMessage(this);
       } finally {
         if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          unk3000GCJLJCJAADG_ = java.util.Collections.unmodifiableList(unk3000GCJLJCJAADG_);
+        }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
           playerUidList_.makeImmutable(); // C
         }
         if (((mutable_bitField0_ & 0x00000002) != 0)) {
@@ -182,33 +219,45 @@ public final class WorldPlayerInfoNotifyOuterClass {
               emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify.class, emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify.Builder.class);
     }
 
-    public static final int PLAYER_UID_LIST_FIELD_NUMBER = 11;
-    private com.google.protobuf.Internal.IntList playerUidList_;
+    public static final int UNK3000_GCJLJCJAADG_FIELD_NUMBER = 8;
+    private java.util.List<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN> unk3000GCJLJCJAADG_;
     /**
-     * <code>repeated uint32 player_uid_list = 11;</code>
-     * @return A list containing the playerUidList.
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
      */
     @java.lang.Override
-    public java.util.List<java.lang.Integer>
-        getPlayerUidListList() {
-      return playerUidList_;
+    public java.util.List<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN> getUnk3000GCJLJCJAADGList() {
+      return unk3000GCJLJCJAADG_;
     }
     /**
-     * <code>repeated uint32 player_uid_list = 11;</code>
-     * @return The count of playerUidList.
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
      */
-    public int getPlayerUidListCount() {
-      return playerUidList_.size();
+    @java.lang.Override
+    public java.util.List<? extends emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder> 
+        getUnk3000GCJLJCJAADGOrBuilderList() {
+      return unk3000GCJLJCJAADG_;
     }
     /**
-     * <code>repeated uint32 player_uid_list = 11;</code>
-     * @param index The index of the element to return.
-     * @return The playerUidList at the given index.
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
      */
-    public int getPlayerUidList(int index) {
-      return playerUidList_.getInt(index);
+    @java.lang.Override
+    public int getUnk3000GCJLJCJAADGCount() {
+      return unk3000GCJLJCJAADG_.size();
+    }
+    /**
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN getUnk3000GCJLJCJAADG(int index) {
+      return unk3000GCJLJCJAADG_.get(index);
+    }
+    /**
+     * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+     */
+    @java.lang.Override
+    public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder getUnk3000GCJLJCJAADGOrBuilder(
+        int index) {
+      return unk3000GCJLJCJAADG_.get(index);
     }
-    private int playerUidListMemoizedSerializedSize = -1;
 
     public static final int PLAYER_INFO_LIST_FIELD_NUMBER = 14;
     private java.util.List<emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.OnlinePlayerInfo> playerInfoList_;
@@ -250,6 +299,34 @@ public final class WorldPlayerInfoNotifyOuterClass {
       return playerInfoList_.get(index);
     }
 
+    public static final int PLAYER_UID_LIST_FIELD_NUMBER = 11;
+    private com.google.protobuf.Internal.IntList playerUidList_;
+    /**
+     * <code>repeated uint32 player_uid_list = 11;</code>
+     * @return A list containing the playerUidList.
+     */
+    @java.lang.Override
+    public java.util.List<java.lang.Integer>
+        getPlayerUidListList() {
+      return playerUidList_;
+    }
+    /**
+     * <code>repeated uint32 player_uid_list = 11;</code>
+     * @return The count of playerUidList.
+     */
+    public int getPlayerUidListCount() {
+      return playerUidList_.size();
+    }
+    /**
+     * <code>repeated uint32 player_uid_list = 11;</code>
+     * @param index The index of the element to return.
+     * @return The playerUidList at the given index.
+     */
+    public int getPlayerUidList(int index) {
+      return playerUidList_.getInt(index);
+    }
+    private int playerUidListMemoizedSerializedSize = -1;
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -265,6 +342,9 @@ public final class WorldPlayerInfoNotifyOuterClass {
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
       getSerializedSize();
+      for (int i = 0; i < unk3000GCJLJCJAADG_.size(); i++) {
+        output.writeMessage(8, unk3000GCJLJCJAADG_.get(i));
+      }
       if (getPlayerUidListList().size() > 0) {
         output.writeUInt32NoTag(90);
         output.writeUInt32NoTag(playerUidListMemoizedSerializedSize);
@@ -284,6 +364,10 @@ public final class WorldPlayerInfoNotifyOuterClass {
       if (size != -1) return size;
 
       size = 0;
+      for (int i = 0; i < unk3000GCJLJCJAADG_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(8, unk3000GCJLJCJAADG_.get(i));
+      }
       {
         int dataSize = 0;
         for (int i = 0; i < playerUidList_.size(); i++) {
@@ -317,10 +401,12 @@ public final class WorldPlayerInfoNotifyOuterClass {
       }
       emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify other = (emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify) obj;
 
-      if (!getPlayerUidListList()
-          .equals(other.getPlayerUidListList())) return false;
+      if (!getUnk3000GCJLJCJAADGList()
+          .equals(other.getUnk3000GCJLJCJAADGList())) return false;
       if (!getPlayerInfoListList()
           .equals(other.getPlayerInfoListList())) return false;
+      if (!getPlayerUidListList()
+          .equals(other.getPlayerUidListList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -332,14 +418,18 @@ public final class WorldPlayerInfoNotifyOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
-      if (getPlayerUidListCount() > 0) {
-        hash = (37 * hash) + PLAYER_UID_LIST_FIELD_NUMBER;
-        hash = (53 * hash) + getPlayerUidListList().hashCode();
+      if (getUnk3000GCJLJCJAADGCount() > 0) {
+        hash = (37 * hash) + UNK3000_GCJLJCJAADG_FIELD_NUMBER;
+        hash = (53 * hash) + getUnk3000GCJLJCJAADGList().hashCode();
       }
       if (getPlayerInfoListCount() > 0) {
         hash = (37 * hash) + PLAYER_INFO_LIST_FIELD_NUMBER;
         hash = (53 * hash) + getPlayerInfoListList().hashCode();
       }
+      if (getPlayerUidListCount() > 0) {
+        hash = (37 * hash) + PLAYER_UID_LIST_FIELD_NUMBER;
+        hash = (53 * hash) + getPlayerUidListList().hashCode();
+      }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -439,7 +529,7 @@ public final class WorldPlayerInfoNotifyOuterClass {
      * <pre>
      * CmdId: 3116
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
@@ -475,20 +565,27 @@ public final class WorldPlayerInfoNotifyOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
+          getUnk3000GCJLJCJAADGFieldBuilder();
           getPlayerInfoListFieldBuilder();
         }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        playerUidList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          unk3000GCJLJCJAADG_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          unk3000GCJLJCJAADGBuilder_.clear();
+        }
         if (playerInfoListBuilder_ == null) {
           playerInfoList_ = java.util.Collections.emptyList();
           bitField0_ = (bitField0_ & ~0x00000002);
         } else {
           playerInfoListBuilder_.clear();
         }
+        playerUidList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000004);
         return this;
       }
 
@@ -516,11 +613,15 @@ public final class WorldPlayerInfoNotifyOuterClass {
       public emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify buildPartial() {
         emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify result = new emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify(this);
         int from_bitField0_ = bitField0_;
-        if (((bitField0_ & 0x00000001) != 0)) {
-          playerUidList_.makeImmutable();
-          bitField0_ = (bitField0_ & ~0x00000001);
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            unk3000GCJLJCJAADG_ = java.util.Collections.unmodifiableList(unk3000GCJLJCJAADG_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.unk3000GCJLJCJAADG_ = unk3000GCJLJCJAADG_;
+        } else {
+          result.unk3000GCJLJCJAADG_ = unk3000GCJLJCJAADGBuilder_.build();
         }
-        result.playerUidList_ = playerUidList_;
         if (playerInfoListBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0)) {
             playerInfoList_ = java.util.Collections.unmodifiableList(playerInfoList_);
@@ -530,6 +631,11 @@ public final class WorldPlayerInfoNotifyOuterClass {
         } else {
           result.playerInfoList_ = playerInfoListBuilder_.build();
         }
+        if (((bitField0_ & 0x00000004) != 0)) {
+          playerUidList_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        }
+        result.playerUidList_ = playerUidList_;
         onBuilt();
         return result;
       }
@@ -578,15 +684,31 @@ public final class WorldPlayerInfoNotifyOuterClass {
 
       public Builder mergeFrom(emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify other) {
         if (other == emu.grasscutter.net.proto.WorldPlayerInfoNotifyOuterClass.WorldPlayerInfoNotify.getDefaultInstance()) return this;
-        if (!other.playerUidList_.isEmpty()) {
-          if (playerUidList_.isEmpty()) {
-            playerUidList_ = other.playerUidList_;
-            bitField0_ = (bitField0_ & ~0x00000001);
-          } else {
-            ensurePlayerUidListIsMutable();
-            playerUidList_.addAll(other.playerUidList_);
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          if (!other.unk3000GCJLJCJAADG_.isEmpty()) {
+            if (unk3000GCJLJCJAADG_.isEmpty()) {
+              unk3000GCJLJCJAADG_ = other.unk3000GCJLJCJAADG_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureUnk3000GCJLJCJAADGIsMutable();
+              unk3000GCJLJCJAADG_.addAll(other.unk3000GCJLJCJAADG_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.unk3000GCJLJCJAADG_.isEmpty()) {
+            if (unk3000GCJLJCJAADGBuilder_.isEmpty()) {
+              unk3000GCJLJCJAADGBuilder_.dispose();
+              unk3000GCJLJCJAADGBuilder_ = null;
+              unk3000GCJLJCJAADG_ = other.unk3000GCJLJCJAADG_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              unk3000GCJLJCJAADGBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getUnk3000GCJLJCJAADGFieldBuilder() : null;
+            } else {
+              unk3000GCJLJCJAADGBuilder_.addAllMessages(other.unk3000GCJLJCJAADG_);
+            }
           }
-          onChanged();
         }
         if (playerInfoListBuilder_ == null) {
           if (!other.playerInfoList_.isEmpty()) {
@@ -614,6 +736,16 @@ public final class WorldPlayerInfoNotifyOuterClass {
             }
           }
         }
+        if (!other.playerUidList_.isEmpty()) {
+          if (playerUidList_.isEmpty()) {
+            playerUidList_ = other.playerUidList_;
+            bitField0_ = (bitField0_ & ~0x00000004);
+          } else {
+            ensurePlayerUidListIsMutable();
+            playerUidList_.addAll(other.playerUidList_);
+          }
+          onChanged();
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -644,84 +776,245 @@ public final class WorldPlayerInfoNotifyOuterClass {
       }
       private int bitField0_;
 
-      private com.google.protobuf.Internal.IntList playerUidList_ = emptyIntList();
-      private void ensurePlayerUidListIsMutable() {
+      private java.util.List<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN> unk3000GCJLJCJAADG_ =
+        java.util.Collections.emptyList();
+      private void ensureUnk3000GCJLJCJAADGIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          playerUidList_ = mutableCopy(playerUidList_);
+          unk3000GCJLJCJAADG_ = new java.util.ArrayList<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN>(unk3000GCJLJCJAADG_);
           bitField0_ |= 0x00000001;
          }
       }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder> unk3000GCJLJCJAADGBuilder_;
+
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @return A list containing the playerUidList.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public java.util.List<java.lang.Integer>
-          getPlayerUidListList() {
-        return ((bitField0_ & 0x00000001) != 0) ?
-                 java.util.Collections.unmodifiableList(playerUidList_) : playerUidList_;
+      public java.util.List<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN> getUnk3000GCJLJCJAADGList() {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(unk3000GCJLJCJAADG_);
+        } else {
+          return unk3000GCJLJCJAADGBuilder_.getMessageList();
+        }
       }
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @return The count of playerUidList.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public int getPlayerUidListCount() {
-        return playerUidList_.size();
+      public int getUnk3000GCJLJCJAADGCount() {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          return unk3000GCJLJCJAADG_.size();
+        } else {
+          return unk3000GCJLJCJAADGBuilder_.getCount();
+        }
       }
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @param index The index of the element to return.
-       * @return The playerUidList at the given index.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public int getPlayerUidList(int index) {
-        return playerUidList_.getInt(index);
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN getUnk3000GCJLJCJAADG(int index) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          return unk3000GCJLJCJAADG_.get(index);
+        } else {
+          return unk3000GCJLJCJAADGBuilder_.getMessage(index);
+        }
       }
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @param index The index to set the value at.
-       * @param value The playerUidList to set.
-       * @return This builder for chaining.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public Builder setPlayerUidList(
-          int index, int value) {
-        ensurePlayerUidListIsMutable();
-        playerUidList_.setInt(index, value);
-        onChanged();
+      public Builder setUnk3000GCJLJCJAADG(
+          int index, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN value) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.set(index, value);
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.setMessage(index, value);
+        }
         return this;
       }
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @param value The playerUidList to add.
-       * @return This builder for chaining.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public Builder addPlayerUidList(int value) {
-        ensurePlayerUidListIsMutable();
-        playerUidList_.addInt(value);
-        onChanged();
+      public Builder setUnk3000GCJLJCJAADG(
+          int index, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder builderForValue) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.setMessage(index, builderForValue.build());
+        }
         return this;
       }
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @param values The playerUidList to add.
-       * @return This builder for chaining.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public Builder addAllPlayerUidList(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensurePlayerUidListIsMutable();
-        com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, playerUidList_);
-        onChanged();
+      public Builder addUnk3000GCJLJCJAADG(emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN value) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.add(value);
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.addMessage(value);
+        }
         return this;
       }
       /**
-       * <code>repeated uint32 player_uid_list = 11;</code>
-       * @return This builder for chaining.
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
        */
-      public Builder clearPlayerUidList() {
-        playerUidList_ = emptyIntList();
-        bitField0_ = (bitField0_ & ~0x00000001);
-        onChanged();
+      public Builder addUnk3000GCJLJCJAADG(
+          int index, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN value) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.add(index, value);
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.addMessage(index, value);
+        }
         return this;
       }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public Builder addUnk3000GCJLJCJAADG(
+          emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder builderForValue) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.add(builderForValue.build());
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public Builder addUnk3000GCJLJCJAADG(
+          int index, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder builderForValue) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public Builder addAllUnk3000GCJLJCJAADG(
+          java.lang.Iterable<? extends emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN> values) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, unk3000GCJLJCJAADG_);
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public Builder clearUnk3000GCJLJCJAADG() {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          unk3000GCJLJCJAADG_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public Builder removeUnk3000GCJLJCJAADG(int index) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          ensureUnk3000GCJLJCJAADGIsMutable();
+          unk3000GCJLJCJAADG_.remove(index);
+          onChanged();
+        } else {
+          unk3000GCJLJCJAADGBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder getUnk3000GCJLJCJAADGBuilder(
+          int index) {
+        return getUnk3000GCJLJCJAADGFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder getUnk3000GCJLJCJAADGOrBuilder(
+          int index) {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          return unk3000GCJLJCJAADG_.get(index);  } else {
+          return unk3000GCJLJCJAADGBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public java.util.List<? extends emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder> 
+           getUnk3000GCJLJCJAADGOrBuilderList() {
+        if (unk3000GCJLJCJAADGBuilder_ != null) {
+          return unk3000GCJLJCJAADGBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(unk3000GCJLJCJAADG_);
+        }
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder addUnk3000GCJLJCJAADGBuilder() {
+        return getUnk3000GCJLJCJAADGFieldBuilder().addBuilder(
+            emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder addUnk3000GCJLJCJAADGBuilder(
+          int index) {
+        return getUnk3000GCJLJCJAADGFieldBuilder().addBuilder(
+            index, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;</code>
+       */
+      public java.util.List<emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder> 
+           getUnk3000GCJLJCJAADGBuilderList() {
+        return getUnk3000GCJLJCJAADGFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder> 
+          getUnk3000GCJLJCJAADGFieldBuilder() {
+        if (unk3000GCJLJCJAADGBuilder_ == null) {
+          unk3000GCJLJCJAADGBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKN.Builder, emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.Unk3000_HKHFFDEMNKNOrBuilder>(
+                  unk3000GCJLJCJAADG_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          unk3000GCJLJCJAADG_ = null;
+        }
+        return unk3000GCJLJCJAADGBuilder_;
+      }
 
       private java.util.List<emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.OnlinePlayerInfo> playerInfoList_ =
         java.util.Collections.emptyList();
@@ -962,6 +1255,85 @@ public final class WorldPlayerInfoNotifyOuterClass {
         }
         return playerInfoListBuilder_;
       }
+
+      private com.google.protobuf.Internal.IntList playerUidList_ = emptyIntList();
+      private void ensurePlayerUidListIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          playerUidList_ = mutableCopy(playerUidList_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @return A list containing the playerUidList.
+       */
+      public java.util.List<java.lang.Integer>
+          getPlayerUidListList() {
+        return ((bitField0_ & 0x00000004) != 0) ?
+                 java.util.Collections.unmodifiableList(playerUidList_) : playerUidList_;
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @return The count of playerUidList.
+       */
+      public int getPlayerUidListCount() {
+        return playerUidList_.size();
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @param index The index of the element to return.
+       * @return The playerUidList at the given index.
+       */
+      public int getPlayerUidList(int index) {
+        return playerUidList_.getInt(index);
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @param index The index to set the value at.
+       * @param value The playerUidList to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPlayerUidList(
+          int index, int value) {
+        ensurePlayerUidListIsMutable();
+        playerUidList_.setInt(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @param value The playerUidList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addPlayerUidList(int value) {
+        ensurePlayerUidListIsMutable();
+        playerUidList_.addInt(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @param values The playerUidList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllPlayerUidList(
+          java.lang.Iterable<? extends java.lang.Integer> values) {
+        ensurePlayerUidListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, playerUidList_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint32 player_uid_list = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPlayerUidList() {
+        playerUidList_ = emptyIntList();
+        bitField0_ = (bitField0_ & ~0x00000004);
+        onChanged();
+        return this;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -1030,23 +1402,27 @@ public final class WorldPlayerInfoNotifyOuterClass {
   static {
     java.lang.String[] descriptorData = {
       "\n\033WorldPlayerInfoNotify.proto\032\026OnlinePla" +
-      "yerInfo.proto\"]\n\025WorldPlayerInfoNotify\022\027" +
-      "\n\017player_uid_list\030\013 \003(\r\022+\n\020player_info_l" +
-      "ist\030\016 \003(\0132\021.OnlinePlayerInfoB\033\n\031emu.gras" +
-      "scutter.net.protob\006proto3"
+      "yerInfo.proto\032\031Unk3000_HKHFFDEMNKN.proto" +
+      "\"\220\001\n\025WorldPlayerInfoNotify\0221\n\023Unk3000_GC" +
+      "JLJCJAADG\030\010 \003(\0132\024.Unk3000_HKHFFDEMNKN\022+\n" +
+      "\020player_info_list\030\016 \003(\0132\021.OnlinePlayerIn" +
+      "fo\022\027\n\017player_uid_list\030\013 \003(\rB\033\n\031emu.grass" +
+      "cutter.net.protob\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
           emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.getDescriptor(),
+          emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.getDescriptor(),
         });
     internal_static_WorldPlayerInfoNotify_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_WorldPlayerInfoNotify_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_WorldPlayerInfoNotify_descriptor,
-        new java.lang.String[] { "PlayerUidList", "PlayerInfoList", });
+        new java.lang.String[] { "Unk3000GCJLJCJAADG", "PlayerInfoList", "PlayerUidList", });
     emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.getDescriptor();
+    emu.grasscutter.net.proto.Unk3000HKHFFDEMNKN.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerLocationNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerLocationNotifyOuterClass.java
index fe38f324..c43003ec 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerLocationNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerLocationNotifyOuterClass.java
@@ -70,7 +70,8 @@ public final class WorldPlayerLocationNotifyOuterClass {
    * <pre>
    * CmdId: 258
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WorldPlayerLocationNotify}
@@ -430,7 +431,8 @@ public final class WorldPlayerLocationNotifyOuterClass {
      * <pre>
      * CmdId: 258
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WorldPlayerLocationNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerRTTNotifyOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerRTTNotifyOuterClass.java
index 8a52fc85..cce0e65d 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerRTTNotifyOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerRTTNotifyOuterClass.java
@@ -46,7 +46,8 @@ public final class WorldPlayerRTTNotifyOuterClass {
    * <pre>
    * CmdId: 22
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WorldPlayerRTTNotify}
@@ -340,7 +341,8 @@ public final class WorldPlayerRTTNotifyOuterClass {
      * <pre>
      * CmdId: 22
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WorldPlayerRTTNotify}
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveReqOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveReqOuterClass.java
index 4333d079..0a6d7e10 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveReqOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveReqOuterClass.java
@@ -22,7 +22,7 @@ public final class WorldPlayerReviveReqOuterClass {
    * <pre>
    * CmdId: 225
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
    * IsAllowClient: true
    * </pre>
    *
@@ -250,7 +250,7 @@ public final class WorldPlayerReviveReqOuterClass {
      * <pre>
      * CmdId: 225
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
      * IsAllowClient: true
      * </pre>
      *
diff --git a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveRspOuterClass.java b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveRspOuterClass.java
index 96ea3f8d..4c58744a 100644
--- a/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveRspOuterClass.java
+++ b/src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveRspOuterClass.java
@@ -28,7 +28,8 @@ public final class WorldPlayerReviveRspOuterClass {
    * <pre>
    * CmdId: 278
    * EnetChannelId: 0
-   * EnetIsReliable: true
+   * EnetIsReliable: false
+   * IsAllowClient: true
    * </pre>
    *
    * Protobuf type {@code WorldPlayerReviveRsp}
@@ -282,7 +283,8 @@ public final class WorldPlayerReviveRspOuterClass {
      * <pre>
      * CmdId: 278
      * EnetChannelId: 0
-     * EnetIsReliable: true
+     * EnetIsReliable: false
+     * IsAllowClient: true
      * </pre>
      *
      * Protobuf type {@code WorldPlayerReviveRsp}
-- 
GitLab