Skill Creation
Breaks down the keys and :term:`strings </Doc/Tutorials/TheJsonFormat>` used by Skills.
Go to Json/Skill/, and then see the .json files present for examples, and _BlankSkill.json for a template.
Assume all keys are required, unless stated otherwise.
If it requires a non-blank (e.g. ""
) value depends on the given "skillType":
value and any noted technicalities.
name
"name": "Name of Skill",
Sets the name of the skill, presented to the player in various locations throughout the game and interface, and for internal referral.
costType & cost
"costType": "ep",
The type of cost the skill requires in order to be casted. The "cost":
key seen below decides the amount based on its given value.
There are three possible types:
"ep"
consumes the caster’s current energy by a given amount."hp"
inflicts arousal on the caster by the given flat amount plus an additional percent based on(max health - 100) * 0.15
."sp"
deducts the given amount of spirit from the caster. This is a flat deduction, so it does run the risk of the player defeating themselves by mistake.
"cost": "10",
The given numerical amount of the requirement cost and deduction for the caster, based on the given resource from "costType"
.
Negative numbers technically work to allow the cost to benefit the caster, though that means the skill will have no visible downside, unless intended to be countered in a combat event.
requiredLevel & learningCost
"requiredLevel": "1",
Level required for the player to learn the skill from a vendor. Does not prevent the player from using the skill if they later don’t meet its requirements while still possessing the skill.
The key does not apply to monsters, and thus can be safely removed for tidiness in such cases.
"learningCost": "100",
Ero cost of the skill from vendors in-game.
The key does not apply to monsters, and thus can be safely removed for tidiness in such cases.
skillType
"skillType": "attack",
The type of skill it’s, deciding its overall functionality. This influences the behavior of later keys. The following table presents all possible values it can be given.
|
Increase the target’s arousal, and can apply a status effect via the |
|
Recover the target’s arousal, and can remove a given status effect via the |
|
Recover the target’s EP, and can remove a given status effect via the |
|
Recover the target’s SP, and can remove a given status effect via the |
|
The skill is intended to inflict a status effect on the target. |
|
Like the |
statType & requiredStat
"statType": "Luck",
The type of stat the skill scales off of, used by various keys. See Stat Reference.
"requiredStat": "10",
The required amount of the given "statType":
in order to learn the skill from vendors in-game.
It does not prevent the player from using the skill if they later don’t meet its requirements while still possessing the skill.
targetType
"targetType": "single",
What participants in the encounter are intended to be struck by the caster’s skill.
|
The caster uses the skill on themselves. |
|
Hits the chosen target with the skill once. |
|
Like |
|
Loops 3 times. |
|
Loops 4 times. |
|
Loops 5 times. |
|
Hits all targets present in the encounter. Player only. |
|
The caster uses the skill to try and escape all given stances, and if applicable, restraint. Player only. |
Stance & Control Keys
Take heed to think through the logic of your stance control keys to avoid any potential mishaps or errors that’d prevent them from working as expected. Ensure capitalization is correct. Also keep in mind that stances are nebulous, see Stance Reference.
You can optionally apply or remove a stance via the following keys.
|
Applies any of the given stances. |
|
Removes the listed stances for both the caster and target. |
Critically, the skill can be made unavailable to the player or monster AI depending on the conditions of the following technically optional keys.
|
Requires the caster to be in the specified stances. You can also use |
|
Caster cannot be in any of the specified stances. You can also use |
|
Target must be in all of the specified stances. You can also use |
|
Target cannot be in any of the specified stances. You can also use |
|
Target cannot have any of these sets of arrays for active stances, meaning all of the listed stances at once. As per the example, if the target is in the blowjob stance 5 times (see imps), the skill cant be used. |
|
Requires target to have this status effect. You can also use |
|
Required target status effect must have a minimum of the given potency value. A reminder that it’s optional, such as if only checking for Charm. |
|
Target cannot have any of the specified status effects. You can also use |
|
Target cannot have potency equal to or higher for specified status effects in the previous key. You can also use |
|
Requires caster to have this status effect. You can also use |
|
Required caster status effect must have a minimum of the given potency value. A reminder that it’s optional, such as if only checking for Charm. |
|
Caster cannot have any of the specified status effects. You can also use |
|
Target must have all the specified perks. Can repeat a perk to require multiple stacks of the same perk. You can also use |
|
Target must have the specified perk. You can also use |
|
Target cannot have any of the specified perks. You can also use |
|
Caster must have all the specified perks. Can repeat a perk to require multiple stacks of the same perk. You can also use |
|
Caster must have the specified perk. Can repeat a perk to require multiple stacks of the same perk. You can also use |
|
Caster cannot have any of the specified perks. You can also use |
attack & healing Keys
"power": "10",
"minrange": "90",
"maxrange": "110",
"recoil": "25",
The following keys are required for "attack"
or any healing based "skillType":
skills.
|
Base damage or healing value of the skill. |
|
The randomized percent minimum damage or healing range of the skill. |
|
The randomized percent maximum damage or healing range of the skill. |
|
Percentage of the damage dealt to the target recoiled back at the caster. Cannot be a negative value. |
"scalesWithStatusEffect": "Aphrodisiac",
"flatDamageSF-FlatScaling": "5",
"flatDamageSF-PercentScaling": "0",
"fotalDamageSF-PercentScaling": "0",
"critDamage": "60",
"initiative": "30",
"accuracy": "-10",
The following keys are optional for "attack"
or any healing based "skillType":
skills.
|
Percent damage modifier for the critical damage dealt. Flatly additive/subtractive to any existing modifiers. |
|
Flat initiative modifier for the skill’s turn order. Flatly additive/subtractive to any existing modifiers. |
|
Flat accuracy modifier for whether the skill successfully lands. Flatly additive/subtractive to any existing modifiers. |
|
Scales the damage or healing if the given status effect is on the target. Stacks on potency, see Status Effect Reference for potency reference. |
|
Flat base damage boost for each stack of |
|
Percent damage boost for each stack of |
|
Boost to total skill damage for each stack of |
Lastly, see "statusOutcome":
in Dialogue Keys below for a note on combat event based skills.
statusEffect Keys
"statusEffect": "Aphrodisiac",
"statusChance": "20",
"statusDuration": "3",
"statusPotency": "30",
"statusResistedBy": "Power",
"statusText": "Laced Magnum Rod",
"statusResistedBy": "Power",
The following keys are required for "statusEffect"
or "Afflict"
"skillType":
skills,
optional for all others depending on if they use the "statusEffect"
key. See Status Effect Reference.
|
What status effect it uses. Use |
|
Base percent chance of the effect successfully applying on the target. |
|
How many turns the effect lasts. |
|
Ranges from: Aphrodisiac flat arousal per turn (can stack), Restrain durability, Sleep flat energy drain per turn (can stack), how much of a given stat Buff/Debuff, or number of stacks for Paralysis or Trance. |
|
Which target stat resists the affect for avoiding application. Irrelevant to Buffs/Debuffs. |
|
Will change status effect name in game. Making it unique for Buff/Debuff skills ensures they don’t overlap with others in tracking. |
The following keys are optional for all possible "skillType":
values.
|
For stat buff/debuff skills, deciding their scaling based on the set |
descrip
"descrip": "Cuddles the target till they don't feel like battlefucking anymore!",
The skill’s tooltip description. Duration is automatically provided in the tooltip, refer to existing skills in-game, and compare it to their JSON’s "descrip":
key.
"PlayWhilePlayerSleeping"
can be provided as a value for Monster skills to trigger the skills "statusOutcome":
while the player is asleep.
Useful for combat events. Refer to Sofia’s InciteDreams.json skill for reference.
Dialogue Keys
The following keys are conditional triggers based on the outcome of the skill, similar to lineTriggers. This can use text markup, and thus in extension, functions for starting combat events, using vfx/sfx, and so forth.
The following are required for "attack"
or any healing based "skillType":
skills.
|
Triggers on the skill successfully landing. |
|
Triggers on the skill missing. |
The following are required for "statusEffect"
or "Afflict"
skillType:
skills utilizing "Restrain"
or "EventRestrain"
.
|
Triggers displayable text when the target struggles. |
|
Triggers displayable text when the charmed target struggles. |
|
Triggers displayable text when the target breaks the restraints. |
|
Triggers displayable text when the target fails to break the restraints. |
The following are optional for "statusEffect"
or "Afflict"
skillType:
skills utilizing "Restrain"
or "EventRestrain"
status effects:
|
Triggers displayable text if the target loses while restrained. Made for Pin, but could have other uses. |
The following keys are required for "statusEffect"
or "Afflict"
based skillType:
skills.
|
Triggers displayable text upon the skill hitting its target. Providing |
|
Triggers displayable text upon the skill missing its target. Can take functions for combat events and related. |