10 years ago
My script has an ouchie
The purpose of this script was to enumerate the physique values and output them to the cheat screen but it's not doing anything. Oh, and I feed it the simID returned from sims.get_sim_id_by_name, so ...
import services
import sims4.commands
import sims.sim_info
from server_commands.argument_helpers import OptionalTargetParam, get_optional_target, RequiredTargetParam, TunableInstanceParam, OptionalSimInfoParam
from sims.sim_info import SimInfo
@sims4.commands.Command('getphys', command_type=sims4.commands.CommandType.Live)
def getphysiques(first_name='', last_name='', sim_a_id:OptionalTargetParam=None, _connection=None):
physique_range = 1000
output = sims4.commands.CheatOutput(_connection)
output('Starting command for {} {}'.format(first_name, last_name))
sim_a_id = services.sim_info_manager().get_sim_info_by_name(first_name, last_name)
if sim_a_id is None:
output('Sim ID not found')
return False
#output('{} {} has sim id: {}'.format(first_name, last_name, sim_a_id.id))
if sim_a_id is not None:
physique =
if physique is None:
output = sims4.commands.CheatOutput(_connection)
output('Physique variable is still None')
return False
output('Current List: {}'.format(physique))
heavy = float(physique)*physique_range
lean = float(physique)*physique_range
fit = float(physique)*physique_range
bony = float(physique)*physique_range
pregnant = float(physique)*physique_range
hipswide = float(physique)*physique_range
hipsnarrow = float(physique)*physique_range
waistwide = float(physique)*physique_range
waistnarrow = float(physique)*physique_range
output('Physiques are: Heavy0: {} Fit1: {} Lean2: {} Bony3: {} Pregnant4: {} HipsWide5: {} HipsNarrow6: {} WaistWide7: {} WaistNarrow8: {}'.format(heavy, fit, lean, bony, pregnant, hipswide, hipsnarrow, waistwide, waistnarrow))
return True
output('Sim not targeted')
return False
@sims4.commands.Command('setphys', command_type=sims4.commands.CommandType.Live)
def setphysiques(first_name='', last_name='', bbt:int=0, newval:float=0, sim_a_id:OptionalTargetParam=None, _connection=None):
physique_range = 1000
output = sims4.commands.CheatOutput(_connection)
output('Starting command for {} {}'.format(first_name, last_name))
sim_a_id = services.sim_info_manager().get_sim_info_by_name(first_name, last_name)
if sim_a_id is None:
output('Sim ID not found')
return False
#output('{} {} has sim id: {}'.format(first_name, last_name, sim_a_id.id))
output('BBT Provided: {} New Value Provided: {}'.format(bbt, newval))
if sim_a_id is not None:
physique =
if physique is None:
output = sims4.commands.CheatOutput(_connection)
output('Physique variable is still None')
return False
output('Current List: {}'.format(physique))
physique = str(newval)
output('New Physique Value: {}'.format(physique))
physique = ','.join()
sim_a_id.physique = physique
output('New List: {}'.format(sim_a_id.physique))
return True
output('Sim not targeted')
return False