Everything Ferryman does is available on one editor subsystem, UTAFerrymanSubsystem, from Python and from Editor Utility Blueprints (category ta Ferryman ).
ferry = unreal.get_editor_subsystem(unreal.TAFerrymanSubsystem)
Paths can be object paths, package names or folders (/Game/Props). Results are structs with success / error fields; check them.
# Pack assets (with what they use) into a parcel file.
result = ferry.pack_parcel([ "/Game/Props/SM_Crate" ], "C:/Temp/crate.ferry" , "for the yard" , False )
print (result.success, result.error, len (result.manifest.packages))
# Review plan, then land.
plan = ferry.plan_arrival( "C:/Temp/crate.ferry" , unreal.TAFerrymanDestination. INTO_FOLDER , "/Game/Incoming" )
for i, item in enumerate (plan.items):
if item.state == unreal.TAFerrymanArrivalState. CONFLICT :
plan = ferry.set_arrival_action(plan, i, unreal.TAFerrymanArrivalAction. KEEP_BOTH )
landed = ferry.apply_arrival(plan)
print (landed.written, landed.skipped, landed.backup_folder)
Function
What it does
pack_parcel(paths, file, note, for_older_engines)
Packs assets with their dependencies into a .ferry file. Unsaved changes are saved first.
read_parcel(file)
Reads a parcel’s table of contents.
gather_packages(paths)
Lists what a selection would send, without packing.
plan_arrival(file, destination, folder)
The review plan: target paths, New/Same/Differs, default actions, missing plugins.
set_arrival_action(plan, index, action)
Changes one item’s action and updates the target names.
apply_arrival(plan)
Lands a parcel as planned.
import_parcel(file, destination, folder)
Plans with the defaults and lands in one step.
Destinations: KEEP_PATHS (Same paths), INTO_FOLDER, HERE (Straight into a folder). Actions: IMPORT, OVERWRITE (Replace), SKIP (Keep mine), KEEP_BOTH.
for peer in ferry.get_peers():
print (peer.project_name, peer.device_name, peer.engine_version, peer.trusted)
transfer = ferry.send_to_editor( "OtherProject" , [ "/Game/Props" ], "" )
Function
What it does
get_peers()
Editors found on this machine and on the network.
send_to_editor(editor, paths, note)
Packs and sends. editor is an editor id, a project name or a device name.
get_transfers(), get_transfer(id)
Transfers of this session and their state.
get_offer_plan(id), accept_offer(id, plan, trust), decline_offer(id)
Decide about an incoming parcel.
copy_for_ferry(paths), find_copy_source(paths), paste_from_editor(editor, token, destination, folder)
Copy and paste between editors.
get_trusted_devices(), forget_device(device_id)
Paired machines.
start_network(), stop_network(), is_network_running(), get_network_port()
The network service.
pump_network(seconds)
Lets network events run; needed in commandlets and long scripts, where the editor doesn’t tick.
Function
What it does
link_to_editor(editor, paths, note)
Sends and keeps the assets linked.
get_links()
Live links of this project, both directions.
pause_link(id, paused), remove_link(id), sync_link(id)
Pause or resume, remove, send now.
Function
What it does
put_on_dock(paths, note, lock)
Leaves a parcel on the dock; with lock, result.code holds the six-word code.
get_dock_parcels(include_taken, include_own)
Parcels on the dock.
plan_from_dock(id, code, destination, folder)
Copies a dock parcel here and returns the review plan; land it with apply_arrival, then mark_dock_parcel_taken.
import_from_dock(id, code, destination, folder)
Takes a dock parcel and lands it with the defaults.
remove_from_dock(id)
Removes a parcel this machine put on the dock.
create_connection_code(address)
Makes a code (valid for an hour). Empty address: this machine’s first network address.
send_with_code(code, paths, note)
Sends to the editor that made the code.
get_local_addresses(), get_public_address()
This machine’s addresses; the public one is asked from a STUN server.
Function
What it does
start_listening(), stop_listening(), is_listening()
The microphone.
send_ticket_by_sound(paths, profile)
Plays a ticket for assets.
send_material_by_sound(path, profile)
Plays a material instance’s parent and parameters.
send_placement_by_sound(profile)
Plays the placement of the selected static mesh actors.
send_text_by_sound(text, profile)
Plays a short text.
start_sound_check(profiles), get_sound_check_results()
The sound check.
Profiles: ROBUST, NORMAL, FAST, ULTRASONIC.
Function
What it does
open_panel(page)
Opens the panel on "Editors", "Transfers", "Dock", "Links", "Code" or "Sound".
open_parcel_review(file, folder)
Opens the review for a parcel file.
get_device_id(), get_device_name(), get_editor_id()
Who this editor is.
get_sender_info()
The engine and package versions written into parcels.
get_work_folder()
The project’s Saved/Ferryman folder.