Starfield

File information

Last updated

Original upload

Created by

TommInfinite

Uploaded by

TommInfinite

Virus scan

Safe to use

Tags for this mod

About this mod

Integrates Discord Rich Presence into Starfield. Highly customizible.

Requirements
Permissions and credits
Translations
  • Turkish
  • Spanish
  • Russian
  • Portuguese
  • Polish
  • Korean
  • Italian
  • German
  • French
Changelogs
This plugin integrates Discord Rich Presence into Starfield, allowing you to show what you're currently doing in game on your Discord profile.

Information:

  • Current character Info(Level,HP%,Credits count);
  • Current play state info(Save Play Time, NG+ level);
  • Current Location including current spaceship name;
  • Current State(Pause menu,Pickpocketing,Status menu,Skills menu,Powers menu,StarMap,Photo mode etc..)
  • Event statuses such as Scanning object,Crafting item, Healing teammates,Placing outpost beacon, byuing or selling spaceship, docking\undocking,taking off from planet, grav jumping to another location,travelling to another planet within system.

In the future I plan to add:
-More player states(dialogue menu etc) + custom mod support when applicable.
-Eventify plugin as much as possible.
-Display names of enemy ships in battle.
-Different Discord presence icons according to PC's situation.

Requirements:

Installation:
Unpack the archive to your Starfield folder.
Installation path should look like "Starfield\Data\SFSE\Plugins\Discord_Presence_SFSE.dll"

INI file:

After first launch plugin creates an INI file at following path - "Data\SFSE\Plugins\Discord_Presence_SFSE.ini"
If you are using MO2 - it will be here -  "MO2\overwrite\SFSE\Plugins\Discord_Presence_SFSE.ini"

In INI file you could specify:
- bSimplifiedStatus(0/1) - will replace prepositions for current locations for shorter and neater statuses. Works with translations. Enabled by default.
- bShowPlayTime (0/1) - will show\hide play time in Discord profile.
- bShowSavePlayTime(0/1) - will display Save Play Time if you hover your mouse over game icon in Discord.
- bShowNGCount(0/1) - will display current NG+ level in the same place as mentioned above.
- bShowPCName (0/1) - whether to show or hide Player character name.
- bShowShipName(0/1) - whether to show or hide Ship name when PC is in spaceship.
- bShowLVL (0/1) - whether to show or hide Player current level amount.
- bShowHP(0/1) - whether to show HP%.
- bShowCaps(0/1) - whether to show credit count. - DISABLED BY DEFAULT.
-iShowCurrentSystem(0-2) -
whether current system you're in will be visible in statuses.Set0for Not visible, 1 for visible only in Space, 2 for always visible even if you are on a planet.
- iMaxCapsToShow(0-99999999) - max credit count to display.
- AppID(Discord application ID) - if value is set - plugin will use your Discord app with it's logo instead of author's. In the app image should have name - "sf_logo".
- fUpdateInterval(1-100) - (in seconds) - how often will Discord presence be updated. Default value is 3 seconds.
- bShowEventStatuses - (0/1) - Will determine whether event statuses will be detected and shown. Enabled by default.
- bAllowEventStatusOverride(0/1) - will determine whether event status will override the existing one in case the latter is active.
-fEventStatusDuration(1-100) - (in seconds) - how long does event status last. Default duration is 7 seconds.
- bDebugMode (0/1) - will enable\disable debug mode. Use only for debugging, disabled by default. Log is located at My Games\Starfield\SFSE\Logs\DiscordPresence.log
-bSwapLines(0/1)
- Will swap places of top and bottom line in Discord status.



Translation or customization(look under the spoiler):

Spoiler:  
Show
You can customize every text displayed by the plugin.
In the same folder as INI file you can find "Discord_Presence_SFSE_Translation.ini" which is created alongside INI.You could replace default text displayed by adding setting values to ini.
If values are empty(as they are by default) plugin uses default values.


