If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

NEO: The World Ends With You

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

NEO: The World Ends With You

Also known as: Shin Subarashiki Kono Sekai (JP)
Developer: h.a.n.d.
Publisher: Square Enix
Platforms: PlayStation 4, Nintendo Switch, Windows
Released internationally: July 27, 2021 (PS4/Switch), September 28, 2021 (Windows)


AreasIcon.png This game has unused areas.
CodeIcon.png This game has unused code.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
ModelsIcon.png This game has unused models.
Sgf2-unusedicon1.png This game has unused abilities.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
Carts.png This game has revisional differences.


PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page

NEO: The World Ends With You is a modern-day arcade RPG, the sequel to The World Ends With You.

Hmmm...
To do:
  • Find and add scans of concept art from the artbook in the Japanese limited edition
  • Maybe document the regional changes and out of bounds glitch?
  • There is a few things that need to be investigated in the notes and unused text pages
  • There is some untranslated Japanese text in the unused text page. Any help with that would be appreciated.

Sub-Pages

Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Notes

Resources

NeoTWEWY-104-old.png
Unused Graphics
NeoTWEWY-first.png
Unused Text

Unused Areas

Battleviewer Maps

NEO contains assets for six different maps used for testing the battle system. 3 versions of 2 different sizes. These maps can still be loaded in the final version and are playable.

Ramptest Battle Map

NEO's MasterData also contains references to a ramp_test map. However, the assets for this map are missing from the final version, so nothing appears when forcing to load it. It's also mentioned in the debug menu text.

{
	"mId": 1000,
	"mModelData": [
		"Ramp_Test_Battle",
		"Ramp_Test_Battle_Collision"
	],
	"mSceneData": "",
	"mPrefabData": "",
	"mMapControl": "default",
	"mCenterPos": {
		"x":0,
		"y":0,
		"z":0
	},
	"mWidth": 10,
	"mDepth": 10,
	"mDepthAngle": 0,
	"mPanAngle": 15,
	"mTiltAngleNear": -60,
	"mTiltAngleFar": -10,
	"mCamDistanceNear": 5,
	"mCamDistanceFar": 7.5,
	"mCamTargetOffsetNear": {
		"x":0,
		"y":0.75,
		"z":0
	},
	"mCamTargetOffsetFar": {
		"x":0,
		"y":0.5,
		"z":-1
	},
	"mStartCameraTargetPos": {
		"x":-0.9,
		"y":8.102,
		"z":-42.52
	},
	"mStartCameraDistance": 4.5,
	"mStartCameraAngle": {
		"x":10,
		"y":180,
		"z":0
	},
	"mStartCameraEndTargetPos": {
		"x":-0.9,
		"y":1.102,
		"z":-42.52
	},
	"mStartCameraEndDistance": 4.5,
	"mStartCameraEndAngle": {
		"x":0,
		"y":180,
		"z":0
	},
	"mShadowmapDistanceSwitch": 0.0,
	"mPlayerMaxHeight": 19
}

Unused Sounds

Uzuki Noise Form Boss

A few unused audio files for an Uzuki noise form battle can still be found in the audio.

reaction_uzukiBS_0450

reaction_uzukiBS_0470

reaction_uzukiBS_0480

reaction_uzukiBS_0590

reaction_uzukiBS_0990

Unused Joshua and Haz voicelines

Joshua and Haz have voicelines that would be used for event scenes without full voice acting. These go unused as they always appear in scenes with full voice acting.

reaction_joshua_0010

reaction_joshua_0030

reaction_joshua_0040

reaction_joshua_0060

reaction_joshua_0070

reaction_joshua_0100

reaction_joshua_0110

reaction_joshua_0140

reaction_joshua_0150

reaction_joshua_0200

reaction_joshua_0230

reaction_joshua_0240

reaction_joshua_0280

reaction_joshua_0330

reaction_joshua_0370

reaction_joshua_0410

reaction_joshua_0450

