The first version is available now. (I'm getting just about burnt out with this project

)
Click the download button to get a zip file call RPG_Mod_Updates.zip.
You know where FPSC-Game.exe goes. All the rest goes into FPI EditPad folder (if you are using it).
The doc goes anywhere you want.
What is in RPG MOD?
The first thing you must do is create a setup file: rpg_setup.fpi. This setup file creates the Inventory System as well as initializes five options. If you use FPI EditPad then you can
insert
"rpg_example_setup.txt" into a blank FPI document for guidance. Also the documentation will explain what is needed. NOTE: The docoumentation has not been completed as far as
detail.
rpg_syncrate= (indicates frames per second)
1 = 34 fps (default)
2 = 38 fps
3 = 42 fps
4 = 46 fps
5 = 50 fps
6 = 54 fps
7 = 58 fps
rpg_playerfootfall= (0 or 1)
0 = no player footfall
1=player footfall (default)
rpg_blobshadow= (0 or 1) - This is the circular shadow beneath the characters.
0 = do not show shadow
1 = show shadow (default)
rpg_showblood= (indicates whether or not blood splats are used. Defualt is 0.)
0 = do not show blood splats if present by default
1 = show blood splats if present by default
rpg_usethisblood= (indicate new blood decal)
The name of the decal folder you wish to use. In order to use another decal, then rpg-showblood must be set to 0.
[FOLLOWING TWO ARE JUST NEW]
rpg_disableambientkeys (no parameter) disable the “,” and “.” Ambient keys. Some may think of them as the "<" and ">" keys.
rpg_muteplayerjumpsound (no parameter) – this mutes the sound player makes when he/she jumps.
[VARIABLES]
You can setup variables in the setup file.
rpg_createvar=
All named variables will follow this condition seperated by a hyphen (-).
Example: rpg_creatvar=myvar1-myvar2-myvar3
The action that follows this condition is “none”.
rpg_initvar=
Using this condition you can initially set a variable to a certain value by using the format: variablename value. Each pair must be seperated by a hyphen (-).
Example: rpg_initvar=myvar2 10-myvar3 text-myvar1 5 (Notice that they do not have to be in the same order as they were created. Also notice that you can use text.
The action that follows this condition is “none”.
[THE INVENTORY SYSTEM]
The inventory system is divided into Categories and an Inventory within each category.
Categories
* Six is the maximum number of categories that can be defined.
* Each category defined will be numbered consecutively from 1-6 in the order they aere defined. Category number 0 is reserved for a weapons inventory. However, the Weapon category will not
be used in this version.
* The categories can have a title if you use the text option or the icon/hud option. You can also have a background image for the categories.
The Inventory List
* For each category you can have an unlimited amount of inventory.
* You will setup your inventory list throught he setup file.
* You can setup a
monetary system by defining monetary items. (See documentation).
Both Categories and Inventory List has the options for text styles as well as positioning of the categories and inventory list. It uses' a simple x,y coordinate system. A utility program
will soon be provided to help determine x/y coordiates of the game screen.
[THE CLUE SYSTEM]
This is a special setup that is created by the rpg_clues_setup.fpi file. It will be used when you want to provide clues to the player.
* The "Clues" System also has a category of sorts. You can provide a set of clues with an identifier text code. Each clue is assigned to an entity, either a character or non-character
entity. The name of entity will need to be unique and will be a part of the setup.
* Each clue can be viewed by the player when it is discovered or picked up.
* You can provide for your player to view all of the clues. Those that have been picked up or solved will have their clue displayed. If not either a series of question marks will be used as
a placeholder or you can have your own placeholder text.
* You can also proved for your player to view a group of clues that are associated with the identifier code.
* You can provide a title for the list of clues.
* The list of clues have text styles available to them as well as the title for your list.
[THE TEXTING SYSTEM]
There are several type of texting.
*
Chat Sequencing. This is where you can have a chat with a character.
*
Entity Text Messages. This would usually be used for non-character entities. However, you could use it for a character as well if it is used in a non-chat situation.
*
Text Prompts. Is unique for a non-character entity.
*
Question Sequences. A question sequence is used if you want to ask a question before the player can continue or complete an action, etc.
NOTE: The following characters are not valid within a text string: comma (,) or colon (

. Therefore, you will use the character “~” for a comma and the character “|” for the colon.
These will be replaced by their respective character.
[RPG CONDITION COMMANDS]
Conditions – Inventory
rpg_hasinvitem=(item or $item name or &var name)
· item = inventory item number
· $item = inventory item name
· &var name = variable name that contains invenory item name. This can also contain the inventory item number.
rpg_doesnothaveinvitem=(same as rpg_hasinvitem)
rpg_playercantakeitem
· No parameter
· Use with action rpg_playerbuy. Action rpg_playerbuy determines if the player has purchased the item. If he has then it will set entity’s flag rpg_playertake to 1 and this condition
will allow you to use the “playertake” action as long as player has bought the item. If the player does not purchase the item then the item remains visible within the level.
rpg_playercanbuyitem=( item or $item name or &var name)
· item = inventory item number
· $item = inventory item name
· &var name = variable name that contains invenory item name. This can also contain the inventory item number.
rpg_playercansellitem=( see rpg_playercanbuyitem)
rpg_playercanuseitem=( see rpg_playercanbuyitem)
rpg_playercantradeitem=( see rpg_playercanbuyitem) – Item supplied is what you want
added and the item traded is what you are willing to give up.
rpg_playercandropitem=( see rpg_playercanbuyitem)
rpg_itemreadytouse=( see rpg_playercanbuyitem)
Conditions - Variables
rpg_varisequalto=(&varname1 x or &varname1 &varname2)
· &varname1 = name of variable that is to be compared
· &varname2 = name of variable that has value to be compared with &variable1
· x = the literal value that will be compared to the contents of &varname1
· variables normally would hold ONLY numeric values, however see footnote for string usage.
rpg_varisgreaterthan=(same as rpg_varisequalto)
rpg_varislessthan=(same as rpg_varisequalto)
rpg_varisnotequalto=(same as rpg_varisequalto)
Conditions – Game Play
rpg_canusedoor(no parameters) – see also action command rpg_setcanusedoor
· If the equivalent action is set to 1 for door entity, then this will return true.
· Use primarily for making sure door can be opened when using other means of opening the door and the player saves the level and then reloads it.
rpg_showyesnoprompt=(fontname fontsize ycoord)
· This will create a yes/no prompt which will require the player to choose one or the other. Choosing YES will make the condition true, NO will be false. NOTE: If the player selects
“NO” then this will automatically increment the state value within the script. This is necessary so that the prompt does not remain in a perpetual loop!
· Fontname indicates the name of the font you wish to use.
· Y indicates the y coordinate to place prompt. This will be centered on the x (horizontal) coordinate.
· Fontsize will indicate the size of the font.
rpg_canuseyesnoprompt(no parameters)
rpg_yesnoresult(no parameters)
· If result is yes then returns true. If result is no then returns false.
rpg_pwdinput=(password prompt1 prompt2)
· Supply correct password. It can only be one word long but can be of upper and lower case as well as alphanumeric.
· Prompt1 and prompt2 are defined in the “prompt text” text setup file
rpg_pwdiscorrect=(entity name)
rpg_pwdnotcorrect=(entity name)
rpg_canusepwd
rpg_question=(identifier)
rpg_answeriscorrect=(identifier)
rpg_answernotcorrect=(identifier)
rpg_noanswer(no parameters) – if player didn’t give an answer then this returns true
rpg_playerinputnumberequals=(player input number)
rpg_canusequestion=(identifer)
rpg_entitytimergreater=(time in milliseconds)
rpg_weaponneedrepair(no paramaters)-If weapon being held needs repair will return true
rpg_weaponnotneedrepair(no parameters)-If weapon being held doesn’t need repair then
will return true
rpg_playerhasweapon(no parmaters)
rpg_playerhasthisweapon=(weaponslot or weapon name)
· Weapon name is the name of the gun folder in gamecore\guns
rpg_sellcosttoomuch(no parameters)
rpg_sellcostok(no parameters)
rpg_entityobjectiveisequalto=(X Y)
· X = objective number
· Y = entity name (optional – default is current entity)
Conditions - Clues
rpg_cluesolved=X (X = entity name – If not provided uses current entity name)
rpg_groupcluesolved= X (X = entity name – If not provided uses current entity name)
rpg_pickedupclue= X (X = entity name – If not provided uses current entity name)
[RPG ACTION COMMANDS]
Actions - Inventory
rpg_setplayercansellitem=(item x or $item name !x or &var name x)
· item = inventory item number
· $item = inventory item name
· &var name = variable name that contains invenory item
· x = Boolean number that sets whether or not the player can sell indicated item. Setting x to 1 then player can sell item. Setting x to 0 then player cannot sell item. Default is 0.
Use the “!” character if you used the item name. If used once then be sure to reset to 0 if you do not want the player to sell this item.
rpg_setplayercanbuyitem=(same as rpg_playercansellitem) – Set ability to buy.
rpg_setplayercantradeitem=(same as rpg_playercansellitem) – Set ability to trade.
rpg_setplayercandropitem=(same as rpg_playercansellitem) – Set ability to drop.
· See action rpg_playerdrop.
rpg_setplayercanuseitem=(same as rpg_playercansellitem) – Set ability to use.
· Using an item is the ability to use the item in a particular way other than buying, selling or trading.
rpg_setitembuycost=(item x or $item name !x or &var name !x)
· x is cost of item to buy
rpg_setitemsellamount=(item x or $item name !x or &var name !x)
· x is amount item can be sold
rpg_setitemcanbebought=(same as rpg_playercansellitem) – Used in inventory selection
rpg_setitemcanbesold=(same as rpg_playercansellitem) – Used in inventory selection
rpg_setitemcanbedropped=(same as rpg_playercansellitem) – Used in inventory selection
rpg_setitemcanbetraded=(same as rpg_playercansellitem) – Used in inventory selection
rpg_incinvitem=(choose one of the following sets) – this increments the inventory item
1. item x
2. item &varname1
3. $item name !x
4. $item name !&varname1
5. &varname2 x
6. &varname2 &varname1
The following defines the above values.
· item = inventory item number
· $item = inventory item name
· &var name1 = variable name that contains the increment amount
· &var name2 = variable name that contains invenory item (Either name or value)
· !&var name = variable name that contains the increment amount
· x = Number of items – If you used the item name, then use the “!” character in front of the x
rpg_decinvitem=(same as rpg_incinvitem) – decrement inventory item
rpg_playersell=(item or $item name or &varname) – Sell item
· item = inventory item number
· $item = inventory item name
· &varname = variable name that contains the item number or name
rpg_playerbuy=(same as rpg_playersell) – Buy item
rpg_playertrade=(same as rpg_playersell) – Trade item
rpg_playeruse=(same as rpg_playesell) – Use item
rpg_playerdrop=(same as rpg_playersell) – Drop item
· This will be used in conjuction with the action playerdrop. You will need to use this so that the item that is dropped will be subtracted from the inventory.
rpg_incmaxitems=(same as rpg_incinvitem)
rpg_decmaxitems=( same as rpg_incinvitem)
rpg_characterplayertrade=(&myvar1 &myvar2)
· This is the only action command that requires a variable for each parameter.
· &myvar1 = a variable that contains the item player gives to character
· &myvar2 = a variable that contains the item player gets from character
rpg_dispcaticons=(boolean value)
· value = 1 – category icons are displayed. value = 0 – category icons are hidden.
· When displayed icons will be displayed during game play until it is set to 0
rpg_selectcatinv (no parameters)
Actions - Variables
rpg_newvar=(indicate a variable name. Spaces ARE NOT allowed)
rpg_initvar=(varname value) – Not required if initial value for variable is zero (0).
· Varname is a name of a variable that already exists)
· value is the starting value of variable. It may also be a string value.
rpg_addvar=(varname1 value or varname1 &varname2)
· varname1 is the name of variable you wish to add value. No ampersand is required
· value is the amount you wish to add.
· &varname2 is a variable that contains the amount you wish to add.
rpg_subvar=(same as rpg_addvar - this will subtract variable by indicated positive value)
rpg_mulvar=(same as rpg_addvar - this will multiply variable by indicated value)
rpg_divvar=(same as rpg_addvar - this will divide variable value by indicated value)
rpg_modvar=(same as rpg_addvar - this will mod the variable by indicated value)
Actions - Game Play
Player
rpg_playerchangespeed=(value of player speed)
· The walk speed is the value you provide.
· Whatever value you set the walk speed at, it will be multiplied by 2 for the run speed.
rpg_playernormalspeed(No parameter)
· Run speed is 45
· Walk speed is 25
rpg_playerarmour=(Percentage of armour strength)
· If set to 100 there will be no damage to player.
rpg_usearmourtimer=(Amount of time armour is in use.)
· Amount of time is in seconds. You are able to use decimal fractions as well.
rpg_pointplayeratobject (No parameter) – from airmod.
· Point the player’s camera to entity.
· Use within the entities script assigned to AI MAIN.
pg_playerfootfall= (0 or 1)
· 0 = no player footfall
· 1=player footfall (default)
rpg_cluepickedup=X (X = entity name)
rpg_cluepickedup(no parameter – placed inside entity AI)
rpg_showcategories(no parameters – this will be used so that the player can
select the category to view all the clues within that category.)
Clues
rpg_setcluesolved=
rpg_showclue=W-X-Y F-S(W=width of box, X = x coordinate, Y = y coordinate,)
if X or Y are not provided then the default values will be used for both.
If W is not provided then the default value will be used. F=Font name,
S=Font Size
rpg_showallclues (no parameters)
rpg_showcluesincategory=X(X=identifier. If no identifier provided then
identifier associated with entity will be used.
Weapons
rpg_removeplayerweapons (No parameter. Drop all weapons) – from airmod
rpg_holsterplayerweapon (No parameter. Hide current weapon) – from airmod
rpg_drawplayerweapon (No parameter. Show last weapon held) - from airmod
rpg_dropcurrentweapon(no parameter) – drops/loses current weapon
rpg_setweaponsellamount(sellcost amount) – sets the amount weapon will be sold for
using the rpg_sellweapon command
rpg_sellweapon(no parameters) – current weapon only
rpg_damagecurrentweapon(no parameters) – damage current held weapon
rpg_repaircurrentweapon(no parameters) – repair current held weapon
Entity
rpg_entitydamagefactor=(value)
· value = the factor to increase entity damage.
· Use if you want to increase players strength.
· This increases damage to ALL of the entities.
· Set value between 1 and 2 (e.g. 1.50)
· This only increases damage slightly so is not real useful. For example, it takes 5 shots with a colt 45 to kill the thug. Setting this to 1.7, it will take 3 shots. Settinig it to
3.0 will still take 3 shots.
· Setting value to 1 resets normal strength.
· You can set strengths individually by using th map editors params.
· You can also use the standard FPSC headshot command for one shot kill.
rpg_setifused=(string value)
· value – sets the entities ifused field to value indicated.
· Use within the entities script assigned to AI MAIN.
rpg_setusekey=(string value)
· value – sets the entities usekey field to value indicated.
· Use within the entities script assigned to AI MAIN.
rpg_setentitycollected = (1 or 0)
rpg_buynoninvitem= (buycost in total units)
rpg_entitytimerstart(no parameter)
rpg_entitynoharm=(1 or 0)
rpg_setcanusedoor(no parameters) – sets door entity so that it can use it after a save/load
rpg_hideentity=(entity name) – Name of entity you wish to hide (used in trigger zone)
rpg_hideentity(no parameter) – Use this within entity’s main AI.
rpg_showentity=(entity name) – Name of entity you wish to hide (used in trigger zone)
rpg_showentity(no parameter) – Use this within entity’s main AI.
Texting or Talking
1. Character Chat
a. rpg_talkbox=
b. rpg_startconversation
2. Entity Message
a. rpg_showentmsg=(identifier sync wait)
· This must be placed within the entity’s main AI that belongs to this message.
· The identifier is the message to use that belongs to the entity.
· You may put this identifier within a variable.
· sync-if you are displaying more that one line of text, then set this to 1 on the last line that is diplayed.
· wait- if you are displaying more that one line of text, then set this to 1 on the last line that is diplayed. Usually used with the sync parameter.
3. Prompt Text
a. rpg_showtext=(identifier sync wait-fontname-fontsize-ycoord)
· You may use the identifier within a variable.
· The prompt identifier indicates the text you wish to display
· sync-if you are displaying more than one line of text, then set this to 1 on the last line that is diplayed.
· wait-1 = wait for player to press <ENTER> - 2 = displays yes/no prompt. Default is 1. If “wait” is 2 then follow this with the fontname, fontsize, and the y coordinate. Remember
the screen resolution is 1024x768.
.
4. Quick Text Display
a. rpg_showquicktext=(pos-size text)
· pos=”t” for top, “m” for middle, “b” for bottom of screen
· size=size of font
· the dash is required to separate pos and size
· text is simply the text you wish to show
· The characters comma ( , ) or colon ( : ) are not valid within a text string:
· Use the “~” character for a comma and “|” for a colon.
i.e. Hi~ example| will display Hi, example:
Actions - Miscellaneous
rpg_wait4mouseclick(no parameter – wait for mouse botton to be pressed by player)
rpg_wait4enter(no parameter – wait for enter key to be pressed by player)
rpg_wait4time=(milliseconds to wait)
rpg_setnextlevel=(next level to play) – sets next level variable
rpg_savecurrentlevel=(slot number 10-99)
rpg_loadlevel=(slot number 10-99)
rpg_setentityobjective=(X Y)
· Set X to 0 if you do not want the current entity to be an objective any longer
· Set X to any other number to make the current entity an objective (be sure it's unique)
· Set Y to name of entity (optional – default is current entity)
rpg_leavelevelearly (no parameters)
· This will cause the current level to quit and a selected level to load
Actions - Debug
rpg_dispvar (no parameters) – This will display All variables. Clears screen to black. This could be used as well for the player if developer wants.
-----------------------------------------------
OliveTreeGames