From V7 Plugin uses templates allowing you to set up your custom status.
Letters in square brackets bellow mean as follow:
  • [n] - Player character Name
  • [l] - Player character LVL
  • [h] - Player character HP percentage
  • [c] - Player character credits anount
  • [e] - Enemy name
  • [p] - Current planet
  • [s] - Current location(can be the name of interior cell, exterior location or spaceship\star station name)
  • [m] - pronounce value for "He/Him" chosen pronoun.
  • [f] - pronounce value for "She/Her chosen pronoun.
  • [t] - pronounce value for "They/Them" chosen pronoun.
  • [a] - hours in s_Template_PlayTimeInfo.
  • [ b] - minutes in s_Template_PlayTimeInfo.
  • [d] - NG+ level in s_Template_PlayTimeNG.

List of default values(can be copied to INI):

s_T_LaunchingGame = Launching game
s_T_InMainMenu = In Main menu
s_T_StartedANewGame = Started a new game
s_T_PauseMenu = In Pause Menu
s_T_Sleeping = Sleeping
s_T_Pickpocketing = Pickpocketing
s_T_InSkillsMenu = In Skills menu
s_T_InStatusMenu = In Status menu
s_T_LookingAtStarMap = Looking at Star Map
s_T_LookingAtPlanetMap = Looking at Planet Map
s_T_InPhotoMode = In Photo mode
s_T_InPhotoGallery = In Photo Gallery
s_T_InDataMenu = In Data menu
s_T_InShipMenu = In Ship menu
s_T_InMissionsMenu = In Missions menu
s_T_InPowersMenu = In Powers menu
s_T_InCharacterCreationMenu = In Character Creation menu
s_T_InInventoryMenu = Browsing inventory
s_T_InWorkshopMenu = In Workshop menu
s_T_InOutpostBuilderMenu = In Outpost Builder Menu
s_T_AtWeaponWorkbench = Upgrading weapons
s_T_AtPharmaceuticalLab = Crafting medical supplies
s_T_AssigningCrew = Assigning crew
s_T_AtResearchLab = Researching at the lab
s_T_IndustrialBenchMenu = At Industrial Workbench
s_T_AtCookingStation = Cooking
s_T_AtSpacesuitWorkbench = Modifying Gear
s_T_LookingAtMissionBoard = Looking at mission board
s_Tpl_Fighting = Fighting [e]
s_Tpl_Exploring = Exploring
s_Tpl_ExploringPlanet = Exploring
s_Tpl_ExploringOrbitOfPlanet = Exploring
s_Tpl_ExploringLocationOnPlanet = Exploring
s_Tpl_ExploringStarStation = Exploring
s_Tpl_ExploringInteriorCell = Exploring
s_Tpl_InInteriorCell = in [s]
s_Tpl_OnStarStation = on [s]
s_Tpl_InSystem = in [g] system
s_Tpl_NearLocation = near [s]
s_Tpl_OnPlanet = on [p]
s_Tpl_OnPlanetOrbit = on [p] orbit
s_Tpl_InSpaceshipForMenu = in spaceship [s]
s_Tpl_InSpaceship = In spaceship [s]
s_Tpl_InSpace = In space
s_Tpl_InSpaceForMenu = in space
s_Tpl_Docked = Docked to [s]
s_Tpl_OrbitOfPlanet = [p] orbit
s_Tpl_InSpaceCombat = Dogfighting [e]
s_Ev_ScanningObject = Scanning [o]
s_Ev_BoughtShip = Buying spaceship [o]
s_Ev_SoldShip = Selling spaceship [o]
s_Ev_CraftedItem = Crafted [o]
s_Ev_HealedCompanion = Healing [o]
s_Ev_PlacedOutpost = Placing outpost
s_Ev_TakingOffFromPlanet = Taking off from [p]
s_Ev_Docking = Docking to [o]
s_Ev_Undocking = Undocking from [o]
s_Ev_GravJumping = Grav jumping to [p]
s_Ev_FarSpaceTravel = Travelling to [p]
s_T_Spaceship = spaceship
s_T_LVL = LVL
s_T_HP = HP
s_T_Caps = credits
s_Template_PlayerDetails = [n] | LVL:[l] | HP:[h]% | [c] credits
s_Template_PlayTimeInfo =Play Time: [a]h m
s_Template_PlayTimeNG = NG+[d]

