Sims4UICheats

How to use the move objects cheat in The Sims 4, and every other Build/Buy cheat

The move objects cheat is bb.moveobjects on, entered in the cheat console after testingcheats true. Objects then place off the grid and overlap freely; bb.moveobjects off restores normal placement. The string is in the game executable, not the Python.

bb.moveobjects, bb.showhiddenobjects, bb.showliveeditobjects, bb.ignoregameplayunlocks and bb.enablefreebuild carry native help strings inside TS4_x64.exe rather than a Python registration, and none of the five is in the eleven-entry console help table: bb.moveobjects sits at 0x1F86EB0, over a megabyte past it. freerealestate is in that table, at 0x1E3AC60. No build stamp is claimed for those six. The objects.* and inventory.* rows on this page each cite the Python module and line that registers them.
The Sims 4 command registry by typeA stacked bar of 1847 registered commands: 547 Live, 86 Cheat, 761 DebugOnly and 453 Automation. Live and Cheat, 633 together, are the ones a player can reach.What the game registers, and what youcan type1,847 commands register on a retail PCinstall. 633 of them answer when a playertypes them.547761453633 A PLAYER CAN REACHLive 547runs in a retail gameCheat 86runs after testingcheats trueDebugOnly 761silently does nothingAutomation 453silently does nothing
The Build and Buy cheats are the exception on this chart: they live in the game executable, not in the Python table it counts.

Turn cheats on, then toggle placement

Nothing typed into the cheat console does anything until cheats are enabled for the session. The flag clears every time a save loads, so this command goes in first, every time.

testingcheats true Enables cheats for this session. Re-enter after every load.

The move objects cheat itself is a toggle. On frees placement, off restores the grid.

bb.moveobjects on The executable's own help text reads: MoveObjects cheat [<on/off>]. Allows objects to intersect other objects and architecture and/or float in midair
bb.moveobjects off Back to normal placement rules. Objects already placed stay where you put them.

The string is one word: a dot after bb, then moveobjects with no space and no underscore. Most reports of a broken cheat come down to that one detail.

Opening the console on each platform

PlatformOpen the console withTyping
PCCtrl + Shift + CKeyboard
MacCtrl + Shift + CKeyboard - Control, not Command
PlayStation 4 / PlayStation 5All four shoulder buttons at onceOn-screen keyboard
Xbox One / Xbox Series X and SAll four shoulder buttons at onceOn-screen keyboard

The command strings are the same everywhere. Only the way you open the console and type into it changes, which is why controller players hit typos more often.

The other native Build/Buy cheats

These five sit beside the move objects cheat in the executable, in a block of help strings outside the eleven-entry console help table. Two of them carry help text we could read and it is quoted below; for the other three the note is our own description of what happens in Build mode.

bb.showhiddenobjects The executable's own help text reads: Show game objects in the catalog that are traditionally hidden, e.g. rewards. Toggles the NoCatalog exclusion flag. No build stamp.
bb.showliveeditobjects Adds the live-edit-only set to the catalogue. Our description: no help string was recovered for this one. No build stamp.
bb.ignoregameplayunlocks Objects normally locked behind careers and aspirations become buyable. Our description: no help string was recovered for this one. No build stamp.
bb.enablefreebuild Build on lots the game locks, such as community and career lots. Our description: no help string was recovered for this one. No build stamp.
freerealestate on Entered from the world map before moving a household in, so the lot costs nothing. Native string at 0x1E3AC60, in the console help table.

Why this page carries no verified build

Most cheat pages on this site name the build their commands were checked against, because the command turns up in the game's own shipped Python at a module and a line number. That proof does not exist for the bb. family, and the CAS page carries no stamp for the same reason.

The native executable handles those strings, and nothing next to them records a version, so any build number pinned to them would be borrowed from somewhere else rather than measured. The page gives the offset instead.

The next table is the opposite case: the game registers each of those commands in a Python module it ships with, at the line shown.

Build/Buy and object commands the game registers in Python

These are the Build/Buy adjacent commands the game itself registers. The Type column comes from the registration: entries marked Cheat require cheats enabled, entries marked Live are mostly the game talking to its own interface and are listed for completeness.

The file records an argument signature and a type for each command but no description, so there is no effect column here. Other sites fill that column with guesses. A dash in Pack means the file records no pack code against that command.

