### Godot version

4.1.beta.a83eb16fb

### System information

Arch Linux

### Issue description

When attempting to have a scene load a resource that uses a script that exports a var of Callable type, a parse error will occur due to Callable not being serializable.

### Steps to reproduce

Create new project.
create a resource script that exports a Callable type:

```
class_name BreakStuff
extends Resource
@export var something: Callable
```

create a .tres file that uses the script.

create a scene that uses that resource, such as with a script like

```
extends Node
@export var stuff: Resource
```

set that resource to that .tres file.

close project and reopen.

Be greeted with error message about a parse error and be unable to open that scene.

Within plain text of .tscn file you can see a line that reads
something =

which causes a parse error as something has nothing to be set to.



### Minimal reproduction project

N/A
for (uint32_t i = 0; i < spawnable_scenes.size(); i++) {
		if (spawnable_scenes[i].path == p_scene) {
			return i;
		}
	}
	return INVALID_ID;
}
int MultiplayerSpawner::find_spawnable_scene_index_from_object(const ObjectID &p_id) const {
	const SpawnInfo *info = tracked_nodes.getptr(p_id);
	return info ? info->id : INVALID_ID;
}
const Variant MultiplayerSpawner::get_spawn_argument(const ObjectID &p_id) const {
	const SpawnInfo *info = tracked_nodes.getptr(p_id);
	return info ? info->args : Variant();
}
Node *MultiplayerSpawner::instantiate_scene(int p_id) {
	ERR_FAIL_COND_V_MSG(spawn_limit && spawn_limit <= tracked_nodes.size(), nullptr, "Spawn limit reached!");
	ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_id, spawnable_scenes.size(), nullptr);
	SpawnableScene &sc = spawnable_scenes[p_id];
	if (sc.cache.is_null()) {
		sc.cache = ResourceLoader::load(sc.path);
	}
	ERR_FAIL_COND_V_MSG(sc.cache.is_null(), nullptr, "Invalid spawnable scene: " + sc.path);
	return sc.cache->instantiate();
}
Node *MultiplayerSpawner::instantiate_custom(const Variant &p_data) {