Some notes:

-Since V10 template system is modular and will stay such.
-If you want to add extra space at the end of the line ( i.e. "Exploring ") you can do it  either by putting the line in quotes
s_Tpl_Exploring = "Exploring "
or use ALT+255 which puts a non-displayable symbol
s_Tpl_Exploring = Exploring  

-s_Tpl_Exploring is generic one and now used only for "Exploring space" - situation where you are not on ship and in space(should not happen but I'm doing in advance in case DLC or mods come out which allow that).
-Text with "ForMenu" postfix is used for when PC is in a menu(Workshop,Weapon Workbench, etc) or- then I add "in spaceship"(s_Tpl_InSpaceshipForMenu) after the menu name for instance "Crafting medical supplies in spaceship".But when I need to display status that player is simply located in spaceship I will use s_Tpl_InSpaceship for instance "In spaceship on Mars orbit".
-if bDebugMode is enabled full list of imported strings will be outputted to the Log file in game launch.
-Since V11 I added pronounce templates. If present in the templates they will be replaced depending on player character chosen pronounce in Character creation menu.
For instance, if in translation INI  you set
s_Template_PronounHeHim = e
s_Template_PronounSheHer = a
And then add [m] to any template "[m]" will be replaced by "e"(without quotes)
If this template will contain other pronounce templates [f] or [t] they willl be removed
So for this template:
Looking[m][f] at Map
If PC has he\him pronounce, output will be  Lookinge at Map
If PC has she\her pronounce, output will be Lookinga at Map


You are welcome to create your own translation and upload it as a separate mod. Also feel free to contact meif you have any questions or
suggestions abour translations. We have a special Discord chat for translators.



Gamepass version support
Spoiler:  
Show

Since V11 Gamepass version is supported via Ultimate ASI Loader.
To install the plugin:
1)Download ASI Loader from here - Choose Ultimate-ASI-Loader_x64.zip version.
2)Rename DLL file in the archive to wininet.dll and place it to Starfield\Content folder.(This worked for me. If you're stuck on this step please refer to ASI installation instructions as I'm not an expert on this and cannot help you on ASI installation besides this very instruction).
3)Rename Discord_Presence_SFSE.dll to Discord_Presence_SFSE.asi (please make sure the actual extenstion is changed) and put it into Starfield\Content folder(the same where wininet.dll is located)
4)Export Address Data library archive into Content\Data\SFSE\Plugins folder.
5)Launch Starfield as you normally would.
To make sure plugin actually loaded you can check My Games\Starfield\SFSE\Logs folder for presence of DiscordPresenceSFSE.log.

If you report issues with ASI version please specify so.


FAQ:

-Does this plugin requires an internet connection?
-Plugin doesn't send any network information, it merely supplies data to Desktop Discord client.

-Do I need to start a new game for this to work?
-You can continue playing from where you left off.

-Can you make it to Save Play Time is displayed below status?
-No, it seems to be a Discord limitation - it would not accept a starting value larger value than 11 hours.[b]


Credits:
  • Expired and ianpatt for SFSE and for all the work they've done for TES\FALLOUT modding scene.
  • Niston for gifting me the game.
  • Markus,SkyHorizon,RunDevilRun007,DzikiSzogun,Ivens,ViniRust,aartud, Nitablade, kejdurapa, max795, Gonzy42 for the translations!
  • Discord for Discord RPC library kindly provided on GitHub;
  • Snapdragon for Hooking tutorial.
  • Maxie and n00854180t for full menu names list.
  • Neanka for some decoding.
  • meh321 for Address Library.
  • Nitablade for the templates idea and for suggestions.
  • Nikita Lita for Champollion.
  • Cdr. Amora Shepard for testing Gamepass version.
  • Everyone related to Common Lib SF development.
  • Cyrus for some tips regarding naming, providing savegames which were  very useful for debugging and answering my questions.

Source can be downloaded from here.