Steamworks MV (Visustella)
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.
Contents
- 1 Download
- 2 System
- 3 Support VisuStella
- 4 Introduction
- 5 HOW-TO (USAGE)
- 6 Plugin Commands
- 6.1 GETTING THE USERS STEAM NAME
- 6.2 GETTING THE USERS STEAM ID/ACCOUNT ID
- 6.3 GETTING THE USERS STATIC STEAM ID/STATIC ACCOUNT ID
- 6.4 GETTING THE USERS STEAM LEVEL
- 6.5 GETTING THE NUMBER OF PLAYERS IN GAME NOW
- 6.6 GETTING THE NUMBER OF ACHIEVEMENTS IN YOUR GAME
- 6.7 GETTING IF THE USER HAS STEAM OVERLAY ENABLED
- 6.8 OPENING THE STEAM OVERLAY
- 6.9 OPENING THE STEAM OVERLAY TO A URL
- 6.10 UNLOCKING AN ACHIEVEMENT
- 6.11 REMOVING/CLEARING/LOCKING AN ACHIEVEMENT
- 7 Notetags
- 8 Changelog =
Download
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.
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
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
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!