N
Register
m (→‎PlayerMod: fixed error)
Tag: Visual edit
 
(35 intermediate revisions by 15 users not shown)
Line 1: Line 1:
Mods for [[NReality]] take the form of a string added to the end of the standard map data. When the map is loaded, the string disappears and the modifications are applied. The string is formatted like this:<br />
+
Mods for [[NReality]] take the form of a string added to the end of the standard map data. When the map is loaded, the string disappears and the modifications are applied. The string is formatted like this:
   
tiledata|objectdata'''|bgImage|fgImage|NRealityMapType|objectMod|playerMod|AreaTrigger'''
+
TileData|ObjectData'''|BackgroundImage|ForegroundImage|NRealityMapType|ObjectMod|PlayerMod|AreaTrigger'''
   
  +
==Background Image==
[[Player 03]] has created a basic [[User:Player 03/NReality mods|list of mods]] for NReality which can be used when looking for simple mods instead of scrolling through all this.
 
 
== Background Image ==
 
   
 
This function allows a URL image to be inserted into the map. A Background Image will be displayed in the background and will be covered by tiles and objects.<br />
 
This function allows a URL image to be inserted into the map. A Background Image will be displayed in the background and will be covered by tiles and objects.<br />
   
== Foreground Image ==
+
==Foreground Image==
   
This function also allows a URL image to be inserted into the map. A Foreground Image will be displayed in front of everything else in the map, meaning if you want to see anything, you will need to use a program that can create transparency (e.g: GIMP, Photoshop etc). This excludes paint, so if that's all you have, then you cannot create transparency.
+
This function also allows a URL image to be inserted into the map. A Foreground Image will be displayed in front of everything else in the map, meaning if you want to see anything, you will need to use a program that can
   
