PPC external works fine in the demo stack, but crashes if I copy it to another stack
Kevin Calhoun's answer :

The problem is intrinsic to code fragments contained within resources, not just HyperCard externals. Here's what's happening:
- The code fragment is loaded into memory via GetResource (or equivalent)
- The fragment is prepared for execution by the Code Fragment Manager
- In preparing it for execution, pointers to its external links are written into its TOC; this accounts for the differences you're seeing
- The resource is then copied from in the form in which is currently exists in memory, containing pointers to addresses to its external links that are valid in the current context, but almost certainly invalid on any other machine

Note that anything that copies an xcmd or xfcn resource that has been loaded into memory and prepared for execution will exhibit this problem -- ResCopy, the resource externals that ship with HyperCard, the AddColor installer, the resource copying XCMD in the Dartmouth XCMDs, etc. The problem doesn't occur with ResEdit because in ResEdit you're copying the resource out of a stack that isn't open in HyperCard and therefore whose externals aren't currently in memory and prepared for execution by the CFM.

PPC external works fine in SuperCard, but not in a standalone.
Incwell answer :

The lower case naming convention is one that HyperCard uses to identify PPC native externals, and those do not work in the 3.5 Player.
You can download the 3.6.1 Player which should solve the problem