Steamworks MV (Visustella)

From Yanfly.moe Wiki
Jump to navigation Jump to search
Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
Visustella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.



System

This is a plugin created for RPG Maker MV.

For help on how to install plugins, click here.

For help on how to update plugins, click here.

Got errors with your RPG Maker MV plugin? Click here.

Download


Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
Visustella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.


Support Visustella

Click here if you want to help support Visustella on Patreon.


Introduction

This plugin allows Steamworks integration into your RPG Maker Game.

HOW-TO (USAGE)

The plugin is meant to be easily usable for non-developers via plugin commands. Some things however require a "Callback" function, as they have to connect to steams servers to get information, or do things (e.g: unlocking achievements) these things may take some time, and therefore when using plugin commands that require a callback, you should apply a wait before executing more logic. The plugin is a wrapper for Greenworks module, meaning that the functions used by the plugin commands are usable by developers in their own plugins.

Plugin Commands

PluginCommandsMV.png

Plugin Commands are event commands that are used to call upon functions added by a plugin that aren't inherently a part of RPG Maker MV.

Here is a list of Plugin Command(s) that you may use:

Plugin commands are case insensitive so any case is usable. All plugins have the initial command prefix as "steamworks" followed by the action name, and then the arguments for the action.

All plugins that return a value, will return -1 if an error occurs. This is so you can check if something bad happens with events.

GETTING THE USERS STEAM NAME

Action Name(s): steamname, screenname, or name

Arguments: the variable id (a number) to place the name in.

Callback(s): No.

Usage Example(s):

steamworks steamname 1
steamworks screenname 999
StEaMwOrKs NAME 626

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting the steam name, we then use the variable provided (in the examples: 1, 999 and 626) to store the steam name once we obtain it.

GETTING THE USERS STEAM ID/ACCOUNT ID

Action Name(s): steamid, accountid, or id

Arguments: the variable id (a number) to place the steam id in.

Callback(s): No.

Usage Example(s):

steamworks steamid 1
steamworks accountid 1333
StEaMwOrKs Id 909

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting the steam id, we then use the variable provided (in the examples: 1, 1333 and 909) to store the steam id once we obtain it.

GETTING THE USERS STATIC STEAM ID/STATIC ACCOUNT ID

Action Name(s): staticsteamid, staticid, or staticaccountid

Arguments: the variable id (a number) to place the static id in.

Callback(s): No.

Usage Example(s):

steamworks staticsteamid 2
steamworks staticid 2000
StEaMwOrKs staticaccountid 109

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting the static steam id, we then use the variable provided (in the examples: 2, 2000 and 109) to store the static steam id once we obtain it.

GETTING THE USERS STEAM LEVEL

Action Name(s): level or steamlevel

Arguments: the variable id (a number) to place the level in.

Callback(s): No.

Usage Example(s):

steamworks level 2
steamworks steamlevel 987
StEaMWORKs STEAMLEVEL 1100

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting the users steam level, we then use the variable provided (in the examples: 2, 987 and 1100) to store the users steam level once we obtain it.

GETTING THE NUMBER OF PLAYERS IN GAME NOW

Action Name(s): numofplayers or playercount

Arguments: the variable id (a number) to place the amount of players in.

Callback(s): Yes, so use a wait event.

Usage Example(s):

steamworks numofplayers 1 steamworks playercount 200 StEaMwOrKs NUMOFPLAYERS 10

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting the amount of players in game, we then use the variable provided (in the examples: 1, 200 and 10) to store the amount of players once it is obtained. This is an action that requires a callback, and must connect to steams server. It is advised to use a wait event to wait a few frames for this to occur.

GETTING THE NUMBER OF ACHIEVEMENTS IN YOUR GAME

Action Name(s): numofachievements or achievementcount

Arguments: the variable id (a number) to place the returned value in.

Callback(s): No.

Usage Example(s):

steamworks numofachievements 7
steamworks numofachievements 8
StEaMwOrKs achievementcount 9

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting the amount of achievements the game as, we then use the variable provided (in the examples: 7, 8 and 9) to store the amount of achievements the game has.

