Stardew Valley

File information

Last updated

Original upload

Created by

aedenthorn

Uploaded by

aedenthorn

Virus scan

Safe to use

About this mod

Gives you a customizable mobile phone that lets you call and receive calls from friends to chat or replay old events! It also runs mobile apps provided by other mods.

Requirements
Permissions and credits
Translations
  • Spanish
  • Portuguese
  • Mandarin
  • Japanese
  • German
Changelogs
Featured on PC Gamer!

Description

This mod provides you with a smartphone interface and a pre-installed phone app that lets you talk to friendly villagers from anywhere.

The phone app lets you call and receive calls, which allows you to chat (play daily dialogue), reminisce (replay old events with the NPC), or invite friends on outings (if you have an invite installed, like this one).

Creating and adding apps to the smartphone interface offers an alternative to hotkeys, which can be especially useful for actual mobile (Android) users, users with many mods installed whose hotkeys might conflict, or mod authors who want to avoid hotkey conflicts when creating mods.




Usage


Manipulating the Phone:

To open and close the phone, press the toggle hotkey (End key by default) or click on the small phone icon (set ShowPhoneIcon to true in the config).

To rotate the phone, press the rotate hotkey (PageDown key by default). There is also a rotate app in the phone (optional).

Move the phone around the screen by dragging with the mouse on the phone edge (not its screen).

Move the small phone icon around the screen by dragging it with the mouse.

You can disable the phone icon in the config.json file.


App List:

To get the name of an app, hover over the app icon.

To switch app order, long-press on an app and drag it to the new position.


Phone App:

Open your phone book by clicking on the phone app.

Scroll through phone contacts by dragging with the mouse.

Close the app by pressing the phone hotkey (End) or Esc.

By default, the phone app only shows NPCs with at least 1000 friendship points (4 hearts). You can change the point requirement in the config.json file.

There are also two config entries called CallBlockList and CallAllowList. You can use one or the other to either choose specific NPCs who cannot call or be called, or choose specific NPCs who can call and be called. Just add NPC names to one list or the other, separated by commas, to use that list. E.g:

  "CallBlockList": "Alex,Shane",


Customize App:

The phone is customizable and reskinnable using the Customize app that comes with the phone.

There are four skins included with the mod: black, white, pink, and pink with decals (see screenshots); there are two backgrounds included as well.

There are no ringtone files included with the mod, but two built-in sounds are added to the Ring tab.

You can add more built-in sounds by adding their names to the comma-separated list at BuiltInRingTones in the config.json file.

A list of built-in sound names is here.

You can add your own backgrounds, skins, and ringtones to the Themes app by placing them in the following folders of this mod:

assets/backgrounds
assets/skins
assets/ringtones

Ringtones must be 16-bit PCM WAV files.

There is a content pack with skins, backgrounds, and ringtones created by altPsyk in the optional files section.

You can also very easily create your own content pack with theme items. Details are here.


Receiving Phone Calls

By default, there is a 1% chance every ten game minutes of a friend calling you.

You can disable incoming calls or change the chance in the config.json file.

By default you will not receive calls when in the mines or skull cavern. You can change this in the config.json file.

You can adjust ring number and frequency in the config.json file.

The phone icon will vibrate during ringing (optional), and you can enable a HUD message in config.json.

To answer or reject a call, open the phone and click on one of the buttons (see screenshots).


Phone Calls

By default, NPCs will preface the conversation menus with generic strings. You can set a custom string for each NPC by adding it to their dialogue dictionary with the following keys:

MobilePhoneGreeting
MobilePhoneReminisce
MobilePhoneInvite
MobilePhoneGoodBye


There is a mod that does this for you, adding custom greetings for different NPCs:



Main Menu:

The first menu has at least three options: Chat, Reminisce and Good-bye.

Chat displays the NPC's daily dialogue (only available once per day).

Where are you? Has the NPC tell you the map they are in at the moment. (Thanks to Tiakall for the strings!)