reaction_joshua_0470

reaction_joshua_0510

reaction_joshua_0550

reaction_joshua_0590

reaction_joshua_0620

reaction_joshua_0650

reaction_joshua_0660

reaction_joshua_0990


reaction_mikagi_0010

reaction_mikagi_0030

reaction_mikagi_0040

reaction_mikagi_0060

reaction_mikagi_0100

reaction_mikagi_0150

reaction_mikagi_0200

reaction_mikagi_0230

reaction_mikagi_0240

reaction_mikagi_0280

reaction_mikagi_0330

reaction_mikagi_0470

reaction_mikagi_0510

reaction_mikagi_0620

reaction_mikagi_0650

reaction_mikagi_0660

reaction_mikagi_0990

Unused Neku and Beat Voicelines

Neku and Beat have voicelines mentioning Fuya. These characters appear after Fuya's death in the story, so they go unused.

reaction_beat_0800

reaction_neku_0800

Unused Models

Field models

NEO has two unused field models with one idle animation. One for Joshua and one for Shiki. It's unknown where these would have been used exactly, but they were likely meant to be used during the last day in the third week. Joshua's model is used in one of the debug scenarios used for testing.

Render In-Game
NeoTWEWY Joshua model render.png NeoTWEWY Joshua model game.png
NeoTWEWY Shiki model render.png

Cut Noise Enemies

NEO's code includes many references to cut noise enemies, all seemingly cut at different stages of the game. Concepts for the Kangaroo noise and Wyvern noise can be found in NEO's Official Guide Book.

Kangaroo (Boomer) Noise

Kangaroo noise similar to the original The World Ends with You's Boomer were supposed to appear in NEO. They appear to have gotten the furthest in development before being cut, with many constants and one attack named "High Jump" being programmed in. Concepts for this noise can be found in the Official NEO Guide Book.

public enum EnemyKangaroo.EAttack // TypeDefIndex: 7375
{
    // Fields
    public int value__; // 0x0
    public const EnemyKangaroo.EAttack HighJump = 0;
}
public const Attack.ELabel EnemyAttackKangaroo01 = 10050
public const AttackComboSet.ELabel EnemyAttackKangaroo01 = 10050
public const DamageCollision.EName NoiseKangaroo = 500;
public const EnemyResourceData.ELabel Kangaroo = 5;
public const MoveCollision.EName NoiseKangaroo = 8;
public const TargetCollision.EName NoiseKangaroo00 = 50;
(Source: Rea)

Wyvern (Drake) Noise

Another Noise from the original The World Ends with You, these were likely meant to resemble the Drakes from that game. Very little programming was made for this enemy, but many attacks were planned according to the constants. 3D concept art for this noise can also be found in NEO's Guide Book.

public const AttackBullet.EName WyvernTornado = 8057;
public const AttackBullet.EName WyvernTornadoChild = 8058;
public const AttackBullet.EName WyvernStraightSlow = 8059;
public const AttackBullet.EName WyvernExplosionLarge = 8060;
public const AttackBullet.EName WyvernStraightFast = 8061;
public const AttackBullet.EName WyvernExplosionSmall = 8062;
public const AttackBullet.EName WyvernHoming = 8063;
public const AttackBullet.EName WyvernDiffusion = 8064;
public const AttackBullet.EName WyvernBulletRush = 8065;
public const DamageCollision.EName NoiseWyvern00 = 1100;
public const DamageCollision.EName NoiseWyvern01 = 1101;
public const Effect.EEffectName WyvernTornado = 147;
public const Effect.EEffectName Wyvern TornadoChild = 148;
public const Effect.EEffectName WyvernStraightSlow = 149;
public const Effect.EEffectName WyvernStraightFast = 150;
public const Effect.EEffectName WyvernBulletRush = 151;
public const EnemyResourceData.ELabel Wyvern = 11;
public const MoveCollision.EName NoiseWyvern = 13;
public const TargetCollision.EName NoiseWyvern00 = 110;
(Source: Rea)

