Rich presence app for playstation 3. Display what game you are playing on the PS3 via Discord

Overview

PS3-Rich-Presence-for-Discord

Discord Rich Presence script for PS3 consoles on HFW&HEN or CFW. Written in Python.

Display what you are playing on your PS3 via Discord's game activity.

Features

  • Automatically find PS3 IP address
  • Display the name and a game cover for currently open PS3 game
  • Display PS3 temperature and fan speed (toggleable)
  • Display the name, and either a shared cover, or an individual cover for currently mounted PSX and PS2 game (toggleable)

Display Example

No game PS3 game PS2 game PS1 game
noGame ps3Game ps2Game ps1Game

Usage

Requirements

  • PS3 with either HFW&HEN, or CFW installed
  • PS3 with webmanMOD installed (tested working with v1.47.35/36/37)
  • PS3 and PC on the same network/internet connection
  • Discord installed and open on the PC running the script
  • A Python 3.9 interpreter installed on the PC if you do not wish to use the executable file

Installation

A compiled executable (.exe) is provided for use on the windows platform. WARNING: This file was flagged as a virus on my computer, i do not know what causes the file to be flagged as such.

Alternatively, the PS3RPD.py file can be ran from your favourite python IDE. (you will require the external dependencies listed here).
Note that this script was written with pyton 3.9, i cannot provide support for earlier versions.

General instructions

On program start, the script will prompt the user for how to get the PS3's IP address.

If the manual option is chosen, the user can enter the PS3's IP address.

If the automatic option is chosen, the program will take the PC's local IP address, and attempt to connect to each address in range 2 - 254. Each attempt will take ~20 seconds, because of this if your PS3 has an IP address of 192.168.0.200, it will take approximately 1.1 hours to complete.

Once the script has connected to your PS3, it will generate an external config file, "PS3RPDconfig.txt" in the same directory as the script (more information here). It will automatically begin sending the game data to your Discord profile.

Contact Me

please contact me via Discord: "zorua98741#0023".

I have become aware of a sequence of events that will crash the script, if you are able to reproduce this, please message me what you did, or what error message is output from your python IDE

Additional Information

Remote Python packages required

These are not intended download links, they are the developers sites, please install with pip.

External config file