Reminisce (available for vanilla and SVE NPCs if there are seen events related to that NPC) provides you with a menu of events related to that NPC already seen by the player. You can replay them as much as you like. They should not have any impact on the game (i.e. no friendship consequences of dialogue choices, no gaining or losing of items, etc.), though flags may be altered if you choose differently (still not sure about this).

For more information on setting up a reminisce menu for custom NPCs, please check out this article.

Chat Dialogue is limited to existing vanilla dialogue for now, and so it sometimes might not fit with a phone conversation.

You will receive friendship points for chatting, just as if you were talking to the person directly.


Additional Menus:

If you install an Invite mod like Balloon Ride or Shane Dinner Date for Mobile Phone Mod Invite Menu, there will be an Invite option for specific villagers.

If you call Robin, you can now ask her to build buildings and upgrade the farm house from the phone.

If you install NPC Adventures you will be able to ask NPCs to follow you from the phone interface by using the Recruit option.


Apps

The phone comes with a single app, mentioned above, that acts as a means of talking to NPCs.

Any SMAPI mod can easily add an app icon to the phone's home screen by calling this mod's API. Details for modders are here.

You can also create a simple content pack app to simulate a key or button press. There are examples in the optional files. Details on creating content pack apps are here.

Mods with Mobile Phone App Integration:

These mods that have mobile phone app integration or are made specifically for the phone:


Installing any of the above mods should automatically add an app to the phone's home screen or allow adding one via its config.json file.


Content Pack Apps:

The following are content pack app mods:


The above mods require the actual mod they trigger to be installed. They only emulate a specific key press when you click their app icons, so if you change the mod's hotkey, you have to change the app mod's keypress as well! Most are available in this mod's files tab. See here for more on creating a CP app.


Invite Mods:

The following mods create special events for the Invite entry in a phone call:



Customization Mods:

The following add customization entries to the phone's Customize app:



If you implement an mod that integrates with the mobile phone, please send me a message so I can add your mod to the above lists.


Custom NPC Data

You can set variables for specific NPCs using Content Patcher. Target the path "aedenthorn.MobilePhone/npcs" and use the following syntax:

{
    "Format": "1.23.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "aedenthorn.MobilePhone/npcs",
            "Entries": {
                "Emily": {
                    "reminisces": [
                        {
                            "name": "Emily-event-0",
                            "location": "HaleyHouse",
                            "eventId": "471942",
                            "night": false,
                            "mail": null
                        }
                    ],
                    "minPointsToCall": 250,
                    "canCall": true
                }
            }
        }
    ]
}

At the moment you can add reminisces set minimum points to call and whether the NPC can be called or call the player.


Config

The config.json file is created in this mod's folder the first time you run the game with this mod installed. Many of the variables should be left alone, some of them will be changed by interacting with the phone in-game.

Some of the config variables can be modified using Generic Mod Config Menu.

Hotkeys can be set in the config file for both toggling the phone and rotating it, as well as a hotkey for toggling receiving incoming calls.

PhonePosition must be one of the following: mid, top-left, top-right, bottom-left, bottom-right. This determines where the phone is anchored in-case the screen size changes. You can still move the phone anywhere on the screen using the offsets in the config file or dragging the phone edge.

MinPointsToCall determines how many friendship points are required to show an NPC in the call app (each heart represents 250 points). Default is 1000 points or four hearts.


Translation

This mod should be fully translatable using the standard format here. Let me know if I've overlooked any text.


Credit

Thanks to AltPsyk for all the great theme-related assets and custom mobile phone apps (MPAs)!

Thanks to Alarice111111 for adding SVE Reminisce events!

Thanks to everyone who submitted translation files!


Technical

Requires SMAPI, uses Harmony.

Compatible with Mod Updater for automatic updates.

Code is at https://github.com/aedenthorn/StardewValleyMods.

If you want to complain or ask for help or help me test my mods, you can visit my Discord server.

A list of all my mods for Stardew Valley is available at https://www.nexusmods.com/stardewvalley/articles/895.