Grim Reaper

Likely meant to resemble the reaper battles from the original The World Ends with You, they were originally meant to appear in NEO as well. Only constants have been made for this enemy without any programming.

public const Effect.EEffectName Enm_GrimReaper_ChopSword_Charge = 35;
public const Effect.EEffectName Enm_GrimReaper_TapBullet_Charge = 36;
public const Effect.EEffectName Enm_GrimReaper_TapBullet_Bullet = 38;
public const Effect.EEffectName Enm_GrimReaper_ChopSword_Sword = 39;
public const Effect.EEffectName Fld_NoiseSymbol_Default_GrimReaper = 1441;
public const NoiseSymbolEnums.EIconId GrimReaper = 16;

Peacock, Seahorse, and Bee Noise

All completely new to NEO, these noise have little to no programming and only exist in constants, suggesting that they were cut very early on.

public const DamageCollision.EName Noise Peacock = 1300;
public const EnemyResourceData.ELabel Peacock = 13;
public const MoveCollision.EName Noise Peacock = 12;
public const TargetCollision.EName Noise Peacock00 = 130;
public const NoiseSymbolEnums.EIconId Seahorse = 13;
public const NoiseSymbolEnums.EIconId Bee = 14;
public const Effect.EEffectName Enm_Seahorse_DefaultBullet_Bullet = 438;
public const Effect.EEffectName Enm_Seahorse_DefaultBullet_Hit = 439;
public const Effect.EEffectName Enm_Seahorse_StateBullet_Bullet = 440;
public const Effect.EEffectName Enm_Seahorse_StateBullet_Hit = 441;
public const Effect.EEffectName Enm_Seahorse_HomingBullet_Bullet = 442;
public const Effect.EEffectName Enm_Seahorse_HomingBullet_Hit = 443;
public const Effect.EEffectName Enm_Seahorse_DefaultBullet_Breath = 511;
public const Effect.EEffectName Enm_Seahorse_DefaultBullet_Muzzle = 512;
public const Effect.EEffectName Enm_Seahorse_FireBullet_Bullet = 513;
public const Effect.EEffectName Enm_Seahorse_FireBullet_Hit = 514;
public const Effect.EEffectName Enm_Bee_CrowdBullet_Bullet = 444;
public const Effect.EEffectName Enm_Bee_CrowdBullet_Hit = 445;
(Source: Rea (Peacock))

Unused Scenarios

Field Test (Day 100)

A scenario filled with a lot of different tests. Some of them still work in the final game, while others softlock the game due to missing assets. The ones that are working can be seen in the associated Youtube video.

Replay Test (Day 101)

A scenario meant to test the Replay feature. This test is broken due to missing assets, but the initial screen shows off some unused early graphics featuring the old 104 logo.

NeoTWEWY D101.png

Turf War Test (Day 102)

A debug scenario which was used to test the first Scramble Slam event. Although configurations for this scenario still exist in the files and code, forcing the game to load it fails due to missing assets.

{
"mId": 10000,
"mTitle": "Struggle_Title_w1d6",
"mRuleTitle": "Struggle_Rule_title01",
"mRule": [
	"Struggle_Rule_01"
],
"mSub": "Struggle_Sub_title01",
"mRewards": 0,
"mNoise": 1000,
"mScenario": 1100000,
"mStartDataSo": "Struggle_102_StartDataSO",
	"mHideTeam": 16,
	"mMapOpenArea": "ACDEFGH",
	"mSaveIndex": 7
}

Reminder Test (Day 103)

A scenario that mainly has tests for Remind, Dive, and Imprint features. Only the imprint test still works as the others are missing assets.

Character Board Test (Day 104)

Force loading this scenario only spawns in an Eiji Oji model with a "Remind" scan message. Nothing can be done with message however. It is unknown what "Character Board" means exactly, but it could be related to the "Thoughts" system in game which is known as "Board" internally.

