Not hard... but like anything new it takes time to get to know it. It was an evolutionary process while adding it to Sonic, with help from JLou and AnonTet. Each table is a bit different.
This was a point form I made for myself while adding FizX. This is NOT a complete / proper guide, but it will give you an idea. Also, my video I posted earlier describes much of the process and I show some of it. It has similarities to how nFozzy/Roth physics are added to a VPX table.
********** Adding FizX to a table (the basics) **********
- add Timer named Trajectory_Correction, set it to enabled and 10 ms in the editor
- add new FizX code (remove any older custom physics code)
- check the main table code to ensure there is no duplicate Dim, Functions, Subs, etc used in the FizX code
- add AdjustBallVelocity() to Sub NewtonPhysicsTick or Sub DrawFrameTick (depends on the table)
- in the editor, adjust table slope (usually between 5 to 6)
- name flippers as "LeftFlipper, RightFlipper, LeftFlipper1, RightFlipper1, etc" in the editor and in the table script to match FizX code
- adjust flipper start angle / swing angle / strength / elasticity as needed (typically strength is centered, and elasticity is hard)
- change settings in "Flipper Physics Setup" to match flipper swing angle, and other flipper settings as needed
- replace bumpers with new bumper model and skirt "peg" model (remove any em kickers in the editor and table code - if they were used for the bumpers)
- update slings with new FizX diverters, add new FizX commands to activate diverters (in the slingshot Subs)
- add new FizX diverter "rubber" models for posts and add new FizX wall guides (set as rubber) in place of rubber bands (named Drubber1, Drubber2, Drubber3, etc)
- use invisible textures for FizX rubber posts, and FizX rubber wall guides (or set to "not rendered" - we don't want to see them)
- add new settings for each FizX rubber post and rubber wall item in "FizX Table Settings"
- add new walls (set to plastic) to each drop target (named DT1, DT2, DT3, etc) and use invisible textures with them (we don't want to see them)
- add or change table code for drop targets so that FizX drop target walls are what gets "hit", and then control drop target items based on that
- in the editor, make sure all items are named correctly to work with FizX code (flippers, sling diverters, drop target walls, rubber posts and walls, etc)
- in the editor, ensure settings for all items are correct for FizX (flippers, sling diverters, drop target walls, rubber posts and walls, etc)
- in the editor, adjust kickers, bumpers, autoplunger as needed for strength, etc
- adjust "Physics xml" only as needed (most settings are pre-set for FizX)
- adjust any BAM magnets as needed. Example before adding FizX: Upper_Magnet.Strength = 300. After adding FizX: Upper_Magnet.Strength = 25000
- test / adjust / test / adjust.... until you get it working the way you want it to play!
- if you get Overflow Errors while playing, try adding PFTrajectoryCorrection = 0 right before a ball is created and right before its kicked out, and add AdjustBallVelocity to Sub DrawFrame instead of Sub NewtonPhysicsTick
Again, this is not "the" guide for installing FizX... it was something I did for myself to track what I did as I went along.
Edited by TerryRed, 19 August 2022 - 10:43 PM.