[gd_scene load_steps=9 format=3 uid="uid://ryvnj6wy1gij"] [ext_resource type="Texture2D" uid="uid://dfwpt4r3mwe3" path="res://examples/input-prediction/checkers.png" id="1_64oxq"] [ext_resource type="Script" path="res://examples/input-prediction/marble.gd" id="1_n25ns"] [ext_resource type="Script" path="res://examples/input-prediction/input.gd" id="2_7f8dy"] [ext_resource type="Script" path="res://addons/netfox/rollback/rollback-synchronizer.gd" id="2_nlyyn"] [ext_resource type="Script" path="res://addons/netfox/tick-interpolator.gd" id="5_ruljv"] [sub_resource type="SphereShape3D" id="SphereShape3D_bpiah"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fyc8n"] albedo_texture = ExtResource("1_64oxq") metallic = 0.8 roughness = 0.1 texture_filter = 0 [sub_resource type="SphereMesh" id="SphereMesh_y7mm6"] material = SubResource("StandardMaterial3D_fyc8n") radial_segments = 32 rings = 16 [node name="marble" type="CharacterBody3D"] collision_layer = 2 script = ExtResource("1_n25ns") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] shape = SubResource("SphereShape3D_bpiah") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] mesh = SubResource("SphereMesh_y7mm6") [node name="Input" type="Node" parent="."] script = ExtResource("2_7f8dy") [node name="RollbackSynchronizer" type="Node" parent="." node_paths=PackedStringArray("root")] script = ExtResource("2_nlyyn") root = NodePath("..") enable_prediction = true state_properties = Array[String]([":transform", ":velocity", ":is_reversing"]) input_properties = Array[String](["Input:movement"]) enable_input_broadcast = false [node name="TickInterpolator" type="Node" parent="." node_paths=PackedStringArray("root")] script = ExtResource("5_ruljv") root = NodePath("..") properties = Array[String]([":transform"])