CommandArgumentsTypePackRegistered at
bb.set_build_eco_effects_enabled<enabled>LiveEP09server_commands.buildbuy_commands:45
inventory.open_ui<inventory_obj> <sim_only>Liveserver_commands.inventory_commands:435
inventory.open_ui_with_preselection<opt_sim> <filter_tag>Liveserver_commands.inventory_commands:806
inventory.purchase_picker_response<inventory_target> <mailman_purchase> <*def_ids_and_amounts>Liveserver_commands.inventory_commands:121
inventory.purchase_picker_response_by_ids<inventory_target> <inventory_source> <currency_type> <dialog_id> <delivery_method> <object_ids_or_definition_ids> <*ids_and_amounts_and_price>Liveserver_commands.inventory_commands:201
inventory.purge<opt_target>Cheatserver_commands.inventory_commands:109
inventory.sell_picker_response_by_ids<inventory_source> <currency_type> <dialog_id> <*ids_and_amounts_and_price>Liveserver_commands.inventory_commands:368
inventory.sim_inventory_favorite_multiple<sim_id> <is_add> <*items>Liveserver_commands.inventory_commands:553
inventory.sim_inventory_sell_multiple<msg>Liveserver_commands.inventory_commands:467
inventory.view_update<obj_id>Liveserver_commands.inventory_commands:453
objects.consumables_infinite_toggleCheatserver_commands.object_commands:1435
objects.fadeout_finished<obj_id>Liveserver_commands.object_commands:838
objects.focus_camera_on_object<obj_id>Liveserver_commands.object_commands:1141
objects.get_inventory_countsLiveserver_commands.object_commands:1216
objects.lock_all_doorsCheatserver_commands.object_commands:1568
objects.lock_door<obj_id>Cheatserver_commands.object_commands:1546
objects.notify_image_composite_failed<obj_id>Liveserver_commands.object_commands:1527
objects.notify_image_composited<obj_id> <resource_key> <resource_key_type> <resource_key_group> <no_op_version>Liveserver_commands.object_commands:1511
objects.print_transform<obj_id>Cheatserver_commands.object_commands:1413
objects.remove_object_set_as_headCheatserver_commands.object_commands:424
objects.replace_with_random<obj_id> <num_tries> <error_margin>Cheatserver_commands.object_commands:1493
objects.request_customizable_object_data<*object_ids>Liveserver_commands.object_commands:1468
objects.reset<obj_id> <expected>Cheatserver_commands.object_commands:453
objects.set_as_head<obj_id> <scale> <forward_rot> <up_rot>Cheatserver_commands.object_commands:358
objects.set_object_color<response_id> <r> <g> <b> <slider> <checkbox>Liveserver_commands.object_commands:1827
objects.set_voice_actor<obj_id> <voice_actor>Cheatserver_commands.object_commands:1601
objects.show_color_picker<object_id>Liveserver_commands.object_commands:1844
objects.stop_wearing_trendi_outfit<target_sim> <set_current_outfit>Liveserver_commands.object_commands:1726
objects.unlock_all_doorsCheatserver_commands.object_commands:1577
objects.unlock_door<obj_id>Cheatserver_commands.object_commands:1557
objects.update_display_number<obj_id> <*display_numbers>Cheatserver_commands.object_commands:1586
objects.wear_trendi_outfit<inventory_obj_id> <target_sim> <set_current_outfit>Liveserver_commands.object_commands:1652

The pack column prints the code the file carries, such as EP09, rather than a store name, because the code is what the file contains. One entry has a pack code; the rest are base registrations with no pack gate recorded.

Commands taking an obj_id need the id of a specific object, and the Build/Buy interface does not hand you one. They are listed here because the game registers them, not because you are likely to use them.

When a Build/Buy cheat does nothing

Work through these in order before assuming a patch broke something.

  • Cheats were never enabled this session, or the save was reloaded since they were.
  • The command was mistyped: moveobjects takes no space and no underscore.
  • You are in Live mode. Placement cheats change nothing outside Build mode.
  • A script mod is failing to load and taking the Python command registration down with it. Move the Mods folder aside and retest before blaming the game.
  • The cheat did work and the effect is not visible: bb.showhiddenobjects changes what a Build/Buy search returns, not what the catalogue shows by default.

The cheat flag is the same one every other section depends on, so if nothing at all responds, the problem is upstream of Build/Buy and applies across cheats list equally. Appearance and Sim editing are covered in the cas cheat sims 4.

More Build/Buy pages

Common questions

Why is the move objects cheat not working?

Usually the cheat flag is off, so testingcheats true has to go in before bb.moveobjects on. After that, check the spelling: it is one word, no space and no underscore between move and objects. The cheat also does nothing outside Build mode.

Does bb.moveobjects work on PlayStation and Xbox?

The command string is identical on every platform. What changes is how you reach the console: a keyboard chord on PC and Mac, and holding all four shoulder buttons at once on PlayStation and Xbox. Console players type with the on-screen keyboard, which is why typos are the common failure there.

Why does this page not stamp bb.moveobjects with a game build?

Because the site cannot prove it from a file. Every command this site stamps traces to the module and line in the game's shipped Python that registers it. bb.moveobjects is not registered there; the string lives in the executable, in a block of help text outside the console help table, and carries no version marker. Rather than borrow a build number from another site, the page says where the string is.

What do all the objects.* commands in the table do?

The shipped Python registers them but records no description for any command, so this page does not invent one. The file does give the argument signature, the module and line, and whether the command is flagged Live or Cheat. Anything flagged Cheat needs cheats enabled for the session; the Live entries are mostly the game talking to its own interface.

Do I have to type testingcheats true again after loading a save?

Players report yes, and re-entering it costs nothing, so that is the advice. The shipped code is less clear-cut: CheatService.save writes cheats_enabled into the account data and CheatService.load reads it back (services.cheat_service:45 and :59), so the flag is stored rather than discarded. This site has not play-tested which behaviour wins and will not state one as fact.