The foreground image can also be made into a color filter, as described [http://metanet.2.forumer.com/index.php?showtopic=19543&st=1426 here]. To do this, add '''?#''' to the end of the image URL, where '''#''' is a number between 1 and 14.
+
The foreground image can also be made into a color filter. To do this, add '''?#''' to the end of the image URL, where '''#''' is a number between 1 and 14.
   
  +
==NReality Map Type==
== NRealityMapType ==
 
   
 
Any text in this slot will appear as a map's category when the map is displayed in the userlevels menu.
 
Any text in this slot will appear as a map's category when the map is displayed in the userlevels menu.
   
== ObjectMod ==
+
==Object Mods==
   
This slot allows modifications to any type of object, though modifications to the ninja should be done in the [[List of NReality Mods#playerMod|playerMod]] slot. Modifications are applied to every object of the selected type, not to individual objects.
+
This allows modifications to any type of object, modifications to the ninja are done in the [[List of NReality Mods#PlayerMods|Player Mods]] section. Most modifications are applied to every object of the selected type, a few have individual object properties which will override the global object modification.
   
  +
Object modifications are added by adding:<br />
The modifications are formatted like this: '''objectNumber,property,modification;''', and any number of them can be strung together.<br />
 
  +
'''ObjectNumber,Property,Modification'''<br />
'''objectNumber''' indicates the type of object and currently must be some of the numbers between 0 and 141 depending on the object's number.<br />
 
  +
to the end of the map data after four verticle bars
'''property''' indicates the property of the object to be modified.<br />
 
'''modification''' indicates the new value of the property, and it must be a number.
 
   
  +
'''ObjectNumber'''<br />
Some of the modifications in here don't acctually go after the fourth "|", some of them need to be manually typed into the object data area as an object (e.g: 6^x,y,Path,0,122,direction, for a tile drone). This allows modifications to be applied to any single object.
 
  +
The type of object and must be a number between 0 and 141 depending on the objects number.<br />
  +
'''Property'''<br />
  +
The property of the object to be modified.<br />
  +
'''Modification'''<br />
  +
The value of the property, it must be a number.
   
  +
Multiple can be added by seperating them with a semi-colon.
The objects indicated by each number are these:<br />
 
[[List of NReality Mods#zap drone, seeker drone (0)|0]]: zap drone, seeker drone<br />
 
[[List of NReality Mods#laser drone, rotating laser drone (1)|1]]: laser drone, rotating laser drone<br />
 
[[List of NReality Mods#chaingun drone (2)|2]]: chaingun drone<br />
 
[[List of NReality Mods#gold (3)|3]]: gold<br />
 
[[List of NReality Mods#bounceblock (4)|4]]: bounceblock<br />
 
[[List of NReality Mods#launchpad (5)|5]]: launchpad<br />
 
[[List of NReality Mods#gauss turret (6)|6]]: gauss turret<br />
 
[[List of NReality Mods#floorguard, ceiling guard (7)|7]]: surface guards<br />
 
[[List of NReality Mods#ninja (8)|8]]: ninja<br />
 
[[List of NReality Mods#drones (9)|9]]: drone (note: does not appear to affect any drones; use 0, 1, and 2 instead)<br />
 
[[List of NReality Mods#oneway platform (10)|10]]: oneway platform<br />
 
[[List of NReality Mods#thwump (11)|11]]: thwump<br />
 
[[List of NReality Mods#door (12)|12]]: door<br />
 
[[List of NReality Mods#rocket launcher (13)|13]]: rocket launcher<br />
 
[[List of NReality Mods#exit (14)|14]]: exit<br />
 
[[List of NReality Mods#mine (15)|15]]: mine<br />
 
[[List of NReality Mods#force field drone (16)|16]]: force field drone<br />
 
[[List of NReality Mods#Ghost Drone (101, 102, or 103)|101, 102, 103]]: ghost drone<br />
 
[[List of NReality Mods#Rocky Drone (121)|121]]: rocky drone<br />
 
[[List of NReality Mods#Tile Drone (122)|122]]: tile drone<br />
 
[[List of NReality Mods#Alarm Drone (132)|132]]: alarm drone<br />
 
[[List of NReality Mods#Greedy Drone (141)|141]]: greedy drone
 
   
  +
'''Object Numbers'''<br />
Glitched drones (a.k.a. "eye drones") cannot be modified because the game does not recognize them as any of the three modifiable types of drones.
 
  +
[[List of NReality Mods#Zap .26 Seeker Drones|0: Zap &amp; Seeker Drones]]<br />
  +
[[List of NReality Mods#Laser .26 Rotating Laser Drones|1: Laser &amp; Rotating Laser Drones]]<br />
  +
[[List of NReality Mods#Chaingun Drone|2: Chaingun Drone]]<br />
  +
[[List of NReality Mods#Gold|3: Gold]]<br />
  +
[[List of NReality Mods#Bounce Block|4: Bounce Block]]<br />
  +
[[List of NReality Mods#Launchpad|5: Launchpad]]<br />
  +
[[List of NReality Mods#Gauss Turret|6: Gauss Turret]]<br />
  +
[[List of NReality Mods#Floor guards|7: Floor guards]]<br />
  +
[[List of NReality Mods#Ninja|8: Ninja]]<br />
  +
[[List of NReality Mods#Drones|9: Drones]]<br />
  +
[[List of NReality Mods#One-way Platform|10: One-way Platform]]<br />
  +
[[List of NReality Mods#Thwump|11: Thwump]]<br />
  +
[[List of NReality Mods#Doors|12: Doors]]<br />
  +
[[List of NReality Mods#Rocket Turret|13: Rocket Turret]]<br />
  +
[[List of NReality Mods#Exit|14: Exit]]<br />
  +
[[List of NReality Mods#Mine|15: Mine]]<br />
  +
[[List of NReality Mods#Force Field Drone|16: Force Field Drone]]<br />
  +
[[List of NReality Mods#Ghost Drone|101, 102, 103: Ghost Drones]]<br />
  +
[[List of NReality Mods#Rocky Drone|121: Rocky Drone]]<br />
  +
[[List of NReality Mods#Tile Drone|122: Tile Drone]]<br />
  +
[[List of NReality Mods#Alarm Drone|132: Alarm Drone]]<br />
  +
[[List of NReality Mods#Greedy Drone|141: Greedy Drone]]
   
  +
Glitched drones/Eye Drones cannot be modified because the game does not recognize them as any of the three modifiable types of drones.
All objects have some [[List of NReality Mods#Additional properties|additional properties]] that can be applied to them. As these are the same for all objects, they are only listed once, in their own section.
 
   
Note: no matter how big you make an object, it cannot interact with the ninja unless he is in [http://www.harveycartel.org/metanet/tutorials/tutorialB.html#section3 the same grid square or an adjacent one].
+
No matter how big you make an object, it cannot interact with the ninja unless they are in the same grid square or an adjacent one.
   
=== About Special drones ===
+
===<u>Zap & Seeker Drones</u>===
   
  +
Object Number: 0
Other types of drones can be created by modifying a part of the standard code for a drone ('''6^x,y,path,specialType,droneType,direction'''). '''x''' and '''y''' control the drone's coordinates, '''path''' controls the drone's pathfinding algorithm, '''specialType''' indicates whether or not the drone is the standard drone of its type (e.g., whether it is a seeker drone rather than a regular drone), '''droneType''' controls the type of drone, and '''direction''' controls the drone's direction.
 
   
  +
'''r'''<br />
Here are the parameters that can be set for each type of object:<br />
 
  +
Default = 9<br />
(Note: not all parameters have an effect on gameplay.)
 
  +
Size<br />
  +
'''Speed'''<br />
  +
Default = 1.75<br />
  +
'''ChaseSpeed'''<br />
  +
Default = 3.423<br />
  +
Seeker Drones Only
   
  +
0 is treated as the default value. If you want a drone to stop when it sees the ninja, use a very low value instead.
=== Zap Drone & Seeker Drone (0) ===
 
 
'''r'''<br />
 
default = 9<br />
 
'''speed'''<br />
 
default = 1<br />
 
'''chaseSpeed'''
 
default unknown
 
Note: the game treats 0 as the default value. If you want a drone to stop when it sees the ninja, use a very low value (like 1e-9) instead.
 
   
 
Also, speed and chaseSpeed can be modified per drone, by use of ^speed,chaseSpeed after the drone's code.
 
Also, speed and chaseSpeed can be modified per drone, by use of ^speed,chaseSpeed after the drone's code.
   
=== Laser Drone & Rotating Laser Drone (1) ===
+
===<u>Laser & Rotating Laser Drones</u>===
  +
  +
Object Number: 1
   
 
'''r'''<br />
 
'''r'''<br />
default = 9<br />
+
Default = 9<br />
'''speed'''<br />
+
Size<br />
default= ???<br />
+
'''Speed'''<br />
'''laserPrefireDelay'''<br />
+
Default = 0.385<br />
  +
'''LaserPrefireDelay'''<br />
default = 30; determines the amount of time the drone will spend charging<br />
 
  +
Default = 30<br />
'''laserPostfireDelay'''<br />
 
default = 40; determines how long the drone will pause after firing<br />
+
The amount of time the drone will spend charging<br />
'''laserRate'''<br />
+
'''LaserPostFireDelay'''<br />
  +
Default = 40<br />
default = 80; determines how long the drone will fire<br />
 
  +
How long the drone will pause after firing<br />
'''laserLen'''<br />
 
  +
'''LaserRate'''<br />
default = 7; usage unknown<br /><br />
 
  +
Default = 80<br />
  +
How long the drone will fire<br />
  +
'''LaserLen'''<br />
  +
Default = 7<br />
  +
Usage unknown<br /><br />
   
  +
Rotating laser drone<br />
To create a rotating laser drone, replace the fourth [[List of NReality Mods#Special drones|attribute]] of a normal laser drone ('''specialType''') with 1. The code for a rotating laser drone should look like '''6^x,y,path,1,1,direction'''.
 
  +
'''StartingAngle'''<br />
  +
Default = 0<br />
  +
Starting angle of the laser<br />
  +
'''RotateSpeed'''<br />
  +
Default = 0.5<br />
  +
Speed the laser rotates<br />
  +
A negative number will change the direction<br />
  +
'''FixedLaserLength'''<br />
  +
Leave blank to have the laser act normal<br />
  +
If set the laser will always be a fixed number of pixels long & can go through walls<br />
  +
'''AlwaysMove'''<br />
  +
Boolean<br />
  +
Rotating Laser Drones will move as they fire and rotate
   
  +
====<u>Individual Rotating Laser Drone</u>====
Modifications for the rotating laser drone:<br />
 
'''startingAngle'''<br />
 
default = 0; controls the angle at which it starts<br />
 
'''rotateSpeed'''<br />
 
default = 0.5; controls the speed and direction of rotation<br />
 
'''fixedLaserLength'''<br />
 
no default value; if set, the laser will always be a fixed number of pixels long and can go through walls<br />
 
'''alwaysMove'''<br />
 
default = 0; if set to anything else, the laser drone will move as it fires and rotates.
 
   
  +
6^x,y,Path,1,1,Direction'''^StartingAngle,RotationSpeed,LaserLength,AlwaysMove,Speed'''
Also, adding '''^''1'',''2'',''3'',''4'',''5''''' to the end of the code for a rotating laser drone will set the starting angle (1), rotation speed (2), the laser length (3), whether or not the laser moves (4), and its speed (5). This will override global modifications of these same attributes.
 
   
  +
'''StartingAngle'''<br />
=== Chaingun Drone (2) ===
 
  +
Default = 0<br />
  +
Starting angle of the laser<br />
  +
'''RotationSpeed'''<br />
  +
Default = 0.5<br />
  +
Speed the laser rotates<br />
  +
'''LaserLength'''<br />
  +
Leave blank to have the laser act normal<br />
  +
If set the laser will always be a fixed number of pixels long & can go through walls<br />
  +
'''AlwaysMove'''<br />
  +
Boolean<br />
  +
The Rotating Laser Drone will move as it fires and rotates
  +
'''Speed'''<br />
  +
Default = 0.385<br />
   
  +
===<u>Chaingun Drone</u>===
'''r'''<br />
 
default = 9<br />
 
'''speed'''<br />
 
'''chaingunPrefireDelay'''<br />
 
default = 35; determines the amount of time the drone will spend charging<br />
 
'''chaingunPostfireDelay'''<br />
 
default = 60; determines how long the drone will pause after firing<br />
 
'''chaingunMaxNum'''<br />
 
default = 8; usage unknown<br />
 
'''chaingunRate'''<br />
 
default = 6; determines the time, in frames, between each bullet<br />
 
'''chaingunSpread'''<br />
 
default = 0.3; usage unknown
 
   
  +
Object Number: 2
=== Gold (3) ===
 
   
 
'''r'''<br />
 
'''r'''<br />
  +
Default = 9<br />
default = 6
 
  +
Size<br />
  +
'''Speed'''<br />
  +
Default = 0.645<br />
  +
'''ChaingunPrefireDelay'''<br />
  +
Default = 35<br />
  +
Amount of time the drone will spend charging<br />
  +
'''ChaingunPostfireDelay'''<br />
  +
Default = 60<br />
  +
How long the drone will pause after firing<br />
  +
'''ChaingunMaxNum'''<br />
  +
Default = 8<br />
  +
Usage unknown<br />
  +
'''ChaingunRate'''<br />
  +
Default = 6<br />
  +
Time in frames between each bullet<br />
  +
'''ChaingunSpread'''<br />
  +
Default = 0.3<br />
  +
Usage unknown
   
=== Bounceblock (4) ===
+
===<u>Gold</u>===
   
  +
Object Number: 3
'''stiff'''<br />
 
default = 0.05; controls the speed at which the block bounces back- very high or very low values may prevent it from doing so<br />
 
'''mass'''<br />
 
default = 0.2; controls the amount of force the block applies against the ninja- negative values make it propel the ninja forward<br />
 
'''sleepThreshold'''<br />
 
default = 40; determines how close the block has to come to its start position before it stops moving- low values make it stop sooner<br />
 
'''sleepTimer'''<br />
 
default = 0; usage unknown
 
 
=== Launchpad (5) ===
 
   
 
'''r'''<br />
 
'''r'''<br />
default = 6<br />
+
Default = 6<br />
'''strength'''<br />
+
Size<br />
default = 5.1428568; controls launchpad strength
 
   
=== Gauss Turret (6) ===
+
===<u>Bounce Block</u>===
   
  +
Object Number: 4
'''closeAimSpeed'''<br />
 
default = 0.05; determines how fast the crosshairs move when close to the ninja, represents the percentage of the distance between them covered<br />
 
'''midAimSpeed'''<br />
 
default = 0.035; determines how fast the crosshairs move when a medium distance away from the ninja<br />
 
'''farAimSpeed'''<br />
 
default = 0.03; determines how fast the crosshairs move when far away from the ninja<br />
 
'''aimSpeed'''<br />
 
default = 0.03; determines how fast the crosshairs move the frame after the turret fires<br />
 
'''outerThreshold'''<br />
 
default = 9216; determines how far away from the ninja is considered "far" away<br />
 
'''midThreshold'''<br />
 
default = 1764; determines what is considered to be "mid" distance from the ninja<br />
 
'''innerThreshold'''<br />
 
default = 576; determines how close the crosshairs must be to the ninja to be considered "close"<br />
 
'''shotRate'''<br />
 
default = 60; controls the minimum time between shots<br />
 
'''shotTimer'''<br />
 
default = 0; usage unknown<br />
 
'''fireDelayTimer'''<br />
 
default = 0; usage unknown<br />
 
'''prefireDelay'''<br />
 
default = 10; controls the turret's warm-up time<br />
 
'''postfireDelay'''<br />
 
default = 10; controls the turret's cooldown time
 
   
  +
'''Stiff'''<br />
=== Surface Guards (7) ===
 
  +
Default = 0.05<br />
  +
Speed at which the Bounce Block bounces back, a very high or very low number may prevent it from doing so<br />
  +
'''Mass'''<br />
  +
Default = 0.2<br />
  +
Amount of force the block applies against the ninja, a negative number will make it propel the ninja<br />
  +
'''SleepThreshold'''<br />
  +
Default = 40<br />
  +
After how much time in frames after the ninja stops touching the Bounce Block will stop moving<br />
  +
'''SleepTimer'''<br />
  +
Default = 0<br />
  +
Usage unknown
  +
  +
===<u>Launchpad</u>===
  +
  +
Object Number: 5
   
 
'''r'''<br />
 
'''r'''<br />
default = 6<br />
+
Default = 6<br />
'''speed'''<br />
+
Size<br />
  +
'''Strength'''<br />
default = 5.1428568
 
  +
Default = 5.1428568<br />
  +
Launchpad strength
   
  +
===<u>Gauss Turret</u>===
Ceiling guards are created by adding '''^1''' to the code of a floorguard ('''4^x,y'''). Its speed can be changed by adding '''^1,speed''' instead. A wall guard is created by adding either '''^2'''(left) or '''^3'''(right) instead.
 
   
  +
Object Number: 6
In short:
 
   
Floor Guard : 4^x,y,1^0<br />
+
'''CloseAimSpeed'''<br />
Ceiling Guard : 4^x,y,1^1<br />
+
Default = 0.05<br />
  +
How fast the crosshairs move when close to the ninja, represents the percentage of the distance between them covered<br />
Left Wall Guard : 4^x,y,1^2<br />
 
  +
'''MidAimSpeed'''<br />
Right Wall Guard : 4^x,y,1^3<br />
 
  +
Default = 0.035<br />
  +
How fast the crosshairs move when a medium distance away from the ninja<br />
  +
'''FarAimSpeed'''<br />
  +
Default = 0.03<br />
  +
How fast the crosshairs move when far away from the ninja<br />
  +
'''AimSpeed'''<br />
  +
Default = 0.03<br />
  +
How fast the crosshairs move the frame after the turret fires<br />
  +
'''OuterThreshold'''<br />
  +
Default = 9216<br />
  +
Set 'Far' distance<br />
  +
'''MidThreshold'''<br />
  +
Default = 1764<br />
  +
Set 'Mid' distance<br />
  +
'''InnerThreshold'''<br />
  +
Default = 576<br />
  +
Set 'Close' distance<br />
  +
'''ShotRate'''<br />
  +
Default = 60<br />
  +
Minimum time between shots<br />
  +
'''ShotTimer'''<br />
  +
Default = 0<br />
  +
Usage unknown<br />
  +
'''FireDelayTimer'''<br />
  +
Default = 0<br />
  +
Usage unknown<br />
  +
'''PrefireDelay'''<br />
  +
Default = 10<br />
  +
Turrets warm-up time<br />
  +
'''PostfireDelay'''<br />
  +
Default = 10<br />
  +
Turrets cooldown time
   
  +
===<u>Floor Guards</u>===
...although adding ^0 for the normal floorguard is completely unnecessary.
 
   
  +
Object Number: 7
Values over about 30 for guards will only continue to increase the guards' aesthetic size; the size of their collision detection zone caps at about 30.
 
   
  +
'''r'''<br />
Important note: Increasing guards' size can have adverse effects on their placement; when one attempts to load the code, it changes the guard's location on the Y axis to compensate for the size (so that the bottom of the guard will still touch the bottom). When going into the editor, it reverts changes, but keeps the coordinates intact, which leads to newly located guards, moved upwards. Adding the code again and loading will again compensate, moving the guard even further up. Furthermore, attempting to move the guard manually in the editor, while helping, still does not completely eradicate the changes; when exiting out of the editor, the guards will be moved back up, though to a lesser amount.
 
  +
Default = 6<br />
  +
Size<br />
  +
'''Speed'''<br />
  +
Default = 5.1428568
   
  +
Values over about 30 for thier size will only continue to increase the aesthetic size; the maximum size of their collision detection zone is 30.
Added also is an always chase function.
 
   
  +
Increasing the size can have adverse effects on their placement; when one attempts to load the code, it changes the guard's location on the Y axis to compensate for the size (so that the bottom of the guard will still touch the bottom). When going into the editor, it reverts changes, but keeps the coordinates intact, which leads to newly located guards, moved upwards. Adding the code again and loading will again compensate, moving the guard even further up. Furthermore, attempting to move the guard manually in the editor, while helping, still does not completely eradicate the changes; when exiting out of the editor, the guards will be moved back up, though to a lesser amount.
4^x,y,1^type,speed,alwaysChase
 
   
  +
====<u>Individual Floor Gaurd</u>====
alwaysChase: default 0, set it to 1 if you want it able to always chase the ninja
 
   
  +
4^x,y,1'''^Type,Speed,AlwaysChase'''
=== Ninja (8) ===
 
   
  +
'''Type'''<br />
See [[List of NReality Mods#PlayerMod|Player Mod]] section.
 
  +
0 = Floor<br />
  +
1 = Ceiling<br />
  +
2 = Left Wall<br />
  +
3 = Right Wall<br />
  +
'''Speed'''<br />
  +
Default = 5.142856<br />
  +
'''AlwaysChase'''<br />
  +
Boolean<br />
  +
Floor Gaurds will always chase the ninja regardless of thier current position
   
=== Drones (9) ===
+
===<u>Drones</u>===
   
  +
Object Number: 9
No known properties.
 
   
  +
No known properties
=== Oneway Platform (10) ===
 
  +
  +
===<u>One-way Platform</u>===
  +
  +
Object Number: 10
   
 
You can use special triggers to make oneway platforms appear and disappear.
 
You can use special triggers to make oneway platforms appear and disappear.
   
oneway special off : make the one way disappear
+
oneway special off: make the one way disappear
   
 
oneway special on:<br />
 
oneway special on:<br />
 
case 1: if the one way has disappeared, it will reappear<br />
 
case 1: if the one way has disappeared, it will reappear<br />
case 2: if the one way is not disappeared, then it will rotate 90 degree
+
case 2: if the one way is not disappeared, then it will rotate 90 degree
  +
  +
See more on special triggers [http://n.wikia.com/wiki/ListofNRealityMods#SpecialTriggers here].
   
  +
===<u>Thwump</u>===
See more on special triggers [http://n.wikia.com/wiki/List_of_NReality_Mods#Special_Triggers here].
 
   
  +
Object Number: 11
=== Thwump (11) ===
 
   
(some apparently useless settings omitted)<br />
 
 
'''xw'''<br />
 
'''xw'''<br />
default = 9; controls thwump's width<br />
+
Default = 9<br />
  +
Width<br />
 
'''yw'''<br />
 
'''yw'''<br />
default = 9; controls thwump's height<br />
+
Default = 9<br />
'''fallspeed'''<br />
+
Height<br />
  +
'''Fallspeed'''<br />
default = 4.2857148; controls thwump's forward speed<br />
 
'''raisespeed'''<br />
+
Default = 4.2857148<br />
  +
Speed of falling Thwump<br />
default = 1.7142852; controls thwump's backward speed<br />
 
'''speed'''<br />
+
'''Raisespeed'''<br />
  +
Default = 1.7142852<br />
duplicate of fallspeed
 
  +
Speed of rising/retracting Thwump<br />
  +
'''Speed'''<br />
  +
Duplicate of Fallspeed
   
  +
===<u>Doors</u>===
A note about variables '''xw''' and '''yw''':<br />
 
   
  +
Object Number: 12
The further you increase the proportions, the more "bouncy" it becomes. This is hardly noticeable at all for smaller values over the default of 9, but for higher values it becomes increasingly easy to trigger the "bounciness" (which seems to be easier to trigger the faster you come at it, and is always easier on the sides). Any values over about 26 pixels for either dimension (though the x dimension is *slightly* more sensitive to this) will cause it to be reliably "bouncy," making it so it is impossible to stay touching it for more than a frame or two at a time. The collision detection seems to cap at about 30 pixels wide/tall, but the magnitude of the "bounciness" continues to increase with no known limit, eventually killing the ninja the moment he hits the collision box, which is nested deep inside the sprite. Furthermore, while the blue "zap" part at the end continues to zap correctly upon impact (up to about 30), the thwump's collision with tiles does not seem to scale at all. It will "hit" the tile about a normal thwump's length away from the end of it, meaning the blue "zap" part can easily clip through many tiles, along with the rest of it.
 
   
=== Door (12) ===
 
 
'''doorsize'''<br />
 
default = 10; apparently useless<br />
 
 
'''r'''<br />
 
'''r'''<br />
default = ~10; apparently useless<br />
+
Default = 10<br />
'''maxtimer'''<br />
+
Usage unknown<br />
  +
'''Doorsize'''<br />
default = 5; controls how long the normal doors stay open after the ninja passes through
 
  +
Default = 10<br />
  +
Usage unknown<br />
  +
'''Maxtimer'''<br />
  +
Default = 5<br />
  +
How long Normal Doors stay open after the ninja passes through
   
=== Rocket Launcher (13) ===
+
===<u>Rocket Turret</u>===
   
  +
Object Number: 13
'''speed'''<br />
 
default = 0; usage unknown<br />
 
'''maxspeed'''<br />
 
default = 3.4285716; controls the rocket's maximum speed<br />
 
'''startaccel'''<br />
 
default = 0.1; controls the rocket's acceleration for the first frame after it is created<br />
 
'''curaccel'''<br />
 
duplicate of startaccel<br />
 
'''accelrate'''<br />
 
default = 1.1; controls the rocket's acceleration<br />
 
'''turnrate'''<br />
 
default = 0.1; controls how far the rocket turns in one frame- at high values, it tends to turn too far and actually becomes less accurate<br />
 
'''isHoming'''<br />
 
default = false; usage unknown<br />
 
'''prefireDelay'''<br />
 
default = 10; controls how long the turret waits before firing a rocket, but has no effect on lagtime<br />
 
'''fireDelayTimer'''<br />
 
default = 0; usage unknown
 
   
  +
'''Speed'''<br />
=== Exit (14) ===
 
  +
Default = 0<br />
  +
Usage unknown<br />
  +
'''Maxspeed'''<br />
  +
Default = 3.4285716<br />
  +
Rockets maximum speed<br />
  +
'''Startaccel'''<br />
  +
Default = 0.1<br />
  +
Rockets starting speed<br />
  +
'''Curaccel'''<br />
  +
Duplicate of startaccel<br />
  +
'''Accelrate'''<br />
  +
Default = 1.1<br />
  +
Rockets acceleration<br />
  +
'''Turnrate'''<br />
  +
Default = 0.1<br />
  +
How far the rocket turns in one frame, at high values it turns too far & becomes less accurate<br />
  +
'''IsHoming'''<br />
  +
Default = 0<br />
  +
Usage unknown<br />
  +
'''PrefireDelay'''<br />
  +
Default = 10<br />
  +
How long the turret waits before firing a rocket<br />
  +
'''FireDelayTimer'''<br />
  +
Default = 0<br />
  +
Usage unknown
  +
  +
===<u>Exit</u>===
  +
  +
Object Number: 14
   
 
'''r'''<br />
 
'''r'''<br />
  +
Default = 12<br />
default = 12; does not affect the exit switch.
 
  +
Does not effect the exit switch<br />
  +
Size
   
~27 appears to be the functional limit. The door will still aesthetically grow, but will functionally be only about 27 pixels wide.
+
27 is the functional limit. The door will still aesthetically grow, but will functionally be 27 pixels wide.
   
=== Mine (15) ===
+
===<u>Mine</u>===
  +
  +
Object Number: 15
   
 
'''r'''<br />
 
'''r'''<br />
default = ~4
+
Default = 4<br />
  +
Size
   
~40 appears to be the functional limit. The mines will still aesthetically grow, but they functionally only be about 40 pixels wide.
+
40 is the functional limit. The mines will still aesthetically grow, but they functionally be 40 pixels wide.
   
=== Force Field Drone (16) ===
+
===<u>Force Field Drone</u>===
  +
  +
Object Number: 16
   
 
This drone repels or attracts the ninja towards or away from it when it reaches a certain range.
 
This drone repels or attracts the ninja towards or away from it when it reaches a certain range.
   
  +
'''r'''<br />
6^x,y,path,0,16,direction^detectRadius,forcePower,forceDelayTimer,forceMaxCount,forceMaxCountDelay,alwaysMove<br />
 
  +
Default = 9;
  +
Size<br />
  +
'''Speed'''<br />
  +
Default = 1.75;<br />
  +
'''DetectRadius'''<br />
  +
Default = 100<br />
  +
Distance at which the drone starts firing<br />
  +
'''ForcePower'''<br />
  +
Default = 4<br />
  +
Force at which the ninja is pushed away from the drone, the ninjas velocity is reset<br />
  +
A negative number will pull the ninja towards the drone<br />
  +
'''ForceDelayTimer'''<br />
  +
Default = 10<br />
  +
Length of the drones cooldown time, the drone keeps moving during this time<br />
  +
'''ForceMaxCount'''<br />
  +
Default = 3<br />
  +
Number of consecutive shots the drone can fire before recharging<br />
  +
'''ForceMaxCountDelay'''<br />
  +
Default = 200<br />
  +
Time spent in frames recharging after ForceMaxCount is reached<br />
  +
'''AlwaysMove'''<br />
  +
Default = 0<br />
  +
Boolean<br />
  +
The Force Field drone will keep moving while firing
   
  +
====<u>Individual Force Field Drone</u>====
These can be added at the end of the code in the ObjectMod section or on to any individual drone.
 
   
  +
6^x,y,Path,0,16,Direction'''^DetectRadius,ForcePower,ForceDelayTimer,ForceMaxCount,ForceMaxCountDelay,AlwaysMove<br />'''
'''detectRadius'''<br />
 
default = 100; controls the distance at which the drone starts firing<br />
 
'''forcePower'''<br />
 
default = 4; controls the force at which the ninja is pushed away from the drone (note: the ninja's velocity is reset when the drone fires, like when he hits a launchpad)<br />
 
'''forceDelayTimer'''<br />
 
default = 10; controls the length of the drone's cooldown time (the drone keeps moving during this time, unlike other drones)<br />
 
'''forceMaxCount'''<br />
 
default = 3; controls the number of consecutive shots the drone can fire before recharging for a longer time<br />
 
'''forceMaxCountDelay'''<br />
 
default = 200; controls the time spent recharging after forceMaxCount is reached<br />
 
'''alwaysMove'''<br />
 
default = 0; controls whether or not the force field drone will stop when it activates it force field; 0 for stopping, 1 for continuing.
 
   
  +
'''DetectRadius'''<br />
These properties, as well as the [[List of NReality Mods#Additional properties|additional properties]] for all objects, can be modified in the standard way:<br />
 
'''speed'''<br />
+
Default = 100<br />
  +
Distance at which the drone starts firing<br />
default = 1;<br />
 
'''r'''<br />
+
'''ForcePower'''<br />
  +
Default = 4<br />
default = 9;
 
  +
Force at which the ninja is pushed away from the drone, the ninjas velocity is reset<br />
  +
A negative number will pull the ninja towards the drone<br />
  +
'''ForceDelayTimer'''<br />
  +
Default = 10<br />
  +
Length of the drones cooldown time, the drone keeps moving during this time<br />
  +
'''ForceMaxCount'''<br />
  +
Default = 3<br />
  +
Number of consecutive shots the drone can fire before recharging<br />
  +
'''ForceMaxCountDelay'''<br />
  +
Default = 200<br />
  +
Time spent in frames recharging after ForceMaxCount is reached<br />
  +
'''AlwaysMove'''<br />
  +
Boolean<br />
  +
The Force Field drone will keep moving while firing
  +
  +
===<u>Ghost Drone</u>===
  +
  +
Object Numbers: 101, 102, 103
  +
  +
Ghost drones follow the ninja whenever he isn't facing towards them and stop when he is (A reference to a "boo" from super mario bros.)
  +
  +
'''Acceleration'''<br />
  +
Default = 0.02<br />
  +
Acceleration in pixels per frame<br />
  +
'''Maximum Velocity'''<br />
  +
Default = 2<br />
  +
Maximum speed<br />
  +
'''Always Chase'''<br />
  +
Boolean<br />
  +
Ghost Drone will not stop<br />
  +
'''Minimum Alpha'''<br />
  +
Default = 0<br />
  +
Alpha when Ghost Drone stops
  +
  +
====<u>Individual Ghost Drone 101</u>====
  +
  +
6^x,y,Path,0,101,Direction^Acceleration,MaximumVelocity,AlwaysChase<br />
  +
  +
When the Ninja is facing towards:<br />
  +
Chases the ninja<br />
  +
Kills on contact<br />
  +
Visible<br />
  +
When the Ninja is facing away:<br />
  +
Kills the Ninja on contact<br />
  +
Alpha visibility
  +
  +
'''Acceleration'''<br />
  +
Default = 0.02<br />
  +
Acceleration in pixels per frame<br />
  +
'''Maximum Velocity'''<br />
  +
Default = 2<br />
  +
Maximum speed<br />
  +
'''Always Chase'''<br />
  +
Boolean<br />
  +
Ghost Drone will not stop
  +
  +
====<u>Individual Ghost Drone 102</u>====
  +
  +
6^x,y,Path,0,102,Direction^Acceleration,MaximumVelocity,MinimumAlpha<br />
  +
  +
When the Ninja is facing towards:<br />
  +
Chases the Ninja<br />
  +
Kills on contact<br />
  +
Alpha visibility<br />
  +
When the Ninja is facing away:<br />
  +
Will not interact with the Ninja<br />
  +
Visibile
  +
  +
'''Acceleration'''<br />
  +
Default = 0.02<br />
  +
Acceleration in pixels per frame<br />
  +
'''Maximum Velocity'''<br />
  +
Default = 2<br />
  +
Maximum speed<br />
  +
'''Minimum Alpha'''<br />
  +
Default = 0<br />
  +
Alpha when Ghost Drone stops
  +
  +
====<u>Individual Ghost Drone 103</u>====
   
  +
6^x,y,Path,0,103,Direction^Acceleration,MaximumVelocity<br />
=== Ghost Drone (101, 102, or 103) ===
 
   
  +
When the Ninja is facing towards:<br />
Ghost drones follow the ninja whenever he isn't looking and stop when he is. The main difference between the types is that the second type does not hurt the ninja when stopped, and the third type acts like a rocky drone when stopped.
 
  +
Chases the Ninja<br />
  +
Kills on contact<br />
  +
Visibile<br />
  +
When the Ninja is facing away:<br />
  +
Acts as a [[NReality_Modifications#Rocky_Drone|Rocky_Drone]]<br />
  +
Alpha visibility
   
6^x,y,path,0,101,direction^acceleration,maxvelocity,alwaysChase<br />
 
6^x,y,path,0,102,direction^acceleration,maxvelocity,minAlpha<br />
 
6^x,y,path,0,103,direction^acceleration,maxvelocity<br />
 
   
  +
'''Acceleration'''<br />
These can be added at the end of the code in the ObjectMod section or on to any individual drone.
 
  +
Default = 0.02<br />
  +
Acceleration in pixels per frame<br />
  +
'''Maximum Velocity'''<br />
  +
Default = 2<br />
  +
Maximum speed
   
  +
===<u>Rocky Drone</u>===
'''acceleration'''<br />
 
default = 0.02; controls how fast the drone accelerates towards the ninja<br />
 
'''maxvelocity'''<br />
 
default = 2; controls how fast the drone can go<br />
 
'''alwaysChase'''<br />
 
default = undefined; if set to 1, the first type of drone will not stop moving<br />
 
'''minAlpha'''<br />
 
default = 0; controls how completely the second type can fade away
 
   
  +
Object Number: 121
=== Rocky Drone (121) ===
 
   
 
This drone is essentially a platform that moves like a drone.
 
This drone is essentially a platform that moves like a drone.
   
6^x,y,path,'''0''',121,direction^speed,chase_speed<br />
+
6^x,y,path,'''0''',121,direction^speed,chasespeed<br />
   
 
Change number in bold to '''1''' to make the drone seeking.
 
Change number in bold to '''1''' to make the drone seeking.
Line 340: Line 522:
 
These properties, as well as the [[List of NReality Mods#Additional properties|additional properties]] for all objects, can be modified in the standard way:<br />
 
These properties, as well as the [[List of NReality Mods#Additional properties|additional properties]] for all objects, can be modified in the standard way:<br />
 
'''speed'''<br />
 
'''speed'''<br />
default = 1;<br />
+
Default = 1;<br />
 
'''r'''<br />
 
'''r'''<br />
default = 9;
+
Default = 9;
   
=== Tile Drone (122) ===
+
===<u>Tile Drone</u>===
  +
  +
Object Number: 122
   
 
This drone will place tiles behind it as it travels.
 
This drone will place tiles behind it as it travels.
   
6^x,y,Path,'''0''',122,direction^speed,chase_speed,tiles<br />
+
6^x,y,Path,'''0''',122,direction^speed,chasespeed,tiles<br />
   
 
Change number in bold to '''1''' to make the drone seeking.
 
Change number in bold to '''1''' to make the drone seeking.
Line 354: Line 538:
 
Tiles is the text string for the tile pattern, it is just like the map data, the tile drone will loop through the string to lay the tiles. For example, if you use "NN10", the drone will place two 5-tiles, an E-tile, a space, and then repeat.
 
Tiles is the text string for the tile pattern, it is just like the map data, the tile drone will loop through the string to lay the tiles. For example, if you use "NN10", the drone will place two 5-tiles, an E-tile, a space, and then repeat.
   
=== Alarm Drone (132) ===
+
===<u>Alarm Drone</u>===
  +
  +
Object Number: 132
   
 
This drone will emit a circular laser going outwards when it sees the ninja. The ninja will die upon contact with the laser.
 
This drone will emit a circular laser going outwards when it sees the ninja. The ninja will die upon contact with the laser.
   
6^x,y,Path,'''0''',132,direction^speed,chase_speed,laserMinRadius,laserMaxRadius,radiusUp,radiusDown,neverDown,alwaysMove<br />
+
6^x,y,Path,'''0''',132,direction^speed,chasespeed,laserMinRadius,laserMaxRadius,radiusUp,radiusDown,neverDown,alwaysMove<br />
   
 
Change number in bold to '''1''' to make the drone seeking.
 
Change number in bold to '''1''' to make the drone seeking.
Line 369: Line 555:
 
alwaysMove, if it is set to 1 then the drone will move even when it sees you
 
alwaysMove, if it is set to 1 then the drone will move even when it sees you
   
=== Greedy Drone (141) ===
+
===<u>Greedy Drone</u>===
  +
  +
Object Number: 141
   
 
This drone can steal or give time/gold to the ninja.
 
This drone can steal or give time/gold to the ninja.
   
6^x,y,Path,'''0''',141,direction^speed,chase_speed,collect_coin<br />
+
6^x,y,Path,'''0''',141,direction^speed,chasespeed,collectcoin<br />
   
 
Change number in bold to '''1''' to make the drone seeking
 
Change number in bold to '''1''' to make the drone seeking
   
For collect_coin:
+
For collectcoin:
 
value for stealing 1 second = -40
 
value for stealing 1 second = -40
 
value for stealing 1 frame = -1
 
value for stealing 1 frame = -1
Line 383: Line 571:
 
This value must be an integer.
 
This value must be an integer.
   
=== AI Pathing Objects ===
+
===<u>Text Drone</u>===
  +
  +
Text Drones settings are all configured individually
  +
  +
The Text Drone merely serves to add dialogue to the game.
  +
  +
6^x,y,Path,1,201,direction^textArray,xoffset,yoffset,align,border,textColor,backgroundColor,fontSize,font,bold,italic,underline
  +
  +
Apart from textArray, all other parameters are optional
  +
  +
textArray: escaped text characters joined by ":"<br />
  +
align: 0=left, 1=center, 2=right<br />
  +
border: 0=no border, 1=has border<br />
  +
textColor & backgroundColor: from 000000 to FFFFFF<br />
  +
font: sans, serif, typewriter, if you put other fonts, other players may not able to see it.<br />
  +
bold, italic, underline&nbsp;: 0 or 1
  +
  +
specialOn Trigger: Display next text in array<br />
  +
SpecialOff Trigger: Hiding the text
  +
  +
escape your text:
  +
http://n.infunity.com/swf/escape.swf<br /><br />
  +
If you want to make the drone 'chase' the ninja, use AI Pathing Objects to chase the ninja. You can then ajust the x and y offset to your taste.
  +
  +
Note: Non english characters will not be able to be shown on all users computers.
  +
  +
==Player Mods==
  +
  +
The syntax for this slot is much like the syntax for the objectMod slot, except without the identifier number: '''property,modification;'''. Again, any number of these can be strung together.
  +
  +
Here is a list of all modifiable properties:
  +
  +
'''r'''<br />
  +
Default = 10<br />
  +
'''maxspeedAir'''<br />
  +
Default = 5; controls the maximum speed the ninja can accelerate up to in the air (the ninja can go faster if he is propelled by something else, though)<br />
  +
'''maxspeedGround'''<br />
  +
Default = 5; controls the maximum speed the ninja can accelerate up to on the ground<br />
  +
'''groundAccel'''<br />
  +
Default = 0.15; controls the ninja's acceleration on the ground<br />
  +
'''airAccel'''<br />
  +
Default = 0.1; controls the ninja's aerial acceleration<br />
  +
'''g'''<br />
  +
Default = 0.15; controls gravity until the first time the ninja jumps<br />
  +
'''d'''<br />
  +
Default = 0.99; controls air resistance until the first time the ninja jumps<br />
  +
'''normGrav'''<br />
  +
Default = 0.15; controls gravity after the ninja has jumped<br />
  +
'''normDrag'''<br />
  +
Default = 0.99; controls air resistance after the ninja has jumped<br />
  +
'''jumpGrav'''<br />
  +
Default = 0.025; controls gravity for a short time after the jump button is pressed for as long as it it held<br />
  +
'''max_jump_time'''<br />
  +
Default = 30; controls the maximum amount of time that jump gravity can apply to the ninja<br />
  +
'''winDrag'''<br />
  +
Default = 0.8; controls the speed the ninja experiences after he passes the activated exit door. Increase to make him move faster away from it, or set to "0" to stop moving completely<br />
  +
'''wallFriction'''<br />
  +
Default = 0.13; controls the friction the ninja experiences while wallsliding<br />
  +
'''skidFriction'''<br />
  +
Default = 0.92; controls the friction the ninja experiences while sliding to a stop (note: higher values mean less friction, and values above 1 cause the ninja to speed up)<br />
  +
'''standFriction'''<br />
  +
Default = 0.8; controls the friction the ninja experiences as he stops sliding entirely<br />
  +
'''jumpAmt'''<br />
  +
Default = 1; controls the strength with which the ninja pushes off from the floor/slopes/walls<br />
  +
'''jump_y_bias'''<br />
  +
Default = 2; controls the upwards motion (downwards if negative) the ninja experiences regardless of where he jumps from<br />
  +
'''terminal_vel'''<br />
  +
Default = 9; controls the speed at which hitting the ground becomes deadly<br />
  +
'''noWallJump'''<br />
  +
Default = 0; set to 1 to disable wall jump<br />
  +
'''noWallSlide'''<br />
  +
Default = 0; set to 1 to disable wall slide<br />
  +
'''maxJumpCount'''<br />
  +
Default = 1; set to 2 to enable double jump (i.e. you can jump in air), set to 3 to enable triple jump and so on, set to 0 to disable floor jump<br />
  +
'''jumpResetYSpeed'''<br />
  +
Default = 0; set to 1 to reset coordinate Y speed when jumping<br />
  +
  +
==Pathing==
   
 
All objects except rocket launcher and floor guard can be applied for Drone's AI Pathing system on it.
 
All objects except rocket launcher and floor guard can be applied for Drone's AI Pathing system on it.
   
AI Pathing Objects : append
+
AI Pathing Objects&nbsp;: append
 
^^^customPath,PathID,Direction,speed
 
^^^customPath,PathID,Direction,speed
   
Line 403: Line 668:
 
Chasing Pathing = 10;<br />
 
Chasing Pathing = 10;<br />
   
==== Circular Pathing ====
+
===<u>Circular Pathing</u>===
   
 
Path ID 7: append the following to the drones/objects:<br />
 
Path ID 7: append the following to the drones/objects:<br />
^^^,7,direction,speed,startAngle,Radius
+
^^^,7,direction,speed,startAngle,Radius
   
 
This will use objects' original position as center; x,y
 
This will use objects' original position as center; x,y
   
==== Chase Pathing ====
+
===<u>Chase Pathing</u>===
   
 
Path ID 10: append the following to the drones/objects:<br />
 
Path ID 10: append the following to the drones/objects:<br />
Line 418: Line 683:
 
chaseKeepUpdate: makes the drone/object keep updating the path when it sees the ninja
 
chaseKeepUpdate: makes the drone/object keep updating the path when it sees the ninja
   
==== Coordinate Pathing ====
+
===<u>Coordinate Pathing</u>===
   
 
Path ID 8: append the following to the drones/objects:<br />
 
Path ID 8: append the following to the drones/objects:<br />
Line 426: Line 691:
 
When it moved to the last point it will move back to the first point.
 
When it moved to the last point it will move back to the first point.
   
==== Custom Path ====
+
===<u>Custom Path</u>===
   
Path ID 6: append the following to the drones/objects:<br />
+
Path ID 6: append the following to drones:<br />
6^x,y,'''6''',0,droneType,direction^^^customPath
+
6^x,y,'''6''',0,droneType,direction^^^customPath<br />
  +
Append the following to objects:<br />
  +
^^^custompath,'''6''',0,speed
   
 
CustomPath is formed with U (up) D (down) L (left) R (right) and every letter represents a tile moved in that direction.
 
CustomPath is formed with U (up) D (down) L (left) R (right) and every letter represents a tile moved in that direction.
Line 437: Line 704:
 
For example, using '''^^^UR''' will make the drone zig-zag diagonally upwards. Because there is no stop letter, the drone will not stop, even when it reaches the edge of the map.
 
For example, using '''^^^UR''' will make the drone zig-zag diagonally upwards. Because there is no stop letter, the drone will not stop, even when it reaches the edge of the map.
   
  +
==Triggers==
=== Triggerable Objects ===
 
   
 
Objects can be "triggered" on and off via special door switches. "Off" objects will simply stop moving and not detect the ninja player at all, but they still detect collision, so an "off" zap drone, for example, is still dangerous.
 
Objects can be "triggered" on and off via special door switches. "Off" objects will simply stop moving and not detect the ninja player at all, but they still detect collision, so an "off" zap drone, for example, is still dangerous.
Line 450: Line 717:
 
''startTriggers'' are the trigger(s) which start movement of the drone/object after using ''waitForTrigger''.
 
''startTriggers'' are the trigger(s) which start movement of the drone/object after using ''waitForTrigger''.
   
==== Special Triggers ====
+
===<u>Special Trigger</u>===
   
 
To add "Special Trigger" to a door switch, append<br />
 
To add "Special Trigger" to a door switch, append<br />
Line 458: Line 725:
 
^^waitForTrigger(boolean, 0 or 1),startTriggersID(separated by "."),stopTriggersID(separated by "."),startSpecialTriggersID(separated by "."),stopSpecialTriggersID(separated by ".")
 
^^waitForTrigger(boolean, 0 or 1),startTriggersID(separated by "."),stopTriggersID(separated by "."),startSpecialTriggersID(separated by "."),stopSpecialTriggersID(separated by ".")
   
zap drone -> specialOn -> seeker drone<br />
+
zap drone -&gt; specialOn -&gt; seeker drone<br />
seeker drone -> specialOff -> zap drone
+
seeker drone -&gt; specialOff -&gt; zap drone
   
rocky drone -> specialOn -> seeker rocky drone<br />
+
rocky drone -&gt; specialOn -&gt; seeker rocky drone<br />
seeker rocky drone -> specialOff -> rocky drone
+
seeker rocky drone -&gt; specialOff -&gt; rocky drone
   
greedy drone -> specialOn -> seeker greedy drone<br />
+
greedy drone -&gt; specialOn -&gt; seeker greedy drone<br />
seeker greedy drone -> specialOff -> greedy drone
+
seeker greedy drone -&gt; specialOff -&gt; greedy drone
   
 
rotating laser drone:<br />
 
rotating laser drone:<br />
specialOn-> keep rotating<br />
+
specialOn-&gt; keep rotating<br />
specialOff->stop rotating
+
specialOff-&gt;stop rotating
   
oneway special off : make the one way disappear<br />
+
oneway special off&nbsp;: make the one way disappear<br />
   
 
oneway special on:<br />
 
oneway special on:<br />
Line 477: Line 744:
 
case 2: if the one way is not disappeared, then it will rotate 90 degrees
 
case 2: if the one way is not disappeared, then it will rotate 90 degrees
   
=== Text Drone ===
+
===<u>Area Trigger</u>===
   
  +
Area Triggers allow objects to only respond when an object is in a certain area of the map. This can apply to everything regular triggers apply to, including AI chasing drone, laser and chaingun drone, and AI pathing on anything (this allows for some control over the ninja's movement, but it is not the same as activating/deactivating playerMods).
The Text Drone merely serves to add dialogue to the game.
 
   
  +
Placed after the playerMods, i.e. after six '''<nowiki>|'</nowiki>'''s<br />
6^x,y,Path,1,201,direction^textArray,x_offset,y_offset,align,border,textColor,backgroundColor,fontSize,font,bold,italic,underline
 
  +
'''!objectnumber^x0.y0:x1.y1^startTriggersID,stopTriggersID,specialOnTriggersID,specialOffTriggersID'''<br />
  +
with multiple of the same type of triggerIDs being seperated by periods.
   
  +
(x0,y0) and (x1,y1) form the rectangle area that triggers things, and the triggerIDs do the same thing as the door switch trigger.
Apart from textArray, all other parameters are optional
 
   
  +
You can make multiple area triggers by putting ''';''' between two of the above.
textArray: escaped text characters joined by ":"<br />
 
align: 0=left, 1=center, 2=right<br />
 
border: 0=no border, 1=has border<br />
 
textColor & backgroundColor: from 000000 to FFFFFF<br />
 
font: _sans, _serif, _typewriter, if you put other fonts, other players may not able to see it.<br />
 
bold, italic, underline : 0 or 1
 
   
  +
You can find additional help on Area Triggers [http://n.wikia.com/wiki/AreaTriggers here]!
specialOn Trigger: Display next text in array<br />
 
SpecialOff Trigger: Hiding the text
 
 
escape your text:
 
http://n.infunity.com/swf/escape.swf<br /><br />
 
If you want to make the drone 'chase' the ninja, use AI Pathing Objects to chase the ninja. You can then ajust the x and y offset to your taste.
 
 
Note: Non english characters will not be able to be shown on all users computers.
 
   
=== Custom Icon ===
+
==Custom Icon==
   
 
To set Custom Icons to objects, use
 
To set Custom Icons to objects, use
||||,_icon,x_offset^y_offset^url
+
||||objectType,icon,xoffset^yoffset^url
   
Beware that in N, all the object icon sizes are scaled down by default, so the image you loaded will probably be scaled down too. You can set _xscale,100 and _yscale,100 to restore your image's default size.
+
Beware that in N, all the object icon sizes are scaled down by default, so the image you loaded will probably be scaled down too. You can set xscale,100 and yscale,100 to restore your image's default size.
 
The eye movieclip of the drone will disappear if you change its icon.
 
The eye movieclip of the drone will disappear if you change its icon.
   
Since the image loaded into the object will not auto center itself, you will probably need to set x_offset and y_offset to adjust the correct position of the image to the object.
+
Since the image loaded into the object will not auto center itself, you will probably need to set xoffset and yoffset to adjust the correct position of the image to the object.
   
=== Additional Properties ===
+
==Additional Properties==
   
There are also some properties relating to an object's display that can be applied to anything. Note that these will not affect gameplay, though.
+
There are also some properties relating to an object's display that can be applied to anything. If the object can collide with the ninja, these may be able to modify its hitbox.
   
'''_xscale''' controls an object's width. The input is a number of pixels, so setting this to 20 would make the object appear to be 20 pixels wide.<br />
+
'''xscale''' controls an object's width. The input is a number of pixels, so setting this to 20 would make the object appear to be 20 pixels wide.<br />
'''_yscale''' is the same as _xscale, except it applies to height.<br />
+
'''yscale''' is the same as xscale, except it applies to height.<br />
'''_alpha''' controls an objects transparency, and can be anything from 0 to 100, with 0 being invisible.<br />
+
'''r''' change the object size and hitbox(changes both width and the height).<br />
  +
'''alpha''' controls an objects transparency, and can be anything from 0 to 100, with 0 being invisible (This applies only to the door of locks, traps & exits, the switches are not effected by this. Projectiles & the Gauss Turret reticle are not effected by this).<br />
'''_color''' controls an object's color, and can modify red, green, and blue values for the object.<br />
 
  +
'''color''' controls an object's color, and can modify red, green, and blue values for the object.<br />
 
It can be set to a value in the format '''red%.redMod.green%.greenMod.blue%.blueMod.transparent%.transparentMod'''. The "%" values multiply that channel by the given percent (e.g., if blue% was 50, the object's blue hues would be half as intense). The "Mod" values add the given amount to that channel.
 
It can be set to a value in the format '''red%.redMod.green%.greenMod.blue%.blueMod.transparent%.transparentMod'''. The "%" values multiply that channel by the given percent (e.g., if blue% was 50, the object's blue hues would be half as intense). The "Mod" values add the given amount to that channel.
   
'''_color''' can be used to make an object any color by:
+
'''color''' can be used to make an object any color by:
   
# [http://www.rentadabo.nl/~english/rgbhexcalc.htm Finding] the red, green, and blue values of the target color
+
# [http://www.colorpicker.com/ Finding] the red, green, and blue values of your target color
# Setting _color to '''0.''redValue''.0.''greenValue''.0.''blueValue''.100.0'''
+
# Setting color to '''0.''redValue''.0.''greenValue''.0.''blueValue''.100.0'''
   
 
Note: this removes all texture from most objects.
 
Note: this removes all texture from most objects.
 
== PlayerMod ==
 
 
The syntax for this slot is much like the syntax for the objectMod slot, except without the identifier number: '''property,modification;'''. Again, any number of these can be strung together.
 
 
Here is a list of all modifiable properties:
 
 
'''r'''<br />
 
default = 10<br />
 
'''maxspeedAir'''<br />
 
default = 0.5; controls the maximum speed the ninja can accelerate up to in the air (the ninja can go faster if he is propelled by something else, though)<br />
 
'''maxspeedGround'''<br />
 
default = 0.5; controls the maximum speed the ninja can accelerate up to on the ground<br />
 
'''groundAccel'''<br />
 
default = 0.15; controls the ninja's acceleration on the ground<br />
 
'''airAccel'''<br />
 
default = 0.1; controls the ninja's aerial acceleration<br />
 
'''g'''<br />
 
default = 0.15; controls gravity until the first time the ninja jumps<br />
 
'''d'''<br />
 
default = 0.99; controls air resistance until the first time the ninja jumps<br />
 
'''normGrav'''<br />
 
default = 0.15; controls gravity after the ninja has jumped<br />
 
'''normDrag'''<br />
 
default = 0.99; controls air resistance after the ninja has jumped<br />
 
'''jumpGrav'''<br />
 
default = 0.025; controls gravity for a short time after the jump button is pressed for as long as it it held<br />
 
'''max_jump_time'''<br />
 
default = 30; controls the maximum amount of time that jump gravity can apply to the ninja<br />
 
'''winDrag'''<br />
 
default = 0.8; controls the speed the ninja experiences after he passes the activated exit door. Increase to make him move faster away from it, or set to "0" to stop moving completely<br />
 
'''wallFriction'''<br />
 
default = 0.13; controls the friction the ninja experiences while wallsliding<br />
 
'''skidFriction'''<br />
 
default = 0.92; controls the friction the ninja experiences while sliding to a stop (note: higher values mean less friction, and values above 1 cause the ninja to speed up)<br />
 
'''standFriction'''<br />
 
default = 0.8; controls the friction the ninja experiences as he stops sliding entirely<br />
 
'''jumpAmt'''<br />
 
default = 1; controls the strength with which the ninja pushes off from the floor/slopes/walls<br />
 
'''jump_y_bias'''<br />
 
default = 2; controls the upwards motion (downwards if negative) the ninja experiences regardless of where he jumps from<br />
 
'''terminal_vel'''<br />
 
default = 9; controls the speed at which hitting the ground becomes deadly<br />
 
'''noWallJump'''<br />
 
default = 0; set to 1 to disable wall jump<br />
 
'''noWallSlide'''<br />
 
default = 0; set to 1 to disable wall slide<br />
 
'''maxJumpCount'''<br />
 
default = 1; set to 2 to enable double jump (i.e. you can jump in air), set to 3 to enable triple jump and so on, set to 0 to disable floor jump<br />
 
'''jumpResetYSpeed'''<br />
 
default = 0; set to 1 to reset coordinate Y speed when jumping<br />
 
 
== AreaTrigger ==
 
 
Area Triggers allow objects to only respond when the ninja is in a certain area of the map. This can apply to AI chasing drone, laser and chaingun drone, and even PlayerMods.
 
 
Placed after the playerMods, i.e. after six '''|''''s<br />
 
'''objectnumber^x0.y0:x1.y1^startTriggersID,stopTriggersID,specialOnTriggersID,specialOffTriggersID'''<br />
 
with multiple of the same type of triggerIDs being seperated by periods.
 
 
(x0,y0) and (x1,y1) form the rectangle area that triggers things, and the triggerIDs do the same thing as the door switch trigger.
 
 
You can make multiple area triggers by putting ''';''' between two of the above.
 
 
[[Category:Nreality]]
 
[[Category:Nreality]]

Latest revision as of 09:57, 28 June 2014

Mods for NReality take the form of a string added to the end of the standard map data. When the map is loaded, the string disappears and the modifications are applied. The string is formatted like this:

TileData|ObjectData|BackgroundImage|ForegroundImage|NRealityMapType|ObjectMod|PlayerMod|AreaTrigger

Background Image[]

This function allows a URL image to be inserted into the map. A Background Image will be displayed in the background and will be covered by tiles and objects.

Foreground Image[]

This function also allows a URL image to be inserted into the map. A Foreground Image will be displayed in front of everything else in the map, meaning if you want to see anything, you will need to use a program that can

The foreground image can also be made into a color filter. To do this, add ?# to the end of the image URL, where # is a number between 1 and 14.

NReality Map Type[]

Any text in this slot will appear as a map's category when the map is displayed in the userlevels menu.

Object Mods[]

This allows modifications to any type of object, modifications to the ninja are done in the Player Mods section. Most modifications are applied to every object of the selected type, a few have individual object properties which will override the global object modification.

Object modifications are added by adding:
ObjectNumber,Property,Modification
to the end of the map data after four verticle bars

ObjectNumber
The type of object and must be a number between 0 and 141 depending on the objects number.
Property
The property of the object to be modified.
Modification
The value of the property, it must be a number.

Multiple can be added by seperating them with a semi-colon.

Object Numbers
0: Zap & Seeker Drones
1: Laser & Rotating Laser Drones
2: Chaingun Drone
3: Gold
4: Bounce Block
5: Launchpad
6: Gauss Turret
7: Floor guards
8: Ninja
9: Drones
10: One-way Platform
11: Thwump
12: Doors
13: Rocket Turret
14: Exit
15: Mine
16: Force Field Drone
101, 102, 103: Ghost Drones
121: Rocky Drone
122: Tile Drone
132: Alarm Drone
141: Greedy Drone

Glitched drones/Eye Drones cannot be modified because the game does not recognize them as any of the three modifiable types of drones.

No matter how big you make an object, it cannot interact with the ninja unless they are in the same grid square or an adjacent one.

Zap & Seeker Drones[]

Object Number: 0

r
Default = 9
Size
Speed
Default = 1.75
ChaseSpeed
Default = 3.423
Seeker Drones Only

0 is treated as the default value. If you want a drone to stop when it sees the ninja, use a very low value instead.

Also, speed and chaseSpeed can be modified per drone, by use of ^speed,chaseSpeed after the drone's code.

Laser & Rotating Laser Drones[]

Object Number: 1

r
Default = 9
Size
Speed
Default = 0.385
LaserPrefireDelay
Default = 30
The amount of time the drone will spend charging
LaserPostFireDelay
Default = 40
How long the drone will pause after firing
LaserRate
Default = 80
How long the drone will fire
LaserLen
Default = 7
Usage unknown

Rotating laser drone
StartingAngle
Default = 0
Starting angle of the laser
RotateSpeed
Default = 0.5
Speed the laser rotates
A negative number will change the direction
FixedLaserLength
Leave blank to have the laser act normal
If set the laser will always be a fixed number of pixels long & can go through walls
AlwaysMove
Boolean
Rotating Laser Drones will move as they fire and rotate

Individual Rotating Laser Drone[]

6^x,y,Path,1,1,Direction^StartingAngle,RotationSpeed,LaserLength,AlwaysMove,Speed

StartingAngle
Default = 0
Starting angle of the laser
RotationSpeed
Default = 0.5
Speed the laser rotates
LaserLength
Leave blank to have the laser act normal
If set the laser will always be a fixed number of pixels long & can go through walls
AlwaysMove
Boolean
The Rotating Laser Drone will move as it fires and rotates Speed
Default = 0.385

Chaingun Drone[]

Object Number: 2

r
Default = 9
Size
Speed
Default = 0.645
ChaingunPrefireDelay
Default = 35
Amount of time the drone will spend charging
ChaingunPostfireDelay
Default = 60
How long the drone will pause after firing
ChaingunMaxNum
Default = 8
Usage unknown
ChaingunRate
Default = 6
Time in frames between each bullet
ChaingunSpread
Default = 0.3
Usage unknown

Gold[]

Object Number: 3

r
Default = 6
Size

Bounce Block[]

Object Number: 4

Stiff
Default = 0.05
Speed at which the Bounce Block bounces back, a very high or very low number may prevent it from doing so
Mass
Default = 0.2
Amount of force the block applies against the ninja, a negative number will make it propel the ninja
SleepThreshold
Default = 40
After how much time in frames after the ninja stops touching the Bounce Block will stop moving
SleepTimer
Default = 0
Usage unknown

Launchpad[]

Object Number: 5

r
Default = 6
Size
Strength
Default = 5.1428568
Launchpad strength

Gauss Turret[]

Object Number: 6

CloseAimSpeed
Default = 0.05
How fast the crosshairs move when close to the ninja, represents the percentage of the distance between them covered
MidAimSpeed
Default = 0.035
How fast the crosshairs move when a medium distance away from the ninja
FarAimSpeed
Default = 0.03
How fast the crosshairs move when far away from the ninja
AimSpeed
Default = 0.03
How fast the crosshairs move the frame after the turret fires
OuterThreshold
Default = 9216
Set 'Far' distance
MidThreshold
Default = 1764
Set 'Mid' distance
InnerThreshold
Default = 576
Set 'Close' distance
ShotRate
Default = 60
Minimum time between shots
ShotTimer
Default = 0
Usage unknown
FireDelayTimer
Default = 0
Usage unknown
PrefireDelay
Default = 10
Turrets warm-up time
PostfireDelay
Default = 10
Turrets cooldown time

Floor Guards[]

Object Number: 7

r
Default = 6
Size
Speed
Default = 5.1428568

Values over about 30 for thier size will only continue to increase the aesthetic size; the maximum size of their collision detection zone is 30.

Increasing the size can have adverse effects on their placement; when one attempts to load the code, it changes the guard's location on the Y axis to compensate for the size (so that the bottom of the guard will still touch the bottom). When going into the editor, it reverts changes, but keeps the coordinates intact, which leads to newly located guards, moved upwards. Adding the code again and loading will again compensate, moving the guard even further up. Furthermore, attempting to move the guard manually in the editor, while helping, still does not completely eradicate the changes; when exiting out of the editor, the guards will be moved back up, though to a lesser amount.

Individual Floor Gaurd[]

4^x,y,1^Type,Speed,AlwaysChase

Type
0 = Floor
1 = Ceiling
2 = Left Wall
3 = Right Wall
Speed
Default = 5.142856
AlwaysChase
Boolean
Floor Gaurds will always chase the ninja regardless of thier current position

Drones[]

Object Number: 9

No known properties

One-way Platform[]

Object Number: 10

You can use special triggers to make oneway platforms appear and disappear.

oneway special off: make the one way disappear

oneway special on:
case 1: if the one way has disappeared, it will reappear
case 2: if the one way is not disappeared, then it will rotate 90 degree

See more on special triggers here.

Thwump[]

Object Number: 11

xw
Default = 9
Width
yw
Default = 9
Height
Fallspeed
Default = 4.2857148
Speed of falling Thwump
Raisespeed
Default = 1.7142852
Speed of rising/retracting Thwump
Speed
Duplicate of Fallspeed

Doors[]

Object Number: 12

r
Default = 10
Usage unknown
Doorsize
Default = 10
Usage unknown
Maxtimer
Default = 5
How long Normal Doors stay open after the ninja passes through

Rocket Turret[]

Object Number: 13

Speed
Default = 0
Usage unknown
Maxspeed
Default = 3.4285716
Rockets maximum speed
Startaccel
Default = 0.1
Rockets starting speed
Curaccel
Duplicate of startaccel
Accelrate
Default = 1.1
Rockets acceleration
Turnrate
Default = 0.1
How far the rocket turns in one frame, at high values it turns too far & becomes less accurate
IsHoming
Default = 0
Usage unknown
PrefireDelay
Default = 10
How long the turret waits before firing a rocket
FireDelayTimer
Default = 0
Usage unknown

Exit[]

Object Number: 14

r
Default = 12
Does not effect the exit switch
Size

27 is the functional limit. The door will still aesthetically grow, but will functionally be 27 pixels wide.

Mine[]

Object Number: 15

r
Default = 4
Size

40 is the functional limit. The mines will still aesthetically grow, but they functionally be 40 pixels wide.

Force Field Drone[]

Object Number: 16

This drone repels or attracts the ninja towards or away from it when it reaches a certain range.

r
Default = 9; Size
Speed
Default = 1.75;
DetectRadius
Default = 100
Distance at which the drone starts firing
ForcePower
Default = 4
Force at which the ninja is pushed away from the drone, the ninjas velocity is reset
A negative number will pull the ninja towards the drone
ForceDelayTimer
Default = 10
Length of the drones cooldown time, the drone keeps moving during this time
ForceMaxCount
Default = 3
Number of consecutive shots the drone can fire before recharging
ForceMaxCountDelay
Default = 200
Time spent in frames recharging after ForceMaxCount is reached
AlwaysMove
Default = 0
Boolean
The Force Field drone will keep moving while firing

Individual Force Field Drone[]

6^x,y,Path,0,16,Direction^DetectRadius,ForcePower,ForceDelayTimer,ForceMaxCount,ForceMaxCountDelay,AlwaysMove

DetectRadius
Default = 100
Distance at which the drone starts firing
ForcePower
Default = 4
Force at which the ninja is pushed away from the drone, the ninjas velocity is reset
A negative number will pull the ninja towards the drone
ForceDelayTimer
Default = 10
Length of the drones cooldown time, the drone keeps moving during this time
ForceMaxCount
Default = 3
Number of consecutive shots the drone can fire before recharging
ForceMaxCountDelay
Default = 200
Time spent in frames recharging after ForceMaxCount is reached
AlwaysMove
Boolean
The Force Field drone will keep moving while firing

Ghost Drone[]

Object Numbers: 101, 102, 103

Ghost drones follow the ninja whenever he isn't facing towards them and stop when he is (A reference to a "boo" from super mario bros.)

Acceleration
Default = 0.02
Acceleration in pixels per frame
Maximum Velocity
Default = 2
Maximum speed
Always Chase
Boolean
Ghost Drone will not stop
Minimum Alpha
Default = 0
Alpha when Ghost Drone stops

Individual Ghost Drone 101[]

6^x,y,Path,0,101,Direction^Acceleration,MaximumVelocity,AlwaysChase

When the Ninja is facing towards:
Chases the ninja
Kills on contact
Visible
When the Ninja is facing away:
Kills the Ninja on contact
Alpha visibility

Acceleration
Default = 0.02
Acceleration in pixels per frame
Maximum Velocity
Default = 2
Maximum speed
Always Chase
Boolean
Ghost Drone will not stop

Individual Ghost Drone 102[]

6^x,y,Path,0,102,Direction^Acceleration,MaximumVelocity,MinimumAlpha

When the Ninja is facing towards:
Chases the Ninja
Kills on contact
Alpha visibility
When the Ninja is facing away:
Will not interact with the Ninja
Visibile

Acceleration
Default = 0.02
Acceleration in pixels per frame
Maximum Velocity
Default = 2
Maximum speed
Minimum Alpha
Default = 0
Alpha when Ghost Drone stops

Individual Ghost Drone 103[]

6^x,y,Path,0,103,Direction^Acceleration,MaximumVelocity

When the Ninja is facing towards:
Chases the Ninja
Kills on contact
Visibile
When the Ninja is facing away:
Acts as a Rocky_Drone
Alpha visibility


Acceleration
Default = 0.02
Acceleration in pixels per frame
Maximum Velocity
Default = 2
Maximum speed

Rocky Drone[]

Object Number: 121

This drone is essentially a platform that moves like a drone.

6^x,y,path,0,121,direction^speed,chasespeed

Change number in bold to 1 to make the drone seeking.

These properties, as well as the additional properties for all objects, can be modified in the standard way:
speed
Default = 1;
r
Default = 9;

Tile Drone[]

Object Number: 122

This drone will place tiles behind it as it travels.

6^x,y,Path,0,122,direction^speed,chasespeed,tiles

Change number in bold to 1 to make the drone seeking.

Tiles is the text string for the tile pattern, it is just like the map data, the tile drone will loop through the string to lay the tiles. For example, if you use "NN10", the drone will place two 5-tiles, an E-tile, a space, and then repeat.

Alarm Drone[]

Object Number: 132

This drone will emit a circular laser going outwards when it sees the ninja. The ninja will die upon contact with the laser.

6^x,y,Path,0,132,direction^speed,chasespeed,laserMinRadius,laserMaxRadius,radiusUp,radiusDown,neverDown,alwaysMove

Change number in bold to 1 to make the drone seeking.

laserMinRadius, the min radius of the laser, default 30
laserMaxRadius, the max radius of the laser, default 400
radiusUp, the increase rate of the radius, default 1
radiusDown, the decrease rate of the radius, default 2
neverDown, if it is set to 1 then the laser will never decrease in size
alwaysMove, if it is set to 1 then the drone will move even when it sees you

Greedy Drone[]

Object Number: 141

This drone can steal or give time/gold to the ninja.

6^x,y,Path,0,141,direction^speed,chasespeed,collectcoin

Change number in bold to 1 to make the drone seeking

For collectcoin: value for stealing 1 second = -40 value for stealing 1 frame = -1 value for giving player 1 second = 40 This value must be an integer.

Text Drone[]

Text Drones settings are all configured individually

The Text Drone merely serves to add dialogue to the game.

6^x,y,Path,1,201,direction^textArray,xoffset,yoffset,align,border,textColor,backgroundColor,fontSize,font,bold,italic,underline

Apart from textArray, all other parameters are optional

textArray: escaped text characters joined by ":"
align: 0=left, 1=center, 2=right
border: 0=no border, 1=has border
textColor & backgroundColor: from 000000 to FFFFFF
font: sans, serif, typewriter, if you put other fonts, other players may not able to see it.
bold, italic, underline : 0 or 1

specialOn Trigger: Display next text in array
SpecialOff Trigger: Hiding the text

escape your text: http://n.infunity.com/swf/escape.swf

If you want to make the drone 'chase' the ninja, use AI Pathing Objects to chase the ninja. You can then ajust the x and y offset to your taste.

Note: Non english characters will not be able to be shown on all users computers.

Player Mods[]

The syntax for this slot is much like the syntax for the objectMod slot, except without the identifier number: property,modification;. Again, any number of these can be strung together.

Here is a list of all modifiable properties:

r
Default = 10
maxspeedAir
Default = 5; controls the maximum speed the ninja can accelerate up to in the air (the ninja can go faster if he is propelled by something else, though)
maxspeedGround
Default = 5; controls the maximum speed the ninja can accelerate up to on the ground
groundAccel
Default = 0.15; controls the ninja's acceleration on the ground
airAccel
Default = 0.1; controls the ninja's aerial acceleration
g
Default = 0.15; controls gravity until the first time the ninja jumps
d
Default = 0.99; controls air resistance until the first time the ninja jumps
normGrav
Default = 0.15; controls gravity after the ninja has jumped
normDrag
Default = 0.99; controls air resistance after the ninja has jumped
jumpGrav
Default = 0.025; controls gravity for a short time after the jump button is pressed for as long as it it held
max_jump_time
Default = 30; controls the maximum amount of time that jump gravity can apply to the ninja
winDrag
Default = 0.8; controls the speed the ninja experiences after he passes the activated exit door. Increase to make him move faster away from it, or set to "0" to stop moving completely
wallFriction
Default = 0.13; controls the friction the ninja experiences while wallsliding
skidFriction
Default = 0.92; controls the friction the ninja experiences while sliding to a stop (note: higher values mean less friction, and values above 1 cause the ninja to speed up)
standFriction
Default = 0.8; controls the friction the ninja experiences as he stops sliding entirely
jumpAmt
Default = 1; controls the strength with which the ninja pushes off from the floor/slopes/walls
jump_y_bias
Default = 2; controls the upwards motion (downwards if negative) the ninja experiences regardless of where he jumps from
terminal_vel
Default = 9; controls the speed at which hitting the ground becomes deadly
noWallJump
Default = 0; set to 1 to disable wall jump
noWallSlide
Default = 0; set to 1 to disable wall slide
maxJumpCount
Default = 1; set to 2 to enable double jump (i.e. you can jump in air), set to 3 to enable triple jump and so on, set to 0 to disable floor jump
jumpResetYSpeed
Default = 0; set to 1 to reset coordinate Y speed when jumping

Pathing[]

All objects except rocket launcher and floor guard can be applied for Drone's AI Pathing system on it.

AI Pathing Objects : append ^^^customPath,PathID,Direction,speed

Path ID:
SURFACE FOLLOW Clock Wise = 0;
SURFACE FOLLOW Counter Clock Wise = 1;
WANDER Clock Wise= 2;
WANDER Counter Clock Wise = 3;
WANDER ALTERNATING = 4;
WANDER RANDOM = 5;
Nreality CustomPath = 6;
Circular Movement = 7;
Coordinates Pathing = 8;
Chase AI = 9;
Chasing Pathing = 10;

Circular Pathing[]

Path ID 7: append the following to the drones/objects:
^^^,7,direction,speed,startAngle,Radius

This will use objects' original position as center; x,y

Chase Pathing[]

Path ID 10: append the following to the drones/objects:
^^^,10,direction,speed,chaseWhenSighted,chaseKeepUpdate

chaseWhenSighted: makes the object/drone chase the ninja only when the it sees the them.
chaseKeepUpdate: makes the drone/object keep updating the path when it sees the ninja

Coordinate Pathing[]

Path ID 8: append the following to the drones/objects:
^^^x1.y1:x2.y2:x3.y3:x4.y4,8,direction,speed

You can have as many x?.y? positions as you want.
When it moved to the last point it will move back to the first point.

Custom Path[]

Path ID 6: append the following to drones:
6^x,y,6,0,droneType,direction^^^customPath
Append the following to objects:
^^^custompath,6,0,speed

CustomPath is formed with U (up) D (down) L (left) R (right) and every letter represents a tile moved in that direction.

When the end of a custom path is reached, it loops back to the beginning of the custom path to do it all over again. If you need to stop an object from further loops, insert any letter other than U, D, L or R at the end (e.g: B). This will stop the drone moving after the first loop.

For example, using ^^^UR will make the drone zig-zag diagonally upwards. Because there is no stop letter, the drone will not stop, even when it reaches the edge of the map.

Triggers[]

Objects can be "triggered" on and off via special door switches. "Off" objects will simply stop moving and not detect the ninja player at all, but they still detect collision, so an "off" zap drone, for example, is still dangerous.

To add "Trigger" to a door switch, append
^startTriggers(if you are using more than one, separate with "."),stopTriggers(separated by ".") to the door switch object (which starts with 9^)

To make the object triggerable, append
^^waitForTrigger,startTriggers(separated by "."),stopTriggers(separated by ".")

waitForTrigger should be set to 1 when you don't want an object or drone moving right away. This is commonly confused with startTriggers.
startTriggers are the trigger(s) which start movement of the drone/object after using waitForTrigger.

Special Trigger[]

To add "Special Trigger" to a door switch, append
^startTriggersID(separated by "."),stopTriggersID(separated by "."),startSpecialTriggersID(separated by "."),stopSpecialTriggersID(separated by ".") to the door object.

To make the object special triggerable, append
^^waitForTrigger(boolean, 0 or 1),startTriggersID(separated by "."),stopTriggersID(separated by "."),startSpecialTriggersID(separated by "."),stopSpecialTriggersID(separated by ".")

zap drone -> specialOn -> seeker drone
seeker drone -> specialOff -> zap drone

rocky drone -> specialOn -> seeker rocky drone
seeker rocky drone -> specialOff -> rocky drone

greedy drone -> specialOn -> seeker greedy drone
seeker greedy drone -> specialOff -> greedy drone

rotating laser drone:
specialOn-> keep rotating
specialOff->stop rotating

oneway special off : make the one way disappear

oneway special on:
case 1: if the one way has disappeared, it will reappear
case 2: if the one way is not disappeared, then it will rotate 90 degrees

Area Trigger[]

Area Triggers allow objects to only respond when an object is in a certain area of the map. This can apply to everything regular triggers apply to, including AI chasing drone, laser and chaingun drone, and AI pathing on anything (this allows for some control over the ninja's movement, but it is not the same as activating/deactivating playerMods).

Placed after the playerMods, i.e. after six |'s
!objectnumber^x0.y0:x1.y1^startTriggersID,stopTriggersID,specialOnTriggersID,specialOffTriggersID
with multiple of the same type of triggerIDs being seperated by periods.

(x0,y0) and (x1,y1) form the rectangle area that triggers things, and the triggerIDs do the same thing as the door switch trigger.

You can make multiple area triggers by putting ; between two of the above.

You can find additional help on Area Triggers here!

Custom Icon[]

To set Custom Icons to objects, use ||||objectType,icon,xoffset^yoffset^url

Beware that in N, all the object icon sizes are scaled down by default, so the image you loaded will probably be scaled down too. You can set xscale,100 and yscale,100 to restore your image's default size. The eye movieclip of the drone will disappear if you change its icon.

Since the image loaded into the object will not auto center itself, you will probably need to set xoffset and yoffset to adjust the correct position of the image to the object.

Additional Properties[]

There are also some properties relating to an object's display that can be applied to anything. If the object can collide with the ninja, these may be able to modify its hitbox.

xscale controls an object's width. The input is a number of pixels, so setting this to 20 would make the object appear to be 20 pixels wide.
yscale is the same as xscale, except it applies to height.
r change the object size and hitbox(changes both width and the height).
alpha controls an objects transparency, and can be anything from 0 to 100, with 0 being invisible (This applies only to the door of locks, traps & exits, the switches are not effected by this. Projectiles & the Gauss Turret reticle are not effected by this).
color controls an object's color, and can modify red, green, and blue values for the object.
It can be set to a value in the format red%.redMod.green%.greenMod.blue%.blueMod.transparent%.transparentMod. The "%" values multiply that channel by the given percent (e.g., if blue% was 50, the object's blue hues would be half as intense). The "Mod" values add the given amount to that channel.

color can be used to make an object any color by:

  1. Finding the red, green, and blue values of your target color
  2. Setting color to 0.redValue.0.greenValue.0.blueValue.100.0

Note: this removes all texture from most objects.