https://github.com/anpigon/obsidian-book-search-plugin/
Use to query game using a game title (uses RAWG Game API to get the game information.)
Click the link to install the Game Search plugin: Install Link Or, search 'Game Search' in the Obsidian Community plugin directory and install it from there.
- Acquire an API key from RAWG
- Enter your RAWG API key into the Game Search plugin settings
- Select a location for your game notes to be created
- Enter a file name format
- Select a file to use as a note template
- Use the command
Create New Game Note
to search for a game - Select a game from the search results
- Your note has been created :]
Optionally, you can auto-sync your Steam Library and Wishlist.
- Acquire an API key from Steam
- Make note of your user SteamId (navigate to your profile on the web and check the URL)
- Enter your Steam API key and Id into the Game Search plugin settings
- Ensure your Steam Privacy Settings have your wishlist set to
Public
if you wish to sync wishlist items - (Optional) provide metadata to be injected into
wishlisted and/or owned games
- For example, I add
status: backlog
to wishlist games andowned_platform: steam
to owned games
- For example, I add
- Use command
Sync Steam
to begin a sync.- This is not speedy, especially with larger libraries. There is a progress bar to provide some feedback but just...heads up
- NOTE: Synced Steam games will automatically have a
steamId
metadata property added. Don't remove this.
It is recommended to pair this plugin with Templater so that you can auto-generate content for your game notes.
The following is an example template.
Note that including data from lists or
complex objects may require templater to extract what you want
(e.g genres
, platforms
, stores
, publishers
, developers
in example template)
A complete list of template variables provided by the plugin can be found under Template Variable Definitions.
---
tag: Game 🎮
id: {{id}}
genres: <%= {{genres}}.map(g => `${g.name}`) %>
platforms: <%= {{platforms}}.map(p => `${p.platform.name}`) %>
release_date: {{released}}
background_image: {{background_image}}
metacritic_score: {{metacritic}}
stores: <%= {{stores}}.map(n => `${n.store.name}`) %>
publishers: <%= {{publishers}}.map(p => `${p.name}`) %>
developers: <%= {{developers}}.map(d => `${d.name}`) %>
---
![{{name}}]({{background_image}})
Acknowledging that you may adjust your template after adding many many games, the plugin provides a button within the settings panel to regenerate all of your game note metadata.
Previous versions of this plugin this button would completely regenerate the files, and you would lose any non-templated content in them.
As of v0.2.0 this feature only replaces the metadata of your game files with regenerated metadata from the template. The motivation behind this is that it is likely that the body of a game note is used for keepsake/TODO lists/personal notes, while the main portion of the templating will happen in the metadata. I'm open to revisiting this if it proves to be a bad idea.
Note: steamId
, steamPlaytimeForever
, steamPlaytime2Weeks
, and any user-provided
metadata to be injected into Steam games (added via settings) will be preserved.
Set the folder location where the new file is created. Otherwise, a new file is created in the Obsidian root folder.
You can set the file name format. The default format is {{name}} - {{published}}
.
You can use {{DATE}}
or {{DATE:YYYYMMDD}}
to set a unique file name.
If you are using the Steam integration portion of the plugin you can also flip a toggle in settings to try and immediately match any created game notes with a game in your Steam library to so that steam metadata gets immediately injected. THIS WILL ONLY MATCH GAMES IN YOUR LIBRARY ALREADY
The following table lists and describes each variable that can be used in your template.
To use a simple string variable in your template, simply write the variable name
surrounded by curly braces (e.g, {{name}}
).
Name | Description |
---|---|
id | (number) RAWG database ID |
slug | (string) RAWG game slug |
name | (string) Name of the game |
name_original | (string) Original name of the game |
description | (string) Description of the game (HTML) |
description_raw | (string) Description of the game (Text) |
released | (string) Release date of the game |
tba | (boolean) Unknown release date flag |
background_image | (string) Background image URL |
rating | (Rating) |
rating_top | (number) Highest rating |
ratings | (array) of Ratings |
ratings_count | (number) Number of ratings |
reviews_text_count | (string) Number of text reviews |
metacritic | (number) Metacritic score |
metacritic_platforms | (array) of MetacriticPlatform) |
playtime | (number) Estimated playtime in hours |
updated | (string) Last updated date in RAWG database |
esrb_rating | (ESRB) ESRB rating |
platforms | (array) of Platforms |
stores | (array) of Stores |
score | (number) |
tags | (array) of Tags |
saturated_color | (string) Color in hexadecimal format (without # ) |
dominant_color | (string) Color in hexadecimal format (without # ) |
genres | (array) of Genres |
short_screenshots | (array) of ScreenShots |
website | (string) URL of game website, if one exists |
publishers | (array) of Publishers |
developers | (array) of Developers |
{ id: number, name: string, slug: string, games_count: number, image_background: string }
{ id: number, name: string, slug: string, games_count: number, image_background: string }
{ metscore: number, url: string, platform: [Platform](#platform_object) }
{ id: number, title: string, count: number, percent: number }
{ id: number, name: string, slug: string, name_en: string, name_ru: string }
{ platform: { id: number, name: string, slug: string } }
{ id: number, name: string, slug: string }
{ id: number, name: string, slug: string, language: string, games_count: number, image_background: string }
{ id: number, name: string, slug: string }
{ id: number, name: string, slug: string }