- Built the first top-down Sims-style camera base.
- Set the camera to Scriptable in top-down mode.
- Added smooth zoom in/out with scroll wheel.
- Fixed scroll zoom feeling inverted/backwards.
- Added camera tilt that changes with zoom:
- closer zoom = lower angle
- farther zoom = higher top-down angle
- Added smooth camera follow on the player.
- Added manual camera pan.
- Changed controls so:
- WASD / arrow keys move the camera
- not the player
- Disabled default Roblox character movement while in top-down mode.
- Blocked:
- WASD player movement
- arrow key player movement
- spacebar jump
- mobile jump
- Added click-to-move for the player.
- Added mobile tap-to-move.
- Added GUI blocking so clicking UI does not move the player.
- Added interaction detection through raycasting.
- Added support for clicking InteractionHitbox.
- Added logic to resolve the interaction root from:
- hitbox parent
- any ancestor with InteractionType
- Made clicks fire RequestInteraction when an interactable is found.
- Made non-interactable clicks move the player instead.
- Added click ring FX on the ground.
- Added support for canceling interactions:
- if player is using toilet/bed/object
- click/tap anywhere cancels/gets up
- Added camera mode toggle:
- TopDown
- Roblox default
- controlled by Ctrl + V
- Added rotation controls:
- Q rotate left
- E rotate right
- Added recenter key:
- F recenters camera on player
- Added follow toggle:
- T toggles follow/manual mode
- Added edge panning for mouse.
- Added middle-mouse drag panning.
- Added touch drag panning.
- Added touch tap threshold so dragging does not count as movement click.
- Added world camera bounds:
- clamps camera inside world min/max X/Z.
- Added expansion GUI click routing so expansion billboards can still work.
- Added CityExpansionRemotes hookup for expansion unlock clicks.
- Added better GUI detection for:
- buttons
- text boxes
- scrolling frames
- active frames
- Added mobile multi-touch upgrades:
- pinch to zoom
- two-finger rotate
- two-finger pan
- Added multi-touch tap protection so pinch/rotate does not accidentally move the sim afterward.
- Added mobile gesture settings:
- PinchZoomSensitivity
- TwoFingerRotateSensitivity
- TwoFingerPanSensitivity
- MultiTouchTapBlockTime
- Kept camera compatible with:
- interaction system
- sleep cancel
- build mode
- expansion UI
- mobile-first controls