PS3RPD makes use of an external config file to persistently store a few variables, on creation, the default values will be:

  • Your PS3's IP address (where the script will find your PS3 on the network)
  • My Discord developer application's ID (where the script will send presence data to)
  • A refresh time of 35 seconds (how often to get new data (minimum value of 15 seconds)
  • To show the PS3's temperature (self explanatory)
  • To use a shared cover for PS2&PSX games (self explanatory)
    You may change these values to suit your own tastes, an example is shown below:
IP ID Refresh time(seconds) Show temperatures Individual PS2&PSX covers Output
192.168.0.13 780389261870235650 35 True False defaults
192.168.20.5 123456789012345678 15 False True noTemp,indivCover

Please note that the external config file is sensitive to the data you input, and a change in the formatting will most likely break it.

Possible values for the variables:

  • IP: any valid IPv4 address
  • ID: any valid Discord developer application ID
  • Refresh time(seconds): any digit in range 15-1000 (Note: any value <15 will be set to 15 due to developer application restraints)
  • Show temperatures: [True, true] [False, false]
  • Individual PS2&PSX covers: [True, true] [False, false]

Using your own images

If you would like to have complete control over what images are used per game, you must create your own Discord developer application over at https://discord.com/developers/applications.

Once created, copy the "APPLICATION ID" from the developer portal and paste it as to replace the current string next to "ID: " in the external config file "PS3RPDconfig.txt". Alertnatively, if you are using the .py file, you can replace the value of line 26 "self.client_id = ".

You will now be able to add your own art assets in the developer portal under "Rich Presence > Art Assets". Note that the name of the art assets uploaded must be the same as whatever is output from "validate(): " when that specific game is open.

An example:
If i want to add an image for Counter Strike: Global Offensive, I will open the game and look for the output of "validate():" from the PS3RPD script on my PC:
validateExample
As shown, i would then rename the art asset on my PC "counter_strike_global_offensive_", and upload it to my Discord developer application.

After a couple of minutes, CS:GO will go from having no image, to displaying an art asset from the developer application:

before after
noasset addedasset

(in)Frequently asked questions

Q: Can this script be adapted for use on mobile devices?
A: no. While the functionality of this script could certainly be adapted into a mobile app. Discord does not support rich presence from its mobile app.

Q: Can this script be used on OFW/without webmanMOD?
A: no. The only other program i have encountered that i can scrape game info from is CCAPI, which is lesser-used, and more complicated for the user to setup than webmanMOD.

Q: Why does [insert game name here] not have an image when i play it?
A: either you have not waited long enough for your art asset to be uploaded into your own developer application, or, you are using my developer application, where i am limited to adding only the games i can play on my PS3 (that i own), if you would like to use my developer application, but with more images, please message me on discord, and i will be more than happy to add the game/s for you.

Q: Why is PS2 game detection inconsistent?
A: this script works by scraping game data from webmanMOD. When a PS3 goes into PS2 mode, it disables all plugins including webmanMOD, because of this the script will only detect a PS2 game if it refreshes itself and it finds a PS2 game mounted (but not open).
There is no way of fixing this issue as far as i can tell.

Q: Can i programatically send art assets to Discord?
A: no, Discord does not currently offer the option to do this, the only option currently is to upload the art asset to the Discord developer application and use naming conventions to call a specific art asset depending on what game is open

Q: I want Discord to show me playing the game's name, not playing "PS3", can i do this?
A: yes, however to do so each game will require its own Discord developer application, and this specific script is not made to support such a manual task.
If you really require this feature, i can slap together another version of PS3RPD and demonstrate to you how to manually add games, however i will not waste my time doing so if such a branch is not highly requested, and you will be expected to create and add the applications yourself

Implemented images

Below is a table of all games that have an art asset on my Discord developer application, you should be able to save these images and add them to your own developer app if you wish.

image name validated name
rebugToolbox Rebug Toolbox _rebug_toolbox_
batman Batman Arkham Asylum GOTY batman_arkham_asylum_goty_
batman2 Batman Arkham City GOTY batman_arkham_city_goty_
batman3 Batman Arkham Origins batman_arkham_origins_
battlefield4 Battlefield 4 battlefield_4_
battlefieldhardline Battlefield Hardline battlefield_hardline_
burnoutparadise Burnout Paradise The Ultimate Box burnout_paradise_the_ultimate_bo
COD4 COD 4: Modern Warfare call_of_duty_4_modern_warfare_
CODAW COD: Advanced Warfare call_of_duty_advanced_warfare_
CODBO1 COD: Black Ops call_of_duty_black_ops_
CODBO2 COD: Black Ops 2 call_of_duty_black_ops_ii_
CODG COD: Ghosts call_of_duty_ghosts_
CODMW3 COD: MW3 call_of_duty_modern_warfare_3_
catherine Catherine catherine_
CSGO CSGO counter_strike_global_offensive_
DS2 Dark Souls 2 scholar of the first sin dark_souls_ii_scholar_of_the_fir
DS1 Dark Souls prepare to die edition dark_souls_prepare_to_die_editio
deadpool Deadpool deadpool_
DAI Dragon Age Inquisition dragon_age_inquisition_
FC3 Far Cry 3 far_cry_3_
FFXIII Final Fantasy XIII final_fantasy_xiii__
FFXIII2 Final Fantasy XIII-2 final_fantasy_xiii-2_
FFXX-2 Final Fantasy XX-2 HD remaster final_fantasy_xx-2_hd_remaster_
GOWcollection God of War collection god_of_war_collection_
GOWcollection2 God of War collection volume II god_of_war_collection_volume_ii_
GOW3 God of War III god_or_war_iii_
GT6 Gran Turismo 6 gran_turismo6_
icoshadow Ico & Shadow of the colossus collection ico__shadow_of_the_colossus_clas
infamous1 Infamous infamous_
infamous2 Infamous 2 infamous_2_
jakdaxter Jak and Daxter collection jak_and_daxter_collection_
Jojo JoJos bizarre adventure all-star battle jojos_bizarre_adventure_all-star
KH15 Kingdom Hearts HD 1.5 remix kingdom_hearts_hd_15_remix_
KH25 Kingdom Hearts HD 2.5 remix kingdom_hearts_hd_25_remix_
MGS4 Metal Gear Solid 4 guns of the patriots metal_gear_solid_4_guns_of_the_p
MGScollection Metal Gear Solid HD collection metal_gear_solid_hd_collection_
MGS5GZ Metal Gear Solid V Ground Zeroes metal_gear_solid_v_ground_zeroes
mmcm Multiman mmcm_
CODMW2 COD: Modern Warfare 2 modern_warfare_2_
NFSHP Need for Speed Hot Pursuit need_for_speed_hot_pursuit_
NFSMW Need for Speed Most Wanted need_for_speed_most_wanted_
NFSR Need for Speed Rivals need_for_speed_rivals_
P4AU Persona 4 Arena Ultimax persona_4_arena_ultimax_
P5 Persona 5 persona_5_
RCa4o Ratchet & Clank all 4 one ratchet__clank_all_4_one_
RCffa Ratchet & Clank full frontal assault ratchet__clank_full_frontal_assa
RCfacit Ratchet & Clank future a crack in time ratchet__clank_future_a_crack_in
RCn Ratchet & Clank nexus ratchet__clank_nexus_
RCqfb Ratchet & Clank quest for booty ratchet__clank_quest_for_booty_
RCtod Ratchet & Clank tools of destruction ratchet__clank_tools_of_destruct
RDR Red Dead Redemption GOTY red_dead_redemption_game_of_the_
skate Skate skate_
skate2 Skate 2 skate_2_
skate3 Skate 3 skate_3_
RCt The Ratchet & Clank Trilogy the_ratchet__clank_trilogy_
simpsons The Simpsons Game the_simpsons_game_
ps2 PS2 ps2
psx PS1 psx
ps3rpd PS3RPD logo xmb
You might also like...
A simple program to display current playing from Spotify app on your desktop
A simple program to display current playing from Spotify app on your desktop

WallSpot A simple program to display current playing from Spotify app on your desktop How to Use: Linux: Currently Supports GNOME and KDE. If you want

An Advanced Python Playing Card Module that makes creating playing card games simple and easy!

playingcards.py An Advanced Python Playing Card Module that makes creating playing card games simple and easy! Features Easy to Understand Class Objec

RichWatch is wrapper around AWS Cloud Watch to display beautiful logs with help of Python library Rich.
RichWatch is wrapper around AWS Cloud Watch to display beautiful logs with help of Python library Rich.

RichWatch is TUI (Textual User Interface) for AWS Cloud Watch. It formats and pretty prints Cloud Watch's logs so they are much more readable. Because

Discord bot for playing Werewolf game on League of Legends.

LoLWolf LoL人狼をプレイするときのDiscord用botです。 (Discord bot for playing Werewolf game on League of Legends.) 以下のボタンを押してbotをあなたのDiscordに招待することで誰でも簡単に使用することができます。

A discord bot to assist you when playing phasmophobia.

phasbot A discord bot to assist you when playing phasmophobia. Add phasbot to your server here! Bot Commands ?help - shows commands ?info [ghost name]

It's a Discord bot to control your PC using your Discord Channel or using Reco: Discord PC Remote Controller App.
It's a Discord bot to control your PC using your Discord Channel or using Reco: Discord PC Remote Controller App.

Reco PC Server Reco PC Server is a cross platform PC Controller Discord Bot which is a modified and improved version of Chimera for Reco-Discord PC Re

A simple Discord bot wrote with Python. Kizmeow let you track your NFT project and display some useful information
A simple Discord bot wrote with Python. Kizmeow let you track your NFT project and display some useful information

Kizmeow-OpenSea-and-Etherscan-Discord-Bot 中文版 | English Ver A Discord bot wrote with Python. Kizmeow let you track your NFT project and display some u

A modern, easy to use, feature-rich, and async ready API wrapper improved and revived from original discord.py.

A Python API wrapper that is improved and revived from the original discord.py

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python.
A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python.

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Key Features Modern Pythonic API using async and await

Comments
  • Manually adding game names

    Manually adding game names

    Hello! I've been looking for some way to have my PS3 game activity show up on my profile and this is exactly what I've been looking for, but as is mentioned in the README, grabbing images for games with Japanese characters or the like in their name doesn't really work. Most of the games I play are Japanese so I tried to figure out how to add games manually on my own — even though you offer to help with adding games to the script itself I didn't want to bother you when it wasn't necessary so I figured it was worth a shot. Seems what I thought would work isn't quite it though, I had assumed changing any Japanese games to have a separate application from the rest in the # INDIVIDUAL GAME CODE HERE section would fix it. I'd very much appreciate any help you could offer!

    opened by ngoomie 4
  • Workaround for adding images to games with foreign characters?

    Workaround for adding images to games with foreign characters?

    This is more of a Discord problem but I tried to run Misato Katsuragi's Reporting Plan (葛城ミサト報道計画_0100) The Discord portal cannot save the kanji citing the image image If we could customize the ID for instance while internally keeping it the same that would be cool.

    opened by SK91no 2
  • Python script fails when I start a PS3 game

    Python script fails when I start a PS3 game

    Everything was fine when I was in the XMB menu, but when I tried to start GTA IV and Gran Turismo 6 , the rich presence stopped working with these errors: image (I used Python 3.9 On a Ubuntu 20.04 Terminal), with WebMan mod installed on my Fat PS3.

    opened by ShadowOfPripyat 4
Releases(v1.7.2)
  • v1.7.2(Oct 18, 2022)

  • v1.7.1(Aug 9, 2022)

    Changelog:

    • 'game Image' now uses the titleID for PS3 games instead of the games name in order to give better language support, PS2 and PS1 goes unchanged
      • this means that if you choose to update to this version you must update your Discord developer application art assets
    • version info previously shown in the game name should now be removed
    • titleID for PS3 games is shown when hovering over the large image
    Source code(tar.gz)
    Source code(zip)
    PS3RPD.exe(8.05 MB)
  • v1.8(Aug 3, 2022)

    This version of the script shows the possible future of PS3RPD, using an external text file to hold previously detected games and easily allow the user to change the name and image using the same or similar methods implemented in PS4RPD, currently v1.8 is very incomplete, and should only be downloaded for reading purposes, rather than use. Changelog:

    • completely rewritten
    • some features are not yet implemented
      • saving game info to external file
      • checking external file for game info
      • choosing between automatic and manual images
      • PS2 and PS1 games are untested
    • 'networkscan' has been added as an external dependency, however currently seems to cause issues with installation
    • the .exe has not been updated
    Source code(tar.gz)
    Source code(zip)
    PS3RPD.py(19.97 KB)
  • v1.7(Mar 3, 2022)

    Changelog:

    • removed temperature from presence whenever a PS2 game is mounted, as it is not correct
    • reworked validate() to remove any non-letter, digit, or underscore. Game names that previously included "-" will have to be renamed and reuploaded to your Discord developer applications, sorry for the inconvenience.
      • validate() will also now only run when a new game is detected to try and save a few ms
    • fixed game images in my Discord developer application affected by change mentioned in previous point
    • added support for manually adding per-game developer applications to PS3RPDbr.py, please report any bugs to me
      • please modify and refer to lines 273 - 290
    • renamed confusing variable "resetTempOnGameChange" to "resetTimeOnGameChange"
    Source code(tar.gz)
    Source code(zip)
    PS3RPD.exe(7.22 MB)
  • v1.6(Feb 27, 2022)

  • v1.5(Jan 27, 2022)

  • v1.4(Dec 23, 2021)

  • v1.3(Nov 15, 2021)

    Changelog:

    • script has been rewritten in a more OOP style to hopefully be easier to maintain and follow.
    • implementedImage.txt has been removed, it is now assumed the user will use their own developer application or contact me if they need another image added
    • external file containing the PS3's IP address has been expanded into a config file containing:
      • PS3 IP address
      • Discord developer application ID
      • How long the script waits before getting new data
      • Whether to show the PS3's temperature data (credit to Pookette on Discord for the idea)
      • Whether to show separate covers for PS2 and PS1 games, or to use a shared cover
    • PS2 game detection may work more consistently, depending on the value of Refresh time(seconds):
    • readme.md has been rewritten to hopefully be less confusing
    Source code(tar.gz)
    Source code(zip)
    PS3RPD.exe(7.22 MB)
    PS3RPD.py(13.86 KB)
  • v1.2(Aug 7, 2021)

  • v1.1(Jul 28, 2021)

Owner
null
A custom Discord Rich Presence to display when you're studying so you're stupid friends won't disturb you when you're studying.

Studying RPC Description A custom Discord Rich Presence to display when you're studying so you're stupid friends won't disturb you when you're studyin

John Edmerson Pizarra 4 Nov 19, 2022
Battle.net and PlayStation title watcher that reports updates via Discord.

Renovate Renovate is a Battle.net and PlayStation title watcher that reports updates via Discord. Usage Open config_example.json and provide the confi

Ethan 1 Nov 23, 2022
Acc-discord-rpc - Assetto Corsa Competizione Discord Rich Presence Client

A simple Assetto Corsa Competizione Rich Presence client. This app only works in

null 6 Dec 18, 2022
Discord rich-presence implementation for VALORANT

not working on v1 anymore in favor of v2, but if there's any big bugs i'll try to fix them valorant-rich-presence-client Discord rich presence extensi

colinh 278 Jan 8, 2023
Unofficial Discord Rich Presence for HackTheBox platform

HTBRichPresence Unofficial Discord Rich Presence for HackTheBox platform The project is under lazy development. How to run Install requirements: // I'

Antonio 4 Apr 19, 2022
OpenEmu Discord Rich Presence provided with Python!

A simple application that provides your current OpenEmu game as an RPC state in Discord via PyPresence. How to use Unzip and open the latest x86_64 ve

Deltaion Lee 6 May 30, 2022
Discord Rich Presence for Team Fortress 2

TF2 Rich Presence Discord Rich Presence for Team Fortress 2 Detects current game state, queue info, playtime, and more Configurable, reliable, and per

Kataiser 33 Dec 31, 2022
Discord Rich Presence implementation for Plex.

Perplex Perplex is a Discord Rich Presence implementation for Plex. Features Modern and beautiful Rich Presence for both movies and TV shows The Movie

Ethan 52 Dec 19, 2022
With this simple app you can customize your presence in Discord.

Discord Rich Presence This a simple console app which can customize your Discord Presence easily, with only one config file! Setup Go to Discord Devel

Mai 1 Jan 6, 2022
PS3API - PS3 API for TMAPI and CCAPI in python.

PS3API PS3 API for TMAPI and CCAPI in python. Examples Connecting and Attaching from ps3api import PS3API PS3 = PS3API(PS3API.API_TMAPI) if PS3.Conn

Adam 9 Sep 1, 2022