---
title: SKNode
framework: spritekit
role: symbol
role_heading: Class
path: spritekit/sknode
---

# SKNode

The base class of all SpriteKit nodes.

## Declaration

```swift
@MainActor class SKNode
```

```swift
class SKNode
```

## Mentioned in

Customizing the Behavior of a Node Accessing and Modifying the Node Tree Animate the Warping of a Sprite Connecting Bodies with Joints Controlling User Interaction on Nodes Detecting Changes at Each Step of an Animation Resizing a Sprite in Nine Parts Searching the Node Tree Using Base Nodes to Lay Out SpriteKit Content

## Overview

Overview SKNode provides base properties for its subclasses and it can be used as a container or layout tool for other nodes. For example, you might add a collection of nodes as children to an SKNode that all move together within the scene; because nodes inherit the properties of their parent, changing the parent node’s position propagates the change to its children as well. SKNode does not draw any content itself. Its visual counterparts are listed in Nodes that Draw in Nodes for Scene Building.

## Topics

### First Steps

- [Getting Started with Nodes](spritekit/getting-started-with-nodes.md)
- [init()](spritekit/sknode/init().md)
- [init(fileNamed:)](spritekit/sknode/init(filenamed:).md)
- [init(coder:)](spritekit/sknode/init(coder:).md)
- [init(fileNamed:securelyWithClasses:)](spritekit/sknode/init(filenamed:securelywithclasses:).md)

### Positioning Content in a Scene

- [position](spritekit/sknode/position.md)

### Querying the Content Size

- [frame](spritekit/sknode/frame.md)
- [calculateAccumulatedFrame()](spritekit/sknode/calculateaccumulatedframe().md)

### Configuring Draw Order

- [About Node Drawing Order](spritekit/about-node-drawing-order.md)
- [zPosition](spritekit/sknode/zposition.md)

### Scaling and Rotating

- [zRotation](spritekit/sknode/zrotation.md)
- [setScale(_:)](spritekit/sknode/setscale(_:).md)
- [xScale](spritekit/sknode/xscale.md)
- [yScale](spritekit/sknode/yscale.md)

### Accessing Related Nodes

- [About SpriteKit Coordinate Systems](spritekit/about-spritekit-coordinate-systems.md)
- [scene](spritekit/sknode/scene.md)
- [parent](spritekit/sknode/parent.md)
- [children](spritekit/sknode/children.md)

### Modifying the Node Tree

- [Accessing and Modifying the Node Tree](spritekit/accessing-and-modifying-the-node-tree.md)
- [addChild(_:)](spritekit/sknode/addchild(_:).md)
- [insertChild(_:at:)](spritekit/sknode/insertchild(_:at:).md)
- [isEqual(to:)](spritekit/sknode/isequal(to:).md)
- [move(toParent:)](spritekit/sknode/move(toparent:).md)
- [removeFromParent()](spritekit/sknode/removefromparent().md)
- [removeAllChildren()](spritekit/sknode/removeallchildren().md)
- [removeChildren(in:)](spritekit/sknode/removechildren(in:).md)
- [inParentHierarchy(_:)](spritekit/sknode/inparenthierarchy(_:).md)

### Customizing Nodes

- [Customizing the Behavior of a Node](spritekit/customizing-the-behavior-of-a-node.md)

### Propagating Properties to Children

- [About Node Property Propagation](spritekit/about-node-property-propagation.md)

### Accessing Nodes by Name

- [Searching the Node Tree](spritekit/searching-the-node-tree.md)
- [name](spritekit/sknode/name.md)
- [childNode(withName:)](spritekit/sknode/childnode(withname:).md)
- [enumerateChildNodes(withName:using:)](spritekit/sknode/enumeratechildnodes(withname:using:).md)
- [subscript(_:)](spritekit/sknode/subscript(_:).md)

### Altering Node Visibility

- [alpha](spritekit/sknode/alpha.md)
- [isHidden](spritekit/sknode/ishidden.md)

### Running Actions

- [Getting Started with Actions](spritekit/getting-started-with-actions.md)
- [run(_:)](spritekit/sknode/run(_:).md)
- [run(_:completion:)](spritekit/sknode/run(_:completion:).md)
- [run(_:withKey:)](spritekit/sknode/run(_:withkey:).md)
- [speed](spritekit/sknode/speed.md)
- [isPaused](spritekit/sknode/ispaused.md)
- [action(forKey:)](spritekit/sknode/action(forkey:).md)
- [hasActions()](spritekit/sknode/hasactions().md)
- [removeAllActions()](spritekit/sknode/removeallactions().md)
- [removeAction(forKey:)](spritekit/sknode/removeaction(forkey:).md)

### Adding Physics Behaviors

