diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc
index b2c25a6df..706f3f105 100644
--- a/data/maps/OldaleTown/scripts.inc
+++ b/data/maps/OldaleTown/scripts.inc
@@ -34,9 +34,20 @@ OldaleTown_EventScript_TownSign::
end
OldaleTown_EventScript_Girl::
- msgbox OldaleTown_Text_SavingMyProgress, MSGBOX_NPC
+ special ChoosePartyMon
+ waitstate
+ goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, OldaleTown_EventScript_Girl_End
+ specialvar VAR_RESULT, ScriptGetPartyMonSpecies
+ goto_if_eq VAR_RESULT, SPECIES_EGG, OldaleTown_EventScript_Girl_End
+ setvar VAR_TEMP_1, SPECIES_COMBUSKEN
+ special Script_SetSpecies
+ msgbox OldaleTown_EventScript_Girl_Text_Done, MSGBOX_NPC
+OldaleTown_EventScript_Girl_End:
end
+OldaleTown_EventScript_Girl_Text_Done:
+ .string "Done.$"
+
OldaleTown_EventScript_MartEmployee::
lock
faceplayer
diff --git a/data/specials.inc b/data/specials.inc
index 52b539a80..dd3dc5bd4 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -535,3 +535,4 @@ gSpecials::
def_special RemoveRecordsWindow
def_special CloseDeptStoreElevatorWindow
def_special TrySetBattleTowerLinkType
+ def_special Script_SetSpecies
diff --git a/src/field_specials.c b/src/field_specials.c
index 43d07356a..9f891a423 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -4268,3 +4268,15 @@ u8 Script_TryGainNewFanFromCounter(void)
{
return TryGainNewFanFromCounter(gSpecialVar_0x8004);
}
+
+void Script_SetSpecies(void)
+{
+ u16 species = VarGet(VAR_TEMP_1);
+
+ SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, &species);
+ CalculateMonStats(&gPlayerParty[gSpecialVar_0x8004]);
+}