Official Modmaking Documentation
Chapter Zero : Gamerules & Miscellaneous Options
- Setting Up Basic Gamerules
- Advanced Gamerules & Misc Options
Chapter One : Objects- XYZ Coordinates Visual Reminder
- Spawning Objects & Basic Handling
- Adv Object Options
- Setting Up Triggers
- Object Joints
Chapter Two : Tori Modifications- Body Objects
- Body Joints
- Modifying the Points System
~~~~~~~Presented by:
Toribash Staff &
Event Squad Mod Team
~~~~~~~Written by:
DashSora
Pouffy
Modmaker A-Z
Before You Get Started
To open the modmaker ui through the menu, go to
Mods > Modmaker
To open modmaker guickly, go to freeplay and pless Alt+M.
To play finished mods online, upload them
here. It can take a few minutes for them to upload and be played in Multiplayer. Uploaded mods cannot be edited, so you'll have to re-upload a new version anytime you want to make modifications to your mod.
Some things can only be done using a text editor such as Notepad, TextEdit, Notepad++, or any other text editor.
.
Chapter Zero : Gamerules & Miscellaneous Options
Modmaker Ingame Modding Documentation
back to top
Setting Up Basic Gamerules ►
Figure 0.1 : "Rules"
Match Frame : The number of frames in a match.
- Maximum value compatible with online play is 2000.
Turn Frame : Number of frames elapsed with each turn.
- Maximum functioning value is 500.
- Will glitch to 10,1,1,.. when attempting to export sequences of turnframes.
- e.g. the turnframes from aikidobigdojo.tbm will glitch when exported.
- This can only be fixed in a text editor.
Distance : The distance between tori and uke at the beginning of a match.
Height : The height tori and uke are suspended at the beginning of a match.
Rotation : Both players' rotation relative to the center of the world at the beginning of a match.
- All three of the above are overridden by Player Position and Player Rotation.
Dojo Size : Adjusts the size of the dojo.
- If the dojo is square, this value will be its diameter. If the dojo is a circle, this value will be its radius.
Reaction Time : The time (in seconds) between turns.
Gravity : The gravity applied to all players and objects.
- Default gravity (classic) is 0 0 -9.82.
Dismember : Toggles DM.
Fracture : Toggles fracs.
Disqualification : Toggles DQ.
No Gripping : Toggles grabbing.
Instant DQ Outside Dojo : Toggles DQ Flag.
Frames till DQ : The amount of frames any joint or bodypart will take to DQ.
- If "Instant DQ Outside Dojo" is toggled off, it will take the number of frames specified in "Frames till DQ" to DQ outside the dojo.
Dojo Type : Changes the shape of the dojo between square and circle.
Winner on Draw : Chooses a winner when players have the same amount of points after matchframes run out.
- 0 = draw ; 1 = tori ; 2 = uke.
- "You" means Tori (red name).
Exemption From Damage : Toggles sumo.
- If classic is ticked: only feet and hands will be resistent to DQ.
- If sumo is ticked:feet, hands, and wrists will be resistent to DQ.
Figure 0.1 : "Rules"
First Page, Third Tab
|
Adv. Gamerules & Misc Options ►
Figure 0.2 : "Adv"
We'll only be looking at the things below "Gamerules."
Player Position : Sets player position seperately for Tori and Uke based on coordinates in a 3D grid.
Player Rotation : Sets player rotation seperately for Tori and Uke based on degrees on the XYZ axes.
- See "XYZ Coordinates Visual Reminder" under Chapter One : Objects
- Choose whether you're editing Tori or Uke by checking the appropriate boxes next to "Player Position."
Dismember : Sets the DM threshold.
Fracture : Sets the frac threshold.
Damage to Score : Sets the point threshold.
Figure 0.3 : "Misc"
Reset Everything to Default : Resets all changes to classic.
Remove All Objects : Removes all objects, but keeps body modifications and gamerules edits.
Reset Player Mod : Resets all body modifications to default for You (Tori, Uke, or both players.
Set A Player Mod As Standard : Sets either Tori or Uke's modifications for both players.
Camera Mode : Switches camera between free-cam and the normal camera.
Wireframe Mode : Displays all objects as wireframes.
Window Translucency : Sets the opacity of the modmaker ui.
Use World Model : Non-functional.
Model Name : Non-functional.
Message of the Day : Will display a message in chat upon loading the mod in singleplayer.
World Shader : Sets what shader will load with the mod.
Figure 0.2 : "Adv"
First Page, Fourth Tab
| Figure 0.3 : "Misc"
Second Page, Fourth Tab
|
.
Chapter One : Objects
Modmaker Ingame Modding Documentation
back to top
XYZ Coordinates Visual Reminder ►
Spawning Objects & Basic Handling ►
Figure 1.2 : "Objects"
Spawning Objects
Environment Object : Used to create, select, or delete objects.
- Checking the box will create an object of the currently displayed number.
- You can either type or scroll on the textbox to select any of the 128 avaiable object numbers.
- You can also create an object by double-clicking anywhere on the screen
- The object will be created at wherever your mouse's position is.
Duplicate : (at the bottom of the page) Duplicates the selected object.
- The duplicated object will have the lowest unused object number.
Manipulating Objects
Position : Sets the position of the object.
Scale : Sets the size of the object.
- Boxes use all three fields; Cylinders use only the X and Y fields; Spheres only use the X field.
- For boxes, each field sets the length of the appropriate side
- Cylinders consist of a flat topped cylinder and a half sphere on each end. The half spheres have a height of the X value. The flat topped cylinder has a height of the Y value.
- For spheres, the X field adjusts the radius.
- See the below figure, 1.3-5.
- Very large objects (4-5 digits++) are difficult for Toribash to deal with. They often come with strange movements and glitched hitboxes.
Rotation : Sets the rotation of the object.
- See the above figure, "XYZ Coordinates Visual Reminder"
Color : Sets the colour of the object by its RBG value. The opacity is set with the A field (0 = transparent, 255 = opaque).
Sphere/Box/Cylinder : Sets the shape of the object.
Mass : The mass of the object.
- Will not do anything if the object is static.
Visible : Toggles whether the object is visible or not.
Trigger System : Will be covered in the next section, "Setting up Triggers."
Copy Param : Saves all the values of the currently selected object.
Paste : Applies all saved values to the currently selected object.
- Copy/Paste will not save/modify position values.
Adv Obj Options ►
Figure 1.6 : "Adv"
Environment Object : Similar to the environment object bit on the first page; Allows you to select different objects.
Bounce : Adjusts how much both objects will recoil or bounce back after coming into contact with the selected object.
- Objects with negative bounce will negate the bounce and velocity of any object it comes into contact with.
Friction : Adjusts the friction of the selected object.
- Objects with negative friction will negate the friction of any objects they come into contact with.
- Objects with negative friction will also be more slippery for the player.
Hardness : A multiplier for the points dealt when the selected object comes into contact with a player.
- 0 = No Points (the object will still do damage); 0.5 = Half Points (same amount of damage); 1 = Default; 2 = Twice as many points.
Thrust Frames : Gives an impulse to the selected object every X frames (defined in the text field directly to the right) in any static direction.
- When thrust frames is 1, -Z = Mass x Gravity allows the object to levitate indefinitely
Force : Gives an impulse at the very beginning of the match to the selected object in any static direction.
- Does NOT work for objects as of Toribash Version 5.2.
Weapon : Toggles whether the object is instagib or not.
Static : Toggles whether the object is static or not.
- Only the first 16 objects will work properly as non-static objects.
No Grip : Toggles whether an object can be gripped by either player.
Use Model : Allows you to use a custom .obj model, selected from your mod_assets folder, for the selected object.
Figure 1.6 : "Adv"
First Page, Fourth Tab
|
Setting up Triggers ►
Figure 1.7 : "Objects"
Enable Trigger System : Enables triggers for the select object.
- Must be ticked on or no changes to related parameters will be saved
Group : Attributes a single group to the selected object.
Collide With : Sets what groups the object will trigger with.
- Can select multiple/all "Collide with" options.
Trigger Action : Sets the winner upon trigger.
RGBA : Sets the color of the object after trigger conditions are met.
- Activated by setting opacity (A) to a value other than 0.
Trigger Sound : Plays a sound when triggered.
- Values range 1-7, with pitches ordered from lowest to highest.
Wait, what?
The "Group" parameter gives an object a trigger identity; the "Collide with" parameter sets what identities objects will have to be set to in order to set off the various trigger options.
These two options set what objects identify as, and what other objects they must associate with to trigger an action.
Imagine one object is set to Group 1, or has a trigger identity of 1, and it's set to trigger when it collides with objects with a trigger identity of 2.
Now imagine another object has a trigger identiy of 2, and is set to trigger when it collides with objects with a trigger identity of 1. Now see figures 1.8-10.
In this example, the objects are set to be compatible. There is no win action associated with either object, but they will turn a different colour when triggered. You can see this occur in the gif figure.
If you have an object in group 1, and is set to collide with objects of group 2, it will not trigger if it collides with a group 2 object that is set to collide with group 4 objects.
If two compatible objects have opposite trigger actions (one is set to make Tori win, and the other is set to make Uke win), the match will end in a draw.
Figure 1.8 | Figure 1.9 |
| Figure 1.7 First Page, First Tab |
Figure 1.10
|
Object Joints ►
Figure 1.11 : "Joint Objects"
1-16 : Allows you to select available joint objects for editing.
Enable : Enable/Disable the seletected joint object.
Connected Objects : Select which objects you're jointing together.
Position : Sets the position of the joint object.
- This is the point that the objects will rotate around when joints are set up for motion.
Axis : Set the axis of the joint.
- See "XYZ Coordinates Visual Reminder"
- When any axis value is positive, the object will move towards positive rotation.
- When multiple fields have values other than zero, the resulting axis will be the product of all affected fields
- The actual values in the X, Y, and Z fields don't actually matter; the relationships between those values do. e.g. 1.00 2.00 4.00 is the same as 0.25 0.50 1.00
- Making any axis value negative will flip the direction of rotation.
Range : Sets the range of motion of the joint.
- 1.50 = 90 degrees; 3.00 = 180 degrees; 4.50 = 270 degrees, 6.00 = 360 degrees
- If the range is 3.00 -3.00 and strength + velocity are non-zero, the object will rotate indefinitely.
- There will be a small dip in velocity as the joint reaches the end of its positive range and crosses back over.
- For completely uninterupted, indefinite rotation, significantly overlap the positive and negative ranges.
Strength : How efficiently the joint is able to rotate at the specified velocity.
- Will also determine how stable the joint will be when the range is 0.00 0.00.
- If you're trying to simply connect to objects together without any intended motion, max out strength as much as possible.
- The higher the strength, the less significant the velocity dip is, described above under range in the 3.00 -3.00 example.
- If an object has extremely high velocity but little strength, the joint will rotate quickly until/unless something impedes its movement, after which it will stop.
Velocity : The max speed at which a joint will rotate at.
- A joint may not rotate at its set velocity if it does not have sufficient strength or there is too much impeding its movement.
Visible : Toggles the whether the joint is visible or invisible.
Figure 1.11 : "Joint Objects"
First Page, Second Tab
|
.
Chapter Two : Tori Modifications
Modmaker Ingame Modding Documentation
back to top
Body Objects ►
Figure 2.1 : "Body"
Model Figure : Used to select various bodyparts for editing. The currently selected bodypart is displayed to the right.
- The graphic for the bodyparts is slightly different in appearance to the tori, but everything has the same relative position.
You/Uke : Shows which player is currently being edited. Change players by clicking the other checkbox.
- Only one can be edited at a time, but changes can be merged by using the "Set a player mod as standard" buttons in the "Misc" tab on page 2
Scale : Sets the size of the object.
- Boxes use all three fields; Cylinders use only the X and Y fields; Spheres only use the X field.
- For boxes, each field sets the length of the appropriate side
- Cylinders consist of a flat topped cylinder and a half sphere on each end. The half spheres have a height of the X value. The flat topped cylinder has a height of the Y value.
- For spheres, the X field adjusts the radius.
- See the below figures, 2.2-4.
- Very large objects (4-5 digits++) are difficult for Toribash to deal with. They often come with strange movements and glitched hitboxes.
Density : Adjusts the density of the selected bodypart.
- Density = Mass / Volume
- Adjusting density isn't very useful unless you are calculating the resulting mass (and to do so, the volume).
- To find the volume of a box, Toribash's capsule cylinders, and a sphere, respectively:
- Equations you can paste into Google's search bar (replace X/Y/Z with appropriate values):
- X*Y*Z
- [Y*3.1415*X^2]+[(4/3)*3.1415*X^3]
- [(4/3)*3.1415*X^3]
Position : Sets the position of the bodypart.
Rotation : Sets the rotation of the bodypart.
- Bodyparts rotate around the joint they are attached to.
- e.g. if you rotate the bicep 90 degrees on the Z axis, altering the X pos will actually move it along the Y axis.
Force : Gives an impulse at the very beginning of the match to the selected bodypart in any static direction.
Thrust Frames : Gives an impulse to the selected bodypart every X frames (defined in the text field directly to the right) in any static direction.
- When thrust frames is 1, -Z = Mass x Gravity allows the bodypart to levitate indefintiely
Shape : Sets the shape of the object.
- Some bodyparts have restrictions on what shape they can be.
- e.g. the head can only be set as a sphere.
Figure 2.5 : "Body II"
Shield : Toggles whether the bodypart can be affected by other instagib objects/bodyparts
- Force selects "Weapon" for the bodypart as of 5.2
Weapon : Toggles whether the bodypart is instagib or not.
Static : Toggles whether the bodypart is static or not.
No Grip : Toggles whether a bodypart can be gripped by either player.
No DQ : Toggles whether the bodypart can DQ or not.
Enable Trigger System : Covered in Chapter 2, "Setting up Triggers."
Body Joints ►
Figure 2.6 : "Joints"
Velocity : The speed the joint will rotate at along its axis.
Radius : The size of the joint.
Strength : How efficiently the joint will rotate along its axis.
Damage Threshold : The DM threshold of the individual joint.
Position : Sets the position of the joint.
Axis : Set the axis of the joint.
- See "XYZ Coordinates Visual Reminder"
- When any axis value is positive, the object will move towards positive rotation.
- When multiple fields have values other than zero, the resulting axis will be the product of all affected fields
- The actual values in the X, Y, and Z fields don't actually matter; the relationships between those values do. e.g. 1.00 2.00 4.00 is the same as 0.25 0.50 1.00
- Making any axis value negative will flip the direction of rotation.
Range : Sets the range of motion of the joint.
- 1.50 = 90 degrees; 3.00 = 180 degrees; 4.50 = 270 degrees, 6.00 = 360 degrees
- If you set the velocity and range to zero, and the range to 6.00 -6.00, the joint will be 'fractured' from the beginning of the match.
- Setting the range to 0.00 0.00 and transposing the values to a non-zero will cause the joint to spin indefinitely, outside of the players control.
- The farther from 0.00 the range is, the more uninterupted the motion. e.g. 8.00 8.00 is completely consistent.
- If the range is 3.00 -3.00 and strength + velocity are non-zero, the object will rotate indefinitely.
- There will be a small dip in velocity as the joint reaches the end of its positive range and crosses back over.
- For completely uninterupted, indefinite rotation, significantly overlap the positive and negative ranges.
Enable Trigger System : Covered in Chapter 1, Setting up Triggers.
Figure 2.6 : "Joints"
Second Page, Third Tab
|
Modifying the Points System ►
Figure 2.7 : "Body Score"
Scoring Multiplier : A multiplier for the number of points a particular bodypart getting hit will give your opponent.
- This value can be negative - It will take points away from your opponent.
Damage to Score : Alters the pointthreshold gamerule.
- Despite this showing as if it can be edited for each bodypart, if you change it for one, it will update for all.
Trigger Score : Sets number of points given per-frame when trigger conditions are met for the selected bodypart.
- Will not save/export if "Enable Trigger System" isn't checked on Page 2, Tab 2, "Body II" or Page 2, Tab 3, "Joints"
- Not entirely functional in Toribash version 5.2.
Score Once : Causes the above trigger score action to only happen a single time (presumably).
- Will not save/export if "Enable Trigger System" isn't checked on Page 2, Tab 2, "Body II" or Page 2, Tab 3, "Joints"
- Completely non-functional in Toribash version 5.2.
Figure 2.8 : "Joint Score"
Dismember Score : Sets the number of points given when the selected joint is dismembered.
Figure 2.7 : "Body Score"
Third Page, First Tab
| Figure 2.8 : "Joint Score"
Third Page, Second Tab
|
Last edited by pouffy; Feb 24, 2019 at 01:20 AM.