Pikifen/Misc. configurations

From Pikmin Fanon
Jump to: navigation, search

This article explains how miscellaneous configuration files on Pikifen work. These are plain engine text files.

Game configuration[edit]

This file controls some general settings about how the game works. It can be found in Game_data/Misc/Config.txt. Create it if it does not exist. The defaults can be found here.

The following attributes exist:

  • game_name: Name of the fangame.
  • game_version: Version of the fangame. Can be anything, but the preferred format is something like "1.2.3".
  • carrying_color_move: Color to use for the carrying numbers when an object that is meant for the ship is being carried. Format is "red green blue" or "red green blue alpha".
  • carrying_color_stop: Same as above, but for when the object is not moving.
  • carrying_speed_base_mult: When an object is being carried, its movement speed depends on the carriers' average speed (and more). With 0 carriers, the average speed is multiplied by base_mult, and with all spots taken, it's multiplied by max_mult. This attribute controls the base value. In other words, this controls how high the slowest speed of a carried object is.
  • carrying_speed_max_mult: Same as above, but the max_mult. In other words, this controls how high the fastest speed of a carried object is.
  • carrying_speed_weight_mult: For every 1 unit of weight, decrease the carrying speed by this much.
  • day_minutes_start: When a normal day starts. This follows a format similar to real life, so 0 is midnight, 60 is 1 AM, 120 is 2 AM, 420 is 7 AM.
  • day_minutes_end: Same as above, but for when the day ends.
  • day_minutes_per_irl_sec: For every real-time second, these many in-game minutes pass.
  • pikmin_order: Preferred order to sort Pikmin with. Used when swapping Pikmin, dismissing them, organizing them in an Onion, etc. Separate each type with a semicolon (;). e.g. Red Pikmin;Yellow Pikmin;Blue Pikmin.
  • standard_pikmin_height: The height of a "standard" Pikmin, i.e. a Pikmin that's not shorter or taller than most. Used to help calculate some physics logic.
  • standard_pikmin_radius: The radius of a "standard" Pikmin, i.e. a Pikmin that's not skinnier or fatter than most. Used to help calculate some physics logic.
  • leader_order: Like pikmin_order, but for the leaders.
  • idle_task_range: Minimum distance between a Pikmin and a task before the Pikmin can take the task, when the Pikmin is idling.
  • group_move_task_range: Same as above, but for a Pikmin on the group during the "group move" command.
  • max_pikmin_in_field: Maximum number of Pikmin that can be on the field.
  • maturity_power_mult: Every maturity level, multiply a Pikmin's attack power by this much.
  • maturity_speed_mult: Every maturity level, multiply a Pikmin's walking speed by this much.
  • nectar_amount: How many Pikmin can drink a drop of nectar until it vanishes.
  • pikmin_chase_range: Pikmin will chase after enemies unless they're this far away.
  • can_throw_leaders: "true" if it's possible to throw leaders, "false" if not.
  • cursor_max_dist: Maximum distance away from the leader that their cursor can go to.
  • cursor_spin_speed: How quickly the mouse cursor's icon spins, in degrees per second.
  • next_pluck_range: When auto-plucking, a leader will only choose the next Pikmin if it is within this distance.
  • onion_open_range: Leaders can open an Onion if they're within this range from the center of the Onion object.
  • pikmin_grab_range: A leader can grab the closest Pikmin only if it is within this distance.
  • pluck_range: A leader can pluck a Pikmin only if it is within this distance.
  • whistle_growth_speed: How quickly the whistle's radius grows in size, in pixels per second.
  • info_spot_trigger_range: An info spot will show its notification (and become openable, if it is openable) only if the current leader is within this distance.
  • message_char_interval: Time interval between characters when displaying a message, in seconds. 0 shows the entire text instantly.
  • zoom_max_level: Maximum level of zoom (i.e. how close the camera can get).
  • zoom_min_level: Minimum level of zoom (i.e. how far away the camera can get).


The position and size of the HUD's elements can be customized in Game_data/Misc/HUD.txt. In order to work with any window size, this data is specified in percentages, not pixels. This means that an X and Y of "50" equals the center of the screen on any window size.

There are two blocks, positions and files. Inside the first block, every attribute's value takes on the format x y w h, which are the X and Y coordinates of the center of the item, plus the total width and total height. The numbers you put in don't use a percentage sign. To hide a HUD element, just put 0 0 0 0. Inside the second block, you just specify the file name of the image that represents a HUD element, or a HUD element's component.

