- Site Map >
- Modding and Creation >
- Sims 4 Creation >
- Modding Tools >
- Debug Display and Dump Object Information (D3OI)
- Site Map >
- Modding and Creation >
- Sims 4 Creation >
- Modding Tools >
- Debug Display and Dump Object Information (D3OI)
Replies: 10 (Who?), Viewed: 25906 times.
#1
23rd Feb 2015 at 2:25 AM
Last edited by scumbumbo : 13th Nov 2018 at 7:52 PM.
Reason: Updated for Python 3.7.0 update
Posts: 2,671
Thanks: 62741 in 190 Posts
Debug Display and Dump Object Information (D3OI)
Updated - Nov 13, 2018 - Minor changes for Python 3.7.0 update.Updated - Nov 25, 2017:
- Added Probe menu choice - insert custom code and reload
- Added d3oi_reload console command to reload the script in game
- Fixed interactions in package to use ImmediateSuperInteractions as CommandSuperIntearction class no longer exists
I swore I wouldn't mod this weekend, but it was a boring Sunday and I'd had this idea and wanted to see what I could do with it. The result should be a fairly useful tool for TS4 modders, especially object modders and script modders. I started off just wanting the ability to shift-click an item to see what it's was, and it sort of took off from there. Based the dump output on some of the code in one of the normally unusable Maxis testing commands.
This adds an Object Info pie menu with Display and Dump to File actions. These are debug mode commands, so you'll need clown's enable advanced debug/cheat interactions script mod. Then you can shift-click any item (or even sim) in the game and display basic information to a notification dialog, or dump more information about that object to a file than you could probably find useful.
This isn't fancied up for distribution, it's just a basic package in a folder with a script in a script subfolder. Should run as long as you have script mods enabled. Object data will get dumped into a file named "D3OI_dump.txt" in the same folder as the script file.
The display version just outputs the objects class name, it's id number, and it's guid (instance id) in hex and decimal.
The info dumped to a file is REALLY long, so here's an example in a spoiler...
Code:
================================================================================ object_GardeningPlant_Bush_Alien obj_id = 633319665982636063 guid64 = 0x00000000000070d5 (28885 d) -------------------------------------------------------------------------------- _hidden_flags = 0 inventoryitem_component = None environmentscore_component = None _occupied_slot_dict = {} _component_instances = {'statistic_component': StatisticComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f), 'gardening_component': GardeningPlantComponent(_unidentified_description=hash: 0 , _unidentified_name=hash: 0 , states_that_support_fruit=frozenset({PlantGrowth_3_Blossoming, PlantGrowth_2_Mature})), 'state_component': StateComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f), 'footprint_component': FootprintComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f), 'slot_component': SlotComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f), 'spawner_component': SpawnerComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f)} _routing_context = {ObjectID: 0, Radius: 0.3336, Key[5717945180935667324,3548561239,0, FootprintID: 1516, ConectivityHandles: () Flags='IgnoreOwnFootprint'} proximity_component = None _audio_effects = {} _dynamic_commodity_flags_map = {} new_in_inventory = True _on_location_changed_callbacks = [<bound method object_GardeningPlant_Bush_Alien.inside_status_change of object_GardeningPlant_Bush_Alien(0x08ca00e1782a001f)>, <bound method object_GardeningPlant_Bush_Alien.natural_ground_status_change of object_GardeningPlant_Bush_Alien(0x08ca00e1782a001f)>, <function FireService.flammable_object_location_changed at 0x333BEE88>] carryable_component = None _reservations_locked = <WeakKeyDictionary at 776814672> _raycast_context = None censorgrid_component = None render_component = None _tint = None _slots_resource = <sims4.ObjectSlots> _ui_metadata_stack = [(2256, 'quality', 10), (2257, 'quality_description', <protocolbuffers.Localization_pb2.LocalizedString object at 0x40585C38>), (29825, 'main_icon', <protocolbuffers.ResourceKey_pb2.ResourceKey object at 0x3051ACA8>), (29826, 'sub_icons', [<protocolbuffers.ResourceKey_pb2.ResourceKey object at 0x3051ACE0>]), (29827, 'object_info_names', None), (29828, 'object_info_descriptions', None), (29829, 'recipe_name', <protocolbuffers.Localization_pb2.LocalizedString object at 0x3051AE68>), (29830, 'recipe_description', <protocolbuffers.Localization_pb2.LocalizedString object at 0x3051AE30>)] _build_buy_lockout_alarm_handler = None _censor_state = None live_drag_target_component = None manager = object_manager welcome_component = None _slot = '00000000!4bf91c9e'518039f2.d3044521' objectteleportation_component = None canvas_component = None _needs_post_bb_fixup = False gardening_component = GardeningPlantComponent(_unidentified_description=hash: 0 , _unidentified_name=hash: 0 , states_that_support_fruit=frozenset({PlantGrowth_3_Blossoming, PlantGrowth_2_Mature})) states_that_support_fruit = frozenset({PlantGrowth_3_Blossoming, PlantGrowth_2_Mature}) owner = object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f _unidentified_name = hash: 0 _fruit_spawners = [FruitSpawnerData(object_reference=(<Definition: 29009>,), spawn_chance=100, spawn_weight=1, spawner_option=<objects.components.gardening_components.FruitSpawnerData._SpawnerOption object at 0x1C1D8650>)] _unidentified_description = hash: 0 _withered_alarm = _StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Evolution'>, handle_id=1, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E2697D8>) _ui_metadata_handles = [29825, 29826, 29827, 29828, 29829, 29830] object_addition_to_world_complete = True _spliced_description = None crafting_component = None _build_buy_lockout = False craftingstation_component = None _opacity = None sim_component = None _reference_arb = None _painting_state = None _component_types = (<class 'objects.components.footprint_component.FootprintComponent'>, <class 'objects.components.gardening_components.GardeningPlantComponent'>, <class 'objects.components.slot_component.SlotComponent'>, <class 'objects.components.spawner_component.SpawnerComponent'>, <class 'objects.components.state.StateComponent'>, <class 'objects.components.statistic_component.StatisticComponent'>) definition = <Definition: 29011> lineofsight_component = None _reservations_multi = <WeakKeyDictionary at 776815568> tooltip_component = None _parts = None _ui_metadata_cache = {'main_icon': <protocolbuffers.ResourceKey_pb2.ResourceKey object at 0x3051ACA8>, 'object_info_names': None, 'sub_icons': [<protocolbuffers.ResourceKey_pb2.ResourceKey object at 0x3051ACE0>], 'object_info_descriptions': None, 'recipe_description': <protocolbuffers.Localization_pb2.LocalizedString object at 0x3051AE30>, 'quality': 10, 'recipe_name': <protocolbuffers.Localization_pb2.LocalizedString object at 0x3051AE68>, 'quality_description': <protocolbuffers.Localization_pb2.LocalizedString object at 0x40585C38>} _local_tags = None _material_state = MaterialState(wet, 0x46661993, opacity=1.0, transition=3.0) _model = '00000000!4bf91c9e'518039f2.01661233' _transient = None affordancetuning_component = None _fade_out_alarm_handle = None primitives = DistributionSet(set()) animation_component = None topic_component = None objectrelationship_component = None storedsiminfo_component = None _reservations = <WeakKeyDictionary at 774299376> audio_component = None _created_constraints = {} _persistence_group = PersistenceGroups.OBJECT _household_owner_id = 729020958533681159 _video_playlist = None example_component = None timeofday_component = None effects_component = None fishing_location_component = None idle_component = None item_location = ItemLocation.ON_LOT id = 633319665982636063 name_component = None _use_list_changed_callbacks = [] _needs_depreciation = False _parent_location = 0 game_component = None visible_to_client = True live_drag_component = None statistic_component = StatisticComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f) _statistic_tracker = <statistics.statistic_tracker.StatisticTracker object at 0x2E4D4E10> _commodities_added = {} _locked_commodities = {<class 'sims4.tuning.instances.commodity_Gardening_Moisture'>: 1} _commodity_distress_refs = [] _interaction_modifiers = {} _static_commodity_tracker = <statistics.base_statistic_tracker.BaseStatisticTracker object at 0x2E4D4E70> owner = object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f _relationship_score_multiplier_with_buff_on_target = None _suspended_modifiers = {} _commodity_tracker = <statistics.commodity_tracker.CommodityTracker object at 0x2E4D4E50> _object_tags_that_override_off_lot_autonomy_ref_count = defaultdict(<class 'int'>, {}) _statistic_modifiers = {35: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E4D4170>, 36: <objects.components.statistic_component.AutonomyModifierEntry object at 0x1C1D8050>, 37: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E2650B0>, 38: <objects.components.statistic_component.AutonomyModifierEntry object at 0x1C1D8D30>, 39: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265230>, 40: <objects.components.statistic_component.AutonomyModifierEntry object at 0x1C1D88B0>, 41: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E2652F0>, 42: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265310>, 43: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265430>, 44: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E2652D0>, 45: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265570>, 46: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E2655B0>, 47: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265790>, 48: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E2651D0>, 49: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265990>, 50: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265670>, 51: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265910>, 52: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265930>, 53: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265AF0>, 54: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E2659B0>, 55: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265CD0>, 56: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265C70>, 57: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265A70>, 58: <objects.components.statistic_component.AutonomyModifierEntry object at 0x2E265F10>} _get_next_statistic_handle = <uid.UniqueIdGenerator object at 0x2E2692B0> gameplay_component = None interaction_refs = set() _material_variant = None _scale = 1.0 lighting_component = None _created_constraints_dirty = True ownable_component = None routing_component = None _visibility = None consumable_component = None inventory_component = None _build_buy_use_flags = 0 waiting_line_component = None _current_value = 100 position_component = None footprint_component = FootprintComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f) owner = object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f _placement_footprint_added = True _footprints_enabled = True _footprint = '00000000!4f5a38d8'dad3be7c.d382bf57' _location = Location(Transform(Vector3(188.511322, 156.899124, 278.948273), Quaternion(0.000000, 0.923801, 0.000000, 0.382873)), {B60087D8620AD9,0,World}, joint_name_or_hash=None, parent=None, slot_hash=0) _UiObjectMetadata_sparse_value = <distributor.sparse.SparseMessage object at 0x2E265BB0> objectage_component = None _rig = '00000000!4bf91c9e'518039f2.8eaf13de' slot_component = SlotComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f) owner = object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f _get_put = None buffs_component = None flowingpuddle_component = None _parent_type = 0 _children_objects = defaultdict(<class '_weakrefset.WeakSet'>, {<ChildrenType.DEFAULT = 0>: <_weakrefset.WeakSet object at 0x2A873190>}) _state_index = 0 _geometry_state = 2874639328 _registered_transition_controllers = set() spawner_component = SpawnerComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f) owner = object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f _spawner_data_spawn_index = -1 _spawner_data = [FruitSpawnerData(object_reference=(<Definition: 29009>,), spawn_chance=100, spawn_weight=1, spawner_option=<objects.components.gardening_components.FruitSpawnerData._SpawnerOption object at 0x1C1D8650>)] _spawner_initialized = True _spawned_objects = <_weakrefset.WeakSet object at 0x2E4D4DB0> _spawned_object_ids = [] _spawn_firemeter = None _spawn_object_alarm = None _spawner_stats = {<class 'sims4.tuning.instances.commodity_Collection_SpawnSlotObject'>: _StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Collection_SpawnSlotObject'>, handle_id=23, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4E6C38>)} autonomy_component = None _is_surface = {(False, False): False} video_component = None state_component = StateComponent(object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f) _custom_distributables = <objects.components.state.StateComponentManagedDistributables object at 0x2E4D4E30> _delinquency_state_changes = None _state_reset_values = {} states_before_delinquency = [] _client_states = {Infestation: _sims4_collections.frozendict({Infested_0_BugsHeavyRed: <objects.components.state.StateChangeOperation object at 0x4E201090>, Infested_3_NoBugs: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, Infested_1_BugsLightYellow: <objects.components.state.StateChangeOperation object at 0x4E2018D0>, Infested_2_Sprayable: <objects.components.state.StateChangeOperation object at 0x4E1D16B0>}), Microscope_Collect: _sims4_collections.frozendict({Microscope_Collectible: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, Microscope_Uncollectible: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), GardeningSpliced: _sims4_collections.frozendict({GardeningSpliced_IsNotSpliced: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningSpliced_IsSpliced: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), Fire_Object_Burn_Incinerate: _sims4_collections.frozendict({FireState_Burn_Incinerate_Not_Burning: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, FireState_Burn_Incinerate: <objects.components.state.StateChangeOperation object at 0x4E201C10>, FireState_Burn_Incinerate_Burning: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), Fertilizer: _sims4_collections.frozendict({}), GardeningContainer: _sims4_collections.frozendict({GardeningContainer_Pot: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningContainer_Soil: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningContainer_None: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), Weeds: _sims4_collections.frozendict({Weeds_1_WeedsLightYellow: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, Weeds_3_FullyWeeded: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, Weeds_2_Weedable: <objects.components.state.StateChangeOperation object at 0x4E1D16B0>, Weeds_0_WeedsHeavyRed: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), GardeningDecay: _sims4_collections.frozendict({GardeningDecay_PlantDecays: <objects.components.state.StateChangeOperation object at 0x4E201F10>}), PlantAggregateStatus: _sims4_collections.frozendict({PlantStatusAggregate_1_Neutral: <objects.components.state.StateChangeOperation object at 0x4E1D1BD0>, PlantStatusAggregate_0_Bad: <objects.components.state.StateChangeOperation object at 0x4E201310>}), PlantedBySuperGreenThumb: _sims4_collections.frozendict({SuperGreenThumb_PlantedBy: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, SuperGreenThumb_NotPlantedBy: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), GardeningQuality: _sims4_collections.frozendict({GardeningQuality_08_Vigorous: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_04_Scrubby: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_06_Sturdy: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_05_Common: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_03_Meager: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_07_Hearty: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_01_Sickly: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_09_Lush: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_10_Pristine: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningQuality_00_Wild: <objects.components.state.StateChangeOperation object at 0x4E1D16B0>, GardeningQuality_02_Frail: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), Moisture: _sims4_collections.frozendict({Moisture_1_DryYellow: <objects.components.state.StateChangeOperation object at 0x4E201970>, Moisture_4_FullyWateredDripping: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, Moisture_0_VeryDryRed: <objects.components.state.StateChangeOperation object at 0x4E201950>, Moisture_2_Waterable: <objects.components.state.StateChangeOperation object at 0x4E201890>, Moisture_3_FullyWatered: <objects.components.state.StateChangeOperation object at 0x4E2019B0>}), GardeningWeedFX: _sims4_collections.frozendict({GardeningWeedFX_Off: <objects.components.state.StateChangeOperation object at 0x4E1D16B0>, GardeningWeedFX_Stage1: <objects.components.state.StateChangeOperation object at 0x4E201250>, GardeningWeedFX_Stage2: <objects.components.state.StateChangeOperation object at 0x4E201110>}), GardeningLockedCommodities: _sims4_collections.frozendict({GardeningLockedCommodities_On: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningLockedCommodities_Off: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), GardeningWaterFX: _sims4_collections.frozendict({GardeningWaterFX_Off: <objects.components.state.StateChangeOperation object at 0x4E1D16B0>, GardeningWaterFX_On: <objects.components.state.StateChangeOperation object at 0x4E2010B0>}), PlantEvolution: _sims4_collections.frozendict({PlantEvolution_7_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_0_Death: <objects.components.state.StateChangeOperation object at 0x4E201ED0>, PlantEvolution_3_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_5_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_8_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_9_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_6_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_4_Neutral: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_1_Devolve: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_10_Evolution: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, PlantEvolution_2_Devolve: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), Herbalism_Herbicide: _sims4_collections.frozendict({herbalism_Herbicide_Off: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, herbalism_Herbicide_On: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), GardeningEvolutionFX: _sims4_collections.frozendict({GardeningEvolutionFX_Off: <objects.components.state.StateChangeOperation object at 0x4E1D16B0>, GardeningEvolutionFX_On: <objects.components.state.StateChangeOperation object at 0x4E201150>}), GardeningGermination: _sims4_collections.frozendict({GardeningGermination_AlwaysIfNotSpawned: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, GardeningGermination_Default: <objects.components.state.StateChangeOperation object at 0x340DD1D0>}), PlantGrowth: _sims4_collections.frozendict({PlantGrowth_3_Blossoming: <objects.components.state.StateChangeOperation object at 0x4E201CF0>, PlantGrowth_1_Seedling: <objects.components.state.StateChangeOperation object at 0x4E201990>, PlantGrowth_0_Planted: <objects.components.state.StateChangeOperation object at 0x4E2019D0>, PlantGrowth_2_Mature: <objects.components.state.StateChangeOperation object at 0x4E201A10>, PlantGrowth_X_Decaying: <objects.components.state.StateChangeOperation object at 0x4E201B30>}), Gardening_FertilizerCooldownState: _sims4_collections.frozendict({Fertilizer_CanBeFertilized: <objects.components.state.StateChangeOperation object at 0x340DD1D0>, Fertilizer_CannotBeFertilized: <objects.components.state.StateChangeOperation object at 0x340DD1D0>})} _state_trigger_enabled = True owner = object_GardeningPlant_Bush_Alien:0x08ca00e1782a001f _states = OrderedDict([(Infestation, Infested_2_Sprayable), (GardeningLockedCommodities, GardeningLockedCommodities_Off), (PlantAggregateStatus, PlantStatusAggregate_2_Good), (GardeningDecay, GardeningDecay_PlantDecays), (GardeningSpliced, GardeningSpliced_IsNotSpliced), (GardeningWeedFX, GardeningWeedFX_Off), (GardeningWaterFX, GardeningWaterFX_On), (GardeningEvolutionFX, GardeningEvolutionFX_Off), (GardeningGermination, GardeningGermination_Default), (Fertilizer, Fertilizer_0_Depleted), (Moisture, Moisture_4_FullyWateredDripping), (GardeningContainer, GardeningContainer_None), (Gardening_FertilizerCooldownState, Fertilizer_CanBeFertilized), (PlantGrowth, PlantGrowth_3_Blossoming), (Weeds, Weeds_3_FullyWeeded), (PlantedBySuperGreenThumb, SuperGreenThumb_PlantedBy), (GardeningQuality, GardeningQuality_10_Pristine), (Fire_Object_Burn_Incinerate, FireState_Burn_Incinerate_Not_Burning), (PlantEvolution, PlantEvolution_10_Evolution), (Herbalism_Herbicide, herbalism_Herbicide_Off), (Microscope_Collect, Microscope_Collectible)]) _state_triggers = (TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger, TunableStateTriggerWrapper.StateTrigger) _commodity_states = {<class 'sims4.tuning.instances.commodity_Object_FertilizerCooldown'>: Gardening_FertilizerCooldownState, <class 'sims4.tuning.instances.commodity_object_burning'>: Fire_Object_Burn_Incinerate, <class 'sims4.tuning.instances.commodity_Gardening_Infestation'>: Infestation, <class 'sims4.tuning.instances.commodity_Gardening_Evolution'>: PlantEvolution, <class 'sims4.tuning.instances.commodity_Gardening_Growth'>: PlantGrowth, <class 'sims4.tuning.instances.commodity_Gardening_Weeds'>: Weeds, <class 'sims4.tuning.instances.commodity_Gardening_Aggregate'>: PlantAggregateStatus, <class 'sims4.tuning.instances.commodity_Gardening_Fertilizer'>: Fertilizer, <class 'sims4.tuning.instances.commodity_Microscope_Collect'>: Microscope_Collect, <class 'sims4.tuning.instances.commodity_ObjectStateValue_Herbicide_Applied'>: Herbalism_Herbicide, <class 'sims4.tuning.instances.commodity_Gardening_Moisture'>: Moisture} _state_reset_if_time_passes_values = {GardeningContainer: GardeningContainer_None} _stat_listeners = defaultdict(<class 'list'>, {Infestation: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Infestation'>, handle_id=24, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E269D00>), _StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Infestation'>, handle_id=25, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4E6328>)], Microscope_Collect: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Microscope_Collect'>, handle_id=35, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4F6300>)], Herbalism_Herbicide: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_ObjectStateValue_Herbicide_Applied'>, handle_id=34, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4F60A8>)], Moisture: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Moisture'>, handle_id=28, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4E6760>)], Weeds: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Weeds'>, handle_id=31, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E500A80>)], PlantEvolution: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Evolution'>, handle_id=33, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4F6148>)], PlantGrowth: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Growth'>, handle_id=30, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E4E8EE0>)], Fire_Object_Burn_Incinerate: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_object_burning'>, handle_id=32, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x1C1DA418>)], Gardening_FertilizerCooldownState: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Object_FertilizerCooldown'>, handle_id=29, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x1C1D68C8>)], PlantAggregateStatus: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Aggregate'>, handle_id=26, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x2E5000D0>)], Fertilizer: [_StatisticTrackerListener(stat_type=<class 'sims4.tuning.instances.commodity_Gardening_Fertilizer'>, handle_id=27, entry=<statistics.base_statistic_tracker._StatisticTrackerListenerEntry object at 0x1C1D65A8>)]}) _tested_states_on_add = {} _unique_state_changes = None _ui_metadata_handles = {29825: (29825, 'main_icon', <protocolbuffers.ResourceKey_pb2.ResourceKey object at 0x3051ACA8>), 29826: (29826, 'sub_icons', [<protocolbuffers.ResourceKey_pb2.ResourceKey object at 0x3051ACE0>]), 29827: (29827, 'object_info_names', None), 29828: (29828, 'object_info_descriptions', None), 29829: (29829, 'recipe_name', <protocolbuffers.Localization_pb2.LocalizedString object at 0x3051AE68>), 29830: (29830, 'recipe_description', <protocolbuffers.Localization_pb2.LocalizedString object at 0x3051AE30>), 2252: (2252, 'quality', 1), 2253: (2253, 'quality_description', <protocolbuffers.Localization_pb2.LocalizedString object at 0x405CBCE0>), 2254: (2254, 'quality', 10), 2255: (2255, 'quality_description', <protocolbuffers.Localization_pb2.LocalizedString object at 0x40585C38>), 2256: (2256, 'quality', 10), 2257: (2257, 'quality_description', <protocolbuffers.Localization_pb2.LocalizedString object at 0x40585C38>)} collectable_component = None ================================================================================
Hopefully folks will find this useful and maybe expand on what it can do from here.
Attached files:
D3OI.rar (6.4 KB, 757 downloads) - View custom content | ||||||||||
----------- --------- -------- ----- -------- ----- -------- ---- ..A.... 3191 3104 97% 12-11-17 15:32 94C19243 D3OI/D3OI.package ..A.... 7928 2377 29% 13-11-18 13:47 FAB43395 D3OI/Scripts/D3OI.py I.A.... 865 429 49% 25-11-17 03:21 43F5C48B D3OI/Scripts/D3OI_reloader.py I..D... 0 0 0% 25-11-17 03:38 00000000 D3OI/Scripts I..D... 0 0 0% 25-11-17 03:13 00000000 D3OI I.A.... 889 321 36% 29-09-14 19:25 832F7F08 D3OI/Scripts/injector.py ----------- --------- -------- ----- -------- ----- -------- ---- 12873 6231 48% 6 |
6 users say thanks for this.
(Who?)
Thanks
Advertisement
#2
23rd Feb 2015 at 2:41 AM
Last edited by azoresman : 24th Feb 2015 at 8:19 PM.
Reason: Update
Posts: 559
Thanks: 3205 in 6 Posts
Debugging tools yummy .
Testing on the go. I want to see the insides of some stuff.
Thank you .
Edit: For some reason it's not outputting de dump file, neither on screen.
Ill check it later the possible cause after looking at the code.
Edit: Looks like Mega pregnancy script bumps heads with this one and neither work.
Testing on the go. I want to see the insides of some stuff.
Thank you .
Edit: For some reason it's not outputting de dump file, neither on screen.
Ill check it later the possible cause after looking at the code.
Edit: Looks like Mega pregnancy script bumps heads with this one and neither work.
#3
24th Feb 2015 at 10:44 PM
Posts: 2,671
Thanks: 62741 in 190 Posts
Quote: Originally posted by azoresman
Edit: Looks like Mega pregnancy script bumps heads with this one and neither work. |
That's odd, they don't share any code at all and it's working on my machine. Anyone else seeing issues?
#4
26th Feb 2015 at 8:28 PM
Posts: 559
Thanks: 3205 in 6 Posts
Quote: Originally posted by scumbumbo
That's odd, they don't share any code at all and it's working on my machine. Anyone else seeing issues? |
I'll have to check if it's any other script conflicting, I'll let you know. Taking one by one until it works.
There are several Debug commands not working for me since last patch. Maybe my game is bugged and needs repair.
I'll see how to solve this later if I get a chance. Thanks again @scumbumbo.
#5
27th Feb 2015 at 2:42 AM
Posts: 2,671
Thanks: 62741 in 190 Posts
@azoresman, don't know if you realized I didn't really say, but that's just a loose script with a package file, it has to be unzipped to a folder in Mods. So the package should end up in Mods\D3OI and the .py script in Mods\D3OI\Scripts
#6
27th Feb 2015 at 11:33 AM
Posts: 559
Thanks: 3205 in 6 Posts
Quote: Originally posted by scumbumbo
@azoresman, don't know if you realized I didn't really say, but that's just a loose script with a package file, it has to be unzipped to a folder in Mods. So the package should end up in Mods\D3OI and the .py script in Mods\D3OI\Scripts |
Hi @scumbumbo !
Yes I know and now I found several things that I need to redo . I don't see anything wrong in your script.
I had changed (added) elements to the element list, In the early days of the SIMS4 and forgot it. (at the end of the list added 16 more entries.)
Mods that I've done and need to redo cos they went borked by the changes in the code.
When I have the time I'LL come back.
Thanks again.
#7
12th Feb 2016 at 5:12 PM
Posts: 2,671
Thanks: 62741 in 190 Posts
Simple patch to d3oi.py to supply the object definition ID when displaying the object info in game. Add lines between the guid64 output and the actual notification display call:
Code:
output += "guid64: 0x{:016x}\n ({} dec)\n".format(obj.guid64, obj.guid64) if hasattr(obj, 'definition'): output += "objd: 0x{:016x}\n ({} dec)\n".format(obj.definition.id, obj.definition.id) D3OI_show_notification(output)
#8
25th Nov 2017 at 9:59 AM
Posts: 2,671
Thanks: 62741 in 190 Posts
I've updated this with some new stuff and fixed the interactions in the XML for compatibility with the latest game patches. See the first post above for the update info and to download the file.
Note that the enable debug cheats mod is out of date, but Weerbesu has posted an updated version in the feedback for the mod:
http://modthesims.info/download.php...244#post5215244
Note that the enable debug cheats mod is out of date, but Weerbesu has posted an updated version in the feedback for the mod:
http://modthesims.info/download.php...244#post5215244
#9
13th Nov 2018 at 7:58 PM
Posts: 2,671
Thanks: 62741 in 190 Posts
Updated for Python 3.7.0
Test Subject
#11
29th Mar 2019 at 11:06 PM
Posts: 2,671
Thanks: 62741 in 190 Posts
Quote: Originally posted by funhammy
does this still work? |
Yes, should be working. There's some minor "tweak" style corrections that could be made to the XML package, but they don't affect functionality at all, so I haven't prioritized those fixes at all.
Who Posted
|