Importing the class

Link to importing-the-class

It might be required for you to import the package if you encounter any issues (like casting an Array), so better be safe than sorry and add the import at the very top of the file.

ZenScript
Copy
import mods.pmmo.CTUtils;

Name: registerPerk

Registers a perk for use in pmmo-Perks.toml.

ZenScript
Copy
CTUtils.registerPerk(perkID as ResourceLocation, defaults as MapData, customConditions as CTPerkPredicate, onStart as CTPerkFunction, onTick as CTTickFunction, onStop as CTPerkFunction, description as LiteralContents, status as CTDescriptionFunction, side as int)
ParameterTypeDescription
Parameter
perkID
Type
ResourceLocation
Description
the Perk ID
Parameter
defaults
Type
MapData
Description
the default settings for your perk. These
are provided to your execution if no manual user configuration
is present. This allows you to ignore null checks and
displays to users what settings are valid for your perk.
(NOTE: you are not required to add settings here for them
to work. It is permitted to have "hidden" settings.)
Parameter
customConditions
Type
CTPerkPredicate
Description
used to check for conditions in which
a perk is allowed to execute in addition to pmmo's default
checks. For example, if the player is the correct dimension.
Parameter
onStart
Type
CTPerkFunction
Description
the logic executed by this perk when it is triggered
Parameter
onTick
Type
CTTickFunction
Description
logic executed over the "duration" of the perk, if duration is set
Parameter
onStop
Type
CTPerkFunction
Description
the logic executed after the start behavior and all ticking has concluded
Parameter
description
Type
LiteralContents
Description
a short explanation of what the perk does.
Parameter
status
Type
CTDescriptionFunction
Description
Parameter
side
Type
int
Description
which logical side this fires on CLIENT=0, SERVER=1, BOTH=2

Name: setBonus

registers a configuration setting for bonuses to xp gains.

ZenScript
Copy
// CTUtils.setBonus(objectType as invalid, objectID as ResourceLocation, type as invalid, bonus as double?[string])

CTUtils.setBonus(<constant:pmmo:objecttype:value>, <resource:namespace:path>, <constant:pmmo:modifierdatatype:value>, {skillname: 0.0 as double?, otherskillname: 0.0 as double?});
ParameterTypeDescription
Parameter
objectType
Type
invalid
Description
a value of [item, block, entity, dimension, or biome]
Parameter
objectID
Type
ResourceLocation
Description
the object linked to the bonus
Parameter
type
Type
invalid
Description
the relation to the object which predicates the bonus
Parameter
bonus
Type
double?[string]
Description
a map of skills and multipliers (1.0 = no bonus)

Name: setEffectXp

Registers a configuration setting for xp gained from active effects

ZenScript
Copy
CTUtils.setEffectXp(effectID as ResourceLocation, effectLevel as int, xpGains as int?[string])
ParameterTypeDescription
Parameter
effectID
Type
ResourceLocation
Description
the key for the effect
Parameter
effectLevel
Type
int
Description
the level of the effect
Parameter
xpGains
Type
int?[string]
Description
a map of the skills and xp awarded when this effect is active

Name: setEnchantment

sets the requirements for a given enchantment and enchantment level

ZenScript
Copy
// CTUtils.setEnchantment(enchantID as ResourceLocation, enchantLevel as int, reqs as int?[string])

CTUtils.setEnchantment(<resource:namespace:path>, 1, {skillname: 00 as int?, otherskillname: 00 as int?});
ParameterTypeDescription
Parameter
enchantID
Type
ResourceLocation
Description
the key for the enchantment
Parameter
enchantLevel
Type
int
Description
the level of the enchantment
Parameter
reqs
Type
int?[string]
Description
a map of the skills and levels needed to use this enchantment

Name: setMobModifier

registers a configuration setting for mob modifiers to a biome or dimension.

Attribute types for the inner map of mob_modifiers can be referenced
using the static strings in this class prefixed with "MOB_"

ZenScript
Copy
CTUtils.setMobModifier(objectType as invalid, locationID as ResourceLocation, mobID as ResourceLocation, modifiers as double?[string])
ParameterTypeDescription
Parameter
objectType
Type
invalid
Description
a value of [item, block, entity, dimension, or biome]
Parameter
locationID
Type
ResourceLocation
Description
the biome or dimension key
Parameter
mobID
Type
ResourceLocation
Description
the key for the mob being set
Parameter
modifiers
Type
double?[string]
Description
a map of attributes (health, speed, or damage) and modifiers