Rain Test (Day 105)

A simple scenario that enables the raining effect in Expressway Underpass and SHIBUYA STREAM maps for testing. This feature was used near the end of Week 3 Day 6.

Unused Code

Unused Gameplay Features

  • The game features only two "tiers" of pin: standard and Uber. But the internal configuration files support all of the "grades" of pin that were present in The World Ends With You.
  • None of the pins in the game have a "boot time" before they can be used, but this option exists in the configuration. This feature is fully complete, as changing these values re-enables it.
  • The Diffculty file has entries for changing how quickly a beatdrop disappears. This feature goes unused as the values are the same accross all diffculites.

Scramble Slam on W3D5

References for a fourth Scramble Slam on Week 3 Day 5 exist in the code and MasterData of the game.

public enum Struggle.ELabel // TypeDefIndex: 12170
{
    // Fields
    public int value__; // 0x0
    public const Struggle.ELabel Struggle_0 = 0;
    public const Struggle.ELabel Struggle_2w3d = 230;
    public const Struggle.ELabel Struggle_2w6d = 260;
    public const Struggle.ELabel Struggle_3w5d = 9000;
    public const Struggle.ELabel Struggle_102 = 10000;
    public const Struggle.ELabel Invalid = -1;
}
"mId": 9000,
"mTitle": "Struggle_Title_w3d5",
"mRuleTitle": "Struggle_Rule_title01",
"mRule": [
    "Struggle_Rule_01",
    "Struggle_Rule_02"
],
"mSub": "Struggle_Sub_title01",
"mRewards": 3,
"mNoise": 350,
"mScenario": 3500100,
"mStartDataSo": "Struggle_w3d5_StartDataSO",
"mHideTeam": 16,
"mMapOpenArea": "ABCDEFGHKLMNPQ",
"mSaveIndex": 3
(Source: Rea)

Removed Unity Scenes

NEO's Unity code contains references to all the scenes that were made during development. All but five of these scenes (Boot, Logo, Title, Field, and Battle) have been removed in the final version of the game.

public const string Boot = "Boot";
public const string TimeLinePlayTest = "TimeLinePlayTest";
public const string Battle = "Battle";
public const string SoundTest = "SoundTest";
public const string WalkthruClipTest = "WalkthruClipTest";
public const string Movie = "Movie";
public const string CharaViewerPre = "CharaViewerPre";
public const string aeast_Forward = "aeast_Forward";
public const string CharaViewer = "CharaViewer";
public const string BattleViewer = "BattleViewer";
public const string BattleViewerInBattle = "BattleViewerInBattle";
public const string EnemyParamEditScene = "EnemyParamEditScene";
public const string PlayerLookAtTest = "PlayerLookAtTest";
public const string PuzzleTest = "PuzzleTest";
public const string BeatSyncTest = "BeatSyncTest";
public const string BlowTest = "BlowTest";
public const string Logo = "Logo";
public const string aeast_Deferred = "aeast_Deferred";
public const string Field = "Field";
public const string DebugRoot = "DebugRoot";
public const string BattleTest = "BattleTest";
public const string BattleResult = "BattleResult";
public const string FurTest = "FurTest";
public const string EffectViewer = "EffectViewer";
public const string StressTest = "StressTest";
public const string UITest = "UITest";
public const string we003 = "we003";
public const string ce003_Test2 = "ce003_Test2";
public const string ce003_Test3 = "ce003_Test3";
public const string StressTestMap = "StressTestMap";
public const string CharaDisplayTest = "CharaDisplayTest";
public const string Title = "Title";
public const string ComicEventTest = "ComicEventTest";
public const string ce003_Test1 = "ce003_Test1";
public const string DiveEmotionLineTest = "DiveEmotionLineTest";
public const string InputTest = "InputTest";

Metric109

In interviews, the developers mention that Battle Director Kyohei Suzuki suggested making a tool to log player and battle data from playtesters automatically. Remnants of this system called Metric109 can still be found in the Unity code.