- [Getting Started with Physics Bodies](spritekit/getting-started-with-physics-bodies.md)
- [physicsBody](spritekit/sknode/physicsbody.md)

### Constraining Node Position or Rotation

- [constraints](spritekit/sknode/constraints.md)
- [reachConstraints](spritekit/sknode/reachconstraints.md)

### Detecting Collisions Manually

- [intersects(_:)](spritekit/sknode/intersects(_:).md)

### Adding GameplayKit Behaviors

- [entity](spritekit/sknode/entity.md)
- [obstacles(fromNodeBounds:)](spritekit/sknode/obstacles(fromnodebounds:).md)
- [obstacles(fromNodePhysicsBodies:)](spritekit/sknode/obstacles(fromnodephysicsbodies:).md)
- [obstacles(fromSpriteTextures:accuracy:)](spritekit/sknode/obstacles(fromspritetextures:accuracy:).md)

### Handling User Input

- [Controlling User Interaction on Nodes](spritekit/controlling-user-interaction-on-nodes.md)
- [isUserInteractionEnabled](spritekit/sknode/isuserinteractionenabled.md)
- [focusBehavior](spritekit/sknode/focusbehavior.md)

### Hit Testing

- [Understanding Hit-Testing](spritekit/understanding-hit-testing.md)
- [contains(_:)](spritekit/sknode/contains(_:).md)
- [atPoint(_:)](spritekit/sknode/atpoint(_:).md)
- [nodes(at:)](spritekit/sknode/nodes(at:).md)

### Converting Between Coordinate Systems of Different Nodes

- [Converting Coordinate Spaces](spritekit/converting-coordinate-spaces.md)
- [convert(_:from:)](spritekit/sknode/convert(_:from:).md)
- [convert(_:to:)](spritekit/sknode/convert(_:to:).md)

### Adding Custom Data Without Subclassing

- [userData](spritekit/sknode/userdata.md)

### Providing Accessibility

- [accessibilityChildren](spritekit/sknode/accessibilitychildren.md)
- [accessibilityFrame](spritekit/sknode/accessibilityframe.md)
- [accessibilityHelp](spritekit/sknode/accessibilityhelp.md)
- [accessibilityLabel](spritekit/sknode/accessibilitylabel.md)
- [accessibilityParent](spritekit/sknode/accessibilityparent.md)
- [accessibilityRole](spritekit/sknode/accessibilityrole.md)
- [accessibilityRoleDescription](spritekit/sknode/accessibilityroledescription.md)
- [accessibilitySubrole](spritekit/sknode/accessibilitysubrole.md)
- [isAccessibilityElement](spritekit/sknode/isaccessibilityelement.md)
- [isAccessibilityEnabled](spritekit/sknode/isaccessibilityenabled.md)
- [accessibilityHitTest(_:)](spritekit/sknode/accessibilityhittest(_:).md)

### Setting a Node’s Unique Attributes for a Shader

- [attributeValues](spritekit/sknode/attributevalues.md)
- [setValue(_:forAttribute:)](spritekit/sknode/setvalue(_:forattribute:).md)
- [value(forAttributeNamed:)](spritekit/sknode/value(forattributenamed:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)
- [NSResponder](appkit/nsresponder.md)
- [UIResponder](uikit/uiresponder.md)

### Inherited By

- [SK3DNode](spritekit/sk3dnode.md)
- [SKAudioNode](spritekit/skaudionode.md)
- [SKCameraNode](spritekit/skcameranode.md)
- [SKCropNode](spritekit/skcropnode.md)
- [SKEffectNode](spritekit/skeffectnode.md)
- [SKEmitterNode](spritekit/skemitternode.md)
- [SKFieldNode](spritekit/skfieldnode.md)
- [SKLabelNode](spritekit/sklabelnode.md)
- [SKLightNode](spritekit/sklightnode.md)
- [SKReferenceNode](spritekit/skreferencenode.md)
- [SKShapeNode](spritekit/skshapenode.md)
- [SKSpriteNode](spritekit/skspritenode.md)
- [SKTileMapNode](spritekit/sktilemapnode.md)
- [SKTransformNode](spritekit/sktransformnode.md)
- [SKVideoNode](spritekit/skvideonode.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UICoordinateSpace](uikit/uicoordinatespace.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIFocusItem](uikit/uifocusitem.md)
- [UIFocusItemContainer](uikit/uifocusitemcontainer.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### Base Nodes

- [Using Base Nodes to Lay Out SpriteKit Content](spritekit/using-base-nodes-to-lay-out-spritekit-content.md)
- [SKCameraNode](spritekit/skcameranode.md)
- [SKReferenceNode](spritekit/skreferencenode.md)