Link to setNegativeEffect

Name: setNegativeEffect

registers a configuration setting for what status effects should be applied to the player
if they attempt to wear/hold and item they are not skilled enough to use.

ZenScript
Copy
// CTUtils.setNegativeEffect(objectType as invalid, objectID as ResourceLocation, effects as int?[ResourceLocation])

CTUtils.setNegativeEffect(<constant:pmmo:objecttype:value>, <resource:namespace:path>, {<resource:namespace:path>: 00 as int?, <resource:othernamespace:otherpath>: 00 as int?});
ParameterTypeDescription
Parameter
objectType
Type
invalid
Description
a value of [item, block, entity, dimension, or biome]
Parameter
objectID
Type
ResourceLocation
Description
the key for the item being configured
Parameter
effects
Type
int?[ResourceLocation]
Description
a map of effect ids and levels

Link to setPositiveEffect

Name: setPositiveEffect

registers a configuration setting for what status effects should be applied to the player
based on their meeting or not meeting the requirements for the specified location.
Note: a "negative" effect on a dimension will have no use in-game

ZenScript
Copy
// CTUtils.setPositiveEffect(objectType as invalid, objectID as ResourceLocation, effects as int?[ResourceLocation])

CTUtils.setPositiveEffect(<constant:pmmo:objecttype:value>, <resource:namespace:path>, {<resource:namespace:path>: 00 as int?, <resource:othernamespace:otherpath>: 00 as int?});
ParameterTypeDescription
Parameter
objectType
Type
invalid
Description
a value of [item, block, entity, dimension, or biome]
Parameter
objectID
Type
ResourceLocation
Description
the key for the dimension or biome being configured
Parameter
effects
Type
int?[ResourceLocation]
Description
a map of effect ids and levels

Name: setReq

sets a configuration setting for a requirement to perform
and action for the specified item.

ZenScript
Copy
// CTUtils.setReq(objectType as invalid, objectID as ResourceLocation, type as invalid, requirements as int?[string])

CTUtils.setReq(<constant:pmmo:objecttype:value>, <resource:namespace:path>, <constant:pmmo:reqtype:value>, {skillname: 00 as int?, otherskillname: 00 as int?});
ParameterTypeDescription
Parameter
objectType
Type
invalid
Description
a value of [item, block, entity, dimension, or biome]
Parameter
objectID
Type
ResourceLocation
Description
the key for the item being configured
Parameter
type
Type
invalid
Description
the requirement category
Parameter
requirements
Type
int?[string]
Description
a map of skills and levels needed to perform the action

Name: setSalvage

registers a configuration setting for items which can be obtained
via salvage from the item supplied.
This class provides SalvageBuilder as a means to construct
the salvage settings for each output object

ZenScript
Copy
// CTUtils.setSalvage(item as ResourceLocation, salvage as SalvageBuilder[ResourceLocation])

CTUtils.setSalvage(<resource:namespace:path>, {<resource:namespace:path>:builderInstance, <resource:othernamespace:otherpath>:otherbuilderInstance});
ParameterTypeDescription
Parameter
item
Type
ResourceLocation
Description
a key for the item to be consumed by the salvage operation
Parameter
salvage
Type
SalvageBuilder[ResourceLocation]
Description
a map of output item keys and the conditions for salvage

Name: setXpAward

registers a configuration setting for experience that should be awarded
to a player for performing an action with/on a specific object.

ZenScript
Copy
// CTUtils.setXpAward(objectType as invalid, objectID as ResourceLocation, type as invalid, award as long?[string])

CTUtils.setXpAward(<constant:pmmo:objecttype:value>, <resource:namespace:path>, <constant:pmmo:eventtype:value>, {skillname: 00 as long?, otherskillname: 00 as long?});
ParameterTypeDescription
Parameter
objectType
Type
invalid
Description
a value of [item, block, entity, dimension, or biome]
Parameter
objectID
Type
ResourceLocation
Description
the key for the item being configured
Parameter
type
Type
invalid
Description
the event which awards the experience
Parameter
award
Type
long?[string]
Description
a map of skills and experience values to be awarded