public static class Metric109 // TypeDefIndex: 8238
{
	// Fields
	public const string PrefsKey = "kDisableMetric109neowewy";

	// Properties
	private static bool IsOnline { get; }

	// Methods

	public static bool GetDisableMetricMenuCheck() { }

	private static bool get_IsOnline() { }

	public static void Initialize() { }

	private static string GetDeviceID() { }

	private static string GetEnvType() { }

	private static int GetSerialNumber() { }

	public static string GetHName() { }

	private static int GetPlayTime() { }

	public static void NewBattleUniqueID() { }

	public static void NewBattleRoundUniqueID() { }

	public static void AddJustCount() { }

	public static void AddMashUpCount() { }

	public static void ClearAbnormalPlayerDamage() { }

	public static void AddAbnormalPlayerDamage(int damage) { }

	public static void AddAbnormalEnemyDamage(int damage) { }

	private static string GetBattleUniqueID() { }

	private static string GetRoundUniqueID() { }

	private static int GetBattleRound() { }

	private static int GetDay() { }

	private static int GetWeek() { }

	private static string RemoveSpace(string name) { }

	public static string GetPsychicName(Psychic.EName name) { }

	public static string GetBadgeName(Badge.ELabel name) { }

	public static string GetCostumeName(Costume.ELabel name, string defaultValue = "Invalid") { }

	public static string ToBase64(string text) { }

	public static string GetEnemyName(EnemyBase enemyBase) { }

	private static void Print(string format, object[] args) { }

	public static void SetMetricContext_Character_action(sbyte character_action) { }

	public static void SetMetricContext_I32_Revision(int i32_Revision) { }

	public static void SetMetricContext_S_DeviceUniqueID(string s_DeviceUniqueID) { }

	public static void SetMetricContext_S_EnvType(string s_EnvType) { }

	public static void SendMetric_D_ChangeBadgeExp(int i32_AfterExp, int i32_BeforeExp, Badge.ELabel s_BadgeID) { }

	public static void SendMetric_D_ChangeDay(int i32_AfterDay, int i32_AfterWeek, int i32_BeforeDay, int i32_BeforeWeek) { }

	public static void SendMetric_D_ChangeEatingGauge(int i32_AfterGauge, int i32_BeforeGauge) { }

	public static void SendMetric_D_Eat(int i32_Bonus, BattleCharacter.ELabel s_CharacterID, string s_MealID) { }

	public static void SendMetric_D_EndChapter(int i32_ChapterNum) { }

	public static void SendMetric_D_EndMetric(string s_SceneName) { }

	public static void SendMetric_D_EnterThinkingBoard() { }

