VXACEAbilities System
BMM_Archive · July 15, 2026
Original Source
- Original title: Abilities System
- Original author: Paramecium13
- Original date: June 28, 2015
- Source thread: https://forums.rpgmakerweb.com/threads/abilities-system.41726/
- Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS3 Scripts (RMVX Ace)
Summary
Abilities SystemBy Paramecium13 This is a simple script that adds 'abilities' to actors. An ability can be either leveled or not leveled. A leveled ability has a number, its level associated with it (e.g. Smithing: Level 27), whereas an ability that is not leveled does not. This script has a section where you can add more abilities, using the same format as the example abilities. Abilities must be viewed and modified by script calls, using the methods contained in the script. Features: Add and remove abilities
Archived First Post
This is a simple script that adds 'abilities' to actors. An ability can be either leveled or not leveled. A leveled ability has a number, its level associated with it (e.g. Smithing: Level 27), whereas an ability that is not leveled does not. This script has a section where you can add more abilities, using the same format as the example abilities. Abilities must be viewed and modified by script calls, using the methods contained in the script.
Features:
- Add and remove abilities
- Enable or disable abilities(this is different than adding or removing, for example, if someone who knows smithing has a broken arm they cannot smith, thus smiting would be disabled, but they could still tell someone how to smith or read about how to smith better),
- Check if an actor has a specific ability and if it is enabled
- Get the level of a leveled ability (using this on an ability that is not leveled returns '1')
- Increase or decrease the level of an ability
- Check if any actor in the party has an ability
- Find who has the highest level of an ability in the party and what that level is.
- Perform an ability check, using a normal distribution, for actors and for parties
- Perform a simple ability check, which checks if the ability level is at least the difficulty level, for actors and parties
- Weapons, armors, and states can modify ability levels, by putting <AbilityBonus: abilityId,n> into the notes field in the data base. 'abilityId' should be the ID of the ability you want to affect without a colon in front of it (e.g. 'smithing' instead of ':smithing') and 'n' should be the amount you want to change the ability by.
- A very simple (i.e. ugly) scene that shows abilities and their levels; accessed from the main menu
- Crafting abilities, which can be use to craft items. Crafting abilities can start off with recipes already learned (but which may require a higher ability level) and can have additional recipes added by script calls.
For more information see the script itself.
Script
Terms of Use
Both Paramecium Core and Abilities System are free for use in commercial and non-commercial games, so long as credit is provided.
Features Mentioned
- Add and remove abilities
- Enable or disable abilities(this is different than adding or removing, for example, if someone who knows smithing has a broken arm they cannot smith, thus smiting would be disabled, but they could still tell someone how to smith or read about how to smith better),
- Check if an actor has a specific ability and if it is enabled
- Get the level of a leveled ability (using this on an ability that is not leveled returns '1')
- Increase or decrease the level of an ability
- Check if any actor in the party has an ability
- Find who has the highest level of an ability in the party and what that level is.
- Perform an ability check, using a normal distribution, for actors and for parties
- Perform a simple ability check, which checks if the ability level is at least the difficulty level, for actors and parties
- Weapons, armors, and states can modify ability levels, by putting into the notes field in the data base. 'abilityId' should be the ID of the ability you want to affect without a colon in front of it (e.g. 'smithing' instead of ':smithing') and 'n' should be the amount you want to change the ability by.
- A very simple (i.e. ugly) scene that shows abilities and their levels; accessed from the main menu
- Crafting abilities, which can be use to craft items. Crafting abilities can start off with recipes already learned (but which may require a higher ability level) and can have additional recipes added by script calls.
- This script requires my core script.
- Spoiler
- #==============================================================================## ## Paramecium Core V 0.1 ## June 28, 2015 ## ##------------------------------------------------------------------------------## This is my core script, required for some of my other scripts. You may use ## the classes and methods in it in your scripts as long as you give me credit. ##==============================================================================#($imported ||= {})["Paramecium"] = truemodule Paramecium #Uses the Box–Muller transform to generate normally distributed random numbers def self.stnRand() return Math.sqrt( -2 * Math.log(rand())) * Math.cos( 2 * Math:I * rand()) end # Generates normally distributed numbers with a mean of μ and a standard # deviation of σ. def self.nRand(μ,σ) return μ + stnRand()* σ end # Performs a "skill check" with a difficulty level of 'difficulty'. # returns true if the player (or whoever is performing the skill check) # passes it and false if they fail. When the skill level is equal to the # difficulty level, there is a fifty percent chance of passing. This # method uses a default standard deviation of 2.5, which was chosen arbitrarily. def self.skillCheck(skillLevel, difficulty,s = 2.5) x = nRand(skillLevel, s) return x >= difficulty end def self.show_selection(array) params = [] choices = [] array.each{|item| choices.push(item[0]) } params.push(choices) params.push(0) params[0].each {|s| $game_message.choices.push(s) } #$game_message.choice_cancel_type = params[1] $game_message.choice_proc = Proc.new {|x| $paramecium_choice =(x) } end def self.get_choice(array) array[$paramecium_choice][1] end # This method calls a scene that shows a list of choices for the player and ] # returns an object depending on their choice and the array you put into this # method. The parameter 'array' is an array of the form: #[["string_0",object_0],["string_1",object_1],...,["string_(n-1)",object_(n-1)]]; # with a length of n. The method will display the strings in a choice window, # similar to the one used for events def self.selection(array) show_selection(array) Fiber.yield until not $game_message.busy? get_choice(array) end def self.multipleChoice(array,duplicates=false) array = 0 $game_party.gain_item($data_items[n], amount) else $game_party.lose_item($data_items[n], amount) end } when "w" change = Proc.new {|n, amount| if n >= 0 $game_party.gain_item($data_items[n], amount) else $game_party.lose_item($data_items[n], amount) end } when "a" change = Proc.new {|n, amount| if n >= 0 $game_party.gain_item($data_items[n], amount) else $game_party.lose_item($data_items[n], amount) end } else return false end array.each {|entry| change.call(entry[0],entry[1]) } end # Returns an array with the specified position(s) in its sub-arrays negated. def self.negatePos(array,pos) r = [] if pos.is_a? Array myCheck = Proc.new {|i| pos.include?(i)} else myCheck = Proc.new {|i| i == pos} end array.each{|entry| entryClone = [] entry.each_index {|i| entryClone.push(myCheck.call(i)? -1*entry : entry) } r.push(entryClone) } r end class MultiMap def initialize(hash) @data = hash @length = hash.length @domain = hash.keys end def image(x) return @hash[x] end def preImage(y) arr = Array.new for i in 0..@length-1 arr
- For more information see the script itself.
- Script
Downloads / Referenced Files
RPG Maker Web attachments are mirrored locally when available. Other external links remain hosted by their original creator or third-party service.
- Download: demo/test project
License / Terms Note
#==============================================================================## ## Paramecium Core V 0.1 ## June 28, 2015 ## ##------------------------------------------------------------------------------## This is my core script, required for some of my other scripts. You may use ## the classes and methods in it in your scripts as long as you give me credit. ##==============================================================================#($imported ||= {})["Paramecium"] = truemodule Paramecium #Uses the Box–Muller transform to generate normally distributed random numbers def self.stnRand() return Math.sqrt( -2 * Math.log(rand())) * Math.cos( 2 * Math:I * rand()) end # Generates normally distributed numbers...
Creator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
Topic Summary
Loading summary...