Last active
January 4, 2023 14:25
-
-
Save ammaraskar/bc9b613e26f1a262ce0ea5dcf1e58478 to your computer and use it in GitHub Desktop.
sims2 effects resource
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
meta: | |
id: effects | |
file-extension: effects | |
endian: le | |
seq: | |
- id: first_short | |
type: u2 | |
- id: num_particles | |
type: u4 | |
- id: particles | |
type: particle | |
repeat: expr | |
repeat-expr: num_particles | |
- id: num_meta_particles | |
type: u4 | |
- id: meta_particles | |
type: meta_particle | |
repeat: expr | |
repeat-expr: num_meta_particles | |
- id: num_decals | |
type: u4 | |
- id: decals | |
type: decal | |
repeat: expr | |
repeat-expr: num_decals | |
- id: num_brushes | |
type: u4 | |
- id: num_scrubbers | |
type: u4 | |
- id: num_sequences | |
type: u4 | |
- id: sequences | |
type: sequence | |
repeat: expr | |
repeat-expr: num_sequences | |
- id: num_sounds | |
type: u4 | |
- id: sounds | |
type: sound | |
repeat: expr | |
repeat-expr: num_sounds | |
- id: num_cameras | |
type: u4 | |
- id: cameras | |
type: camera | |
repeat: expr | |
repeat-expr: num_cameras | |
- id: num_games | |
type: u4 | |
- id: num_models | |
type: u4 | |
- id: models | |
type: model | |
repeat: expr | |
repeat-expr: num_models | |
- id: num_screens | |
type: u4 | |
- id: screens | |
type: screen | |
repeat: expr | |
repeat-expr: num_screens | |
- id: num_waters | |
type: u4 | |
- id: waters | |
type: water | |
repeat: expr | |
repeat-expr: num_waters | |
- id: num_lights | |
type: u4 | |
- id: visual_effect_version | |
type: u2 | |
- id: num_visual_efects | |
type: u4 | |
- id: visual_effects | |
type: visual_effect | |
repeat: expr | |
repeat-expr: num_visual_efects | |
- id: effect_ids | |
type: effect_id | |
repeat: until | |
repeat-until: _.effect_name.string == "end" | |
types: | |
effect_id: | |
seq: | |
- id: effect_name | |
type: length_prefixed_string | |
- id: effect_id | |
type: u4 | |
vec2_float: | |
seq: | |
- id: x | |
type: f4 | |
- id: y | |
type: f4 | |
vec3_float: | |
seq: | |
- id: x | |
type: f4 | |
- id: y | |
type: f4 | |
- id: z | |
type: f4 | |
vec3_float_list: | |
seq: | |
- id: num_elements | |
type: u4 | |
- id: values | |
type: vec3_float | |
repeat: expr | |
repeat-expr: num_elements | |
bounding_box: | |
seq: | |
- id: corner1 | |
type: vec3_float | |
- id: corner2 | |
type: vec3_float | |
float_curve: | |
seq: | |
# TODO: there's a different type here, see if it shows up in practice. | |
# Marked by (type_and_length & 0xff000000) != 0 | |
- id: type_and_length | |
type: u4 | |
- id: curve_values | |
type: f4 | |
repeat: expr | |
repeat-expr: type_and_length | |
wiggle: | |
seq: | |
- id: time_rate | |
type: f4 | |
- id: rate_direction | |
type: vec3_float | |
- id: wiggle_direction | |
type: vec3_float | |
wiggle_list: | |
seq: | |
- id: num_wiggles | |
type: u4 | |
- id: wiggles | |
type: wiggle | |
repeat: expr | |
repeat-expr: num_wiggles | |
tractor_point: | |
seq: | |
- id: vec1 | |
type: vec3_float | |
- id: vec2 | |
type: vec3_float | |
- id: float | |
type: f4 | |
tractor_points: | |
seq: | |
- id: num_points | |
type: u4 | |
- id: points | |
type: tractor_point | |
repeat: expr | |
repeat-expr: num_points | |
length_prefixed_string: | |
seq: | |
- id: length | |
type: u4 | |
- id: string | |
type: str | |
terminator: 0 | |
size: length | |
encoding: UTF-8 | |
particle_rotation: | |
seq: | |
- id: unknown_rotation_u8 | |
type: u1 | |
- if: _parent.version < 6 | |
id: rotate_mult_vary_range | |
type: f4 | |
- if: _parent.version < 6 | |
id: rotate_unknown_float | |
type: f4 | |
- if: _parent.version >= 6 | |
id: rotate_mult_vary_range_vec | |
type: vec2_float | |
- if: _parent.version >= 6 | |
id: rotate_unknown_vec | |
type: vec2_float | |
- id: rotation_offsets | |
type: f4 | |
- id: rotation_unknown_float | |
type: f4 | |
collider: | |
seq: | |
- id: flags | |
type: u4 | |
- id: unknown_byte | |
type: u1 | |
if: (flags & 0x1) == 1 | |
- id: unknown_string_1 | |
type: length_prefixed_string | |
- id: unknown_vec1 | |
type: vec3_float | |
- id: unknown_vec2 | |
type: vec3_float | |
- id: unknown_vec3 | |
type: vec3_float | |
- id: unknown_float1 | |
type: f4 | |
- id: unknown_float2 | |
type: f4 | |
- if: ((flags & 0x1) == 1) and (unknown_byte != 0) | |
id: unknown_float3 | |
type: f4 | |
- id: unknown_float4 | |
type: f4 | |
- id: unknown_float5 | |
type: f4 | |
- id: unknown_string_2 | |
type: length_prefixed_string | |
- id: unknown_string_3 | |
type: length_prefixed_string | |
colliders: | |
seq: | |
- id: num_colliders | |
type: u4 | |
- id: collider | |
type: collider | |
repeat: expr | |
repeat-expr: num_colliders | |
random_walk: | |
seq: | |
- id: vec1 | |
type: vec2_float | |
- id: vec2 | |
type: vec2_float | |
- id: f1 | |
type: f4 | |
- id: f2 | |
type: f4 | |
- id: f3 | |
type: f4 | |
particle: | |
seq: | |
- id: version | |
type: u2 | |
- if: version < 5 | |
id: flags_old | |
type: u4 | |
- if: version >= 5 | |
type: u8 | |
- id: life | |
type: vec2_float | |
- id: life_preroll | |
type: f4 | |
- id: rate_delay | |
type: vec2_float | |
- id: rate_trigger | |
type: vec2_float | |
- id: unknown_bounding_box | |
type: bounding_box | |
- id: emit_speed | |
type: vec2_float | |
- id: emit_direction_bounding_box | |
type: bounding_box | |
- if: "version > 2" | |
id: unknown_float | |
type: f4 | |
- id: rate_curve | |
type: float_curve | |
- id: rate_unknown_float1 | |
type: f4 | |
- id: unknown_short1 | |
type: u2 | |
- id: rate_speed_scale | |
type: f4 | |
- id: size_curve | |
type: float_curve | |
- id: size_vary | |
type: f4 | |
- id: aspect_curve | |
type: float_curve | |
- id: aspect_vary | |
type: f4 | |
- id: rotate_axis | |
type: vec3_float | |
- id: unknown_vec3_float | |
type: vec3_float | |
- id: particle_rotation | |
type: particle_rotation | |
- id: unknown_float_curve1 | |
type: float_curve | |
- id: unknown_float_curve2 | |
type: float_curve | |
- if: version > 4 | |
id: unknown_vec3_float_2 | |
type: vec3_float_list | |
- if: version > 4 | |
id: unknown_vec3_float_3 | |
type: vec3_float | |
- id: alpha_curve | |
type: float_curve | |
- id: alpha_vary | |
type: f4 | |
- id: color_rgb | |
type: vec3_float_list | |
- id: color_vary | |
type: vec3_float | |
- id: unknown_string | |
type: length_prefixed_string | |
- id: tile_count_u | |
type: u1 | |
- id: tile_count_v | |
type: u1 | |
- id: particle_alignment_type | |
type: u1 | |
- id: particle_draw_type | |
type: u1 | |
- id: layer | |
type: f4 | |
- id: frame_speed | |
type: f4 | |
- id: frame_start | |
type: u1 | |
- id: frame_count | |
type: u1 | |
- id: unknown_vec3_float_4 | |
type: vec3_float | |
- id: unknown_float_2 | |
type: f4 | |
- id: unknown_float_3 | |
type: f4 | |
- id: unknown_vec3_float_5 | |
type: vec3_float | |
- id: unknown_float_4 | |
type: f4 | |
- id: unknown_float_5 | |
type: f4 | |
- id: screw | |
type: f4 | |
- id: unknown_wiggle | |
type: wiggle_list | |
- id: unknown_u1_1 | |
type: u1 | |
- id: unknown_u1_2 | |
type: u1 | |
- id: unknown_u1_3 | |
type: u1 | |
- id: unknown_u1_4 | |
type: u1 | |
- id: colliders | |
type: colliders | |
- id: unknown_string_2 | |
type: length_prefixed_string | |
- if: version > 10 | |
id: unknown_float_6 | |
type: vec3_float | |
- id: terrain_bounce | |
type: f4 | |
- id: unknown_float_7 | |
type: f4 | |
- id: unknown_float_8 | |
type: f4 | |
- id: terrain_repel_scout | |
type: f4 | |
- id: terrain_repel_vertical | |
type: f4 | |
- id: terrain_repel_kill_height | |
type: f4 | |
- id: terrain_death | |
type: f4 | |
- id: unknown_float_9 | |
type: f4 | |
- id: unknown_vec2_float_1 | |
type: vec2_float | |
- id: random_walk_delay | |
type: vec2_float | |
- id: random_walk_strength | |
type: vec2_float | |
- id: random_walk_turn1 | |
type: f4 | |
- id: random_walk_turn2 | |
type: f4 | |
- if: version < 8 | |
id: unknown_attractor_vec | |
type: vec3_float | |
- if: version < 8 | |
id: attractor_strength_curve | |
type: float_curve | |
- if: version < 8 | |
id: unknown_attractor_float | |
type: f4 | |
meta_particle: | |
seq: | |
- id: version | |
type: u2 | |
- id: flags | |
type: u8 | |
- id: life | |
type: vec2_float | |
- id: life_preroll | |
type: f4 | |
- id: rate_delay | |
type: vec2_float | |
- id: rate_trigger | |
type: vec2_float | |
- id: unknown_bounding_box | |
type: bounding_box | |
- id: emit_speed | |
type: vec2_float | |
- id: emit_direction_bounding_box | |
type: bounding_box | |
- if: "version > 1" | |
id: unknown_float | |
type: f4 | |
- id: rate_curve | |
type: float_curve | |
- id: rate_unknown_float1 | |
type: f4 | |
- id: unknown_u4 | |
type: u4 | |
- id: size_curve | |
type: float_curve | |
- id: size_vary | |
type: f4 | |
- id: aspect_curve | |
type: float_curve | |
- id: aspect_vary | |
type: f4 | |
- id: rotate_curve | |
type: float_curve | |
- id: rotate_vary | |
type: f4 | |
- id: rotate_offset | |
type: f4 | |
- id: color_rgb | |
type: vec3_float_list | |
- id: color_vary | |
type: vec3_float | |
- id: alpha_curve | |
type: float_curve | |
- id: alpha_vary | |
type: f4 | |
- id: base_effect_name | |
type: length_prefixed_string | |
- id: particle_alignment_type | |
type: u1 | |
- id: unknown_vec3_float_1 | |
type: vec3_float | |
- id: unknown_float_1 | |
type: f4 | |
- id: unknown_float_2 | |
type: f4 | |
- id: unknown_vec3_float_2 | |
type: vec3_float | |
- id: unknown_float_3 | |
type: f4 | |
- id: unknown_float_4 | |
type: f4 | |
- id: unknown_wiggle | |
type: wiggle_list | |
- id: bloom_alpha_1 | |
type: u1 | |
- id: bloom_alpha_2 | |
type: u1 | |
- id: bloom_size_1 | |
type: u1 | |
- id: bloom_size_2 | |
type: u1 | |
- id: colliders | |
type: colliders | |
- id: terrain_bounce | |
type: f4 | |
- id: unknown_float_7 | |
type: f4 | |
- id: unknown_float_8 | |
type: f4 | |
- id: terrain_repel_scout | |
type: f4 | |
- id: terrain_repel_vertical | |
type: f4 | |
- id: terrain_repel_kill_height | |
type: f4 | |
- id: terrain_death | |
type: f4 | |
- id: unknown_float_9 | |
type: f4 | |
- id: unknown_vec2_float_1 | |
type: vec2_float | |
- id: random_walks | |
type: random_walk | |
repeat: expr | |
repeat-expr: 2 | |
- id: walk_prefer_direction | |
type: vec3_float | |
- id: alignment_damp | |
type: f4 | |
- id: alignment_bank_wind | |
type: f4 | |
- id: alignment_bank | |
type: f4 | |
- if: version < 4 | |
id: attractor_vec | |
type: vec3_float | |
- if: version < 4 | |
id: attractor_curve | |
type: float_curve | |
- if: version < 4 | |
id: attractor_range | |
type: f4 | |
- if: version < 3 | |
id: tractor_points | |
type: tractor_points | |
- id: unknown_float_last | |
type: f4 | |
decal: | |
seq: | |
- id: version | |
type: u2 | |
- id: flags | |
type: u4 | |
- id: texture_name | |
type: length_prefixed_string | |
- id: decal_draw_type | |
type: u1 | |
- id: life_type | |
type: u1 | |
- id: life | |
type: f4 | |
- id: rotate_curve | |
type: float_curve | |
- id: size_curve | |
type: float_curve | |
- id: alpha_curve | |
type: float_curve | |
- id: color_rgb | |
type: vec3_float_list | |
- id: aspect_curve | |
type: float_curve | |
- id: alpha_vary | |
type: f4 | |
- id: size_vary | |
type: f4 | |
- id: rotate_vary | |
type: f4 | |
- id: texture_repeat | |
type: f4 | |
- id: texture_offset | |
type: vec2_float | |
sequence_effect: | |
seq: | |
- id: activate_time | |
type: vec2_float | |
- id: effect_name | |
type: length_prefixed_string | |
sequence: | |
seq: | |
- id: version | |
type: u2 | |
- id: num_sequences | |
type: u4 | |
- id: sequence | |
type: sequence_effect | |
repeat: expr | |
repeat-expr: num_sequences | |
- id: flags | |
type: u4 | |
sound: | |
seq: | |
- id: version | |
type: u2 | |
- id: flags | |
type: u4 | |
- id: audio_id | |
type: u4 | |
- id: location_update_delta | |
type: f4 | |
- id: play_time | |
type: f4 | |
- id: volume | |
type: f4 | |
camera: | |
seq: | |
- id: version | |
type: u2 | |
- id: flags | |
type: u4 | |
- id: life | |
type: f4 | |
- id: shake_fade_length | |
type: f4 | |
- id: shake_amplitude | |
type: float_curve | |
- id: shake_frequency | |
type: float_curve | |
- id: shake_aspect | |
type: f4 | |
- id: shake_type | |
type: u1 | |
- id: heading | |
type: float_curve | |
- id: pitch | |
type: float_curve | |
- id: roll | |
type: float_curve | |
- id: orbit | |
type: float_curve | |
- id: field_of_view | |
type: float_curve | |
- id: near_clip | |
type: float_curve | |
- id: far_clip | |
type: float_curve | |
- id: zoom | |
type: s1 | |
- id: rotate | |
type: s1 | |
- id: attach_radius | |
type: f4 | |
- id: camera_select | |
type: length_prefixed_string | |
model: | |
seq: | |
- id: version | |
type: u2 | |
- id: model_name | |
type: length_prefixed_string | |
- id: size | |
type: f4 | |
- id: color | |
type: vec3_float | |
- id: alpha | |
type: f4 | |
screen: | |
seq: | |
- id: version | |
type: u2 | |
- id: mode | |
type: u1 | |
- id: flags | |
type: u4 | |
- id: color_rgb | |
type: vec3_float_list | |
- id: strength | |
type: float_curve | |
- id: length | |
type: f4 | |
- id: delay | |
type: f4 | |
- id: texture | |
type: length_prefixed_string | |
water_zero_flag: | |
seq: | |
- id: drop_size | |
type: f4 | |
- id: drop_depth | |
type: f4 | |
- id: x | |
type: f4 | |
water: | |
seq: | |
- id: version | |
type: u2 | |
- id: flags | |
type: u4 | |
- if: flags == 0 | |
id: zero_variant | |
type: water_zero_flag | |
matrix: | |
seq: | |
- id: elements | |
type: vec3_float | |
repeat: expr | |
repeat-expr: 3 | |
visual_effect_transform: | |
seq: | |
- id: byte_1 | |
type: u1 | |
- id: float_1 | |
type: f4 | |
- id: matrix_1 | |
type: matrix | |
- id: vec_1 | |
type: vec3_float | |
visual_effect: | |
seq: | |
- id: flags | |
type: u4 | |
- id: short_1 | |
type: u2 | |
- if: _parent.visual_effect_version < 3 | |
id: short_2 | |
type: u2 | |
- if: _parent.visual_effect_version >= 3 | |
id: int_1 | |
type: u4 | |
- id: int_2 | |
type: u4 | |
- id: int_3 | |
type: u4 | |
- id: vec_1 | |
type: vec2_float | |
- id: num_visual_descriptions | |
type: u4 | |
- id: visual_effect_descriptions | |
type: visual_effect_description | |
repeat: expr | |
repeat-expr: num_visual_descriptions | |
visual_effect_description: | |
seq: | |
- id: base_effect | |
type: length_prefixed_string | |
- id: block_type | |
type: u1 | |
- id: flags | |
type: u4 | |
- id: transform | |
type: visual_effect_transform | |
- id: lod_begin | |
type: u1 | |
- id: lod_end | |
type: u1 | |
- id: emit_scale_begin | |
type: f4 | |
- id: emit_scale_end | |
type: f4 | |
- id: size_scale_begin | |
type: f4 | |
- id: size_scale_end | |
type: f4 | |
- id: alpha_scale_begin | |
type: f4 | |
- id: alpha_scale_end | |
type: f4 | |
- if: _parent._parent.visual_effect_version < 3 | |
id: short_1 | |
type: u2 | |
- if: _parent._parent.visual_effect_version < 3 | |
id: short_2 | |
type: u2 | |
- id: selection_group | |
type: u2 | |
- id: selection_chance | |
type: u2 | |
- id: time_scale | |
type: f4 | |
- id: block_index | |
type: s4 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment