Pikmin Fanon will close on September 1st (see here for details and discussion).
A full-history page and file archive is available for download here (mirror).
Wayback Machine archive can be found here. Partial Wikia archive here.

Difference between revisions of "Pikifen/Changelog"

From Pikmin Fanon
Jump to: navigation, search
(Version 0.18!)
m (Actually, this is a two-in-one.)
Line 29: Line 29:
** Seesaw block.
** Seesaw block.
** Paper bag (the crushable type).
** Paper bag (the crushable type).
** Climbing stick.
** Climbing stick (already built), and climbing stick pile (needs to be built).
** Bouncy Mushroom.
** Bouncy Mushroom.
** Electrical wire.
** Electrical wire.

Latest revision as of 13:34, 8 February 2020

The following is a general changelog for Pikifen. This changelog will only list the most notable differences between each version of the engine; for a more detailed list of changes throughout the development period, check the commit log on GitHub.

Some versions may be unable to read content created in older versions. If you want to keep your content from one version to the next, read the "Format change warnings" list in that update's section.


  • New mob categories:
    • Group tasks:
      • These are objects that require multiple Pikmin working on them at the same time, and once a certain combined power is reached, something happens, like the object moves or disappears. Useful for cardboard boxes or electrodes.
      • Each object has a series of spots, organized in rows, for Pikmin to stand on. When a Pikmin gets near, it goes to its spot and stays there doing some pose.
      • It's possible to configure the number of spots, the spacing between them, how many rows of spots exist, how the Pikmin pose when they're "working", how a Pikmin contributes, and a speed bonus for any excess contribution power (applicable when the object is moving).
      • The script for these objects is custom, and when the power goal has been met or lost, a message is sent to the object.
      • One of the contribution methods is pushing strength. As such, each Pikmin type now has a push_strength parameter.
    • Scales:
      • These measure the weight applied on top of them, and use it to do stuff. Useful for seesaw blocks or crushable paper bags.
      • Leaders, Pikmin, enemies, etc. count to the weight as long as they are on top of the object. Pikmin being held by other objects will weigh it accordingly.
      • For crushable paper bags to work, mobs can now also change their own height with the set_height script action.
      • Above the object, a number will appear signifying the weight. Optionally, a goal number can be specified, making a fraction show up instead.
    • Tracks:
      • These can have other objects ride on them, transporting the object from point A to point B. Useful for climbing sticks and slides.
      • Pikmin and/or leaders can ride them once they touch the mob's center. Then, they travel from body part 1 to 2 to 3, and so on until the end.
      • Pikmin and leaders can also optionally be whistled out of them.
    • Bouncer:
      • Any Pikmin or leader that lands atop a bouncer will be bounced away to another location. Useful for Bouncy Mushrooms and geysers.
      • The destination is whatever its linked mob is, meaning it can be easily changed in the area editor.
  • Added the following objects to the pre-packaged content (though they aren't included in any area):
    • Clog.
    • Cardboard box. (Thanks Gaming98)
    • Seesaw block.
    • Paper bag (the crushable type).
    • Climbing stick (already built), and climbing stick pile (needs to be built).
    • Bouncy Mushroom.
    • Electrical wire.
    • Spotcap and Kingcap. (Thanks Neo)
    • A dummy object to help some other objects work.
  • Object script improvements:
    • You can now use variables in script actions. Example: set_timer $extra_time.
    • As a result of the above, some complex actions got split and simplified, some redundant actions got removed, and the whole scripting system was made more robust (see the compatibility warnings).
    • New actions: goto and label. When a goto action is run, it jumps to the equivalent label action. Useful for loops.
    • New action: order_release. Use this to get a tool to order the Pikmin that is holding it to release it. (Thanks Kman)
    • New action: set_huntable. If this is false, an object cannot be hunted down. Useful for Pellet Posy sprouts, for instance.
    • New action: drain_liquid. Drains the liquid of the sector the object is in, if it has any hazard with an associated liquid. It also affects neighboring sectors with liquid. This drain takes place over the course of two seconds.
    • New action: set_height. An object's weight can now be controlled by the script, and is by default whatever the object type specifies.
    • New action: set_sector_scroll. With this, an object can change the scrolling speed of the sector it is on. A scrolling sector shifts its floor texture over time, and moves its objects in that direction too.
    • New action: get_focus_var. Use this to obtain the value of a variable belonging to the focused object.
    • New action: send_message_to_focus. This sends a message to the currently focused object, if any.
    • New action: print. It writes some text to the top of the screen, even the value of variables. Use this to help you debug your scripts.
    • New events: on_weight_added and on_weight_removed, triggered when weight is placed on top of, or removed from the object.
    • New event: on_hitbox_touch_a_n, triggered when an attack hitbox of this object touches a normal hitbox of another object. The opposite doesn't exist since it's reserved by the engine for controlling attack damage.
    • focus now has the link keyword, to make an object focus on whatever object it is linked to.
  • Changed the way combat works:
    • Objects are now of a given "target type" (identified by the object type). They are also only able to hunt down and/or hurt objects of specific target types.
    • Teams only serve to create friendships. Objects working in the same team cannot hunt down or hurt each other.
    • As a result, several wrong behaviors from before have been fixed, like leaders being unable to attack Pellet Posies, or Pikmin trying to attack ceramic bridges.
    • Some old mechanics, like is_projectile have been removed in favor of this new style.
  • Area editor improvements:
    • R makes all selected objects face the cursor, and Shift+X changes the snapping mode in reverse order. (Thanks epicRedHot, Neo)
    • Added an option to set the cursor snap threshold, and an option to toggle the visibility of an object's territory. (Thanks Neo, epicRedHot)
    • Added a slider next to the reference toggle button in the toolbar that lets you adjust the opacity. (Thanks Neo)
    • Object colors per category have been tweaked.
  • The throw physics have been revamped – thrown Pikmin and leaders will now land exactly where the cursor is (if possible), even if it is on a sector with a different height or atop an object. Pikmin throw heights have also been slightly tweaked. (Thanks Yoshi2)
  • Tool types now have the dropped_when_pikmin_is_whistled parameter, which lets them be dropped when a thrown Pikmin is whistled, like in the first Pikmin game. (Thanks Kman)
  • Objects that spawn children can now use the hold_rotation_method parameter to control how the child object rotates: never, rotates to always face the parent's center, or matches the angle of the parent.
  • Pikmin will now stop attacking and sigh when their attacks fail to cause damage four times in a row. Zero-damage attacks now also spawn a "Ding!" particle.
  • 1-weight objects now show the carrying numbers again, but only if they're going to an Onion.
  • Minor tweaks and fixes. (Thanks Kman, Jimble)
Compatibility warnings
  • Scripting changes, caused by the variables feature:
    • if changes:
      • It can no longer fetch special info. Instead, it will only compare between two fixed values (or variables).
      • Use the new action get_info to save special info into a variable.
      • It no longer uses the values inside a variable with the "var" keyword. Instead, use the new global syntax for variables.
    • move changes:
      • It has been split into move_to_absolute, move_to_relative, move_to_target.
      • randomly is no longer a valid target. If you want to move randomly, randomize two variables between -1000 and 1000 or so, and feed those into move_to_relative.
    • randomize_var has been split into get_random_decimal and get_random_int.
    • send_message has been split into send_message_to_links and send_message_to_nearby.
    • set_health has been split into add_health and set_health.
    • set_timer now only takes a number. If you want to randomize it, randomize a variable and feed set_timer that variable.
    • set_var has been split into calculate (sets to the result of an equation) and set_var (sets to a value).
    • stop has been split into stop and stop_vertically.
    • swallow has been split into swallow and swallow_all.
    • teleport has been split into teleport_to_relative and teleport_to_absolute.
    • turn changes:
      • It has been split into turn_to_absolute, turn_to_relative, and turn_to_target.
      • randomly is no longer a valid target. If you want to turn randomly, randomize a variables between 0 and 360, and feed that into turn_to_relative.
  • If an object type used the is_projectile or projectiles_can_damage properties, or made use of teams, it will likely have to be updated to make use of the target_type, can_hunt, and can_hurt properties, and/or the new teams.
  • Each leader and Pikmin type's max throw height was updated to a rounder number: 130 (leaders), 210 (Purples), 260 (standard), 330 (Yellows). If you made an area that depends on max throw heights, you may want to revise it.
  • Leaders and Pikmin types no longer use throw_strength_mult to dictate how high they can go, but use max_throw_height.


June 16th, 2019

  • Bug fixes:
    • Fixed screenshots (normal ones, crash ones, or area ones) not being saved on Windows. Semicolons are not allowed, so I replaced them with dots. Since I was editing the filenames, I figured I'd replace the space with an underscore, too. (Thanks Kman, Neo)
    • Fixed leaders having a pseudo-whistle at the start of an area, if the player left the previous area in the middle of a whistle. (Thanks Tenortio)
    • Fixed players being able to press Enter on editor pickers that didn't allow creating new content. (Thanks Neo)
    • Fixed the set_holdable action being unable to be empty. (Thanks Kman)
    • Fixed the best path preview in the area editor using any path, instead of the best one. Also, added a path debugger (F5). (Thanks Kman)
    • Fixed object links being lost when you undo. (Thanks Kman)
    • Fixed an area editor sector corruption glitch. (Thanks Neo)
    • Fixed more area editor glitches.
    • Fixed Yellow Pikmin not being able to reach the Beady Long Legs's head.
    • Fixed objects losing track of their focused objects too quickly. This caused enemies to shake violently when they had several Pikmin swung in front of them, for instance. (Thanks Kman)
  • Pikmin carrying bridge fragments can now no longer be pushed. This should make them a bit more effective when there are traffic jams. (Thanks Neo)
  • Standardized the leader, Pikmin, and bomb rock HUD icons, making them all 64x64.
  • Other tiny tweaks.


May 4th, 2019

  • New category: Interactable.
    • Objects in this category can be interacted with by the current leader, when the player presses the throw button.
    • These objects are similar to custom objects, except they have extra logic to show the interaction control prompt above them when the current leader is near, as well as to receive a script message when interacted by the leader.
    • "Info spots" were removed, and a new object was created to replace them, called "Sign".
    • New action: show_message_from_var. It allows a message to be shown, using the text inside of an object's variables.
  • New category: Drop.
    • Objects in this category represent drops of some liquid on the floor, and can be drunk by other objects. Use this for nectar drops, spray nectars, etc.
    • You can specify whether Pikmin or leaders drink it, and what the effects are when they are done drinking. Maturing the Pikmin and increasing a spray counter are classic, but I've also made it so you can give the drinking object a status effect.
    • Pikmin and leaders now need a drinking animation.
  • New category: Converter.
    • Objects in this category represent things that can convert any Pikmin thrown in into a seed of a Pikmin of another type. Use this for Candypop Buds.
    • You can specify what Pikmin types this object can convert to, the time between type changes, how many converted Pikmin can come out at most, how many Pikmin are ejected for every Pikmin inserted, if Pikmin of the same type as the conversion count towards the limit, how many Pikmin can be inside at once before it performs a conversion, and how long it takes before it closes and converts automatically.
  • New category: Resource.
    • Objects in this category belong to a pile, and can be carried by Pikmin and delivered somewhere in order to cause some effect. Use this for bridge shards, gold nuggets, Burgeoning Spiderwort berries, etc.
    • Among other things, you can specify where they must be delivered, what happens when they are dropped (if they vanish, and how quickly they do so), and when they are delivered (damage the receiving mob, increase the number of spray ingredients, or add points to the score).
    • Due to this, sprays can now be concocted by gathering up ingredients.
  • New category: Resource pile.
    • Objects in this category represent piles of resource objects. Use this for piles of bridge shards, piles of gold nuggets, Burgeoning Spiderworts, etc.
    • Among other things, you can specify how the piles recharge (if they do), if the number of resources should show up above it, and if it should disappear when it's empty.
  • New category: Tool.
    • Objects in this category can be held by Pikmin as they follow the leader in the group, and used later, like when the Pikmin is thrown. Use this for bomb rocks.
    • Tools are programmed in the object script, so you can make them trigger when the thrown Pikmin lands, when a leader gets near, etc. You can control when they can be grabbed, and by which objects (Pikmin, enemies, or both), you can control if the tool sticks to an enemy when a Pikmin is thrown at one, and you can control if a Pikmin about to get eaten can swap places with the tool it's holding.
    • Enemies can grab tools with their "eat" hitboxes (if you specify that in the script). They can then ingest it, and from there, they can receive ingestion spike damage. This allows bomb rocks to be swallowed and cause massive damage.
    • All object types can now specify how vulnerable they are to all hazards. You can use this to make certain enemies more resistant to explosions, or make obstacles that are only vulnerable to explosions.
    • Pikmin wielding tools belong to their own subgroup, selectable with the mouse wheel, separated in dismiss groups, etc. Different Pikmin types can also be able or unable to wield tools in the first place.
    • Added events: on_held, on_released, on_hitbox_touch_eat.
    • Added actions: set_holdable, get_chomped.
  • New category: Decoration.
    • Objects in this category don't do much other than idle, and change animation when they are bumped. They're perfect for decorative plants.
    • When one spawns, its rotation, scale, and tint can also change randomly. This allows you to place several in an area without worrying about them being randomly diverse. These parameters can be changed.
  • New scripting features:
    • You can now set an object's team, either from the script variables when it spawns, or from the set_team script action.
    • Objects can now spawn other objects with momentum. This will throw the spawned object in a random direction right as it spawns, with the specified force parameter.
    • The set_var action can now be used to make a calculation (either using variables or not), and store the result in a variable. increment_var was removed as a result.
    • The if action can now take a variable as the right-hand side comparand.
    • The set_animation action can now take a second word. If that second word is no_restart, the animation will be switched, but will continue from whatever time the current animation is in.
  • Specific enemies can now drop objects when they die. Use the spoils var to make them drop specific objects, like treasures, and use random_pellet_spoils to make them drop random pellets of the specified numbers.
  • Carrying improvements:
    • The first carrier Pikmin can now grab on from anywhere. This is especially useful for single-Pikmin objects, since the Pikmin is no longer forced to grab the easternmost point.
    • Carriable objects with a max carrier capacity of 1 no longer show carrying numbers.
    • Pikmin that are stuck in the path with nowhere to go now properly move in a circle, instead of awkwardly shuffling left and right.
  • The middle mouse button pan option is now the same for both editors. This makes it easier to maintain and organize the engine and user preferences, and I did it in the faith that users don't want a different value for both editors. Because the option changed name internally, you may need to set it again in either editor's options panel.
  • You can now change the threshold for a mouse move with a button held to be considered a "drag". Increase this if, in the editors, you feel like you move things too much when you just want to click.
  • Added the following objects to the pre-packaged content:
    • The missing pellets. I've also improved their look.
    • Ultra-spicy nectar and ultra-bitter nectar. I've also improved the look of regular nectar, and made it actually functional.
    • Candypop Buds. One for each type present in the pre-packaged content plus a Queen Candypop Bud for the three primary types.
    • Burgeoning Spiderworts and berries. Due to the current engine limitations, Burgeoning Spiderworts cannot be of mixed berry types, cannot grow, and Pikmin cannot climb on top of them.
    • Pellet Posies. Variants exist for sizes 1, 5, 10, and 20, and all of them can cycle through the three primary Pikmin colors (controllable by script vars). They also grow with time, starting from a sprout.
    • Bomb rock.
    • Reinforced wall. It can only be destroyed by bomb rocks.
    • Egg.
    • Decorative plants: Clovers, Margarets, Common Glowcaps, floor leaves, and Shoots.
    • Red ceramic bridge. Built by having Pikmin carry fragments from a pile.
  • Added some of the aforementioned objects to the Play area.
  • Screenshots, crash screenshots, and area images are now saved in the user data folder. Area images also now include the time in their file name, allowing you to save several ones in a row. The area_image_file_name creator toolkit option has disappeared, as a result.
  • Animations and sprites are now sorted alphabetically, which should make finding them in the animation editor easier.
  • Fixed several area editor sector glitches.
  • The framerate print is now a general system print. It also includes a framerate chart, number of mobs, number of particles, screen resolution, area version and creator, Pikifen version, and game version. Also, I've revamped the creator tool prints in general.
  • Improved performance during gameplay.
  • Other minor improvements and fixes. (Thanks, Kman and Neo)
Compatibility warnings
  • The increment_var script action has been removed. In its place, set_var can now update the variable to be the same value plus one.
  • The Pikmin hazard resistance info has been removed in favor of the global vulnerabilities system. To get the same result, instead of having an attribute called resistances and a semicolon-list of hazards, you should now have a vulnerabilities block, and add one hazard per line, in the format hazard = 0.
  • The gate category is now gone. The pre-packaged gates have been moved to the custom category. You can update your areas easily by editing the area's Geometry.txt file with a decent text editor, and replacing all instances of Gate{ with Custom{.
  • The info spot object type is now gone. Instead, use the "Sign" object type from the Interactables category. In addition, the trigger range for an interactable object has been moved from the game configuration file to the interactable object type's data file.
  • The nectar object type is now gone. Instead, use the "Nectar" object type from the Drops category.
  • The pre-packaged pellets were renamed to include "pellet" in the name (e.g. "Red 1" to "Red 1 pellet"). Update your areas and object script spawn information blocks accordingly.
  • Pikmin and leaders now need a drinking animation.
  • The set_animation action no longer supports animations with more than one word.
  • All numbers with decimals written to a text file by the engine now use four decimal places. This will have no impact on your content, but it should be worth pointing out all the same, in case you run some sort of specialized tools or are looking at the changes made in the pre-packaged files.


November 3rd, 2018

  • The Z coordinate of particles created from status effects and spike damage can now be controlled. (Thanks Neo)
  • Status effects can now also make the object glow. (Thanks Neo)
  • You can now use the mob_type comparand in the on_pikmin_land event.
  • The starting number of sprays can now be set per-area. You can set this in the area editor's "Info" panel. (Thanks Neo)
  • Fixed Armored Cannon Beetle not turning. (Thanks Kman, Neo)
  • Fixed a couple of carrying path-related crashes and glitches. (Thanks Neo)
  • Hopefully fixed random Pikmin carrying-related crashes. (Thanks Pikminfanboy9003)
  • Added some custom asserts to the code, which should make debugging certain crashes easier.
  • Shrunk the default Onion open range, so that it's less annoying.
  • Optimized part of the area loading process. (Thanks Neo)


September 22nd, 2018

  • Added a Z coordinate offset to the particle generator start action.
  • The Beady Long Legs's feet now turn towards the body. This was possible by changing the focus action, making it take a target.
  • The Beady Long Legs's head now properly floats above the ground, and will also rise according to the highest foot. For this, the stabilize_z action was created.
  • The Beady Long Legs's feet are no longer punchable.
  • Limbs now draw with effects, like darkening from being in a different sector.
  • Added the remove_status action, to remove a status effect. (Thanks Neo)
  • Fixed leaders and some other objects not becoming darker when they are inside darker sectors. (Thanks Kman)
  • Fixed area editor crash when loading an area with an unknown object. (Thanks Kman)
  • Fixed area editor crash when deleting a sector. (Thanks Neo)
  • Fixed Pikmin told to swarm trying to attack an object higher than them. (Thanks Neo)
Format change warnings
  • The focus action must now have a word after it to represent the target. trigger is the event's trigger object (the old action behavior), and parent focuses on the parent object.


September 13th, 2018

  • Object features:
    • Objects can now be linked to other objects.
      • In the area editor, you can specify links between objects.
      • In an object's spawn data, you can specify what links you want between the object that spawned and the object that got spawned, if any.
    • Objects can now send messages to other objects. This can either be all objects it has a link to, or all objects within a certain distance. The action send_message and the event on_receive_message have been created for this purpose.
    • Objects can now have "children" or "parent" objects. Children objects can be used as standalone parts of more complex objects. Like a leg of the Beady Long Legs, segment of the Armored Mawdad, hair of the Hairy Bulborb, etc.
      • When an object is created, any children objects defined in the children block of the object type's data file will also be created.
      • The child object can relay damage to the parent object, and/or handle it. Same goes for script events and status effects.
      • The child object can also be connected to a specific parent body part, or the parent object center.
      • It's possible to draw a "limb" between the two.
    • Objects can now be walked on top of. Use the attribute walkable in the object type's data. Nearby objects will climb on top if they are at least 50 units away (vertically).
    • Objects can now have rectangular collision. This system can be used for gates and the like. It should only be used for these kinds of objects since the engine is not ready to handle the collision between two rectangular objects, for instance.
    • Added some script actions to better support an arachnorb enemy.
      • arachnorb_plan_logic can be used to plan where the arachnorb head needs to be after the next set of steps. This can either involve it turning in a different direction, or walking somewhere.
      • move arachnorb_foot_logic requires a parent and a limb with a parent body part. It makes the object move towards its rightful spot somewhere else, such that when all feet finish moving, the arachnorb head object will end up in the spot it wanted to.
      • move linked_mob_average makes the arachnorb head object move to the average location of its linked objects.
      • turn arachnorb_head_logic updates the arachnorb head's angle based on the current position of its feet objects.
  • Added a Beady Long Legs. I couldn't find a good place for it in the Play area, though.
  • Rendering changes:
    • Object, area layout, and particles are now drawn a bit differently, internally. You might see things you couldn't before and vice-versa. Most notably, objects that are poking inside a wall will have the obscured parts properly obscured now. This is a pretty intensive change, so let me know if you see something being drawn wrong.
      • The before_mobs property in a particle generator's data has been removed due to the new ordered drawing. But please give me feedback on this change.
    • The way objects are scaled for the height effect has been changed. Now, it's less subtle, but needs to be called manually using script actions. Falling into a bottomless pit also shrinks the object down until it's gone.
  • Onion changes:
    • Pikmin in Onions are now controlled per-Onion, instead of globally. The Onion also keeps track of the amount of Pikmin of each maturity.
    • The whistle button can now stow away one Pikmin in the Onion you are close to. This feature is temporary until a proper Onion system is in place. (Thanks Kman)
  • Minor new features:
    • Added a turns_invisible parameter to status effects. If true, objects with this status are invisible to opponent objects.
    • Added a maturity_change_amount parameter to status effects. These allow Pikmin to mature or whither.
    • Added a buries_pikmin parameter to sprays. If true, using the spray on a Pikmin will bury it and turn it into a sprout.
    • Added a receive_status action. This can be used to give an object a status effect. (Thanks Kman)
    • Added a move away_from_focused_mob action. (Thanks Kman)
    • Added field_pikmin as a comparand for if actions. This can be used to know how many Pikmin are currently on the field. (Thanks Kman)
    • Added a pushes_with_hitboxes attribute.
    • Added a can_free_move attribute, that allows an object to move in any direction freely regardless of where it's facing.
    • Added the start_height_effect and stop_height_effect actions to control the object height effect.
  • Other changes:
    • Attacks with hitboxes with hazards can now miss, like normal attacks. (Thanks Kman)
    • The area selection menu now uses the areas' names, instead of the folder names.
    • Minor bug fixes and tweaks. (Thanks Kman)
Format change warnings
  • When spawning an object, the object type name, position, etc. is now specified in the data file, not the script file. This is similar to how reaches work.
  • The onion_starting_number attribute in a Pikmin type's data has been removed. Now, you can use the pikmin_inside variable when spawning an Onion. Example that starts an Onion with 8 leaf Pikmin and 1 flower Pikmin inside: pikmin_inside = 8 0 1.


June 23rd, 2018

  • Fixed sprite bitmap part picker causing a stack overflow crash on large images.
  • Fixed sprite bitmap part picker resetting the camera position and zoom every time anything happened.
  • Fixed a mob spawning another mob out-of-bounds causing a game crash. Happened with the Armored Cannon Beetle.
  • Fixed Pikmin thrown directly at a whole (such that they wouldn't slide sideways) losing all momentum and not making it up the wall.


June 16th, 2018

  • Revamped animation editor:
    • There is now a panel to edit the sprite bitmap file info on. It includes the ability to click parts of the spritesheet, and a button to browse for an image file.
    • All sprite-related panels have received a button to import data from a different sprite.
    • The sprite transformations, Pikmin tops, and hitboxes are now controlled via on-canvas handles.
    • The sprite comparison can now be tinted (along with the current working sprite), and can be placed either above or below the working sprite.
    • Hitbox editing now has a side-view mode, which helps adjust hitboxes vertically.
    • When picking a file to load, you can now browse a list of object types right away, or a list of global animations, instead of having to browse your engine's folders.
    • The bar of buttons on the bottom-right was moved to the top-left as a more standard toolbar, and packs more tools now.
    • The unsaved changes warning is now a small balloon next to the button you tried to press. It goes away on its own.
    • There's an options panel now. The only option I can think of right now is using the middle mouse button to pan, like the area editor has.
    • Controls and shortcut keys have been standardized like the area editor.
    • Sprites now have an "angle" parameter, so they can be rotated.
    • Added icons to the main menu's buttons.
    • When you boot it up, it opens the load menu right away. Adding a new frame to an animation also opens the sprite picker right away.
    • Tons of other tiny fixes and improvements.
  • Area editor improvements:
    • Ported some of the changes the animation editor received: the toolbar, buttons to browse for files to use in various panels, the unsaved changes warning balloon, and the zero key to reset view.
    • Added a quick play button. It saves the area, quits, and starts playing that area. Leaving will return to the area editor.
    • Added a cursor snapping mode button, which toggles between "snap to grid", "snap to vertexes", "snap to edges", and "disable snapping". (Thanks Neo)
    • Added stats to the main panel.
    • Area reference images can now be loaded from anywhere in the disk.
    • The problem finder can now detect bridge mobs that aren't on a bridge sector.
  • Added on_land as an event usable in the mob script.
  • If there were errors loading the area, a quick notification will be shown after the area loads.
  • Added Yellow Wollywog. (thanks Kman, Neo, Scruffy, Untitled)
  • Fixed minor glitches (thanks Kman)
Format change warnings
  • Sprites no longer use a "game size", but rather, a "scale". If you made custom animations that changed the size of the sprite, you'll have to re-specify the size with the scale.
  • In animation text files, the parameters "outward" and "angle" regarding hitbox data are now "knockback_outward" and "knockback_angle". If you have animations with hitboxes that cause knockback, redo the knockback data.
  • Area backups have been moved from User_data/Area_backups/* to User_data/Areas/*, and the file names went from Geometry.txt and Data.txt to Geometry_backup.txt and Data_backup.txt. If you care about your backups, make this change accordingly.
  • Area reference image data was moved from User_data/Area_editor_references/* to User_data/Areas/*. The reference configuration text file is the same, except it now has an extra parameter, file, where you specify the path to the image to serve as a reference. Also, the reference no longer needs to be Reference.png in the area's reference user data folder. It can be anything on-disk. (Thanks, Neo)


April 24th, 2018

  • Added leader punching.
  • Reworked the hitbox and damaging system, so expect a different look and feel.
    • Now, all mob types can have a list of resistances.
    • Attacks can now wither Pikmin maturity by one level.
  • Added Armored Cannon Beetle and its boulder.
  • Reworked the mob scripting.
    • The mob script text file can now have an init block, where you can specify actions that should be run when the mob spawns.
    • Conditions (if-then) now have an "else".
    • Conditions can also check for much more than just a variable's value.
    • Enemies now shake if it's been X seconds and Y damage since the last shake. This should make fighting enemies much better, since they aren't shaking all the time.
    • Some stuff is now handled automatically: handling death (though now you have to specify the death state's name in a parameter), handling sprays, handling bottomless pits, releasing held Pikmin on death, and stop walking on death.
    • Added the following actions: turn (turn to a direction), set_tangible (whether an object is tangible or not), randomize_var, move focused_mob_pos (moves to the focused mob's position at that moment), teleport, spawn (spawns an object).
    • Added the following events: on_tick (triggered every game tick), on_touch_object, on_touch_wall.
    • Added a bunch of options to existing actions.
    • Added some mob type parameters:
      • blocks_carrier_pikmin, which can make an object block carrier Pikmin if it is alive.
      • appears_in_editor, which can make a mob type not appear in the area editor's list. (Thanks Kman)
      • is_projectile, which is useful for objects that are meant to cause destruction and harm.
      • projectiles_can_damage, which is useful for obstacles that shouldn't lose health when projectiles hit.
  • Minor tweaks.
    • Updated the application icon, which was outdated.
    • The engine now reports initialization errors at startup.
    • Gates now push objects on their own, instead of relying on a sector.
    • Area editor's object picker now has the category names aligned to the left, so they don't blend in with the buttons.
    • Made the Red Bulborb, Dwarf Red Bulborb, and Whiptongue Bulborb turn around on the spot to align, like in the canon games.
    • Bridges over bottomless pits are now possible.
    • Rebalanced some enemies.
    • Fixed dead leaders locking up gameplay. If the active leader dies, the game switches to the next, and if all die, returns to the main menu.
    • Changed the default zoom level from 1.5 to 1.4.
    • Other minor tweaks and bug fixes. (Thanks Neo, Kman)
Format change warnings
  • The attack_power parameter for Pikmin has been removed. Pikmin damage is now controlled by the hitbox's attack multiplier.
  • Pikmin no longer attack using frame signals, but instead with hitboxes, just like enemies.
  • Pikmin and leaders now need hitboxes in order to be damaged.
  • Bottomless pits are no longer a sector type, but a flag. There's a new checkbox on the area editor, so update your areas's bottomless pits accordingly.
  • Gates now push objects on their own. Update your areas so that gates are not on top of sectors of the "blocking" type.
  • Attacks in animations got some changes.
    • In animation files, a hitbox's multiplier parameter is now called value. Either do a global text replace, or re-apply your animations' hitbox data in the editor.
    • Leader/Pikmin health has been increased to be similar to most other objects. As a result, enemies, hazard, etc. should cause more damage accordingly.
  • Mob scripts have been reworked.
    • Actions no longer use equals signs.
    • The if_not, if_less, and if_more actions have been all condensed into the if action.
    • if action now needs an accompanying endif action. This also means several actions can go inside the same "if" section.
    • The format for the if actions is now if <left-hand side> <operator> <value>, with <left-hand side> being var followed by the variable name, or just the name of some special information, <operator> being one of =, !=, <, code>></code>, <=, code>>=</code>.
    • The on_big_damage event is gone, in favor of the "itch" system. on_itch is triggered when it's been X seconds and Y damage since the last itch event.
    • The on_death, on_touch_spray, and on_bottomless_pit events have been removed, since they are now handled internally, automatically. Mobs must declare the death_state parameter, so the script knows what state to send the mob to when it dies. Also, if you wanted any state to not handle the death or spray events, you will have to specify them in the states_ignoring_death and states_ignoring_spray parameters, respectively.
    • Renamed some actions to make more sense: animation to set_animation, far_reach to set_far_reach, gravity to set_gravity, health to set_health, hide to set_hiding, near_reach to set_near_reach, state to set_state, timer to set_timer, var to set_var, inc_var to increment_var.
    • eat was split into swallow and release.
    • chomp was split into start_chomping and stop_chomping.
    • particle was split into start_particles and stop_particles.
    • move stop and move stop vertically were changed to stop and stop vertically. special_function delete was changed to delete. special_function die_start was changed to start_dying. special_function die_end was changed to finish_dying.
    • move vertically was removed.
    • The move action's relative coordinates now rotate with the object, so +X is the object's front, -Y is the object's left, etc.
    • move, set_health no longer assume "absolute" values if you don't say "relative". Now, you have to specifically say either "relative" or "absolute".
    • The on_mouth_empty and on_mouth_occupied events have been removed in favor of the if action and the chomped_pikmin comparison.
    • The start_particles action now requires the (relative) coordinates to spawn the particles from.


February 11th, 2018

Format change warnings
  • The area editor backup files have moved to /User_data/Area_backups/<area name>, and are called Data.txt and Geometry.txt. Move your existing backups over if you care about them.
  • The area editor reference images and their position data have been moved to /User_data/Area_editor_references/<area name>. If you care about a reference image, move the image file here, and rename it to Reference.png, and if you want to port the center, size, and opacity data, find it in the area's Data.txt file and port it to its own file called Reference.txt in this folder.
  • Your options will now be loaded from /User_data/Options.txt. Move the file there if you care about your settings.
  • Your creator tool configurations will now be loaded from /User_data/Tools.txt. Move the file there if you care about your tools settings.
  • The project has been renamed to "Pikifen".
  • Changed the default resolution and zoom so everything looks bigger and better.
  • User data now goes into its own folder. This includes: the options file, creator tools settings file, area editor backups, area editor reference images, and error log. This should make things more organized, and should make it easier to share your content without worrying about accidentally including files that only concern you! And don't forget to move your options file there, too, if you care about your settings.
  • Areas can now have "creator", "version", and "notes" fields.
  • The title screen now has a proper Pikmin logo system.
  • Added an options menu for players to set the resolution, and to enable fullscreen.
  • Added an option to the area editor to allow panning with the middle mouse button (and resetting the camera/zoom with the RMB).
  • Added Whiptongue Bulborb.
  • Added notifications instructing the player how to pluck, stop the auto-pluck, open an Onion, and get up from lying down.
  • The controls for stopping the auto-pluck and getting up have been changed from any button to just the whistle button.
  • Leaders and Pikmin now walk a bit faster.
  • Fixed carrier Pikmin getting stuck against one another.
  • The advanced sector behavior settings now hide the "tags" field if the current sector type doesn't need it. Set the sector type to "Bridge" or "Bridge rail" to enable it, and also update its description accordingly.
  • Added an "import hitboxes" button when editing a sprite's hitboxes.
  • Misc. menu improvements.
  • Improved Pikmin graphics:
    • Standby icons no longer look like lifeless clay models.
    • Walking animation is now more lively.
    • Yellow Pikmin ears are much more accurate.
    • General tweaks.
  • Minor bug fixes and tweaks.


December 23rd, 2017

Format change warnings
  • Area format updates
    • The leaf shadow texture was renamed from Leaf shadow.png to Tree_shadow.png.
    • Area backgrounds are now fetched from the Game_data/Images/Textures folder.
    • An area's reference image coordinates now specify the center, not the top-left. The parameter in Geometry.txt is now called reference_center instead of reference_pos.
  • In Game_data/Misc/HUD.txt, the HUD items that had key in the name now have button. The coordinates also now specify an invisible box from which the HUD item cannot go beyond; most HUD items will maintain aspect ratio and still fill this box.
  • Pikmin animations for sprouts renamed from buried to sprout. Similarly, the script variable buried in the area editor, used to spawn sprout Pikmin, has been renamed to sprout.
  • New area editor!:
    • New features:
      • You can now select, move, and even edit multiple vertexes, edges, sectors, objects, path stops, or path links at once.
      • Sector drawing and vertex moving are more intelligent and friendly in general.
      • An "Info" panel to edit the area's name, weather, etc.
      • Undo button.
      • Textures are now drawn on the sectors.
      • When dragging vertexes or drawing edges, a number will appear that shows the length of relevant edges.
      • The "Options" panel got several more options: toggle the edge length number, switch view mode (show textures, just wireframe, heightmap, or brightness map), specify the auto-backup timer, and specify the undo limit.
      • A tool to quickly offset, scale, or rotate the textures of sectors you click on.
    • Quality-of-life tweaks:
      • When drawing a sector or moving a vertex, you can now place vertexes on existing edges without needing to create a vertex there first.
      • Status bar now writes more warnings, and will also scroll automatically when showing long messages.
      • Picker panels now have a brief description, and let you search using the text box at the top.
      • The area picker will appear right away when loading the area editor, and the object type picker now has all mobs, split into categories with separators.
      • Sector hazards are now controlled with buttons and pickers, instead of the user having to write a list manually.
      • The reference and shadows can now be transformed using draggable control points.
      • Implemented several keyboard shortcuts, as well as Esc to cancel operations and deselect all, Ctrl+A to select all, etc.
      • When drawing a new sector, it uses the top suggestion in the list of suggested textures, and when placing a new object, it uses the last type set (or a Red Pikmin by default).
      • The path editor has been changed to allow the user to draw paths in a more streamlined way.
    • Other changes:
      • Reference data has been moved to the "Tools" panel.
      • Double-clicking the middle mouse button now resets the camera to the origin.
      • The main panel now has icons for each button.
      • Many more minor tweaks and quality-of-life changes.
  • Added White Pikmin ingestion poison in the form of a new feature: spike damage.
    • Creators write down the types of spike damage. These determine what the damage is, what triggers it (damage when ingested, or damage when attacked), and what particles come out.
    • Any mob type can make use of a type of spike damage.
    • Any mob type can also use a list of vulnerability modifiers, making it more or less vulnerable to certain types of spike damage.
  • The file Misc/System_asset_file_names.txt can now be used to override system asset file names. For instance, instead of the game icon being loaded from Icon.png, it can be loaded from some other image.
  • Sprouts now evolve in stage over time. Pikmin types have new parameters: sprout_evolution_time_1 specifies how long a leaf Pikmin must wait before evolving, in seconds. sprout_evolution_time_2 is the wait time for bud Pikmin, and 3 is for a flower to wither back.
  • New creator tool options: area_image_mobs, if set to false, hides mobs, particle effects, etc. from the final area image. mob_hurting_percentage lets you change how much health the mob will lose with the "hurt mob" tool; the default is also now 50% instead of 20%.
  • Details:
    • The mouse cursor jumping to the leader cursor on area load was annoying, so now it does the opposite.
    • New particle graphic: rock. This is used when a Pikmin seed ejected from an Onion lands.
    • Enemy spirit size now depends on enemy size.
    • When repairing the suit at the ship, some sparkles come out. There is now also a notification telling the player how to repair the suit when they get near.
    • HUD elements now move in from off-screen when the area is entered.
    • If there's no carrying path in the area, the Pikmin will just make a beeline for the Onion/ship.
    • The "missing texture" texture went from a red "ERROR" to a violet-and-black checkerboard pattern.
    • Notification bubble is now black, so the white text on it can be read better.


July 27th, 2017

  • Your old right/up/left/down controls will not be recognized in this version. Please re-map them in the options menu.
  • If you made custom weather conditions, you'll need to edit Weather.txt as per the changelog.
  • Pressing the "Pause" button now exits to the main menu, instead of closing the game.
  • Areas are drawn differently now:
    • Slightly higher CPU usage (~+5%), but much lower VRAM usage (~-50%).
    • The area_quality option is gone; walls will have the same resolution regardless of zoom.
    • Bridges will now use the background in their seams instead of the sector under them -- this will be fixed in the future.
  • The mipmaps option was added to Options.txt. Set this to "false" to disable mipmaps (for slightly higher CPU usage, but lower VRAM usage).
  • Improved controller support:
    • Analog sticks now obey deadzones -- these can be set with the joystick_min_deadzone and joystick_max_deadzone options in Options.txt. This way, analog sticks won't have loose wiggle accounted for, and some joysticks (like the Switch Pro Controller) can be considered "fully tilted" when they're technically only sending around 70% tilt.
    • Added menu navigation controls.
    • In Options.txt, controls for player 1's movement are no longer called p1_right, p1_up, etc., but rather p1_move_right, p1_move_up, etc. The same change was made for the other player numbers.
  • Added a crash handler.
    • If the engine crashes, a message appears, a screenshot is dumped, and diagnostic information is written to the logs.
  • Added the Crumbug.
  • Enemy attacks can now have a chance of not knocking back any given Pikmin. This is useful for shake attacks that only shake off 75% of the Pikmin, for instance. The pre-packaged enemies were updated with some chances.
  • Area editor improvements:
    • Ctrl + Minus now deletes the selected mob on the area editor.
    • Middle-clicking now keeps the cursor on the same spot.
  • Weather changes:
    • Added fog. fog_color is a table, much like lighting, that controls the fog's color at 100% density throughout the day, and fog_near and fog_far control the distance at which 0% density ends and 100% density starts, respectively.
    • In Weather.txt, a weather condition's name is now the same name as the block, instead of being a name parameter inside a weather block.
    • If a weather condition has no lighting table an error will no longer be logged.
  • Wall shadows now depend on sector height difference. They're also now drawn on top of water, and are slightly darker overall.
  • The Cloaking Burrow-nit now takes no damage if hit from back, like in Pikmin 2.
  • When a mob has to decide to interact between multiple nearby mobs, it now picks the closest one instead of the first one the engine checks. This means a Pikmin thrown at several tasks will go to the nearest one.
  • You can now take multiple screenshots, since they are now saved with different file names, based on when you took them (plus a number if you take several in one second).
  • Misc. optimizations, improvements, and fixes.


May 27th, 2017

List of changes
  • Editor improvements:
    • New area editor features:
      • You can now create a new area when on the list of areas.
      • "Create circular sector" button.
      • "Delete isolated sector" button.
      • Cross-section view.
      • Clicking the latest placed vertex when drawing a sector now allows you to place it again.
    • New animation editor features:
      • When editing a Pikmin top's positioning, allow moving with the mouse.
      • Sprite offset tool also includes resize now, as well as mouse movement support.
      • A button to turn all in-game W/H into a multiplier of the file W/H.
      • A way to rename frames/animations.
    • GUI graphical image buttons instead of text.
    • The width of the editor GUIs is now more flexible.
  • Group improvements:
    • Made group organization and throwing work like in Pikmin 3, via select, continuous throw, and type switch.
      • The scroll wheel directions are now the default group member switching controls.
      • Maturity switching now only works when holding a Pikmin.
      • The config file now allows you to set a preferred Pikmin order (used for choosing which Pikmin type to throw next).
      • The config file now allows you to set a preferred leader order (used when changing to the next leader).
      • The config file now allows you to enable or disable throwing leaders.
      • The HUD now shows the number of Pikmin of the standby type, the group total, and the field total; the latter two bubbles are labeled.
    • Pikmin in groups move more dynamically:
      • If the leader is nearby, they just shuffle along, but keep formation.
      • If the leader is far away, they follow behind and try to stay behind the leader's back.
      • Throwing sorts the group and puts them behind the leader.
      • Group moving now stretches the group to the destination.
    • Leaders following leaders now don't awkwardly stick to the main leader, but follow in a line.
    • Dismissing now separates and places Pikmin properly, for any number of Pikmin or subgroups.
  • Gate and bridge changes:
    • Gates must now be on a sector of the "blocking" type, not of the "gate" type; that type is now gone.
    • Pre-packaged gate radius is now 32 instead of 48, so that Pikmin hitting it don't seem so telepathic.
    • Created the "Bridge" mob category, allowing several types of bridge, with different HP, graphics, etc.
  • New features and content:
    • "Blackout" effect for weather – everything is dark, but objects give off light.
    • Added specialized HUD bubbles for the different parts of the Pikmin counter, and the ability to specify your own HUD graphic file names on Game_data/Misc/HUD.txt.
    • disables_attack parameter for status effects; I've also added this parameter to petrified enemies to stop them from hurting unfairly.
    • Cursor now gains an "X" if the held Pikmin/leader cannot reach the cursor's ledge.
    • Idle leaders now pluck Pikmin on their own.
    • Creator tools can now also be bound to keys 0 - 9.
    • "Coordinates" creator tool is now the "geometry info" tool, and it also shows basic info about the sector under the mouse cursor.
    • Added a "show hitboxes" creator tool – pressing the key toggles hitbox visibility on enemies, similar to how they look in the animation editor.
    • Added Fiery Blowhog.
  • Tweaks, balance changes, etc.:
    • In animations, "Frames" are now "Sprites", "instances of frames" are now "frames", "hitboxes" are now "body parts", and "instances of hitboxes" are now "hitboxes".
    • The area editor "guide" image now goes by the much more apt name "reference" image.
    • Pikmin will no longer stop to wait for new carriers. It looks like letting the carriers reach their spot normally is enough.
    • Revamped grounded attacking and re-chasing.
    • Made plucking faster and impossible to cancel mid-animation.
    • Pikmin throws are faster and more balanced in max height – this also changes the global gravity by making it heavier.
    • Made a day take 15 minutes to pass.
    • Enemies now ignore Pikmin when returning home for only 2 seconds.
    • Loads of tiny fixes and improvements.
Updating older content

If you have created any custom content from this list, you must make the appropriate corrections noted here if you want it to work on 0.10. If not, you can forget this section.

This section is only for content created on version 0.9; if you created content in a version before that one, please port the content version by version. Before you start, I recommend you create a backup of your content. I've made a tool that'll convert some of the files – you'll have to do the rest by hand. To use the tool, go here, and download the page as an HTML file. Then, open said HTML file with your browser of choice, and follow the instructions there.

  • Main config file:
    • cursor_spin_speed now uses degrees instead of radians.
  • All animations:
    • frames -> sprites.
    • frame_instances -> frames.
    • hitboxes -> body_parts.
    • hitbox_instances -> hitboxes.
    • file_x = <x> + file_y = <y> -> file_pos = <x> <y>.
    • file_w = <w> + file_h = <h> -> file_size = <w> <h>.
    • game_w = <w> + game_h = <h> -> game_size = <w> <h>.
    • offs_x = <x> + offs_y = <y> -> offset = <x> <y>.
  • Areas:
    • guide_x = <x> + guide_y = <y> -> reference_pos = <x> <y>.
    • guide_w = <w> + guide_h = <h> -> reference_size = <w> <h>.
    • guide_file_name -> reference_file_name.
    • guide_alpha -> reference_alpha.
    • Any enemies in the "Misc." mob category need to be changed to the "Custom" category.
    • Bridges now belong to the "Bridge" category. It's better to delete the existing bridge objects and create them again with the editor.
  • Particle generators:
    • speed -> total_speed.
    • speed_deviation -> total_speed_deviation.
    • speed_x = <x> + speed_y = <y> -> speed = <x> <y>.
    • speed_x_deviation = <x> + speed_y_deviation = <y> -> speed_deviation = <x> <y>.
    • x_deviation = <x> + y_deviation = <y> -> pos_deviation = <x> <y>.
    • angle and angle_deviation now use degrees instead of radians.
  • Mob config files:
    • rotation_speed now uses degrees instead of radians.
    • throw_height_mult -> throw_strength_mult (Pikmin and leaders only).
  • Mob scripts:
    • Mob types have lost the sight radius, near radius, etc. in favor of a detailed "reach" system:
      • Each mob type can have any number of reaches – a reach is defined by 1 or by 2 pie-slices. If an opponent is inside these pie-slices, they're considered "in reach".
      • The mob script can set what the active reach for "new" opponents is, and what the active reach for the focused opponent is.
      • For instance, a Red Bulborb, while chasing, has its "near" reach set to a pie-slice in front of it; if a Pikmin goes inside this pie-slice it will trigger an attack. Meanwhile, its "far" reach is a circle around it, such that it can always chase around the focused mob, until a certain distance.
  • Pikmin:
    • Pikmin attack intervals are no longer controlled by an attack_interval parameter, but rather, the attack connects when one frame of animation sends a "signal".
  • Sprays file:
    • angle and angle_range now use degrees instead of radians.
  • Tools config file:
    • coordinates tool -> geometry_info tool
  • HUD config:
    • There is now a positions block, that holds the coordinates of all elements, and a files block, where you specify what textures to use for the different elements.
    • 0 0 0 0 can now be used for elements you don't want.
  • Folders:
    • Game_data/Types/Misc. -> Game_data/Types/Custom.
    • Bridge type is now a thing, as is the bridge category of mobs.


December 22nd, 2016

  • Replaced copyrighted graphics and sounds with free license ones.
  • Standby Pikmin HUD icons are now split: one bubble for the Pikmin type, one for the maturity (pikmin_standby_m_icon).
  • Bridge rails now have their own texture.
  • In the HUD, the sun bubble is just a regular bubble, but tinted.
  • Fixed vertexes not merging according to the zoom level, when creating a sector in the area editor.
  • Minor bugfixes.


August 6th, 2016

  • New content
    • Hazards, sprays, status effects, liquids
      • Pre-packaged fire, lethal electricity, stunning electricity, water bodies, water bubbles, ink, and poison hazards.
      • Pre-packaged ultra-bitter and ultra-spicy sprays.
      • Pre-packaged fire geyser, gas pipe, and Pikmin 3 electric gate obstacles.
    • An actual particle system, with custom particle generators.
    • Area editor
      • Sectors can now be created by drawing them.
      • Debugging tools on the F keys.
      • Auto-backups.
    • Animation editor
      • Frame offset wizard tool.
      • Recent file history.
      • "Apply duration to all" button when editing an animation's list of frames.
    • Fading sectors now fade brightness.
    • Sectors can now be tinted by a custom color.
    • Pre-packaged enemies
    • The ability to add a counter for the Pikmin of the standby type to the HUD, like in Pikmin 3.
    • "Misc." category for mobs (used for obstacles).
    • is_obstacle and allow_ground_attacks properties.
  • Player-relevant changes
    • Fixed edges of graphics being muddy (no premultiplied alpha).
    • The engine now complains if you try to run it without a Game_data folder, or inside the zip file.
    • Leaders have a different spark animation.
    • The options file was revamped. I recommend deleting the old file and letting the engine create a new one.
      • Added a max_particles option, removed daylight_effect, and renamed window_pos_hack to window_position_hack.
      • Added an option for the middle level of zoom. Pressing C toggles between 0.5, 2.0, and that level (default 1.0).
      • Dozens of tiny changes (hence why I recommend deleting the old file).
  • Creator-relevant changes
    • Ships now rotate and act more correctly.
    • Moved the title screen logo animation into the Animations folder.
    • Made the mob info creator tool lock-on to a mob, and update its data every frame. Activating it on the same mob again unlocks it.
    • Renamed enemy folders.
    • Animation, frame, state, etc. names were made more consistent (it was a mess between adjectives and verbs). If you made custom content for the engine, please re-read the tutorials on the wiki to update the names of the animations for your Pikmin, gates, etc.
  • Known problems
    • If a Pikmin that was going to a carrying spot dies, carrying becomes impossible for that object.
    • Carrying the billiards ball on Play only to the ledge immediately below, and whistling the Pikmin makes it stuck.
    • Rarely, you can have leader 1 pluck Pikmin, be called by leader 2, and have some Pikmin belong to leader 1's group instead of leader 2's.


April 12th, 2016

  • Area editor improvements
    • An options screen with the ability to switch the grid size.
    • The ability to duplicate objects quickly.
    • Everything is now a lot easier to understand, mostly due to color balances (thanks, Doom Builder!)
    • Objects are now color-coded based on their category.
    • A special tools menu, with the ability to resize the whole area.
    • Reorganized some things.
  • A special tools menu on the animation editor, to resize all images, hitboxes, etc.
  • Increased gate size (so that 20 pellets may pass).
  • Shrunk Female Sheargrubs to resemble the canon games better.
  • It's now possible to enter an area or editor straight away (auto_start_mode and auto_start_option on Tools.txt).
  • Added a document with misc. code-related info to the git repository.
  • Minor bugfixes.


March 26th, 2016

  • Fixed enemies dying instantly if a Pikmin hits them while they're shaking.
  • Fixed enemies attacking obstacles.
  • Fixed Pikmin getting stuck in their thrown state.
  • Fixed Pikmin trying to carry stuff to a ship when there is none.
  • Fixed enemies pushing leaders and Pikmin through walls (99% of the time at least).
  • Fixed Pikmin acting weird if commanded to walk off a cliff.
  • Fixed an area's background randomly showing a broken triangle of texture.
  • Fixed area editor breaking a sector when merging vertexes of a nearby sector.
  • Fixed area editor not updating a texture's advanced settings if the angle is changed.
  • Fixed Pikmin walking in a circle if their destination is really close.
  • Fixed F11 not being a valid creator toolkit key.
  • Fixed walls being ignored if they're perfectly vertical/horizontal and on coordinates multiples of 256.
  • Fixed a softlock when switching leaders right as a day starts.
  • Added the original SVG files + a random helpful information document on the repository.
  • Enemy scripts can now specify what happens when it falls into a bottomless pit with on_bottomless_pit.
    • Implemented behaviors for the prepackaged enemies.
    • The delete special function can be used to delete the object straight away.
  • Pikmin now sigh (for 2 seconds) if they fail to join an object's carriers.
  • Made the starting number of Pikmin on Onions editable (Game_data/Types/Pikmin/<type>/Data.txt, onion_starting_number).
  • Increased task detection range, and made it into two parameters – idle (idle_task_range) and group moving (group_move_task_range).
  • Increased shaking and attacking hitbox sizes for prepackaged enemies.


March 19th, 2016

  • Added carrying paths.
  • Wall collisions were massively improved (objects don't stick on them while sliding).
  • Added a "creator toolkit", with some helpful debugging tools for content creators.
  • Added Female Sheargrub.
  • F12 now takes a screenshot (it is placed on the same folder as the engine).
  • Implemented bottomless pits.
  • Changed the format of some internal things. See here for a list of changes that need to be made to convert any user-made creations to version 0.7.
  • Replaced the existing treasure with two, better ones.
  • HUD coordinates can be customized.
  • Quite a few game parameters are now customizable, like max Pikmin number on the field, cursor reach, etc.
  • Script changes
    • The gravity action is now a multiplier.
    • Added move = stop vertically to stop all vertical momentum.
    • Added hide action to hide the shadow and health wheel.
  • Editor changes:
    • Editors now ask you if you want to quit without saving.
    • Animation editor can now edit any text file, not just object animation text files.
    • The animation editor now suggests file names and in-game width/height.
    • The area editor now suggests textures, with icon previews.
  • Aesthetic
    • Mouse controls have their own graphics instead of saying "M1", "M2", etc.
    • The camera moves smoother now.
    • Info spots have a new notification style.
    • Default framerate is now 60 FPS.
  • Plus misc. changes that aren't noteworthy.


January 1st, 2016

  • Added menus (main menu, options, area selection, access to the editors).
  • New icon.
  • Added a White Spectralid enemy.


October 11th, 2015

  • Massively revamped mob logic.
  • Objects now walk like a car: they can only move forward and turn.
  • Added bridges and gates.
  • Objects can block and/or push each other.
  • Added a Dwarf Red Bulborb enemy.


August 16th, 2014

  • Added Walls, floors, textures, etc.
  • Revamped Pikmin AI.
  • Revamped some graphics.
  • Added a Red Bulborb enemy.


March 9th, 2014

  • Added animation editor.
  • Added basic enemy AI.
  • Improved HUD.
  • Added a Cloaking Burrow-nit enemy.


December 24th, 2013

  • General improvements and additions.


October 23rd, 2013

  • Engine launch.