GETTING IF THE USER HAS STEAM OVERLAY ENABLED

Action Name(s): overlayenabled, gameoverlayenabled or steamoverlayenabled

Arguments: the variable id (a number) to place the returned value in.

Callback(s): No.

Usage Example(s):

steamworks overlayenabled 10
steamworks gameoverlayenabled 11
StEaMwOrKs steamoverlayenabled 12

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action as getting whether the user has overlay enabled or not, we then use the variable provided (in the examples: 10, 11 and 12) to store if they have the overlay enabled or not in it.

NOTE: The return values for this differ since this returns a boolean. If an error occurs (such as Steamworks not being initialized) it returns -1 if the value is false it return 0, if the value is true it returns 1.

OPENING THE STEAM OVERLAY

Action Name(s): openoverlay, opensteamoverlay or opengameoverlay

Arguments: the location to open to. The following are valid options:
Friends, Community, Players, Settings, OfficialGameGroup, Stats and Achievements

Callback(s): No.

Usage Example(s):

steamworks openoverlay Friends
steamworks opensteamoverlay Settings
StEaMwOrKs opengameoverlay Achievements

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action is to open the game overlay to the Friends list, the Settings, and the Achievements page.

OPENING THE STEAM OVERLAY TO A URL

Action Name(s): openoverlaytourl, opengameoverlayurl or opensteamovertourl

Arguments: the url to open to.

Callback(s): No.

Usage Example(s): steamworks opensteamoverlay http://archeia.moe StEaMwOrKs opengameoverlay http://rpgmakerweb.com

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action is to open the game overlay to the specified url. The urls given in the examples are urls to Liquidize's and Archeia's websites, as well as the website to RPGMaker Web.

UNLOCKING AN ACHIEVEMENT

Action Name(s): activateachievement, giveachivement or grantachievement

Arguments: the achievement name to unlock.

Callback(s): Yes, this function requires a callback and therefore must
take some time, it is recommended to do a wait message if you want to do things
such as notify the player in game.

Usage Example(s):

steamworks activateachievement THE_BEST_ACHIEVEMENT_EVER
steamworks giveachivement WHAT_IS_MOE_BABY_DONT_MOE_ME_NO_MOE
StEaMwOrKs grantachievement BY_THE_POWER_OF_MEMES

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action is to unlock the specified achievement.

Special Notes: The plugin command for this, uses a special call back that executes the function to give, or take items and skills when an achievement is acquired. For more information about this, see the notetag section.

REMOVING/CLEARING/LOCKING AN ACHIEVEMENT

Action Name(s): deactivateachievement, clearachievement or getrekted

Arguments: the achievement name to lock/remove.

Callback(s): Yes, this function requires a callback and therefore must
take some time, it is recommended to do a wait message if you want to do things
such as notify the player in game.

Usage Example(s):

steamworks activateachievement THE_BEST_ACHIEVEMENT_EVER
steamworks giveachivement WHAT_IS_MOE_BABY_DONT_MOE_ME_NO_MOE
StEaMwOrKs grantachievement BEST_PLUGIN_2016

Usage Explanation:

First we use the command steamworks, this lets the plugin command interpreter know that we want to do a steamworks command, then we specify the action is to lock the specified achievement.

Special Notes: The plugin command for this, uses a special call back that executes the function to give, or take items and skills when an achievement is removed/locked. For more information about this, see the notetag section.

Notetags

NotetagsMV.png

RPG Maker MV's editor is unable to allow for custom traits/properties that a game dev may wish to associate with a database object, event, map, etc. Notetags are used to work around such limitations by allowing the game dev to tag certain traits/properties using specific Notetags declared by the related plugin.

Here is a list of Notetag(s) that you may use.

This plugin makes it easy for non-scripters to grant their users some rewards for obtaining, or losing achievements. You do this by using note tags on the specified objects.

Note tags are case insensitive, so any casing will work.

ITEM, WEAPON, and ARMOR Note tags

