I'm working on a project that has a "table" of values (currently and array of instances of a class).
I am building an initiative tracker for D&D, and I have a table of Monster stats. I then engage the monsters to bring the ones I need into the current fight. For me to change the monsters I have available in my table, I currently need to go in and edit the program code directly and re-upload.
Is there are good method of updating just that table without having to reload the entire program? Like sending it over bluetooth from my phone?
I would eventually like to be able to have a different table for the different campaigns I'm running and send the table for that campaign over.
If your table of data is held in SRAM then it should be straightforward to add a function to your program that can update the table from data received over a serial connection, such as Bluetooth. Have a look at the examples in Serial Input Basics - simple reliable ways to receive data. There is also a parse example to illustrate how to extract numbers from the received text. Of course you will need a compatible program on your phone or PC that can send the data in the format that your Arduino program expects.
Another option might be to add an SD Card module and then your Arduino program could choose data from different files on the SD Card.
Not a shield, a module that cost about $2. You could build better (they shortcut voltage leveling between Arduino 5V and SD 3.3V) when you're ready but for now the modules work.
Don't treat SD like a regular drive, don't overwrite records in the same file. The smart move is to have data in one file and a set of links to the data in another. You access the data through the links and if you need to sort the data, write a file of links sorted however you need.
If you need to change the data itself, write a new data file and/or come up with a system to store and track revisions.