The list of attributes for each block is as follows. The defaults can be found here.

  • time: Time of day, represented by the Sun Meter.
  • day_bubble: The bubble for the current day number.
  • day_nr: Current day number.
  • leader_1_icon: Icon of the current leader.
  • leader_2_icon: Icon of the next leader.
  • leader_3_icon: Icon of the next next leader.
  • leader_1_health: Health wheel of the current leader.
  • leader_2_health: Health wheel of the next leader.
  • leader_3_health: Health wheel of the next next leader.
  • pikmin_standby_icon: Icon of the type of Pikmin in standby (the closest Pikmin), sans leaf/bud/flower.
  • pikmin_standby_m_icon: Icon of the maturity of the Pikmin in standby.
  • pikmin_standby_x: Multiplication sign ("&mult;"), found to the right of the standby icon in Pikmin and Pikmin 2.
  • pikmin_standby_nr: Number of Pikmin of the standby type.
  • pikmin_group_nr: Number of Pikmin on the leader's group.
  • pikmin_field_nr: Number of Pikmin on the field.
  • pikmin_total_nr: Number of total Pikmin (field + Onions).
  • pikmin_slash_1: One of the slashes that go between the counter numbers. There are three of them to be used at will, depending on how many counter numbers you want visible.
  • pikmin_slash_2: See above.
  • pikmin_slash_3: See above.
  • spray_1_icon: Icon of the spray, when there is only one type, icon of spray #1 (the "up" one), when there are two types, or icon of the currently selected spray, when there are more than 2.
  • spray_1_amount: Same as above, but its amount. This includes the multiplication sign ("&mult;").
  • spray_1_button: Same as above, but the button to press.
  • spray_2_icon: Icon of spray #2 (the "down" one), when there are two types.
  • spray_2_amount: Same as above, but its amount. This includes the multiplication sign ("&mult;").
  • spray_2_button: Same as above, but the button to press.
  • spray_prev_icon: Icon of the previous spray on the list, when there are more than two types.
  • spray_prev_button: Same as above, but the button to press.
  • spray_next_icon: Icon of the next spray on the list, when there are more than two types.
  • spray_next_button: Same as above, but the button to press.
  • bubble: Standard, circular bubbles. Used on the standby Pikmin icon, leader icons, etc.
  • checkbox_check: A checkbox's "check". Used in menus.
  • counter_bubble_field: The bubble in which the Pikmin-on-field counter is contained.
  • counter_bubble_group: Same as above, but the in-group counter.
  • counter_bubble_standby: Same as above, but the counter of group members of the current standby type.
  • counter_bubble_total: Same as above, but the Pikmin total counter.
  • day_bubble: The bubble in which the day counter is contained.
  • distant_pikmin_marker: The graphic that gets overlayed on top of the standby Pikmin's icon, to indicate that the closest Pikmin is too far away to grab.
  • hard_bubble: A rough, hard bubble. Used on the Sun Meter, leader icons, etc.
  • message_box: A message box's background.
  • mouse_button_1_icon: Icon that represents the left mouse button.
  • mouse_button_2_icon: Icon that represents the right mouse button.
  • mouse_button_3_icon: Icon that represents the middle mouse button.
  • mouse_wheel_down_icon: Icon that represents the mouse wheel being scrolled down.
  • mouse_wheel_up_icon: Icon that represents the mouse wheel being scrolled up.
  • no_pikmin_bubble: Bubble to show when there are no Pikmin in the group.
  • sun: Icon for the sun in the Sun Meter.

Spike damage[edit]

"Spike damage" is a mechanic where objects that suffered damage can immediately retaliate by damaging their attacker. In the Pikmin games, this is used by a White Pikmin to release poison to the enemy that ate it, in order to cause poison damage. In the engine, the same can be done, but any object can retaliate in any way, whether it is swallowed or damaged normally.

The file Game_data/Misc/Spike_damage.txt controls the types of spike damage that exist in the game. Each block in this file represents one type of spike damage, and the attributes inside control how it works. The name of the block is the name of the type of spike damage, and you will have to refer to this name when setting object properties elsewhere.