The below are note tags usable in Item, Weapon, or Armor objects.

WHEN AN ACHIEVEMENT IS UNLOCKED

Notetag: <ACHIEVEMENT GRANT: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>

Aliases: <ACHIEVEMENT UNLOCKED: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>
         <ACHIEVEMENT ACHIEVED: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>

Usage Example(s):

<ACHIEVEMENT GRANT: MY_LOVELY_ACHIEVEMENT,+1/>
<ACHIEVEMENT ACHIEVED: MY_LOVELY_ACHIEVEMENT_SUPERMODE,-10/>

Usage Explanation:

The first example above will give the player 1 of the item,weapon,or armor when the achievement called "MY_LOVELY_ACHIEVEMENT" is unlocked.

The second example will take 10 of the item,weapon,or armor from the user if the achievement "MY_LOVELY_ACHIEVEMENT_SUPERMODE" is unlocked.

WHEN AN ACHIEVEMENT IS REMOVED/LOCKED

Notetag: <ACHIEVEMENT CLEAR: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>

Aliases: <ACHIEVEMENT TAKEN: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>
         <ACHIEVEMENT UNACHIEVED: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>
         <ACHIEVEMENT REKTED: ACHIEVEMENT_NAME,+/-AMOUNT_TO_GIVEHERE/>

Usage Example(s):

<ACHIEVEMENT CLEAR: MY_LOVELY_ACHIEVEMENT,+1/>
<ACHIEVEMENT UNACHIEVED: MY_LOVELY_ACHIEVEMENT_SUPERMODE,-10/>

Usage Explanation:

The first example above will give the player 1 of the item,weapon,or armor when the achievement called "MY_LOVELY_ACHIEVEMENT" is removed or locked.

The second example will take 10 of the item,weapon,or armor from the user if the achievement "MY_LOVELY_ACHIEVEMENT_SUPERMODE" is removed or locked.

CLASSNotetags

The below are note tags usable in the Class object.

WHEN AN ACHIEVEMENT IS UNLOCKED

Notetag: <ACHIEVEMENT GRANT: ACHIEVEMENT_NAME,LEARN/UNLEARN,SKILL_ID/>

Aliases: <ACHIEVEMENT UNLOCKED: ACHIEVEMENT_NAME,LEARN/UNLEARN,SKILL_ID/>
         <ACHIEVEMENT ACHIEVED: ACHIEVEMENT_NAME,LEARN/UNLEARN,SKILL_ID/>

Usage Example(s):

<ACHIEVEMENT GRANT: MY_LOVELY_ACHIEVEMENT,LEARN,1/>
<ACHIEVEMENT ACHIEVED: MY_LOVELY_ACHIEVEMENT_SUPERMODE,UNLEARN,99/>

Usage Explanation:

The first example above will give any party member, whose class has this tag, the skill with ID 1, when this achievement is unlocked.

The second example will take skill 99 from any party member, whose class has this tag when this achievement (MY_LOVELY_ACHIEVEMENT_SUPERMODE) is unlocked.

WHEN AN ACHIEVEMENT IS REMOVED/LOCKED

Notetag: <ACHIEVEMENT CLEAR: ACHIEVEMENT_NAME,LEARN/UNLEARN,SKILL_ID/>

Aliases: <ACHIEVEMENT TAKEN: ACHIEVEMENT_NAME,LEARN/UNLEARN,SKILL_ID/>
         <ACHIEVEMENT UNACHIEVED: ACHIEVEMENT_NAME,LEARN/UNLEARN,SKILL_ID/>

Usage Example(s):

<ACHIEVEMENT CLEAR: MY_LOVELY_ACHIEVEMENT,LEARN,1/>
<ACHIEVEMENT UNACHIEVED: MY_LOVELY_ACHIEVEMENT_SUPERMODE,UNLEARN,99/>

Usage Explanation:

The first example above will give any party member, whose class has this tag, the skill with ID 1, when this achievement is removed/locked.

The second example will take skill 99 from any party member, whose class has this tag.

Changelog

  • Version 1.0: Finished Script!