Behavior parameter reference
This reference covers terrestrial movement values in v1.0.1, based on src/config.rs and the runtime code. For everyday size, counts, speech, and weather settings, see user.toml settings. The original article URL remains, but the current behavior parameter files are not named config.toml.
File locations and reload
| System | Watched file |
|---|---|
| Mac | params.toml in the loaded character asset folder; inside the app's Resources for a packaged app |
| Windows | bearded_dragon_params.toml, pond_turtle_params.toml, or leopard_gecko_params.toml next to Petit Mates.exe |
On Windows, create a file only for the species you want to adjust. Editing files inside a distributed Mac app affects its signature and updates, so treat that path as information for asset and code authors. Everyday users can use Settings and user speech files.
Saving a watched parameter file reloads it while the app is running. Invalid TOML is not applied; the previous values remain. Omitted fields are filled from Rust baseline defaults. The loader does not merge assets/common/params.toml as a sequence of user configuration layers.
Effective value priority
The current order is Rust defaults → parameter file → personality recalculation. Fields marked “Overrides” in the Personality column are replaced by personality calculations even if explicitly set in the parameter file. This differs from comments in parts of the source that describe explicit values as taking precedence over personality.
The tables show Rust Default values, not final runtime values. Setting all personality values to 0.5 does not reproduce every baseline value. See customization for the built-in personalities.
Reading values
Times are seconds, speeds are screen-coordinate px/s, and distances are px. Arrays are [minimum, maximum] ranges. Use probabilities from 0 to 1 and keep cumulative thresholds in ascending order. Adjust gradually while preserving ordered ranges and positive durations.
For thresholds of 0.4, 0.6, and 0.8, the intervals represent 40%, 20%, 20%, and the remaining 20%. They are not three independent probabilities to add together.
[floor]
| Key | Rust baseline | Personality | Meaning |
|---|---|---|---|
walk_speed | 40.0 | Overrides | Walking speed (px/s) |
walk_frame_secs | 0.14 | Overrides | Seconds per walking animation frame |
run_speed | 90.0 | — | Running speed (px/s) |
run_frame_secs | 0.07 | — | Seconds per running animation frame |
run_duration | [1.5, 4.0] | — | Running burst duration range (seconds) |
run_interval | [20.0, 60.0] | — | Interval range between running bursts (seconds) |
stand_duration | [3.0, 8.0] | — | Standing idle duration range (seconds) |
sit_duration | [5.0, 15.0] | — | Sitting idle duration range (seconds) |
lie_duration | [20.0, 60.0] | Overrides | Lying idle duration range (seconds) |
sleep_duration | [60.0, 180.0] | Overrides | Sleeping duration range (seconds) |
headbob_period | [30.0, 90.0] | — | Interval range between mouth-opening events (seconds) |
headbob_open_duration | [0.3, 0.5] | — | Mouth-open duration range (seconds) |
peek_prob | 0.20 | Overrides | Probability of peeking after observation and related decisions |
peek_duration | 0.5 | — | Peek duration (seconds) |
edge_idle_prob | 0.40 | Overrides | Probability of idling at a window-top edge |
edge_stand_to_sit_prob | 0.50 | — | Probability of sitting after standing at an edge |
edge_sit_to_lie_prob | 0.50 | — | Probability of lying down after sitting at an edge |
edge_lie_to_sleep_prob | 0.30 | Overrides | Probability of sleeping after lying at an edge |
standup_duration | 0.8 | — | Stand-up duration after landing (seconds) |
turn_duration | 0.7 | — | Turn-around duration (seconds) |
observe_duration | [3.0, 8.0] | — | Post-landing observation duration range (seconds) |
head_side_duration | [10.0, 25.0] | — | Side-facing duration range (seconds) |
head_front_duration | [2.0, 6.0] | — | Front-facing duration range (seconds) |
peek_walk_prob | 0.5 | Overrides | Probability of walking after peeking; otherwise turns around |
turn_walk_prob | 0.7 | — | Probability of walking after turning; otherwise stands idle |
stand_idle_sit_prob | 0.40 | Overrides | Cumulative threshold 1 after ordinary standing: sit |
stand_idle_walk_prob | 0.60 | Overrides | Cumulative threshold 2 after ordinary standing: walk |
stand_idle_turn_prob | 0.80 | — | Cumulative threshold 3 after standing: turn; remaining range peeks |
sit_idle_lie_prob | 0.30 | Overrides | Cumulative threshold 1 after ordinary sitting: lie down |
sit_idle_stand_prob | 0.65 | Overrides | Cumulative threshold 2 after sitting: stand; remaining range walks |
lie_idle_sleep_prob | 0.15 | Overrides | Cumulative threshold 1 after ordinary lying: sleep |
lie_idle_sit_prob | 0.60 | Overrides | Cumulative threshold 2 after lying: sit; remaining range walks |
edge_arrive_stand_prob | 0.40 | — | Cumulative threshold 1 when idling at an edge: stand |
edge_arrive_sit_prob | 0.70 | — | Cumulative threshold 2 when idling at an edge: sit |
edge_arrive_lie_prob | 0.90 | — | Cumulative threshold 3 at an edge: lie down; remaining range sleeps |
edge_fall_prob | 0.10 | — | Conditional probability of a surprised fall when not idling at an edge |
shocked_duration | 0.6 | — | Duration of the surprised falling pose (seconds) |
[wall]
| Key | Rust baseline | Personality | Meaning |
|---|---|---|---|
climb_speed | 60.0 | Overrides | Climbing speed (px/s) |
climb_frame_secs | 0.22 | Overrides | Seconds per climbing animation frame |
pause_prob | 0.15 | — | Pause probability checked every three climbing frames |
pause_duration | [2.0, 5.0] | — | Wall pause duration range (seconds) |
entry_hold | 0.5 | — | Wall-entry pose hold time (seconds) |
[corner]
| Key | Rust baseline | Personality | Meaning |
|---|---|---|---|
side_corner_secs | 0.3 | — | Side-view corner transition duration (seconds) |
front_corner_secs | 0.5 | — | Front-view corner transition duration (seconds) |
rest_prob | 0.30 | — | Probability of resting at an upper corner |
rest_duration | [3.0, 8.0] | — | Upper-corner rest duration range (seconds) |
lower_rest_duration | [1.0, 3.0] | — | Lower-rest duration definition (seconds); not read by the ordinary terrestrial transition logic |
rest_lying_prob | 0.5 | — | Probability of lying during corner rest; otherwise sits |
rest_descend_prob | 0.5 | — | Probability of descending after corner rest |
corner_jump_prob | 0.20 | Overrides | Probability of jumping from a corner to another window |
corner_jump_dist | 300.0 | — | Detection distance for another window (px) |
outing_interval | [300.0, 900.0] | Overrides | Forced outing interval range (seconds); [0, 0] disables it |
[jump]
| Key | Rust baseline | Personality | Meaning |
|---|---|---|---|
gravity | 0.6 | — | Gravity factor; acceleration is value × 60 px/s² |
runup_duration | 0.3 | — | Run-up duration before a wall jump (seconds) |
wall_jump_max_dist | 80.0 | — | Maximum distance to a wall-jump target (px) |
wall_jump_floor_margin | 150.0 | — | Allowed height of a window bottom above the desktop floor (px) |
climb_attract_dist | 600.0 | — | Detection distance for a window to approach and climb (px) |
climb_attract_prob | 0.35 | Overrides | Probability of approaching a nearby window after resting on the desktop |
air_speed | 350.0 | — | Horizontal speed during a jump (px/s) |
min_jump_vy | 200.0 | — | Minimum upward launch speed (px/s) |
[display]
| Key | Rust baseline | Personality | Meaning |
|---|---|---|---|
hover_alpha | 0.25 | — | Opacity under the pointer, from 0 to 1 |
Windows example
Save this as bearded_dragon_params.toml next to the EXE. These fields are not replaced by personality recalculation.
[floor]
turn_duration = 1.0
standup_duration = 1.2
[display]
hover_alpha = 0.20The values apply to all instances of the named species. See settings for everyday controls and state transitions for the decision flow. The code also defines [water]; this reference covers ordinary terrestrial behavior in free mode.