	public static void SendMetric_D_EvolveBadge(Badge.ELabel s_AfterBadgeID, Badge.ELabel s_BeforeBadgeID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_D_ExitThinkingBoard() { }

	public static void SendMetric_D_GetBadge(Badge.ELabel s_BadgeID) { }

	public static void SendMetric_D_GetSickness() { }

	public static void SendMetric_D_GrowBadge(int i32_AfterBadgeLevel, int i32_AfterExp, int i32_BeforeBadgeLevel, int i32_BeforeExp, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_D_PlayerState(string s_StateID) { }

	public static void SendMetric_D_Replay(int i32_AfterDay, int i32_AfterTime, int i32_AfterWeek, int i32_BeforeDay, int i32_BeforeTime, int i32_BeforeWeek) { }

	public static void SendMetric_D_SetBadge(Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_D_StartChapter(int i32_ChapterNum) { }

	public static void SendMetric_D_StartMetric(string s_SceneName) { }

	public static void SendMetric_D_UnsetBadge(Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_D_Wander() { }

	public static void SendMetric_D_WanderPuzzle() { }

	public static void SendMetric_E_CancelAttack(string s_ActionID, AttackHit.ELabel s_AttackID, string s_CancellerCharacterID, string s_CancellerPhychicID, EnemyBase s_EnemyName, string s_FrameNum, string s_Reason) { }

	public static void SendMetric_E_ChangeHP(bool b_IsHeartbeat, int i32_AfterHP, int i32_BeforeHP, EnemyBase s_EnemyName, Metric109.EChangeHPReason s_Reason, AttackHit.ELabel s_ReasonAttackID, Psychic.EName s_ReasonPhychicID) { }

	public static void SendMetric_E_Death(int i32_GotExp, BattleCharacter.ELabel s_AttackerID, EnemyBase s_EnemyName, string s_Reason, AttackHit.ELabel s_ReasonAttackID) { }

	public static void SendMetric_E_EndAttack(string s_ActionID, AttackHit.ELabel s_AttackID, EnemyBase s_EnemyName) { }

	public static void SendMetric_E_EndBattle() { }

	public static void SendMetric_E_EndDamageReaction(string s_DamageReactionID, EnemyBase s_EnemyName) { }

	public static void SendMetric_E_GuardAttack(AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_AttackerID, EnemyBase s_EnemyName, Psychic.EName s_PhychicID) { }

	public static void SendMetric_E_GuardAttackBySuperArmor(AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_AttackerID, EnemyBase s_EnemyName, Psychic.EName s_PhychicID, string s_SuperArmorType) { }

	public static void SendMetric_E_HitAttack(bool b_InAir, bool b_IsBackAttack, bool b_IsBlowing, bool b_IsWeek, int i32_Damage, string s_ActionID, AttackHit.ELabel s_AttackID, EnemyBase s_EnemyName, string s_Result) { }

	public static void SendMetric_E_PhaseTransition(int i32_AfterTransitionPhaseNum, EnemyBase s_EnemyName) { }

	public static void SendMetric_E_StartAttack(string s_ActionID, AttackHit.ELabel s_AttackID, EnemyBase s_EnemyName) { }

	public static void SendMetric_E_StartBattle(string s_CurrentLevel, string s_DayInfo, string s_Difficulty, string s_Equip, string s_MaxLevel, string s_PartyPsychic, string s_PsychicButton) { }

	public static void SendMetric_E_StartDamageReaction(string s_DamageReactionID, EnemyBase s_EnemyName) { }

	public static void SendMetric_E_StartRevenge(string s_ActionID, EnemyBase s_EnemyName) { }

	public static void SendMetric_P_ChangeCurrentPC(BattleCharacter.ELabel s_AfterCharacterID, BattleCharacter.ELabel s_BeforeCharacterID) { }

	public static void SendMetric_P_ChangeDyingState(bool b_IsHeartbeat, bool b_ToBeDying) { }

	public static void SendMetric_P_ChangeStrugglePoint(int i32_AfterStrugglePoint, int i32_BeforeStrugglePoint) { }

	public static void SendMetric_P_ChangeSyncRate(bool b_IsHeartbeat, int i32_AfterSyncRate, int i32_BeforeSyncRate, Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_ChangeTeamHP(bool b_IsHeartbeat, int i32_AfterHP, int i32_BeforeHP, Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID, Metric109.EChangeHPReason s_Reason, string s_ReasonActionID, AttackHit.ELabel s_ReasonAttackID) { }

	public static void SendMetric_P_EndPhychic(AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_EndPhychicRecast(BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_EndSpecialAction(BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_EndStun(bool b_IsPlayer, AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_AttackerID, BattleCharacter.ELabel s_CharacterID, EnchantParam.ELabel s_StunID) { }

	public static void SendMetric_P_FailAvoid(float f_CharacterPosX, float f_CharacterPosY, float f_CharacterPosZ, int i32_AvoidActionFrameNum, AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_AttackerID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_P_FailPhychic(BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID, string s_Reason) { }

	public static void SendMetric_P_FloorHeight(bool b_IsHeartbeat, float f_FloorHeight, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_P_HitAttack(bool b_InAir, bool b_IsBackAttack, bool b_IsBlowing, bool b_IsWeek, int i32_Damage, AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID, string s_Result) { }

	public static void SendMetric_P_LevelUp(int i32_AfterLevel, int i32_BeforeLevel) { }

	public static void SendMetric_P_MemberStatus(bool b_EnablePsychic, bool b_IsHeartbeat, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_P_OccurChance(Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_OccurGood(bool b_isExcellect, BattleCharacter.ELabel s_ChanceCharacterID, Psychic.EName s_ChancePhychicID, BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_OccurMashup(int i32_SyncRate, BattleCharacter.ELabel s_ChanceCharacterID, Psychic.EName s_ChancePhychicID, BattleCharacter.ELabel s_CharacterID, string s_MashupID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_StartAvoid(BattleCharacter.ELabel s_CharacterID, string s_Reason) { }

	public static void SendMetric_P_StartPhychic(AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_StartPhychicRecast(BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_StartSpecialAction(BattleCharacter.ELabel s_CharacterID, Psychic.EName s_PhychicID) { }

	public static void SendMetric_P_StartStun(bool b_IsPlayer, AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_AttackerID, Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID, EnchantParam.ELabel s_StunID) { }

	public static void SendMetric_P_SuccessAvoid(AttackHit.ELabel s_AttackID, BattleCharacter.ELabel s_AttackerID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_P_TakeDamageCurrentPC(int i32_Damage, AttackHit.ELabel s_AttackID, Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID, string s_StateID) { }

	public static void SendMetric_P_TakeDamageNonCurrentPC(bool b_InScreen, int i32_Damage, AttackHit.ELabel s_AttackID, Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID, string s_StateID) { }

	public static void SendMetric_P_Ukemi(float f_CharacterPosX, float f_CharacterPosY, float f_CharacterPosZ, int i32_StartUkemiFrameNum, Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_S_Log(string s_LogBody, string s_LogLevel) { }

	public static void SendMetric_S_System(bool b_IsTvMode, float f_CpuTime, float f_FPS, float f_GpuTime, int i32_ResolutionX, int i32_ResolutionY, int i32_UseMemory1, int i32_UseMemory2, string s_SceneAdditionalInfo, string s_SceneName) { }

	public static void SendMetric_T_BattleResult(float f_BattleClearTime, int i32_BeforeSatiety, int i32_DestroyCount, int i32_GetBP, int i32_RoundCount, int i32_Satiety, int i32_StrugglePoint, string s_DamageRank, string s_ResultRank, string s_TimeRank) { }

	public static void SendMetric_T_ChangeDifficulty(string s_AfterDifficulty, string s_BeforeDifficulty, string s_WhereFrom) { }

	public static void SendMetric_T_ChangeExp(int i32_AfterExp, int i32_BeforeExp, BattleCharacter.ELabel s_CharacterID, string s_SourceID) { }

	public static void SendMetric_T_ChangeLevel(int i32_AfterLevel, int i32_BeforeLevel, int i32_MaxLevel) { }

	public static void SendMetric_T_ChangeMoney(int i32_AfterMoney, int i32_BeforeMoney, string s_ItemID, string s_Reason) { }

	public static void SendMetric_T_DropBadge(Badge.ELabel s_BadgeID, BattleCharacter.ELabel s_CharacterID) { }

	public static void SendMetric_T_EndBattle(int i32_Money, string s_Result) { }

	public static void SendMetric_T_StartBattle(int i32_ContinueNum, int i32_CurrentLevel, int i32_MaxLevel, int i32_Money, string s_BattleEmotional, string s_BattleName, string s_DayInfo, string s_Difficulty, string s_EnemyParty, string s_Equip, string s_PartyBadge, string s_PartyPsychic, string s_PlayerParty, string s_PsychicButton) { }
}

public enum Metric109.EChangeHPReason // TypeDefIndex: 8239
{
	// Fields
	public int value__; // 0x0
	public const Metric109.EChangeHPReason BattleStart = 0;
	public const Metric109.EChangeHPReason AttackDamaged = 1;
	public const Metric109.EChangeHPReason EnchantDamaged = 2;
	public const Metric109.EChangeHPReason AbilitySelfDamage = 3;
	public const Metric109.EChangeHPReason DiveVenom = 4;
	public const Metric109.EChangeHPReason Recover = 5;
	public const Metric109.EChangeHPReason Regularly = 6;
	public const Metric109.EChangeHPReason Debug = 7;
	public const Metric109.EChangeHPReason LevelUp = 8;
	public const Metric109.EChangeHPReason Unknown = 9;
}

Internal Icon and Shop Names

  • Several of the icons and shop brandings appearing in the city which resemble real-life shops or brands in Shibuya have internal filenames based on those real-life brands. Not all are used in the game.
Game Brand File Name Real Brand
Mao's Fashion tex_amo_01.png AMO'S STYLE
Circle tex_circus_01.png Circus Tokyo (club)
Chocolate / Chocolate Store tex_decochoco_01.png Deco Choco
Blocks Cafe tex_pandora_01.png PANDORA Jewelry
Hog Fang tex_patagonia_01.png Patagonia Outdoorswear
Dream Escape / Flamingo Cafe tex_pinkdragony_01.png Pink Dragon (Shibuya fashion store)
Tsutaya/G-front tex_QFront_01.png Q-Front Building
Rock'n'Roll tex_rockaholic_01.png Music Bar Rockaholic
Toyo Yakitori tex_torinaka_01.png Torinaka Restaurant
Unison tex_uniqlo_01.png Uniqlo
Gyu-donya tex_yoshinoya_01.png Yoshinoya
  • The texture used for The Death March poster over at Tower Records has the file name "tex_ALI", suggesting that it was originally meant to be a poster for the band ALI who were originally going to preform the intro song for The World Ends with You: The Animation before it was removed due to a controversy with the drummer of the group.

Oddities

Made With Unity Splashscreen

Hmmm...
To do:
Find out where the "Made With Unity" logo can be found for the PC version. It may be a something that is accessible in the Epic/Steam UI.

A "Made With Unity" splashscreen can be found in the files of all the different platform versions of NEO. However, this screen does not appear on the Switch/PC versions of the game and only appears on the PS4 version of the game. For the Switch version, the "Made With Unity" logo appears in the "Intellectual Properties" section that can be accessed from pressing the + button on the Switch UI while highlighting the game.

NeoTWEWY logo unity.png

Unused Difficulties

The MasterData file for setting values of different difficulties has 18 entries, even though only 4 are actually used in-game. The rest of the entries are entirely blanked out.

Revisional Differences

A few sprites were changed after the day one patch for the game released on launch day.

Neku Sprites

Pre-Patch Post-Patch
NeoTWEWY CH006 p01 f01 PreD1.png NeoTWEWY CH006 p01 f01 PostD1.png

Battle Sprites

Pre-Patch Post-Patch
NeoTWEWY Direct chr005 PreD1.png NeoTWEWY Direct chr005 PostD1.png
NeoTWEWY Direct chr006 PreD1.png NeoTWEWY Direct chr006 PostD1.png
NeoTWEWY Direct chr007 PreD1.png NeoTWEWY Direct chr007 PostD1.png

Story Images

Pre-Patch Post-Patch
NeoTWEWY Board w2d1 003 PreD1.png NeoTWEWY Board w2d1 003 PostD1.png
NeoTWEWY Chapter img02 PreD1.png NeoTWEWY Chapter img02 PostD1.png
NeoTWEWY Chapter img05 PreD1.png NeoTWEWY Chapter img05 PostD1.png
NeoTWEWY Chapter img15 PreD1.png NeoTWEWY Chapter img15 PostD1.png
NeoTWEWY Picture001 PreD1.png NeoTWEWY Picture001 PostD1.png
(Source: dogemperor (Picture001))