The properties are:

  • damage: How much damage to cause. What exactly this number means depends on the is_damage_ratio attribute.
  • ingestion_only: true if the spike damage should only be caused when the object is ingested, false if it's meant to be caused when the object is hurt normally. Ingestion only works for Pikmin.
  • is_damage_ratio: If true, then the number specified in damage is the ratio of total health to sap away. For instance, 0.5 means one half of the enemy's total health is removed. If false, the number is just a normal amount of damage. Default is false.
  • particle_generator: When the damage is applied, some particles can be spawned. This is the name of the particle generator to use, if any. The particles are spawned in the position of the object that receives the damage.
  • particle_offset: If particles are meant to spawn, you can offset them from the object's center here. The format is x y z, and these are relative coordinates.

Remember to change the mob type attributes for the mobs you want to deal this spike damage, as well as the different spike damage vulnerability modifiers, as explained here.

System asset file names[edit]

Some graphics and sounds are used by the engine in several ways, instead of used specifically for a user-made enemy, area, etc. Inside the file Game_data/Misc/System_asset_file_names.txt you can specify the file name (and path) of some or all of these assets. This text file has a list of attributes, where each attribute's name is the name is the asset, and the value is the file name, inside the folder Game_data/Graphics. Example: mouse_cursor = Asterisk.png will make the mouse cursor in-game use the Asterisk.png image. You can find the defaults in the source code, in the function init_asset_file_names, visible here.

  • area_name_font: Font to use for area names.
  • checkbox_check: The checkmark of checkboxes in menus.
  • cursor: Leader cursor.
  • cursor_invalid: Overlay to place on top of the leader cursor when a throw is invalid.
  • counter_font: Font to use for counters in the HUD.
  • editor_icons: Spritesheet where all editor icons are.
  • enemy_spirit: Enemy spirit.
  • group_move_arrow: Arrow that comes out from the leader when using group move.
  • icon: The game's icon.
  • idle_glow: Glowing effect on idle Pikmin.
  • main_font: The game's main text font.
  • main_menu: Background for the main menu.
  • mouse_button_1_icon: Icon for the left mouse button.
  • mouse_button_2_icon: Icon for the right mouse button.
  • mouse_button_3_icon: Icon for the middle mouse button.
  • mouse_cursor: Mouse cursor.
  • mouse_wheel_down_icon: Icon for the mouse wheel scrolling down.
  • mouse_wheel_up_icon: Icon for the mouse wheel scrolling up.
  • notification: Notification bubble.
  • pikmin_silhouette: Silhouette of a Pikmin. Used in the area editor's cross-section feature.
  • pikmin_spirit: Pikmin spirit.
  • shadow: Object shadows.
  • smack: Smack particle.
  • smoke: Smoke particle.
  • sparkle: Sparkle particle.
  • spotlight: Spotlight texture to use for blackout weather.
  • value_font: Font to use for numeric values, like the carrying fraction numbers.
  • wave_ring: Particle for waves in water, used when objects are standing in water.

Title screen[edit]

The title screen (or main menu) has some settings that can be changed, mostly in regards to the logo made up of Pikmin. These are all specified in /Game_data/Misc/Title_screen.txt.

The settings for the logo are inside a logo block. They are:

  • min_screen_limit: Top-left coordinates of the logo's placement on-screen, in screen width or height percentage. For example, 10 20 means the logo starts at 10% of screen width, and 20% of the screen height.
  • max_screen_limit: Same as above, but for the bottom-right.
  • pikmin_max_speed: Each Pikmin's speed is random. This is the maximum speed possible, in pixels per second.
  • pikmin_min_speed: Same as above, but minimum possible.
  • pikmin_speed_smoothness: The closer to their destination, the less the Pikmin slow down, based on this multiplier. 0.08 is a good number.
  • pikmin_sway_amount: How many pixels a Pikmin sways left or right when standing still.
  • pikmin_sway_max_speed: Each Pikmin's swaying speed is random. This is the maximum speed, in radians per second (the Y part is ignored when swaying).
  • pikmin_sway_min_speed: Same as above, but the minimum speed.
  • pikmin_size: Pikmin size, in screen dimension percentage. For instance, 3 2 means each Pikmin cannot be any larger than 3% of the screen width nor 2% of the screen height.
  • pikmin_types: This block specifies the types of Pikmin you'll encounter in the title logo. Except every type is simply defined by the image of its flower. In this block, every line is a type, in the format character = image, where character is a character representing this Pikmin type in the logo map (see below), and image is the name of the image in the /Game_data/Graphics folder (extension included).
  • map: A representation of the logo. The Pikmin are organized in a grid, and that grid is spread to fit in the limits specified above. Every line in this block represents a line in the grid, with every character representing a column. A character also represents a Pikmin type or a blank space, if it's a character specified in the pikmin_types block or a dot (.), respectively.